[
  {
    "path": "HW01/HW01.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Import packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Numerical Operations\\n\",\n    \"import math\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# Reading/Writing Data\\n\",\n    \"import pandas as pd\\n\",\n    \"import os\\n\",\n    \"import csv\\n\",\n    \"\\n\",\n    \"# For Progress Bar\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"# Pytorch\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"from torch.utils.data import Dataset, DataLoader, random_split\\n\",\n    \"\\n\",\n    \"# Matplotlib\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"# Optuna\\n\",\n    \"import optuna\\n\",\n    \"\\n\",\n    \"# For plotting learning curve\\n\",\n    \"from torch.utils.tensorboard import SummaryWriter\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Some Utility Functions\\n\",\n    \"\\n\",\n    \"You do not need to modify this part.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def same_seed(seed):\\n\",\n    \"    '''Fixes random number generator seeds for reproducibility.'''\\n\",\n    \"    torch.backends.cudnn.deterministic = True\\n\",\n    \"    torch.backends.cudnn.benchmark = False\\n\",\n    \"    np.random.seed(seed)\\n\",\n    \"    torch.manual_seed(seed)\\n\",\n    \"    if torch.cuda.is_available():\\n\",\n    \"        torch.cuda.manual_seed_all(seed)\\n\",\n    \"\\n\",\n    \"def train_valid_split(data_set, valid_ratio, seed):\\n\",\n    \"    '''Split provided training data into training set and validation set'''\\n\",\n    \"    valid_set_size = int(valid_ratio * len(data_set))\\n\",\n    \"    train_set_size = len(data_set) - valid_set_size\\n\",\n    \"    train_set, valid_set = random_split(data_set, [train_set_size, valid_set_size], generator=torch.Generator().manual_seed(seed))\\n\",\n    \"    return np.array(train_set), np.array(valid_set)\\n\",\n    \"\\n\",\n    \"def predict(test_loader, model, device):\\n\",\n    \"    model.eval() # Set your model to evaluation mode.\\n\",\n    \"    preds = []\\n\",\n    \"    for x in tqdm(test_loader):\\n\",\n    \"        x = x.to(device)\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            pred = model(x)\\n\",\n    \"            preds.append(pred.detach().cpu())\\n\",\n    \"    preds = torch.cat(preds, dim=0).numpy()\\n\",\n    \"    return preds\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class CovidDataset(Dataset):\\n\",\n    \"    def __init__(self, x, y=None):\\n\",\n    \"        if y is None:\\n\",\n    \"            self.y = y\\n\",\n    \"        else:\\n\",\n    \"            self.y = torch.FloatTensor(y)\\n\",\n    \"        self.x = torch.FloatTensor(x)\\n\",\n    \"    \\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        if self.y is None:\\n\",\n    \"            return self.x[idx]\\n\",\n    \"        else:\\n\",\n    \"            return self.x[idx], self.y[idx]\\n\",\n    \"    \\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.x)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Neural Network Model\\n\",\n    \"\\n\",\n    \"Try out different model architectures by modifying the class below. (You could tune config['layer'] to try)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class My_Model(nn.Module):\\n\",\n    \"    def __init__(self, input_dim):\\n\",\n    \"        super(My_Model, self).__init__()\\n\",\n    \"        # TODO: modify model's structure, be aware of dimensions.\\n\",\n    \"        self.layers = nn.Sequential(\\n\",\n    \"            nn.Linear(input_dim, config['layer'][0]),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Linear(config['layer'][0], config['layer'][1]),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Linear(config['layer'][1], 1)\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.layers(x)\\n\",\n    \"        x = x.squeeze(1) # (B, 1) -> (B)\\n\",\n    \"        return x\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Feature Selection\\n\",\n    \"\\n\",\n    \"Choose features you deem useful by modifying the function below.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from sklearn.feature_selection import SelectKBest, f_regression\\n\",\n    \"\\n\",\n    \"def select_feat(train_data, valid_data, test_data, no_select_all=True):\\n\",\n    \"    '''Selects useful features to perform regression'''\\n\",\n    \"    global config\\n\",\n    \"    y_train, y_valid = train_data[:,-1], valid_data[:,-1]\\n\",\n    \"    raw_x_train, raw_x_valid, raw_x_test = train_data[:,:-1], valid_data[:,:-1], test_data\\n\",\n    \"\\n\",\n    \"    if not no_select_all:\\n\",\n    \"        feat_idx = list(range(raw_x_train.shape[1]))\\n\",\n    \"    else:\\n\",\n    \"        # Feature selection\\n\",\n    \"        k = config['k']\\n\",\n    \"        selector = SelectKBest(score_func=f_regression, k=k)\\n\",\n    \"        result = selector.fit(train_data[:, :-1], train_data[:,-1])\\n\",\n    \"        idx = np.argsort(result.scores_)[::-1]\\n\",\n    \"        feat_idx = list(np.sort(idx[:k]))\\n\",\n    \"\\n\",\n    \"    return raw_x_train[:,feat_idx], raw_x_valid[:,feat_idx], raw_x_test[:,feat_idx], y_train, y_valid\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Training Loop\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def trainer(train_loader, valid_loader, model, config, device):\\n\",\n    \"    \\n\",\n    \"    # Define your loss function, do not modify this.\\n\",\n    \"    criterion = nn.MSELoss(reduction='mean') \\n\",\n    \"    \\n\",\n    \"    # Define your optimization algorithm.\\n\",\n    \"    if config['optim'] == 'SGD':\\n\",\n    \"        if config['no_momentum']:\\n\",\n    \"            optimizer = torch.optim.SGD(model.parameters(), lr=config['learning_rate'], weight_decay=config['weight_decay'])     \\n\",\n    \"        else:\\n\",\n    \"            optimizer = torch.optim.SGD(model.parameters(), lr=config['learning_rate'], momentum=config['momentum'], weight_decay=config['weight_decay'])     \\n\",\n    \"    elif config['optim'] == 'Adam':\\n\",\n    \"        optimizer = torch.optim.Adam(model.parameters(), lr=config['learning_rate'], weight_decay=config['weight_decay'])\\n\",\n    \"        \\n\",\n    \"    # Writer of tensoboard.\\n\",\n    \"    writer = SummaryWriter() \\n\",\n    \"\\n\",\n    \"        \\n\",\n    \"    if not os.path.isdir('./models'):\\n\",\n    \"        os.mkdir('./models') # Create directory of saving models.\\n\",\n    \"\\n\",\n    \"    n_epochs, best_loss, step, early_stop_count = config['n_epochs'], math.inf, 0, 0\\n\",\n    \"\\n\",\n    \"    for epoch in range(n_epochs):\\n\",\n    \"        model.train() # Set your model to train mode.\\n\",\n    \"        loss_record = []\\n\",\n    \"        \\n\",\n    \"        # 如果你在kaggle上运行，可以注释掉大部分的打印函数，并将train_pbar注释掉，令 x,y in train_loader，因为kaggle上打印太多可能会报错。\\n\",\n    \"        # tqdm is a package to visualize your training progress.\\n\",\n    \"        #train_pbar = tqdm(train_loader, position=0, leave=True)\\n\",\n    \"        #for x, y in train_pbar:\\n\",\n    \"        for x, y in train_loader:\\n\",\n    \"            optimizer.zero_grad()               # Set gradient to zero.\\n\",\n    \"            x, y = x.to(device), y.to(device)   # Move your data to device.\\n\",\n    \"            pred = model(x)\\n\",\n    \"            loss = criterion(pred, y)\\n\",\n    \"            loss.backward()                     # Compute gradient(backpropagation).\\n\",\n    \"            optimizer.step()                    # Update parameters.\\n\",\n    \"            step += 1\\n\",\n    \"            loss_record.append(loss.detach().item())\\n\",\n    \"\\n\",\n    \"            # Display current epoch number and loss on tqdm progress bar.\\n\",\n    \"            #train_pbar.set_description(f'Epoch [{epoch+1}/{n_epochs}]')\\n\",\n    \"            #train_pbar.set_postfix({'loss': loss.detach().item()})\\n\",\n    \"\\n\",\n    \"        mean_train_loss = sum(loss_record)/len(loss_record)\\n\",\n    \"\\n\",\n    \"        model.eval() # Set your model to evaluation mode.\\n\",\n    \"        loss_record = []\\n\",\n    \"        for x, y in valid_loader:\\n\",\n    \"            x, y = x.to(device), y.to(device)\\n\",\n    \"            with torch.no_grad():\\n\",\n    \"                pred = model(x)\\n\",\n    \"                loss = criterion(pred, y)\\n\",\n    \"\\n\",\n    \"            loss_record.append(loss.item())\\n\",\n    \"\\n\",\n    \"        mean_valid_loss = sum(loss_record)/len(loss_record)        \\n\",\n    \"        \\n\",\n    \"        #if epoch % 100 == 0:\\n\",\n    \"        #    print(f'Epoch [{epoch+1}/{n_epochs}]: Train loss: {mean_train_loss:.4f}, Valid loss: {mean_valid_loss:.4f}')\\n\",\n    \"\\n\",\n    \"        if not config['no_tensorboard']:\\n\",\n    \"            writer.add_scalar('Loss/train', mean_train_loss, step)\\n\",\n    \"            writer.add_scalar('Loss/valid', mean_valid_loss, step)\\n\",\n    \"\\n\",\n    \"        if mean_valid_loss < best_loss:\\n\",\n    \"            best_loss = mean_valid_loss\\n\",\n    \"            \\n\",\n    \"            # 一轮实验中保存 K 折交叉验证中单折表现最好的模型\\n\",\n    \"            if len(valid_scores):\\n\",\n    \"                if best_loss < min(valid_scores):\\n\",\n    \"                    torch.save(model.state_dict(), config['save_path']) # Save your best model\\n\",\n    \"                    #print(f'Epoch [{epoch+1}/{n_epochs}]: Train loss: {mean_train_loss:.4f}, Valid loss: {mean_valid_loss:.4f}')\\n\",\n    \"                    print('Saving model with loss {:.3f}...'.format(best_loss))\\n\",\n    \"            else:\\n\",\n    \"                torch.save(model.state_dict(), config['save_path']) # Save your best model\\n\",\n    \"                #print(f'Epoch [{epoch+1}/{n_epochs}]: Train loss: {mean_train_loss:.4f}, Valid loss: {mean_valid_loss:.4f}')\\n\",\n    \"                print('Saving model with loss {:.3f}...'.format(best_loss))\\n\",\n    \"                \\n\",\n    \"            early_stop_count = 0\\n\",\n    \"        else:\\n\",\n    \"            early_stop_count += 1\\n\",\n    \"\\n\",\n    \"        if early_stop_count >= config['early_stop']:\\n\",\n    \"            print('Best loss {:.3f}...'.format(best_loss))\\n\",\n    \"            print('\\\\nModel is not improving, so we halt the training session.')\\n\",\n    \"            break\\n\",\n    \"    return best_loss\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Save predictions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def save_pred(preds, file):\\n\",\n    \"    ''' Save predictions to specified file '''\\n\",\n    \"    with open(file, 'w') as fp:\\n\",\n    \"        writer = csv.writer(fp)\\n\",\n    \"        writer.writerow(['id', 'tested_positive'])\\n\",\n    \"        for i, p in enumerate(preds):\\n\",\n    \"            writer.writerow([i, p])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Start training!\\n\",\n    \"\\n\",\n    \"config contains hyper-parameters for training and the path to save your model.\\n\",\n    \"\\n\",\n    \"`objective()` is used for automatic parameter tuning, but you could set `AUTO_TUNE_PARAM` `False` to avoid it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"You could set AUTO_TUNE_PARAM True to tune parameters automatically.\\n\",\n      \"AUTO_TUNE_PARAM: False\\n\",\n      \"hyper-parameter: \\n\",\n      \"        optimizer: SGD,\\n\",\n      \"        lr: 1e-05, \\n\",\n      \"        batch_size: 256, \\n\",\n      \"        k: 16, \\n\",\n      \"        layer: [16, 16]\\n\",\n      \"Saving model with loss 323.558...\\n\",\n      \"Saving model with loss 199.956...\\n\",\n      \"Saving model with loss 116.053...\\n\",\n      \"Saving model with loss 53.357...\\n\",\n      \"Saving model with loss 27.536...\\n\",\n      \"Saving model with loss 16.041...\\n\",\n      \"Saving model with loss 12.200...\\n\",\n      \"Saving model with loss 11.171...\\n\",\n      \"Saving model with loss 10.724...\\n\",\n      \"Saving model with loss 10.712...\\n\",\n      \"Saving model with loss 10.367...\\n\",\n      \"Saving model with loss 10.297...\\n\",\n      \"Saving model with loss 10.249...\\n\",\n      \"Saving model with loss 10.020...\\n\",\n      \"Saving model with loss 9.928...\\n\",\n      \"Saving model with loss 9.855...\\n\",\n      \"Saving model with loss 9.846...\\n\",\n      \"Saving model with loss 9.712...\\n\",\n      \"Saving model with loss 9.683...\\n\",\n      \"Saving model with loss 9.473...\\n\",\n      \"Saving model with loss 9.338...\\n\",\n      \"Saving model with loss 9.019...\\n\",\n      \"Saving model with loss 8.861...\\n\",\n      \"Saving model with loss 8.677...\\n\",\n      \"Saving model with loss 8.464...\\n\",\n      \"Saving model with loss 8.164...\\n\",\n      \"Saving model with loss 7.999...\\n\",\n      \"Saving model with loss 7.722...\\n\",\n      \"Saving model with loss 7.605...\\n\",\n      \"Saving model with loss 7.521...\\n\",\n      \"Saving model with loss 7.370...\\n\",\n      \"Saving model with loss 7.232...\\n\",\n      \"Saving model with loss 7.066...\\n\",\n      \"Saving model with loss 6.921...\\n\",\n      \"Saving model with loss 6.762...\\n\",\n      \"Saving model with loss 6.651...\\n\",\n      \"Saving model with loss 6.536...\\n\",\n      \"Saving model with loss 6.299...\\n\",\n      \"Saving model with loss 6.143...\\n\",\n      \"Saving model with loss 5.994...\\n\",\n      \"Saving model with loss 5.936...\\n\",\n      \"Saving model with loss 5.692...\\n\",\n      \"Saving model with loss 5.626...\\n\",\n      \"Saving model with loss 5.601...\\n\",\n      \"Saving model with loss 5.236...\\n\",\n      \"Saving model with loss 5.233...\\n\",\n      \"Saving model with loss 5.059...\\n\",\n      \"Saving model with loss 5.024...\\n\",\n      \"Saving model with loss 4.845...\\n\",\n      \"Saving model with loss 4.734...\\n\",\n      \"Saving model with loss 4.590...\\n\",\n      \"Saving model with loss 4.561...\\n\",\n      \"Saving model with loss 4.509...\\n\",\n      \"Saving model with loss 4.470...\\n\",\n      \"Saving model with loss 4.292...\\n\",\n      \"Saving model with loss 4.223...\\n\",\n      \"Saving model with loss 4.026...\\n\",\n      \"Saving model with loss 4.000...\\n\",\n      \"Saving model with loss 3.851...\\n\",\n      \"Saving model with loss 3.838...\\n\",\n      \"Saving model with loss 3.604...\\n\",\n      \"Saving model with loss 3.474...\\n\",\n      \"Saving model with loss 3.421...\\n\",\n      \"Saving model with loss 3.303...\\n\",\n      \"Saving model with loss 3.166...\\n\",\n      \"Saving model with loss 3.127...\\n\",\n      \"Saving model with loss 3.125...\\n\",\n      \"Saving model with loss 3.106...\\n\",\n      \"Saving model with loss 2.938...\\n\",\n      \"Saving model with loss 2.877...\\n\",\n      \"Saving model with loss 2.849...\\n\",\n      \"Saving model with loss 2.845...\\n\",\n      \"Saving model with loss 2.827...\\n\",\n      \"Saving model with loss 2.795...\\n\",\n      \"Saving model with loss 2.674...\\n\",\n      \"Saving model with loss 2.650...\\n\",\n      \"Saving model with loss 2.583...\\n\",\n      \"Saving model with loss 2.575...\\n\",\n      \"Saving model with loss 2.571...\\n\",\n      \"Saving model with loss 2.559...\\n\",\n      \"Saving model with loss 2.520...\\n\",\n      \"Saving model with loss 2.375...\\n\",\n      \"Saving model with loss 2.368...\\n\",\n      \"Saving model with loss 2.361...\\n\",\n      \"Saving model with loss 2.347...\\n\",\n      \"Saving model with loss 2.335...\\n\",\n      \"Saving model with loss 2.253...\\n\",\n      \"Saving model with loss 2.244...\\n\",\n      \"Saving model with loss 2.220...\\n\",\n      \"Saving model with loss 2.206...\\n\",\n      \"Saving model with loss 2.141...\\n\",\n      \"Saving model with loss 2.102...\\n\",\n      \"Saving model with loss 2.077...\\n\",\n      \"Saving model with loss 2.036...\\n\",\n      \"Saving model with loss 2.027...\\n\",\n      \"Saving model with loss 1.961...\\n\",\n      \"Saving model with loss 1.892...\\n\",\n      \"Saving model with loss 1.882...\\n\",\n      \"Saving model with loss 1.853...\\n\",\n      \"Saving model with loss 1.818...\\n\",\n      \"Saving model with loss 1.756...\\n\",\n      \"Saving model with loss 1.701...\\n\",\n      \"Saving model with loss 1.682...\\n\",\n      \"Saving model with loss 1.676...\\n\",\n      \"Saving model with loss 1.647...\\n\",\n      \"Saving model with loss 1.635...\\n\",\n      \"Saving model with loss 1.614...\\n\",\n      \"Saving model with loss 1.599...\\n\",\n      \"Saving model with loss 1.588...\\n\",\n      \"Saving model with loss 1.570...\\n\",\n      \"Saving model with loss 1.564...\\n\",\n      \"Saving model with loss 1.561...\\n\",\n      \"Saving model with loss 1.556...\\n\",\n      \"Saving model with loss 1.531...\\n\",\n      \"Saving model with loss 1.482...\\n\",\n      \"Saving model with loss 1.439...\\n\",\n      \"Saving model with loss 1.396...\\n\",\n      \"Saving model with loss 1.393...\\n\",\n      \"Saving model with loss 1.358...\\n\",\n      \"Saving model with loss 1.326...\\n\",\n      \"Saving model with loss 1.299...\\n\",\n      \"Saving model with loss 1.290...\\n\",\n      \"Saving model with loss 1.272...\\n\",\n      \"Saving model with loss 1.265...\\n\",\n      \"Saving model with loss 1.240...\\n\",\n      \"Saving model with loss 1.231...\\n\",\n      \"Saving model with loss 1.220...\\n\",\n      \"Saving model with loss 1.195...\\n\",\n      \"Saving model with loss 1.179...\\n\",\n      \"Saving model with loss 1.176...\\n\",\n      \"Saving model with loss 1.159...\\n\",\n      \"Saving model with loss 1.157...\\n\",\n      \"Saving model with loss 1.142...\\n\",\n      \"Saving model with loss 1.139...\\n\",\n      \"Saving model with loss 1.139...\\n\",\n      \"Saving model with loss 1.128...\\n\",\n      \"Saving model with loss 1.116...\\n\",\n      \"Saving model with loss 1.093...\\n\",\n      \"Saving model with loss 1.090...\\n\",\n      \"Saving model with loss 1.077...\\n\",\n      \"Saving model with loss 1.076...\\n\",\n      \"Saving model with loss 1.070...\\n\",\n      \"Saving model with loss 1.066...\\n\",\n      \"Saving model with loss 1.065...\\n\",\n      \"Saving model with loss 1.055...\\n\",\n      \"Saving model with loss 1.054...\\n\",\n      \"Saving model with loss 1.042...\\n\",\n      \"Saving model with loss 1.019...\\n\",\n      \"Saving model with loss 1.014...\\n\",\n      \"Saving model with loss 1.004...\\n\",\n      \"Saving model with loss 0.996...\\n\",\n      \"Saving model with loss 0.976...\\n\",\n      \"Saving model with loss 0.966...\\n\",\n      \"Saving model with loss 0.966...\\n\",\n      \"Saving model with loss 0.965...\\n\",\n      \"Saving model with loss 0.964...\\n\",\n      \"Saving model with loss 0.961...\\n\",\n      \"Saving model with loss 0.956...\\n\",\n      \"Saving model with loss 0.941...\\n\",\n      \"Saving model with loss 0.931...\\n\",\n      \"Saving model with loss 0.921...\\n\",\n      \"Saving model with loss 0.920...\\n\",\n      \"Saving model with loss 0.910...\\n\",\n      \"Saving model with loss 0.905...\\n\",\n      \"Saving model with loss 0.901...\\n\",\n      \"Saving model with loss 0.892...\\n\",\n      \"Saving model with loss 0.884...\\n\",\n      \"Saving model with loss 0.876...\\n\",\n      \"Saving model with loss 0.872...\\n\",\n      \"Saving model with loss 0.834...\\n\",\n      \"Best loss 0.834...\\n\",\n      \"\\n\",\n      \"Model is not improving, so we halt the training session.\\n\",\n      \"valid_scores: [0.8343698779741923]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|███████████████████████████████████████████| 4/4 [00:00<00:00, 2854.24it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"device = 'cuda' if torch.cuda.is_available() else 'cpu'\\n\",\n    \"\\n\",\n    \"config = {\\n\",\n    \"    'seed': 5201314,      # Your seed number, you can pick your lucky number. :)\\n\",\n    \"    'k': 16,              # Select k features\\n\",\n    \"    'layer': [16, 16],\\n\",\n    \"    'optim': 'SGD',\\n\",\n    \"    'momentum': 0.7,\\n\",\n    \"    'valid_ratio': 0.2,   # validation_size = train_size * valid_ratio\\n\",\n    \"    'n_epochs': 10000,    # Number of epochs.\\n\",\n    \"    'batch_size': 256,\\n\",\n    \"    'learning_rate': 1e-5,\\n\",\n    \"    'weight_decay': 1e-5,\\n\",\n    \"    'early_stop': 600,        # If model has not improved for this many consecutive epochs, stop training.\\n\",\n    \"    'save_path': './models/model.ckpt',  # Your model will be saved here.\\n\",\n    \"    'no_select_all': True,    # Whether to use all features.\\n\",\n    \"    'no_momentum': True,      # Whether to use momentum\\n\",\n    \"    'no_normal': True,        # Whether to normalize data\\n\",\n    \"    'no_k_cross': False,      # Whether to use K-fold cross validation\\n\",\n    \"    'no_save': False,         # Whether to save model parameters\\n\",\n    \"    'no_tensorboard': False,  # Whether to write tensorboard\\n\",\n    \"} \\n\",\n    \"\\n\",\n    \"# 设置 k-fold 中的 k，这里是根据 valid_ratio 设定的\\n\",\n    \"k = int(1 / config['valid_ratio'])\\n\",\n    \"\\n\",\n    \" # Set seed for reproducibility\\n\",\n    \"same_seed(config['seed'])\\n\",\n    \"\\n\",\n    \"training_data, test_data = pd.read_csv('./covid_train.csv').values, pd.read_csv('./covid_test.csv').values\\n\",\n    \"    \\n\",\n    \"num_valid_samples = len(training_data) // k\\n\",\n    \"np.random.shuffle(training_data)\\n\",\n    \"valid_scores = []  # 记录 valid_loss\\n\",\n    \"\\n\",\n    \"def objective(trial):\\n\",\n    \"    if trial != None:\\n\",\n    \"        print('\\\\nNew trial here')\\n\",\n    \"        # 定义需要调优的超参数空间\\n\",\n    \"        config['learning_rate'] = trial.suggest_float('lr', 1e-6, 1e-3)\\n\",\n    \"        config['batch_size'] = trial.suggest_categorical('batch_size', [128])\\n\",\n    \"        config['k'] = trial.suggest_int('k_feats', 16, 32)\\n\",\n    \"        config['layer'][0] = config['k']\\n\",\n    \"    \\n\",\n    \"    # 打印所需的超参数\\n\",\n    \"    print(f'''hyper-parameter: \\n\",\n    \"        optimizer: {config['optim']},\\n\",\n    \"        lr: {config['learning_rate']}, \\n\",\n    \"        batch_size: {config['batch_size']}, \\n\",\n    \"        k: {config['k']}, \\n\",\n    \"        layer: {config['layer']}''')\\n\",\n    \"    \\n\",\n    \"    global valid_scores\\n\",\n    \"    # 每次 trial 初始化 valid_scores，可以不初始化，通过 trial * k + fold 来访问当前 trial 的 valid_score，\\n\",\n    \"    # 这样可以让 trainer() 保存 trials 中最好的模型参数，但这并不意味着该参数对应的 k-fold validation loss 最低。\\n\",\n    \"    valid_scores = []\\n\",\n    \"\\n\",\n    \"    for fold in range(k):\\n\",\n    \"        # Data split\\n\",\n    \"        valid_data = training_data[num_valid_samples * fold:\\n\",\n    \"                                num_valid_samples * (fold + 1)]\\n\",\n    \"        train_data = np.concatenate((\\n\",\n    \"            training_data[:num_valid_samples * fold],\\n\",\n    \"            training_data[num_valid_samples * (fold + 1):]))\\n\",\n    \"\\n\",\n    \"        # Normalization\\n\",\n    \"        if not config['no_normal']:\\n\",\n    \"            train_mean = np.mean(train_data[:, 35:-1], axis=0)  # 前 35 列为 one-hot vector，我并没有对他们做 normalization，可以自行设置\\n\",\n    \"            train_std = np.std(train_data[:, 35:-1], axis=0)\\n\",\n    \"            train_data[:, 35:-1] -= train_mean\\n\",\n    \"            train_data[:, 35:-1] /= train_std\\n\",\n    \"            valid_data[:, 35:-1] -= train_mean\\n\",\n    \"            valid_data[:, 35:-1] /= train_std\\n\",\n    \"            test_data[:, 35:] -= train_mean\\n\",\n    \"            test_data[:, 35:] /= train_std\\n\",\n    \"\\n\",\n    \"        x_train, x_valid, x_test, y_train, y_valid = select_feat(train_data, valid_data, test_data, config['no_select_all'])\\n\",\n    \"        \\n\",\n    \"        train_dataset, valid_dataset, test_dataset = CovidDataset(x_train, y_train), \\\\\\n\",\n    \"                                                CovidDataset(x_valid, y_valid), \\\\\\n\",\n    \"                                                CovidDataset(x_test)\\n\",\n    \"\\n\",\n    \"        # Pytorch data loader loads pytorch dataset into batches.\\n\",\n    \"        train_loader = DataLoader(train_dataset, batch_size=config['batch_size'], shuffle=True, pin_memory=True)\\n\",\n    \"        valid_loader = DataLoader(valid_dataset, batch_size=config['batch_size'], shuffle=True, pin_memory=True)\\n\",\n    \"        test_loader = DataLoader(test_dataset, batch_size=config['batch_size'], shuffle=False, pin_memory=True)\\n\",\n    \"        \\n\",\n    \"        model = My_Model(input_dim=x_train.shape[1]).to(device) # put your model and data on the same computation device.\\n\",\n    \"        valid_score = trainer(train_loader, valid_loader, model, config, device)\\n\",\n    \"        valid_scores.append(valid_score)\\n\",\n    \"        \\n\",\n    \"        if not config['no_k_cross']:\\n\",\n    \"            break\\n\",\n    \"            \\n\",\n    \"        if valid_score > 2:\\n\",\n    \"            print(f'在第{fold+1}折上欠拟合') # 提前终止，减少计算资源\\n\",\n    \"            break       \\n\",\n    \"        \\n\",\n    \"    print(f'valid_scores: {valid_scores}')\\n\",\n    \"    \\n\",\n    \"    if trial != None:\\n\",\n    \"        return np.average(valid_scores)\\n\",\n    \"    else:\\n\",\n    \"        return x_test, test_loader\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"AUTO_TUNE_PARAM = False  # Whether to tune parameters automatically\\n\",\n    \"\\n\",\n    \"if AUTO_TUNE_PARAM:\\n\",\n    \"    # 使用Optuna库进行超参数搜索\\n\",\n    \"    n_trials = 10  # 设置试验数量\\n\",\n    \"    print(f'AUTO_TUNE_PARAM: {AUTO_TUNE_PARAM}\\\\nn_trials: {n_trials}')\\n\",\n    \"    study = optuna.create_study(direction='minimize')\\n\",\n    \"    study.optimize(objective, n_trials=n_trials)\\n\",\n    \"\\n\",\n    \"    # 输出最优的超参数组合和性能指标\\n\",\n    \"    print('Best hyperparameters: {}'.format(study.best_params))\\n\",\n    \"    print('Best performance: {:.4f}'.format(study.best_value))\\n\",\n    \"else:\\n\",\n    \"    # 注意，只有非自动调参时才进行了predict，节省一下计算资源\\n\",\n    \"    print(f'You could set AUTO_TUNE_PARAM True to tune parameters automatically.\\\\nAUTO_TUNE_PARAM: {AUTO_TUNE_PARAM}')\\n\",\n    \"    x_test, test_loader = objective(None)\\n\",\n    \"    model = My_Model(input_dim=x_test.shape[1]).to(device)\\n\",\n    \"    model.load_state_dict(torch.load(config['save_path']))\\n\",\n    \"    preds = predict(test_loader, model, device)\\n\",\n    \"    save_pred(preds, 'submission.csv')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Plot learning curves with `tensorboard` (optional)\\n\",\n    \"\\n\",\n    \"`tensorboard` is a tool that allows you to visualize your training progress.\\n\",\n    \"\\n\",\n    \"If this block does not display your learning curve, please wait for few minutes, and re-run this block. It might take some time to load your logging information. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"scrolled\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"\\n\",\n       \"      <iframe id=\\\"tensorboard-frame-9fab987f7fe73d17\\\" width=\\\"100%\\\" height=\\\"800\\\" frameborder=\\\"0\\\">\\n\",\n       \"      </iframe>\\n\",\n       \"      <script>\\n\",\n       \"        (function() {\\n\",\n       \"          const frame = document.getElementById(\\\"tensorboard-frame-9fab987f7fe73d17\\\");\\n\",\n       \"          const url = new URL(\\\"/\\\", window.location);\\n\",\n       \"          const port = 6006;\\n\",\n       \"          if (port) {\\n\",\n       \"            url.port = port;\\n\",\n       \"          }\\n\",\n       \"          frame.src = url;\\n\",\n       \"        })();\\n\",\n       \"      </script>\\n\",\n       \"    \"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"%reload_ext tensorboard\\n\",\n    \"%tensorboard --logdir=./runs/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW01/HW01_Sample_Code.ipynb",
    "content": "{\"metadata\":{\"kernelspec\":{\"language\":\"python\",\"display_name\":\"Python 3\",\"name\":\"python3\"},\"language_info\":{\"pygments_lexer\":\"ipython3\",\"nbconvert_exporter\":\"python\",\"version\":\"3.6.4\",\"file_extension\":\".py\",\"codemirror_mode\":{\"name\":\"ipython\",\"version\":3},\"name\":\"python\",\"mimetype\":\"text/x-python\"}},\"nbformat_minor\":4,\"nbformat\":4,\"cells\":[{\"cell_type\":\"markdown\",\"source\":\"# **Homework 1: COVID-19 Cases Prediction (Regression)**\",\"metadata\":{\"id\":\"guE34D3Fj2R9\"}},{\"cell_type\":\"markdown\",\"source\":\"Objectives:\\n* Solve a regression problem with deep neural networks (DNN).\\n* Understand basic DNN training tips.\\n* Familiarize yourself with PyTorch.\\n\\nIf you have any questions, please contact the TAs via TA hours, NTU COOL, or email to mlta-2023-spring@googlegroups.com\",\"metadata\":{\"id\":\"V57zhcTp1Xxb\"}},{\"cell_type\":\"code\",\"source\":\"!nvidia-smi\",\"metadata\":{\"id\":\"GUATI4ONArv_\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:30:52.741854Z\",\"iopub.execute_input\":\"2023-02-12T07:30:52.742902Z\",\"iopub.status.idle\":\"2023-02-12T07:30:53.95358Z\",\"shell.execute_reply.started\":\"2023-02-12T07:30:52.742777Z\",\"shell.execute_reply\":\"2023-02-12T07:30:53.95213Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Download data\\nIf the Google Drive links below do not work, you can use the dropbox link below or download data from [Kaggle](https://www.kaggle.com/t/a339b77fa5214978bfb8dde62d3151fe), and upload data manually to the workspace.\",\"metadata\":{\"id\":\"Tm2aXcb-j9Fc\"}},{\"cell_type\":\"code\",\"source\":\"# google drive link\\n# !pip install gdown\\n# !gdown --id '1BjXalPZxq9mybPKNjF3h5L3NcF7XKTS-' --output covid_train.csv\\n# !gdown --id '1B55t74Jg2E5FCsKCsUEkPKIuqaY7UIi1' --output covid_test.csv\\n\\n# dropbox link\\n!wget -O covid_train.csv https://www.dropbox.com/s/lmy1riadzoy0ahw/covid.train.csv?dl=0\\n!wget -O covid_test.csv https://www.dropbox.com/s/zalbw42lu4nmhr2/covid.test.csv?dl=0\",\"metadata\":{\"id\":\"YPmfl-awlKZA\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:30:53.956273Z\",\"iopub.execute_input\":\"2023-02-12T07:30:53.956956Z\",\"iopub.status.idle\":\"2023-02-12T07:31:15.495174Z\",\"shell.execute_reply.started\":\"2023-02-12T07:30:53.956913Z\",\"shell.execute_reply\":\"2023-02-12T07:31:15.493786Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Import packages\",\"metadata\":{\"id\":\"igqIMEgu64-F\"}},{\"cell_type\":\"code\",\"source\":\"# Numerical Operations\\nimport math\\nimport numpy as np\\n\\n# Reading/Writing Data\\nimport pandas as pd\\nimport os\\nimport csv\\n\\n# For Progress Bar\\nfrom tqdm import tqdm\\n\\n# Pytorch\\nimport torch \\nimport torch.nn as nn\\nfrom torch.utils.data import Dataset, DataLoader, random_split\\n\\n# For plotting learning curve\\nfrom torch.utils.tensorboard import SummaryWriter\",\"metadata\":{\"id\":\"xybQNYCXYu13\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:16.478205Z\",\"iopub.execute_input\":\"2023-02-12T07:31:16.478628Z\",\"iopub.status.idle\":\"2023-02-12T07:31:18.240062Z\",\"shell.execute_reply.started\":\"2023-02-12T07:31:16.478584Z\",\"shell.execute_reply\":\"2023-02-12T07:31:18.239091Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Some Utility Functions\\n\\nYou do not need to modify this part.\",\"metadata\":{\"id\":\"fTAVqRfc2KK3\"}},{\"cell_type\":\"code\",\"source\":\"def same_seed(seed): \\n    '''Fixes random number generator seeds for reproducibility.'''\\n    torch.backends.cudnn.deterministic = True\\n    torch.backends.cudnn.benchmark = False\\n    np.random.seed(seed)\\n    torch.manual_seed(seed)\\n    if torch.cuda.is_available():\\n        torch.cuda.manual_seed_all(seed)\\n\\ndef train_valid_split(data_set, valid_ratio, seed):\\n    '''Split provided training data into training set and validation set'''\\n    valid_set_size = int(valid_ratio * len(data_set)) \\n    train_set_size = len(data_set) - valid_set_size\\n    train_set, valid_set = random_split(data_set, [train_set_size, valid_set_size], generator=torch.Generator().manual_seed(seed))\\n    return np.array(train_set), np.array(valid_set)\\n\\ndef predict(test_loader, model, device):\\n    model.eval() # Set your model to evaluation mode.\\n    preds = []\\n    for x in tqdm(test_loader):\\n        x = x.to(device)                        \\n        with torch.no_grad():                   \\n            pred = model(x)                     \\n            preds.append(pred.detach().cpu())   \\n    preds = torch.cat(preds, dim=0).numpy()  \\n    return preds\",\"metadata\":{\"id\":\"RbrcpfYN2I-H\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:18.241353Z\",\"iopub.execute_input\":\"2023-02-12T07:31:18.241964Z\",\"iopub.status.idle\":\"2023-02-12T07:31:18.251864Z\",\"shell.execute_reply.started\":\"2023-02-12T07:31:18.241928Z\",\"shell.execute_reply\":\"2023-02-12T07:31:18.250938Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Dataset\",\"metadata\":{\"id\":\"IqO3lTm78nNO\"}},{\"cell_type\":\"code\",\"source\":\"class COVID19Dataset(Dataset):\\n    '''\\n    x: Features.\\n    y: Targets, if none, do prediction.\\n    '''\\n    def __init__(self, x, y=None):\\n        if y is None:\\n            self.y = y\\n        else:\\n            self.y = torch.FloatTensor(y)\\n        self.x = torch.FloatTensor(x)\\n\\n    def __getitem__(self, idx):\\n        if self.y is None:\\n            return self.x[idx]\\n        else:\\n            return self.x[idx], self.y[idx]\\n\\n    def __len__(self):\\n        return len(self.x)\",\"metadata\":{\"id\":\"-mjaJM0wprMs\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:18.253412Z\",\"iopub.execute_input\":\"2023-02-12T07:31:18.254031Z\",\"iopub.status.idle\":\"2023-02-12T07:31:18.262072Z\",\"shell.execute_reply.started\":\"2023-02-12T07:31:18.253994Z\",\"shell.execute_reply\":\"2023-02-12T07:31:18.261108Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Neural Network Model\\nTry out different model architectures by modifying the class below.\",\"metadata\":{\"id\":\"m73ooU75CL_j\"}},{\"cell_type\":\"code\",\"source\":\"class My_Model(nn.Module):\\n    def __init__(self, input_dim):\\n        super(My_Model, self).__init__()\\n        # TODO: modify model's structure, be aware of dimensions. \\n        self.layers = nn.Sequential(\\n            nn.Linear(input_dim, 16),\\n            nn.ReLU(),\\n            nn.Linear(16, 8),\\n            nn.ReLU(),\\n            nn.Linear(8, 1)\\n        )\\n\\n    def forward(self, x):\\n        x = self.layers(x)\\n        x = x.squeeze(1) # (B, 1) -> (B)\\n        return x\",\"metadata\":{\"id\":\"Qn97_WvvrEkG\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:18.263546Z\",\"iopub.execute_input\":\"2023-02-12T07:31:18.263886Z\",\"iopub.status.idle\":\"2023-02-12T07:31:18.274148Z\",\"shell.execute_reply.started\":\"2023-02-12T07:31:18.263852Z\",\"shell.execute_reply\":\"2023-02-12T07:31:18.273078Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Feature Selection\\nChoose features you deem useful by modifying the function below.\",\"metadata\":{\"id\":\"x5-LKF6R8xeq\"}},{\"cell_type\":\"code\",\"source\":\"def select_feat(train_data, valid_data, test_data, select_all=True):\\n    '''Selects useful features to perform regression'''\\n    y_train, y_valid = train_data[:,-1], valid_data[:,-1]\\n    raw_x_train, raw_x_valid, raw_x_test = train_data[:,:-1], valid_data[:,:-1], test_data\\n\\n    if select_all:\\n        feat_idx = list(range(raw_x_train.shape[1]))\\n    else:\\n        feat_idx = list(range(35, raw_x_train.shape[1])) # TODO: Select suitable feature columns.\\n        \\n    return raw_x_train[:,feat_idx], raw_x_valid[:,feat_idx], raw_x_test[:,feat_idx], y_train, y_valid\",\"metadata\":{\"id\":\"0FEnKRaIIeKp\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:18.277047Z\",\"iopub.execute_input\":\"2023-02-12T07:31:18.277589Z\",\"iopub.status.idle\":\"2023-02-12T07:31:18.284837Z\",\"shell.execute_reply.started\":\"2023-02-12T07:31:18.277554Z\",\"shell.execute_reply\":\"2023-02-12T07:31:18.283918Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Training Loop\",\"metadata\":{\"id\":\"kADIPNQ2Ih5X\"}},{\"cell_type\":\"code\",\"source\":\"def trainer(train_loader, valid_loader, model, config, device):\\n\\n    criterion = nn.MSELoss(reduction='mean') # Define your loss function, do not modify this.\\n\\n    # Define your optimization algorithm. \\n    # TODO: Please check https://pytorch.org/docs/stable/optim.html to get more available algorithms.\\n    # TODO: L2 regularization (optimizer(weight decay...) or implement by your self).\\n    optimizer = torch.optim.SGD(model.parameters(), lr=config['learning_rate'], momentum=0.7) \\n    writer = SummaryWriter() # Writer of tensoboard.\\n\\n    if not os.path.isdir('./models'):\\n        os.mkdir('./models') # Create directory of saving models.\\n\\n    n_epochs, best_loss, step, early_stop_count = config['n_epochs'], math.inf, 0, 0\\n\\n    for epoch in range(n_epochs):\\n        model.train() # Set your model to train mode.\\n        loss_record = []\\n\\n        # tqdm is a package to visualize your training progress.\\n        train_pbar = tqdm(train_loader, position=0, leave=True)\\n\\n        for x, y in train_pbar:\\n            optimizer.zero_grad()               # Set gradient to zero.\\n            x, y = x.to(device), y.to(device)   # Move your data to device. \\n            pred = model(x)             \\n            loss = criterion(pred, y)\\n            loss.backward()                     # Compute gradient(backpropagation).\\n            optimizer.step()                    # Update parameters.\\n            step += 1\\n            loss_record.append(loss.detach().item())\\n            \\n            # Display current epoch number and loss on tqdm progress bar.\\n            train_pbar.set_description(f'Epoch [{epoch+1}/{n_epochs}]')\\n            train_pbar.set_postfix({'loss': loss.detach().item()})\\n\\n        mean_train_loss = sum(loss_record)/len(loss_record)\\n        writer.add_scalar('Loss/train', mean_train_loss, step)\\n\\n        model.eval() # Set your model to evaluation mode.\\n        loss_record = []\\n        for x, y in valid_loader:\\n            x, y = x.to(device), y.to(device)\\n            with torch.no_grad():\\n                pred = model(x)\\n                loss = criterion(pred, y)\\n\\n            loss_record.append(loss.item())\\n            \\n        mean_valid_loss = sum(loss_record)/len(loss_record)\\n        print(f'Epoch [{epoch+1}/{n_epochs}]: Train loss: {mean_train_loss:.4f}, Valid loss: {mean_valid_loss:.4f}')\\n        writer.add_scalar('Loss/valid', mean_valid_loss, step)\\n\\n        if mean_valid_loss < best_loss:\\n            best_loss = mean_valid_loss\\n            torch.save(model.state_dict(), config['save_path']) # Save your best model\\n            print('Saving model with loss {:.3f}...'.format(best_loss))\\n            early_stop_count = 0\\n        else: \\n            early_stop_count += 1\\n\\n        if early_stop_count >= config['early_stop']:\\n            print('\\\\nModel is not improving, so we halt the training session.')\\n            return\",\"metadata\":{\"id\":\"k4Rq8_TztAhq\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:18.286341Z\",\"iopub.execute_input\":\"2023-02-12T07:31:18.286701Z\",\"iopub.status.idle\":\"2023-02-12T07:31:18.301211Z\",\"shell.execute_reply.started\":\"2023-02-12T07:31:18.286646Z\",\"shell.execute_reply\":\"2023-02-12T07:31:18.300217Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Configurations\\n`config` contains hyper-parameters for training and the path to save your model.\",\"metadata\":{\"id\":\"0pgkOh2e9UjE\"}},{\"cell_type\":\"code\",\"source\":\"device = 'cuda' if torch.cuda.is_available() else 'cpu'\\nconfig = {\\n    'seed': 5201314,      # Your seed number, you can pick your lucky number. :)\\n    'select_all': True,   # Whether to use all features.\\n    'valid_ratio': 0.2,   # validation_size = train_size * valid_ratio\\n    'n_epochs': 5000,     # Number of epochs.            \\n    'batch_size': 256, \\n    'learning_rate': 1e-5,              \\n    'early_stop': 600,    # If model has not improved for this many consecutive epochs, stop training.     \\n    'save_path': './models/model.ckpt'  # Your model will be saved here.\\n}\",\"metadata\":{\"id\":\"QoWPUahCtoT6\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:18.304983Z\",\"iopub.execute_input\":\"2023-02-12T07:31:18.305345Z\",\"iopub.status.idle\":\"2023-02-12T07:31:18.361404Z\",\"shell.execute_reply.started\":\"2023-02-12T07:31:18.305313Z\",\"shell.execute_reply\":\"2023-02-12T07:31:18.36028Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Dataloader\\nRead data from files and set up training, validation, and testing sets. You do not need to modify this part.\",\"metadata\":{\"id\":\"lrS-aJJh9XkW\"}},{\"cell_type\":\"code\",\"source\":\"# Set seed for reproducibility\\nsame_seed(config['seed'])\\n\\n\\n# train_data size: 3009 x 89 (35 states + 18 features x 3 days) \\n# test_data size: 997 x 88 (without last day's positive rate)\\ntrain_data, test_data = pd.read_csv('./covid_train.csv').values, pd.read_csv('./covid_test.csv').values\\ntrain_data, valid_data = train_valid_split(train_data, config['valid_ratio'], config['seed'])\\n\\n# Print out the data size.\\nprint(f\\\"\\\"\\\"train_data size: {train_data.shape} \\nvalid_data size: {valid_data.shape} \\ntest_data size: {test_data.shape}\\\"\\\"\\\")\\n\\n# Select features\\nx_train, x_valid, x_test, y_train, y_valid = select_feat(train_data, valid_data, test_data, config['select_all'])\\n\\n# Print out the number of features.\\nprint(f'number of features: {x_train.shape[1]}')\\n\\ntrain_dataset, valid_dataset, test_dataset = COVID19Dataset(x_train, y_train), \\\\\\n                                            COVID19Dataset(x_valid, y_valid), \\\\\\n                                            COVID19Dataset(x_test)\\n\\n# Pytorch data loader loads pytorch dataset into batches.\\ntrain_loader = DataLoader(train_dataset, batch_size=config['batch_size'], shuffle=True, pin_memory=True)\\nvalid_loader = DataLoader(valid_dataset, batch_size=config['batch_size'], shuffle=True, pin_memory=True)\\ntest_loader = DataLoader(test_dataset, batch_size=config['batch_size'], shuffle=False, pin_memory=True)\",\"metadata\":{\"id\":\"2jc7ZfDot2t9\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:18.363178Z\",\"iopub.execute_input\":\"2023-02-12T07:31:18.363561Z\",\"iopub.status.idle\":\"2023-02-12T07:31:18.439675Z\",\"shell.execute_reply.started\":\"2023-02-12T07:31:18.363526Z\",\"shell.execute_reply\":\"2023-02-12T07:31:18.43872Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Start training!\",\"metadata\":{\"id\":\"0OBYgjCA-YwD\"}},{\"cell_type\":\"code\",\"source\":\"model = My_Model(input_dim=x_train.shape[1]).to(device) # put your model and data on the same computation device.\\ntrainer(train_loader, valid_loader, model, config, device)\",\"metadata\":{\"id\":\"YdttVRkAfu2t\",\"execution\":{\"iopub.status.busy\":\"2023-02-12T07:31:18.441083Z\",\"iopub.execute_input\":\"2023-02-12T07:31:18.441534Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Testing\\nThe predictions of your model on testing set will be stored at `pred.csv`.\",\"metadata\":{\"id\":\"yhAHGqC9-woK\"}},{\"cell_type\":\"code\",\"source\":\"def save_pred(preds, file):\\n    ''' Save predictions to specified file '''\\n    with open(file, 'w') as fp:\\n        writer = csv.writer(fp)\\n        writer.writerow(['id', 'tested_positive'])\\n        for i, p in enumerate(preds):\\n            writer.writerow([i, p])\\n\\nmodel = My_Model(input_dim=x_train.shape[1]).to(device)\\nmodel.load_state_dict(torch.load(config['save_path']))\\npreds = predict(test_loader, model, device) \\nsave_pred(preds, 'pred.csv')         \",\"metadata\":{\"id\":\"Q5eVdpbvAlAe\",\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Download\\n\\nRun this block to download the `pred.csv` by clicking.\",\"metadata\":{\"id\":\"T_N-wBvVahc7\"}},{\"cell_type\":\"code\",\"source\":\"from IPython.display import FileLink\\nFileLink(r'pred.csv')\",\"metadata\":{\"id\":\"PmMnwrHeavJv\",\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Reference\\nThis notebook uses code written by Heng-Jui Chang @ NTUEE (https://github.com/ga642381/ML2021-Spring/blob/main/HW01/HW01.ipynb)\",\"metadata\":{\"id\":\"IJ_k5rY0GvSV\"}}]}"
  },
  {
    "path": "HW01/README.md",
    "content": ">  ML2023Spring - HW01 相关信息：\n>  \n>  [课程主页](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php)\n>  \n>  [课程视频](https://www.bilibili.com/video/BV1TD4y137mP/?spm_id_from=333.337.search-card.all.click&vd_source=436107f586d66ab4fcf756c76eb96c35)\n>  \n>  [Kaggle link](https://www.kaggle.com/t/a339b77fa5214978bfb8dde62d3151fe)\n>  \n>  [Sample code](https://colab.research.google.com/drive/1BESEu-l3qrGRULoATuXnWasUNuUlVF1Z?fbclid=IwAR1FrjUsp4rTy5PPFV-aWq6IG_Z44mFT4VH5e1lIhlekFl7fAvxGRCTCyR0#scrollTo=QoWPUahCtoT6)\n>  \n>  [HW01 视频]( https://www.bilibili.com/video/BV1TD4y137mP/?p=14&share_source=copy_web&vd_source=e46571d631061853c8f9eead71bdb390) 可以在做作业之前看一部分，我摸索完才发现视频有讲 Data Feature :(\n>  \n>  [HW01 PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW01.pdf)\n>  \n>  \n>P.S. 即便 kaggle 上的时间已经截止，你仍然可以在上面提交和查看分数。但需要注意的是：在 kaggle 截止日期前你应该选择两个结果进行最后的Private评分。\n>  每年的数据集size和feature并不完全相同，但基本一致，过去的代码仍可用于新一年的 Homework\n\n# 目录\n* [任务目标（回归）](#任务目标回归)\n* [性能指标（Metric）](#性能指标metric)\n* [数据解析](#数据解析)\n   * [数据下载](#数据下载)\n* [Sample code 主体部分解析](#sample-code-主体部分解析)\n   * [Some Utility Functions](#some-utility-functions)\n   * [Dataset](#dataset)\n   * [Neural Network Model](#neural-network-model)\n   * [Feature Selection](#feature-selection)\n   * [Training Loop](#training-loop)\n* [Baselines](#baselines)\n* [参考链接](#参考链接)\n\n# 任务目标（回归）：\n\n- COVID-19 daily cases prediction: COVID-19 每天的病例预测\n- 训练/测试数据大小：3009/997（每一年的homework 可能不同）\n\n# 性能指标（Metric）\n\n- 均方误差 Mean Squared Error (MSE) \n\n# 数据解析\n\n- covid_train.txt: 训练数据\n- covid_test.txt: 测试数据\n\n数据大体分为三个部分：id, states: 病例对应的地区, 以及其他数据\n- id: sample 对应的序号。\n- states: 对 sample 来说该项为 one-hot vector。从整个数据集上来看，每个地区的 sample 数量是均匀的，可以使用`pd.read_csv('./covid_train.csv').iloc[:,1:34].sum()`来查看，地区 sample 数量为 88/89。\n- 其他数据: 这一部分最终应用在助教所给的 sample code 中的 select_feat。\n\n    - Covid-like illness (5) 新冠症状\n\n      - cli, ili ...\n\n    - Behavier indicators (5) 行为表现\n\n      - wearing_mask、travel_outside_state ... 是否戴口罩，出去旅游 ...\n\n    - Belief indicators (2) 是否相信某种行为对防疫有效\n\n      - belief_mask_effective, belief_distancing_effective. 相信戴口罩有效，相信保持距离有效。\n\n    - Mental indicator (2) 心理表现\n\n      - worried_catch_covid, worried_finance.  担心得到covid，担心经济状况\n\n    - Environmental indicators (3) 环境表现\n\n      - other_masked_public, other_distanced_public ... 周围的人是否大部分戴口罩，周围的人是否大部分保持距离 ...\n\n    - Tested Positive Cases (1) 检测阳性病例，该项为模型的预测目标\n\n      - **tested_positive (this is what we want to predict)** 单位为百分比，指有多少比例的人  \n\n## 数据下载\n\n> To use the Kaggle API, sign up for a Kaggle account at [https://www.kaggle.com](https://www.kaggle.com/). Then go to the 'Account' tab of your user profile (`https://www.kaggle.com/<username>/account`) and select 'Create API Token'. This will trigger the download of `kaggle.json`, a file containing your API credentials. Place this file in the location `~/.kaggle/kaggle.json` (on Windows in the location `C:\\Users\\<Windows-username>\\.kaggle\\kaggle.json` - you can check the exact location, sans drive, with `echo %HOMEPATH%`). You can define a shell environment variable `KAGGLE_CONFIG_DIR` to change this location to `$KAGGLE_CONFIG_DIR/kaggle.json` (on Windows it will be `%KAGGLE_CONFIG_DIR%\\kaggle.json`).\n>\n> -\\- [Official Kaggle API](https://github.com/Kaggle/kaggle-api)\n\n`gdown` 的链接总是挂，可以考虑使用 `kaggle` 的 `api`，流程非常简单，替换<username>为你自己的用户名，`https://www.kaggle.com/<username>/account`，然后点击 `Create New API Token`，将下载下来的文件放去应该放的位置：\n\n- Mac 和 Linux 放在 `~/.kaggle`\n- Windows 放在 `C:\\Users\\<Windows-username>\\.kaggle`\n\n```bash\npip install kaggle\n# 你需要先在 Kaggle -> Account -> Create New API Token 中下载 kaggle.json\n# mv kaggle.json ~/.kaggle/kaggle.json\nkaggle competitions download -c ml2023spring-hw1\nunzip ml2023spring-hw1\n```\n\n# Sample code 主体部分解析\n\n## Some Utility Functions\n\n```python\ndef same_seed(seed): \n    '''Fixes random number generator seeds for reproducibility.'''\n    # 使用确定的卷积算法 (A bool that, if True, causes cuDNN to only use deterministic convolution algorithms.)\n    torch.backends.cudnn.deterministic = True\t\n    \n    # 不对多个卷积算法进行基准测试和选择最优 (A bool that, if True, causes cuDNN to benchmark multiple convolution algorithms and select the fastest.)\n    torch.backends.cudnn.benchmark = False\t\n    \n    # 设置随机数种子\n    np.random.seed(seed)\n    torch.manual_seed(seed)\n    if torch.cuda.is_available():\n        torch.cuda.manual_seed_all(seed)\n\ndef train_valid_split(data_set, valid_ratio, seed):\n    '''Split provided training data into training set and validation set'''\n    valid_set_size = int(valid_ratio * len(data_set)) \n    train_set_size = len(data_set) - valid_set_size\n    train_set, valid_set = random_split(data_set, [train_set_size, valid_set_size], generator=torch.Generator().manual_seed(seed))\n    return np.array(train_set), np.array(valid_set)\n\ndef predict(test_loader, model, device):\n\t# 用于评估模型（验证/测试）\n    model.eval() # Set your model to evaluation mode.\n    preds = []\n    for x in tqdm(test_loader):\n    \t# device (int, optional): if specified, all parameters will be copied to that device）     \t                  \n        x = x.to(device)\t# 将数据 copy 到 device\n        with torch.no_grad():\t# 禁用梯度计算，以减少消耗                   \n            pred = model(x)                     \n            preds.append(pred.detach().cpu())   # detach() 创建一个不在计算图中的新张量，值相同\n    preds = torch.cat(preds, dim=0).numpy()  # 连接 preds \n    return preds\n```\n\n## Dataset\n\n```python\nclass COVID19Dataset(Dataset):\n    '''\n    x: Features.\n    y: Targets, if none, do prediction.\n    '''\n    def __init__(self, x, y=None):\n        if y is None:\n            self.y = y\n        else:\n            self.y = torch.FloatTensor(y)\n        self.x = torch.FloatTensor(x)\n\n\t'''meth:`__getitem__`, supporting fetching a data sample for a given key.'''\n    def __getitem__(self, idx):\t# 自定义 dataset 的 idx 对应的 sample\n        if self.y is None:\n            return self.x[idx]\n        else:\n            return self.x[idx], self.y[idx]\n\n    def __len__(self):\n        return len(self.x)\n```\n\n\\_\\_getitem\\_\\_()实际应用于 dataloader 中，详细可见下图（图源自 [PyTorch Tutorial PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/environment.pdf)）\n\n![源自 Pytorch PDF](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230314135050.png)\n\n## Neural Network Model\n\n这部分我做了简单的修改，以便于后续调参\n\n```python\nclass My_Model(nn.Module):\n    def __init__(self, input_dim):\n        super(My_Model, self).__init__()\n        # TODO: modify model's structure in hyper-parameter: 'config', be aware of dimensions.\n        self.layers = nn.Sequential(\n            nn.Linear(input_dim, config['layer'][0]),\n            nn.ReLU(),\n            nn.Linear(config['layer'][0], config['layer'][1]),\n            nn.ReLU(),\n            nn.Linear(config['layer'][1], 1)\n        )\n\n    def forward(self, x):\n        x = self.layers(x)\n        x = x.squeeze(1) # (B, 1) -> (B)\n        return x\n```\n\n## Feature Selection\n\n这部分可以使用 sklearn.feature_selection.SelectKBest 来进行特征选择。\n具体代码如下（你可能需要传入 config）：\n\n```python\nfrom sklearn.feature_selection import SelectKBest, f_regression\n\nk = config['k']\t# 所要选择的特征数量\nselector = SelectKBest(score_func=f_regression, k=k)\nresult = selector.fit(train_data[:, :-1], train_data[:,-1])\nidx = np.argsort(result.scores_)[::-1]\nfeat_idx = list(np.sort(idx[:k]))\n```\n\n## Training Loop\n\n```python\ndef trainer(train_loader, valid_loader, model, config, device):\n\n    criterion = nn.MSELoss(reduction='mean') # Define your loss function, do not modify this.\n\n    # Define your optimization algorithm. \n    # TODO: Please check https://pytorch.org/docs/stable/optim.html to get more available algorithms.\n    # TODO: L2 regularization (optimizer(weight decay...) or implement by your self).\n    optimizer = torch.optim.SGD(model.parameters(), lr=config['learning_rate'], momentum=config['momentum']) \t# 设置 optimizer 为SGD\n    writer = SummaryWriter() # Writer of tensoboard.\n\n    if not os.path.isdir('./models'):\n        os.mkdir('./models') # Create directory of saving models.\n\n    n_epochs, best_loss, step, early_stop_count = config['n_epochs'], math.inf, 0, 0\n\n    for epoch in range(n_epochs):\n        model.train() # Set your model to train mode.\n        loss_record = []\t# 初始化空列表，用于记录训练误差\n\n        # tqdm is a package to visualize your training progress.\n        train_pbar = tqdm(train_loader, position=0, leave=True)\t# 让训练进度显示出来，可以去除这一行，然后将下面的 train_pbar 改成 train_loader（目的是尽量减少 jupyter notebook 的打印，因为如果这段代码在 kaggle 执行，在一定的输出后会报错: IOPub message rate exceeded...）\n\n        for x, y in train_pbar:\n            optimizer.zero_grad()               # Set gradient to zero.\n            x, y = x.to(device), y.to(device)   # Move your data to device. \n            pred = model(x)\t# 等价于 model.forward(x)             \n            loss = criterion(pred, y)\t# 计算 pred 和 y 的均方误差\n            loss.backward()                     # Compute gradient(backpropagation).\n            optimizer.step()                    # Update parameters.\n            step += 1\n            loss_record.append(loss.detach().item())\n            \n            # Display current epoch number and loss on tqdm progress bar.\n            train_pbar.set_description(f'Epoch [{epoch+1}/{n_epochs}]')\n            train_pbar.set_postfix({'loss': loss.detach().item()})\n\n        mean_train_loss = sum(loss_record)/len(loss_record)\n        writer.add_scalar('Loss/train', mean_train_loss, step)\n\n        model.eval() # Set your model to evaluation mode.\n        loss_record = []\t# 初始化空列表，用于记录验证误差\n        for x, y in valid_loader:\n            x, y = x.to(device), y.to(device)\n            with torch.no_grad():\n                pred = model(x)\n                loss = criterion(pred, y)\n\n            loss_record.append(loss.item())\n            \n        mean_valid_loss = sum(loss_record)/len(loss_record)\n        print(f'Epoch [{epoch+1}/{n_epochs}]: Train loss: {mean_train_loss:.4f}, Valid loss: {mean_valid_loss:.4f}')\n        # writer.add_scalar('Loss/valid', mean_valid_loss, step)\n\n        if mean_valid_loss < best_loss:\n            best_loss = mean_valid_loss\n            torch.save(model.state_dict(), config['save_path']) # Save your best model\n            print('Saving model with loss {:.3f}...'.format(best_loss))\n            early_stop_count = 0\n        else: \n            early_stop_count += 1\n\n        if early_stop_count >= config['early_stop']:\n            print('\\nModel is not improving, so we halt the training session.')\n            return\n```\n\n# Baselines\n\n根据作业 PDF 中的提示：\n\n- Simple Baseline (1.96993)\n  - 运行所给的 sample code。\n- Medium Baseline (1.15678)\n  - 特征选择，简单手动的选择你认为关联性较大的特征。\n- Strong Baseline (0.92619)\n  - 尝试不同的优化器（如：Adam）。\n  - 应用 L2 正则化（SGD/Adam ... 优化器参数中的 weight_decay)\n- Boss Baseline (0.81456)\n  - 尝试更好的特征选择，可以使用 sklearn.feature_selection.SelectKBest。\n  - 尝试不同的模型架构（调整 my_module.layers）\n  - 调整其他超参数\n\n\n# 参考链接\n\n1. [PyTorch: What is the difference between tensor.cuda() and tensor.to(torch.device(\"cuda:0\"))?](https://stackoverflow.com/questions/62907815/pytorch-what-is-the-difference-between-tensor-cuda-and-tensor-totorch-device)\n1. [PyTorch Tutorial PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/environment.pdf)\n\n\n\n\n"
  },
  {
    "path": "HW01/covid_test.csv",
    "content": "id,AL,AZ,CA,CO,CT,FL,GA,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MO,NJ,NM,NY,NC,OH,OK,OR,PA,SC,TN,TX,VA,WA,WV,WI,cli,ili,wnohh_cmnty_cli,wbelief_masking_effective,wbelief_distancing_effective,wcovid_vaccinated_friends,wlarge_event_indoors,wothers_masked_public,wothers_distanced_public,wshop_indoors,wrestaurant_indoors,wworried_catch_covid,hh_cmnty_cli,nohh_cmnty_cli,wearing_mask_7d,public_transit,worried_finances,tested_positive,cli,ili,wnohh_cmnty_cli,wbelief_masking_effective,wbelief_distancing_effective,wcovid_vaccinated_friends,wlarge_event_indoors,wothers_masked_public,wothers_distanced_public,wshop_indoors,wrestaurant_indoors,wworried_catch_covid,hh_cmnty_cli,nohh_cmnty_cli,wearing_mask_7d,public_transit,worried_finances,tested_positive,cli,ili,wnohh_cmnty_cli,wbelief_masking_effective,wbelief_distancing_effective,wcovid_vaccinated_friends,wlarge_event_indoors,wothers_masked_public,wothers_distanced_public,wshop_indoors,wrestaurant_indoors,wworried_catch_covid,hh_cmnty_cli,nohh_cmnty_cli,wearing_mask_7d,public_transit,worried_finances\r\n0,0,0,0,0,0,1,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,0,3.9690547,4.130866,37.2243633,69.8478104,70.0352644,64.206961,19.1318748,15.3039018,16.2098267,63.0115303,33.0415786,55.1510544,42.9995241,36.7495251,66.3024066,3.5333502,38.0714471,32.4166936,3.9091947,4.0707294,36.9637811,70.1018761,70.082822,64.5951011,18.9852992,15.3576223,15.6929072,63.1746842,33.5448138,54.7948034,42.7641542,36.4228096,66.2837393,3.5853762,38.251316,32.5349091,3.7307705,3.8633917,36.2192076,70.390686,69.9771106,65.3104956,19.2626976,16.1878122,15.9964157,63.2084783,34.0343968,54.7875396,42.1427377,35.7539418,66.4593328,3.549976,37.5616786\r\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7069093,0.7705023,9.3217139,75.6557327,77.3537311,78.4044207,22.7018867,37.7465596,19.8549681,64.7505374,36.8559581,49.8985516,13.5435822,9.913807,69.3910534,8.7787735,33.0683198,7.5000925,0.8036554,0.8602583,8.5496015,76.3057364,77.7638296,78.5277903,22.6426134,37.650373,19.0436557,64.0761128,36.0891836,50.3435518,13.1013614,9.1779731,68.8283282,8.7049067,33.3171986,5.9596909,0.8986378,0.9548272,8.5014195,76.4062678,77.9180173,80.0156031,22.001812,35.5072821,17.6860269,62.8877799,35.3003156,49.6247856,12.6684968,8.9028152,68.0355551,8.3490795,33.9217549\r\n2,0,0,0,0,0,0,1,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,1.8312236,1.8687386,21.6272137,61.9902197,62.8470724,58.1409731,23.4132457,16.5441233,16.2605066,63.7118839,35.1840719,43.932908,27.028092,21.5403329,62.9625854,3.1891266,36.7630064,26.7487011,1.7936386,1.8270157,20.5245756,61.4396585,62.4201787,57.9336613,24.462745,16.4338137,14.5814641,65.8985869,35.9676121,43.1742946,26.0037618,20.6592543,62.6688133,3.4759063,37.3178909,26.2261227,1.6329167,1.6458346,19.2945134,61.6349735,62.9493166,59.0195119,24.6243578,16.9888139,15.5530802,66.3141315,36.798828,43.2248762,24.2780891,19.41973,62.169775,3.6094188,36.6571176\r\n3,0,0,0,1,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,0,0,0,2.0994025,2.2299685,25.0531785,64.4619606,66.0389249,67.9488189,20.2330125,33.3784969,14.7205108,62.3573148,35.0107025,48.3674672,31.8535963,26.4571913,71.482247,4.8969598,33.5087813,29.3858543,1.981241,2.0857089,23.9032588,64.8647463,66.4704994,69.189568,20.4628029,33.6784696,15.1071155,62.4666016,34.3741094,47.8004619,30.6781044,25.3365437,70.9141157,4.5158908,33.9775195,27.4896545,1.9423829,2.0303828,23.0970714,64.7315625,67.0759539,69.2990594,20.8955541,33.6648794,15.3029498,63.4396155,35.7687403,46.5450166,29.6194715,24.4954023,70.1371554,4.600004,34.2105359\r\n4,0,0,0,0,0,0,0,0,1,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,4.7862862,4.9396485,43.2585536,64.1439802,65.180658,56.4668613,20.4135995,10.9345086,15.1738169,57.5160712,31.0840655,49.8887641,50.8893673,44.0741201,61.3398095,2.1845135,39.2714923,39.5135659,4.8679791,5.0203169,43.1768875,64.0661761,64.5051093,56.0275651,20.1650781,11.7739467,14.7085221,56.4335576,31.3228753,49.5847036,50.7244575,44.0832928,61.8635211,2.23083,39.8340716,40.0075432,4.7338484,4.8533622,42.4865027,64.8925462,65.3406127,56.3186138,20.2855855,11.8933324,15.0432377,55.8660333,30.8002473,50.3501156,50.1613831,43.3803652,62.2271352,2.1889329,40.2539167\r\n5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.1586184,1.1830725,12.1450788,78.487769,77.0241969,72.0937696,20.4838208,25.5989121,21.7650692,64.8557271,31.6776987,51.794141,17.0240389,12.856648,64.8617558,13.9296969,40.0462906,7.0486808,1.1504495,1.1792932,11.8444749,78.2492715,77.2240068,72.7318233,20.8242286,26.1304274,21.9026727,65.568317,31.7794119,50.9092894,16.7281352,12.5482949,64.4291115,14.0791326,40.267105,6.8730318,1.1084697,1.1557066,11.9700219,78.9459094,77.778242,73.0044059,21.4085311,26.8102598,22.248963,65.5398396,32.4932471,51.1020669,16.2942939,12.1399895,64.4220507,14.5642184,39.541182\r\n6,0,0,0,0,0,0,0,1,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,1.2257745,1.2623141,11.4854046,67.7517102,69.9123342,66.3092184,29.9144692,10.1375319,14.7276227,66.8335115,41.8449089,41.5908017,16.4875555,11.4306726,43.2222443,8.4392389,37.2140966,7.1994848,1.288411,1.354123,12.0501622,68.5499073,70.0197074,66.4574112,29.5836553,9.933846,14.9227766,66.3632637,41.3007296,41.6938784,16.8829733,11.6076984,43.0313234,8.5913243,36.3366846,7.8808111,1.4340257,1.5210185,11.9335997,68.7411015,69.6182249,67.8172982,29.6949687,9.8146463,15.2842478,66.7717674,41.2872428,41.5668026,17.1355236,11.6529801,42.9436428,8.8011245,36.2511366\r\n7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9584623,1.9341255,20.4767874,69.8914564,70.7639488,65.6234212,27.8024061,8.6956488,16.8172867,68.535263,41.4848319,40.302768,25.4406531,20.3272161,48.4352483,5.2125215,30.4860396,21.4475821,1.9041905,1.8787174,20.9131436,70.8680302,71.3778263,66.9787137,27.1485767,8.7041124,17.0856627,68.4004981,40.6451282,39.9178404,24.9825392,20.2450164,48.8241528,5.0884465,30.2323066,20.3986324,2.0078301,1.9719355,21.0585212,69.6925065,70.8429439,66.7114394,25.9402477,8.3107704,17.4734281,66.9054464,39.2187152,40.0125485,25.1693459,20.4313338,48.8773472,5.2879349,29.4931326\r\n8,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,0,0,1,0,0,0,0,1.4503124,1.4469932,12.1940907,70.2046536,71.1110239,62.1998924,31.3312098,15.6722705,16.020528,67.434197,41.1476224,45.8235489,17.1070932,11.4490126,55.3044673,4.5351866,40.8292207,10.2240035,1.4610269,1.4706204,12.4572998,69.9001554,70.4524457,61.5633365,31.2670078,15.6349367,15.9596917,66.5627131,40.2860482,45.9978064,17.3225921,11.4821857,55.1067652,4.3708123,40.9116553,10.6032357,1.379152,1.3880471,12.2811173,70.4465048,71.1385817,62.3842791,30.5732407,15.5543099,16.1352268,65.4014022,39.3250076,46.766944,17.3732934,11.3824768,55.3634915,4.2237964,40.5696999\r\n9,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,1,0,0,0,0,0,0,0,0,1.3070414,1.2679294,15.8901465,70.1254456,72.7589955,65.6998054,22.0231866,60.7722982,29.1226486,68.4615655,34.1183626,44.9603679,20.1034442,15.9760137,83.3618203,5.2104661,33.1442231,10.2786275,1.2122374,1.1724852,15.2620047,71.4823041,73.6293577,66.6974098,21.3017385,61.6699044,29.441245,68.2082794,34.3861187,45.437599,19.654698,15.4310429,83.4799246,5.1834526,33.3411243,10.2786669,1.1592772,1.1561772,15.0699299,71.6347016,73.8979858,65.681791,21.1225425,61.6060201,29.4238108,67.9459212,34.7058134,45.4248823,18.8295288,14.8131599,83.4679335,4.8942844,33.727603\r\n10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.4752737,1.5078345,15.0776342,61.0729186,64.5017329,47.5327536,30.417921,7.2850271,15.6259566,67.1236971,42.3482126,37.2471249,20.2454175,14.8145014,46.5980604,3.8609004,40.3283216,16.025689,1.4856423,1.4656136,15.513721,61.0093082,65.3667861,47.7218711,30.6896877,7.4301315,16.1027318,67.6837897,42.3568526,37.4695761,20.8461066,15.4043386,45.8980858,3.6976821,40.0858009,16.2222355,1.5828003,1.6034023,15.3607632,60.2655819,64.6453433,48.4909141,30.9973894,6.2468741,15.1534167,67.1345675,41.7527536,37.9534977,20.8883942,15.5058599,45.4978498,3.6215894,39.9376568\r\n11,0,0,1,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,0,0,0,0,2.3573075,2.4675659,23.7189895,82.427726,80.9194784,76.6268764,19.0416657,60.4386661,27.4760143,57.431888,27.6988787,62.1939443,29.0626226,23.2724207,85.7271997,5.0201583,36.5540081,12.5397908,2.5060265,2.6190449,25.1646,82.5521039,81.1530176,76.5981712,17.8678308,60.5506849,27.5855002,57.474486,27.7121755,63.5767056,30.6590671,24.5679961,85.9674196,5.021432,36.694185,14.3175288,2.733469,2.8714587,26.5830165,81.854831,80.5819088,76.0127871,17.012218,60.6180893,27.3158731,57.3206043,27.5153061,63.6217536,32.0242788,25.8326472,86.016582,4.9503676,36.6288271\r\n12,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.6606479,2.6508076,22.8573543,58.3785078,60.0980855,57.4947999,24.7393184,10.909404,14.9486484,62.8315764,36.7155952,43.142349,31.1060558,24.6357301,58.4883466,3.1933086,38.8472359,29.551943,2.2879258,2.2780648,21.5075811,61.9146053,61.885208,59.088405,24.8413343,10.845767,15.7082224,62.0445742,36.0911679,46.1089358,29.4213046,22.9512336,58.0685844,3.1194258,38.8038519,27.8549102,2.3255394,2.3068376,20.4640398,60.6258227,60.3963609,56.6240284,25.6921219,9.2337764,15.4627118,62.396087,36.2399738,47.6419764,28.4168728,21.6954726,56.9352515,3.2315251,39.5909437\r\n13,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,1,0,0,0,0,0,0,1.3680865,1.4798126,13.9155082,66.176191,67.6490543,56.932334,29.0157229,9.4701317,17.0680247,70.6353762,40.9622466,36.9452191,19.8077747,14.304577,54.8970496,3.4251876,36.983648,8.2524192,1.3178936,1.4305407,14.0875552,64.8195885,66.5797612,57.1297089,29.8203575,10.1274262,17.3621135,71.4164997,41.8527064,37.6571378,19.6780356,13.9962181,54.0345054,3.3423601,36.1660224,8.576049,1.2444287,1.3239977,14.4410675,66.3056801,67.5519435,56.8259403,29.5056245,10.5174803,17.2067871,71.387702,40.384258,36.5179267,19.1204979,13.9287144,53.9160579,3.2008056,36.804988\r\n14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4658653,1.4682008,17.7223858,64.5713935,67.7202195,55.8557353,29.7218247,10.7433668,17.6538088,70.5124332,42.2876693,37.0808656,21.2276325,16.154416,50.565438,3.2127255,37.4229263,16.0710332,1.7683159,1.7705963,17.7113086,63.4972881,67.7219503,54.8297212,30.32249,10.9867476,17.9754926,69.0085868,41.0009199,37.4635559,21.3917445,16.4171484,50.1151125,3.1376569,36.5031004,16.2105512,1.6969351,1.6969351,18.4275404,63.9804993,67.8066437,54.7973228,30.8642932,10.8588372,17.1050983,68.5592893,40.7489412,38.4756551,21.8671999,17.2384797,49.7890074,3.1434458,37.0255165\r\n15,0,1,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,0,0,0,0,0,1.9699391,2.010117,23.9128283,67.7277814,67.0982743,63.9153836,23.8865343,15.0569878,15.7999546,63.3261335,36.5907986,50.2959526,30.2917048,24.9404928,63.7085091,3.8568914,31.4735829,25.1506303,1.9615429,2.0023925,22.4770676,67.8569945,68.2418485,64.6336945,24.3021307,14.9675487,14.9142446,63.5937521,36.4461112,50.6277693,28.6467892,23.6031182,63.4694485,3.8989956,30.7445571,24.1331338,2.0349113,2.0818512,21.8532986,68.3060088,68.0954513,63.9651297,23.7638799,14.8035177,14.8107985,63.4218128,35.9338464,50.4896676,27.6974405,22.6738202,63.5618706,4.0122891,30.6506632\r\n16,0,0,0,0,0,0,0,0,1,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,4.8872109,5.0024636,43.8791338,64.4067322,64.8132394,56.6095666,19.0451782,9.4638089,16.8953302,57.5612913,29.1541441,50.3782264,51.2864759,44.3787372,60.0730489,2.2530059,38.7740057,38.6889283,4.9798346,5.1034057,43.6480292,63.7440313,64.1477748,56.4969156,19.6537904,10.3679238,16.2234924,57.5576684,30.3174114,50.2351102,51.2413948,44.2710162,60.4549913,2.0597853,38.7642715,39.0416695,4.9877458,5.1396429,43.9110576,64.0425971,65.1218666,56.4999934,19.9970268,10.3927489,15.30456,56.8587891,30.9071595,49.7203248,51.3061457,44.3320532,60.5423503,2.1024144,39.3888752\r\n17,0,0,0,1,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,0,0,0,1.2843434,1.3430048,13.4554898,67.1535402,69.1439849,70.617993,26.5425194,8.0052664,15.1041526,69.8865442,44.2962632,39.4029237,17.0299483,11.9325488,47.0553005,7.2750695,33.0800242,12.755102,1.3002163,1.3593999,12.7104727,65.9129417,69.0018509,71.9268029,28.3549628,8.5969578,15.8396501,69.7993813,45.0942104,39.6004444,16.690829,11.7280579,45.2789113,7.4890678,33.2151291,13.7630662,1.0845181,1.1418689,12.7267946,66.8177514,69.5240354,72.2458006,29.3249022,8.3213404,15.8592733,69.3658114,45.0847404,37.5844494,16.712629,12.0086672,44.3548133,7.7186572,34.4193831\r\n18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.7611913,2.8903148,35.462062,68.2033785,68.2382837,62.5128413,18.7175712,17.1510129,20.0371585,58.8727102,28.2733443,51.6016268,41.0257158,35.580715,65.7863017,2.4022897,34.6859822,33.2191956,2.6698685,2.7891897,34.0710488,68.3702051,68.5312631,62.1618487,19.5213711,16.7217601,19.8469582,58.8771585,28.7027562,51.3142064,39.8026717,34.4421333,65.6967235,2.4872391,34.5251943,32.0924118,2.7063969,2.8180319,33.8392076,67.8836276,67.9643532,62.1413371,19.6746262,15.4678417,19.5292177,59.8128709,29.5935422,50.9934473,39.3441003,33.9445982,65.1706145,2.6271024,35.2423609\r\n19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.4086075,1.4391589,19.3705084,64.3785806,67.667374,53.473909,27.2676498,8.7336061,16.6828509,68.9853832,39.7904529,45.0340654,24.4118385,19.8673968,54.0035888,3.3098335,38.7499954,15.0793747,1.4902229,1.4837845,19.3766657,63.9175115,66.9571971,53.268477,26.7503232,8.6192525,17.0665273,67.097296,39.4373165,44.4208849,24.319197,19.8603419,53.6940664,3.5976228,39.5761156,14.4950956,1.4838983,1.4774059,19.6523233,63.2180689,66.3660195,52.829346,27.9799893,7.7579643,16.0902494,67.4289024,41.0987877,44.8255904,24.0299693,19.6983921,52.1276399,3.8003404,40.5841278\r\n20,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.9469086,4.0362933,34.9732266,65.8199231,69.4558564,61.3995474,23.0585189,10.8121678,17.3598326,61.6414232,31.5426073,51.1777654,41.7571301,34.9422802,56.5040803,2.3940853,41.4907511,22.0939044,3.8918343,3.9718954,36.201715,64.9353495,69.0844554,61.2686504,22.4736133,10.6457997,17.1448538,61.4547145,30.9894709,50.8211589,42.7768726,36.3086717,57.9428232,2.2523992,41.452745,23.2924245,4.0192006,4.0723195,37.0420397,65.3612216,70.6984478,60.7359267,21.5791458,11.140685,17.9283528,61.4315585,30.2062398,52.2144557,43.4259931,37.0968494,58.3569203,2.0127572,41.3194158\r\n21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9362744,1.972163,25.1666287,75.067078,73.4165108,66.246455,26.4879589,12.336672,16.4575363,66.9155566,34.2645192,46.5938782,31.0243676,26.2889603,53.005126,4.0254387,31.4304586,20.4862388,1.8809501,1.9065432,25.1963963,74.6376597,72.6029664,66.7873419,26.5308869,12.9445956,16.4132848,66.3134968,33.6430877,46.0991632,30.9524405,25.9051515,52.5517045,3.9705248,30.9468785,20.7627668,1.7997545,1.8366356,24.4124936,74.2393295,72.7377865,66.2349875,26.5267676,12.955543,15.5945787,66.4252982,33.4919077,47.9677078,30.2412985,25.198541,51.6830995,3.8928919,30.7985009\r\n22,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,0,0,0,0,1,0,0,1.0384516,0.9952938,15.7247891,75.9456731,74.1081322,70.715761,21.4950192,66.7459128,27.9224877,67.4367028,35.7122337,44.295316,18.131066,14.2839563,85.6833889,5.5804858,33.2571769,10.0000854,1.0985457,1.0600185,15.6222019,74.8508614,73.880811,68.5663651,22.2696249,65.8672264,27.5919969,68.3402262,36.6813075,43.9211633,18.065882,14.3016165,85.3091004,5.8182765,33.780371,9.2912661,1.0777756,1.0706244,15.9003992,73.7310375,74.4866917,67.9898768,22.8882598,65.620788,27.5543417,66.8568214,35.6003873,44.5154183,18.1397004,14.3590011,85.2018329,5.9767106,33.4439379\r\n23,0,0,0,0,0,0,0,1,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,1.3286922,1.3344508,16.2053473,68.7859911,69.7330366,67.9542582,25.3176726,49.0596278,20.16937,62.7107599,34.6567559,45.1599288,20.001645,15.8041076,78.2602213,5.9046573,34.8920812,18.9324874,1.3037394,1.3097136,15.693485,68.9771569,69.857039,68.3988558,26.757314,48.0766705,19.7512922,63.6736612,35.7221843,45.3737957,19.4620584,15.2266973,77.3513726,6.2704395,35.4069706,17.7637885,1.296712,1.3074789,15.8330834,69.4517409,69.9562971,68.130658,26.8968936,48.5331234,19.5367924,63.8060884,36.297238,45.8320207,19.3275625,15.1609164,76.4899214,6.2755119,36.2613563\r\n24,0,1,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,0,0,0,0,0,1.4137058,1.4027617,14.5483045,71.7819513,71.7895965,65.4342719,26.8487414,11.6481172,14.334532,66.318141,42.037793,46.9490142,18.8366124,14.7997711,56.8814647,4.5121116,32.2826778,16.2820513,1.3483914,1.3496213,13.5394682,69.3640561,69.1343672,64.995605,27.9455872,10.4065409,13.8196913,66.6010909,42.5175109,47.5015816,18.2791825,14.0046337,55.6395334,4.4777427,31.3802845,16.8407311,1.3271858,1.3209147,13.0361583,69.7601909,68.9772305,66.079991,27.2014795,10.5537424,12.8648057,67.0805133,42.3031739,47.1630349,17.9487985,13.4154644,53.541372,3.9202154,30.8298876\r\n25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1488638,1.1900897,14.7717011,64.1048712,65.9803552,52.359976,29.0121304,16.4068993,17.8077958,69.4228174,41.2678747,33.5296124,19.3661349,14.616335,52.3879851,3.4804953,35.6840361,9.1379123,1.1633119,1.1952565,14.5010349,66.3259697,66.4555336,53.4449056,29.4042028,16.1657332,17.9852547,69.3229557,42.2423129,34.9726481,18.9867098,14.2837768,52.4364992,3.4823896,37.3713256,9.9326396,1.2747076,1.2920151,14.5942505,66.9249865,67.3776752,55.1525638,29.3842958,17.0643819,18.6970289,69.5557144,41.880922,35.5916919,18.8256488,14.3256739,52.0623411,3.2595378,35.6875523\r\n26,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,0,1,0,0,0,0,0,1.3220543,1.3347643,17.7037367,64.2063608,69.6691222,51.3626004,26.318005,13.1028027,17.4887428,68.1083065,42.3526474,40.4777805,22.230088,18.319105,55.9721118,3.8892294,36.8490012,17.9715429,1.3732614,1.396843,17.5949966,62.3940562,68.3827115,51.584187,26.7561944,12.5251809,16.8809512,67.9155033,41.5614601,39.8136324,21.7120126,17.8678257,56.5278331,4.034902,36.9009067,17.921227,1.3573731,1.372988,17.8411773,62.8693667,67.3303682,51.5879721,27.3184317,12.0598891,17.6600791,67.7615153,41.1733092,38.8795632,21.6312759,17.7413695,56.1167033,4.2282715,37.0755772\r\n27,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,0,0,0,0,0,0,1,1.8576377,1.8055053,19.2456047,67.7986768,68.7167044,62.2502593,28.6049179,13.9824471,16.1397493,66.9625774,41.1336815,39.4886489,23.3850092,19.3944065,48.8883857,3.9121849,30.9721712,17.6802689,1.9093464,1.8637242,20.068064,67.7520232,69.0811514,62.3384668,29.1068734,13.539044,16.4617138,67.3866989,41.2861151,40.3978225,24.4948101,20.280238,49.1502578,4.1374586,32.4181059,18.0090322,1.7494415,1.7468771,20.9114029,66.6461567,68.6400056,61.2965291,29.0635509,14.0798889,16.4473016,67.1704157,41.515061,39.1773613,25.7474868,21.4200628,48.9595938,4.236843,32.1562119\r\n28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8234022,0.8522951,9.1525076,77.7275525,78.6729712,72.6528929,24.5871078,23.7279181,21.9556516,64.7908205,36.851581,50.4923881,11.7676738,7.6936006,63.5616006,8.847056,36.0793488,5.3827777,0.9173801,0.9545493,8.7928929,76.4202104,76.8175023,73.2081028,25.0930257,24.0718967,22.3321636,65.7773382,36.8516115,49.9423256,12.4136764,8.3031875,63.3518988,8.0019593,36.4137449,5.3775756,0.992817,1.0588769,8.846858,77.4182911,77.9269199,73.5499783,23.9352466,24.6786326,21.3776658,65.0770297,36.3789679,49.4835264,12.7801167,8.5579678,63.2496703,8.0744371,37.0214031\r\n29,0,0,0,0,0,1,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,0,3.6690111,3.8044967,35.0467485,70.2954838,70.0359583,64.8814103,19.0336871,16.1263659,15.5895485,62.6916134,33.9949296,54.7925357,41.2629641,34.9208184,66.2784895,3.4976612,37.0330879,32.4912276,3.5699369,3.7065695,34.4614841,69.7029837,69.9505882,64.7671974,18.8736371,16.5194919,15.4327084,62.783862,34.3140314,54.0511956,40.8131051,34.5296559,66.3696488,3.4912822,37.1069607,31.9313934,3.499064,3.62594,33.9198554,69.1850912,69.8445772,65.0895808,18.9284991,16.3713653,15.0389077,62.8583214,34.4946803,53.8895682,40.2963539,34.0440458,66.1057293,3.5491487,37.3267881\r\n30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7383977,0.8469334,9.096648,79.3056238,79.3736741,73.8452116,21.3819663,26.7008088,20.7959681,64.1378571,33.8856627,51.433564,11.8858695,8.7122339,64.533297,8.3912945,38.4933229,5.8648135,0.8295763,0.9508919,9.3253677,79.1975827,79.1813394,72.9775162,21.1325787,27.0098249,19.7770794,63.9943835,33.9728932,51.6399811,12.0635399,9.1066342,64.4517785,8.3515483,37.5814774,5.9837752,0.7024516,0.8533392,9.590723,79.2978448,77.6386523,71.8967003,20.213405,25.2351197,19.0105354,64.7638561,32.8830205,50.5448662,12.2211257,9.1699437,64.0543219,8.6285368,37.1340996\r\n31,0,0,0,1,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,0,0,0,5.2283582,5.4178828,40.9190888,72.8072879,73.165762,73.9646232,17.7204609,38.2295721,17.9333884,59.4406242,31.1571089,53.8145617,47.4850284,40.4625078,76.3362204,4.3623065,35.5667328,33.9623115,4.89766,5.1172782,40.3129504,72.4722322,72.5787398,72.5902,18.1866083,37.3644232,17.7864889,59.0699401,31.7087776,53.2572013,46.9232433,39.8389423,76.5783855,4.2137117,36.8883483,33.3486019,4.524883,4.7194334,39.6177449,72.3939476,71.9905754,72.0919365,17.946749,37.488458,18.5131111,59.6157782,31.3657533,52.6886286,46.4339728,39.7784827,76.3678097,4.3761578,35.4952045\r\n32,0,0,0,1,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,0,0,0,3.0542456,3.1037234,37.8842601,70.6408579,70.3574703,68.2273697,18.5488548,33.7970586,16.8513419,60.2245424,32.8601748,50.947352,44.0369802,38.2832585,74.9278583,4.4195495,36.172986,31.8560925,2.470789,2.51418,36.2120232,70.4143528,69.2682062,67.6054549,18.5461806,33.2432122,16.3647027,60.5476426,32.8489592,49.957042,42.4474653,36.8594484,74.1631786,4.4007199,36.5172842,32.0927608,2.3190258,2.3697513,34.8989014,71.1076711,69.5929153,68.5079207,18.7189881,34.5053579,16.5180645,60.8603093,33.3921881,51.0043968,40.9318383,35.6443609,74.1756965,4.7084041,34.8925628\r\n33,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.2353223,2.1964076,20.8466511,58.1229749,60.53303,53.9438599,27.7533098,8.855969,14.7122405,66.7663919,39.6257179,45.125846,28.0761013,21.6857902,52.8218657,3.878139,40.5625121,21.5252635,2.0327357,1.9854184,20.8981986,58.5709933,61.9960637,54.0811261,27.2561626,8.1779578,14.4755518,66.3762744,39.6691577,43.7078199,27.1106408,20.9630014,52.2844367,3.7625291,40.4040101,21.4970529,2.2199171,2.1869621,20.3749096,56.513567,61.8826379,54.3135675,26.4436997,7.9916224,15.0317419,66.4717801,40.0042457,41.4377199,27.0094079,20.7035999,51.5007823,3.6749266,39.6789783\r\n34,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,0,0,1,0,0,0,0,1.266758,1.27166,17.1587857,71.7552756,74.2652054,58.5772859,25.197264,21.6664466,20.9639715,64.7644068,39.01231,52.0064575,22.3663358,17.3811993,65.3877845,4.0855931,40.4825565,13.4023293,1.2350345,1.2253086,16.8373626,72.1543026,74.7638885,58.4099737,24.976984,21.3970184,20.7535734,64.7203162,39.1075764,51.9707514,22.0715277,16.9747754,65.1374687,4.0465108,39.96035,12.8516209,1.2021302,1.2029196,16.1867449,71.8558034,74.4205548,58.2640961,24.7997807,21.1903649,21.2235905,64.8142534,38.8973102,51.6132056,21.4342361,16.2708604,65.0463248,4.0216378,40.1144925\r\n35,0,0,0,0,0,0,0,0,1,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,4.6262523,4.672645,42.2866273,64.9640147,66.0983637,56.8186124,18.6854179,9.0303424,17.5491545,58.7419069,28.7072989,48.8701946,49.3431142,42.6747962,59.1471066,2.5790591,36.8095889,34.2591363,4.804818,4.8783522,43.4995288,63.9190203,64.4007778,56.5185522,19.002544,8.6689772,16.9583289,58.8395415,29.2944708,49.1042451,50.631854,43.991617,59.1535351,2.502591,36.5872329,34.9998799,4.9156253,5.016169,44.312893,64.6034618,65.1337471,56.8124417,18.739866,9.1602225,17.0393474,58.2509586,28.9642599,49.788192,51.4511578,44.8206783,59.9819065,2.3780129,38.4133577\r\n36,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,1,0,0,0,0,0,0,0,0,0.8410197,0.8143766,16.4448232,73.2454047,74.2031395,65.7763833,18.7192474,65.9342414,29.7651722,66.4782561,31.4668051,46.1105399,19.434036,15.702274,86.1181946,4.0803935,32.6104865,14.0245866,0.8871671,0.869004,16.0943506,73.2621968,74.7142567,65.4352612,18.9494356,65.4192852,30.0222376,66.7610506,31.0340585,46.3548179,19.2528564,15.4144116,85.0272068,4.0568871,32.7437123,15.587187,0.9229571,0.9053765,16.1415378,74.3561072,75.750534,66.4949292,19.4339761,64.2551518,29.3133003,67.5879973,30.9559403,46.6753615,19.1492265,15.3548421,85.0757821,4.367561,33.6227683\r\n37,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,1,0,0,0,0,0,0,0,1.3327783,1.3600106,18.3039416,68.9563154,70.1139448,64.0773325,26.7488582,11.8908932,17.4428716,68.441815,37.0217456,42.2780824,22.3603809,17.9828373,51.2698307,5.2165497,34.0784525,14.7260153,1.3702466,1.4145692,17.8613851,68.6454653,69.6733501,64.4860648,26.0056267,11.5942616,17.6298662,68.5614437,36.8466419,42.8101913,22.0810318,17.7679311,51.1608564,5.1474952,34.6011499,13.7762262,1.3710102,1.400162,18.1097244,68.6419418,69.5992408,64.695746,25.6703386,11.3798645,18.4229222,68.7532182,37.2286255,42.6463369,22.6230239,18.079547,51.3345322,5.1473824,35.2735511\r\n38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.2432868,3.333134,38.1183614,70.3161752,70.5051003,65.0339232,17.2130536,17.0706038,19.9913768,57.5989832,26.8484786,53.2560631,43.4925139,37.9949748,66.0515417,2.8787229,34.6631949,30.7824846,3.2002614,3.3148681,37.5609713,70.5618077,69.6376447,64.6522134,17.2951962,17.4677516,19.4384179,58.3256385,27.1975671,52.1249855,42.9347614,37.4872197,66.5762516,2.8932682,35.0550614,31.3451296,3.1777174,3.2832415,37.434489,71.004251,70.3235971,64.5069058,17.4846192,17.4929089,19.9911901,58.6523913,27.3021222,53.1554455,43.1654994,37.8370726,66.7056083,2.8831016,35.5337819\r\n39,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.953972,1.9358548,20.1837753,56.6335183,62.6249579,55.1880174,25.8721421,8.5737601,14.5533633,66.4598228,39.7803128,39.9119217,26.1978309,20.2283648,52.2896169,3.3850672,40.1868692,21.3724821,1.743072,1.7575576,19.2384449,56.7106907,63.1346793,56.8368351,25.8832053,8.4099656,15.414933,65.3748661,40.0458472,38.5635407,24.6569287,19.3457336,51.6275188,2.9030878,39.4891602,20.0269031,1.7512657,1.743956,17.5238424,57.876175,63.1663323,57.5332407,26.2535279,8.5145265,14.9944259,65.1468691,39.8202346,39.9427494,22.8264482,17.7385186,50.399294,3.0399006,39.6537728\r\n40,0,0,0,0,0,1,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,0,0.865011,0.8655991,8.6300177,64.6798199,66.528548,64.7903506,29.6059665,5.1625725,12.0575662,70.3199361,46.683393,39.9884478,11.7174843,7.769922,38.531616,5.2524169,36.6779306,7.1597625,0.8905257,0.8943625,8.7283641,64.6105531,66.0457687,64.6430729,29.9825594,5.1344145,11.9676132,71.4541817,47.081771,39.4223969,11.6722548,7.8024588,38.1877715,5.4645972,36.8073857,6.9676685,0.829695,0.837412,8.8885446,64.0999875,66.5821757,64.2410571,29.6592134,5.2836884,12.3230561,71.0903219,47.0573857,39.6870208,11.7635324,7.9949549,37.9886327,5.5828864,36.0924388\r\n41,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7236796,1.7841348,19.2192801,60.0387899,62.3027991,60.5088319,29.9510136,5.3583503,12.1642947,66.8378384,42.6510442,37.1578273,25.7718652,20.3512121,43.3671354,4.0849748,29.5851672,28.9106296,1.8509043,1.9108931,19.6318544,60.2591709,62.0803809,61.1384213,30.1420652,5.6754906,12.7683713,66.1892151,42.1215182,37.5089456,25.7263066,20.5533755,43.1020679,4.2813511,29.9544469,29.8153995,1.7768076,1.8359169,20.0826313,60.621925,62.3013842,61.5719325,30.1520601,7.338998,12.5956439,64.5270076,40.6099676,36.8765246,25.5041044,20.4078754,43.3667972,3.9994468,29.5783726\r\n42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8559242,1.8699884,24.521653,70.5445339,72.9453068,65.5047521,28.04318,9.2966874,19.345637,66.448621,38.2370211,44.6489565,29.2083509,24.3136777,50.3476011,5.3557677,31.4653411,17.0775754,2.0233864,2.0372768,23.6864664,70.9477156,72.3404,66.758955,27.5601027,9.3187161,17.4193261,66.3473505,37.9167961,43.5652111,29.4632456,24.6324963,51.3895667,5.2006155,31.3928327,18.2709966,2.0904435,2.1261169,24.2577327,73.0184073,73.449693,68.028694,25.9680589,10.0135101,16.3039294,66.0773038,36.1722279,45.2442191,30.6465182,25.9243224,52.792089,4.924542,32.4482479\r\n43,0,1,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,0,0,0,0,0,2.6559565,2.721548,27.2799639,70.7124923,68.2920283,63.0477015,24.1520672,15.4917059,17.6845196,63.3862359,35.4426834,51.3994029,32.2489165,26.0155935,63.8020263,3.9903392,33.8954012,16.441934,2.6453684,2.6941146,27.7184574,71.1446312,69.347694,63.5972928,22.3631918,15.0425731,16.7125107,62.6296523,34.9705875,52.791074,32.2913385,25.9063063,64.8594281,3.7561982,33.290114,17.8833701,2.7215796,2.7697306,27.3899915,72.0825629,69.7655844,64.7884371,21.1575576,15.4173925,16.7354951,61.9908297,33.9547237,52.7495006,32.573258,26.068549,64.9354952,3.3785042,33.0899575\r\n44,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,0,0,1,0,0,0,0,1.1535726,1.1775796,14.5479164,72.5085933,73.8287407,59.8505414,25.6863497,21.5140423,18.8855154,64.7517296,40.8472791,49.9899483,19.6940225,14.5668331,64.0726657,4.6617449,42.1565235,12.7304865,1.1574827,1.1723076,14.4290385,73.4720158,74.527007,60.6890413,26.0368608,21.3151851,19.1678882,64.2728806,41.400894,49.9295914,19.7506936,14.4579225,64.4668342,4.8750877,41.4491986,12.2563701,1.2113171,1.2144753,13.7896199,73.7177068,75.1713756,60.906288,26.2893385,20.8251181,19.5379209,64.1389963,41.5337362,50.6389542,18.998867,13.9190206,64.1689261,4.8046318,41.2514745\r\n45,0,0,0,0,0,0,0,1,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,1.5841557,1.5571433,10.4143888,69.5190788,69.87608,69.9604056,29.7967303,13.8080607,17.5413573,64.820254,42.2316515,37.1379395,15.6836126,11.0439262,46.4965563,7.6475151,39.4508157,7.0715284,1.4302172,1.4395586,10.8780464,69.3500092,70.4903624,68.5339912,29.9115175,12.1953776,17.6658898,65.0965183,42.4737862,39.396237,15.8084537,11.0820835,45.7955052,7.6490576,38.6065817,7.3728776,1.368086,1.3657314,10.8822916,71.6486193,72.0482235,68.2516666,29.3163007,11.4169002,16.9745896,65.2096323,42.3367483,40.774568,15.9352985,10.8199507,45.2142078,7.6974019,37.9491569\r\n46,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,0,0,0,0,1,0,0,1.0470705,1.0400925,14.9376902,74.5264901,75.1407271,68.1249863,23.6098423,64.5225868,27.5028813,68.5979857,34.2154207,47.1592709,17.4099197,13.7667548,85.3872818,4.7678114,33.2493906,10.2410379,0.9466455,0.9395953,14.1707663,74.9573796,76.143267,69.2279103,23.9840343,65.5422434,29.6819619,69.1154719,34.6199577,47.6313027,16.9194037,13.3503664,85.775114,4.9004367,32.3446169,9.8604216,0.9157555,0.9262356,13.9786007,74.9501644,77.1688142,69.3704848,23.3104941,65.8722576,30.32073,68.9031363,34.1434551,47.4495513,16.8468032,13.3383991,85.5044659,5.1446132,31.8870368\r\n47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.4590051,1.4352658,15.8717418,60.1845947,65.100369,48.605773,29.3169017,5.8052336,16.2273917,66.4636273,43.7984577,37.5852279,21.0558583,15.6219491,47.8841372,3.4840422,38.4575414,15.6903831,1.4962224,1.5193898,16.5223026,61.1112378,65.5004145,49.9090848,30.3536783,6.0717022,16.5661175,66.9595774,43.7236079,37.9979601,21.5180829,16.2082159,47.386107,4.1042576,38.9523208,14.6586345,1.6325511,1.6549404,15.3614201,60.0157848,64.1767757,48.7990286,31.2373615,5.989106,16.547262,67.7339791,44.6554947,36.1407437,20.9651048,15.9462641,46.6419848,4.4179245,39.3500297\r\n48,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,1,0,0,0,0,0,0,0,1.3685016,1.3932473,17.8362606,67.4576871,68.9630578,64.4905641,25.6362616,11.7902619,18.8655533,69.0571234,37.5595573,41.2966349,22.4419808,17.7711281,51.1562924,5.2572676,36.0607825,15.1494598,1.4681775,1.5094959,17.7453854,67.6959148,69.4646627,64.5039691,25.8516074,11.3593871,18.6914491,68.733546,37.5628857,41.2077052,22.9243471,17.9988181,51.1007516,5.3278042,35.7098188,16.0081907,1.5500751,1.6115619,17.9769626,68.2789807,69.326157,64.648914,25.7680698,11.6930071,18.1079813,68.499965,38.1660835,41.5620809,23.1378613,18.1326799,50.9769249,5.2635533,35.7431463\r\n49,0,0,0,0,0,0,1,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,0.7351986,0.7641542,9.7403432,60.816764,61.3714641,58.0838299,28.7432941,9.7527803,14.8298952,69.8845497,42.0010667,39.1962953,13.0852591,8.893383,47.15672,5.22268,43.000657,5.4517417,0.7640439,0.8105181,10.3686611,61.7842014,61.7576983,57.4354517,28.2124572,10.8809622,15.449895,69.9611337,42.3946654,39.2769535,13.968884,9.4199428,47.8234584,5.470561,42.2036084,4.7545939,0.7037708,0.7436772,10.850104,61.4373028,61.3889451,57.5267343,28.8487605,10.3350779,14.025662,71.4833254,43.0585563,37.2310981,14.1567418,9.6234651,47.0552976,5.1954799,42.6209899\r\n50,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,0,0,0,0,0,0,1,1.4942913,1.5055405,20.146805,67.0578753,67.8818547,60.2317604,28.0300496,12.3825624,15.4051791,67.5707278,40.690253,42.5568119,25.1992471,21.0491191,49.2739285,4.5013059,30.8530968,15.3930963,1.5857366,1.6120098,20.0616807,67.5868591,67.7856638,60.4382986,27.6682011,12.0709513,17.5364272,67.2246446,41.5122423,42.6676009,25.2267375,20.7278969,48.4429362,4.8212372,30.6997451,15.4285169,1.4487434,1.4534675,20.1303001,67.9062172,67.797073,60.6601463,27.2489034,12.5895252,17.6010895,67.2873021,40.7693157,42.6563148,24.7461982,20.5048489,48.2326782,4.4897485,30.1118817\r\n51,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0822708,1.9362143,20.6896618,68.7183929,72.9199319,71.638574,18.631533,22.9109553,24.1257529,67.9851092,31.0605985,45.6893881,22.9949239,18.9340102,67.849345,4.5068929,39.556962,24.25,1.6700636,1.5241492,20.8067306,69.3309501,74.158845,73.644726,18.713292,23.6528208,23.2329345,68.0018063,32.3108707,45.4020422,22.8008089,19.1607685,67.478355,4.7945205,38.5654886,22.3684211,1.7175257,1.5703226,20.7369832,66.545858,73.3261871,72.0899079,18.9662162,24.5298153,22.3643496,68.1258029,32.0399074,43.5318426,23.3333333,19.4358974,67.7015251,4.2993631,39.9795501\r\n52,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,1,0,0,0,0,0,0,1.2875889,1.3032411,15.7615033,65.104755,66.1936949,60.0288696,30.3781299,9.8302496,15.3765694,70.4508376,42.9694764,41.5743369,20.2245101,15.2557887,53.7194877,3.036676,32.7559742,10.9872716,1.3314241,1.3638916,15.091755,66.7518052,67.906369,61.595544,29.1934544,10.4749917,17.0880211,70.2265806,42.5727764,42.7613876,20.039747,14.8716887,53.9503773,3.1886862,32.85604,11.9195157,1.4475902,1.4666742,14.9662349,65.7430526,67.5615494,60.5093192,29.7244467,10.0046302,17.1127585,70.3557989,44.0824808,40.9699146,20.5141601,15.0227205,53.121508,3.2039611,31.0437386\r\n53,0,0,0,0,0,0,0,0,1,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,1.3903202,1.4294546,12.267253,55.9845118,59.148687,55.1639633,31.3446652,2.0390398,11.5919627,68.334478,45.5185592,31.2514524,16.3686102,11.8795646,29.0610077,4.4732743,37.3381605,5.0162152,1.3277606,1.3661266,12.7297899,56.5416395,57.5956574,52.6250312,30.8528112,2.264647,11.431151,68.5627313,45.6125276,31.1314748,16.4758486,11.9320252,28.9750504,4.7065525,37.5596035,6.6129118,1.2331515,1.2717265,12.3659776,56.2759562,57.2714764,52.8396881,29.9907847,2.338478,10.9163317,68.8027283,46.0088211,29.6941003,16.3796173,11.7509886,28.9732313,4.5279329,37.4801173\r\n54,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.0987144,5.2601532,41.3428443,67.0321669,68.0873348,54.7042249,20.2131619,16.5040431,20.953074,58.732077,29.4915035,52.5850873,48.9853649,41.6999346,61.9689844,3.0103314,41.6361219,34.2741557,5.3698735,5.5743817,41.4477223,65.236742,66.2613741,54.5800228,20.1172568,16.3751516,20.1384757,58.8119263,28.4034182,51.2413493,49.3299014,41.666667,62.3764476,2.7605112,42.0550239,35.2703885,5.2987176,5.4684933,40.4579602,65.8186842,66.7386396,55.7009104,20.5305526,16.1021304,19.7257742,59.4114052,29.3368189,50.7802651,48.9813201,40.9337821,63.2314776,3.002516,43.3730554\r\n55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2.0095596,2.0337225,19.6547215,69.7153975,71.0028757,60.8787175,26.3130044,23.2885078,17.2726325,68.4598797,34.4545126,48.4015752,24.7983576,19.6242378,70.2475073,2.7525815,32.7636089,14.8310545,2.118934,2.1723244,20.3899013,70.0236098,71.6635432,61.8612487,25.8859189,23.245842,17.2300393,67.4547858,33.8328056,49.432813,25.9064824,20.4484638,70.1614678,2.790002,32.686049,15.7683607,2.2242034,2.2475518,21.9232497,69.9418406,71.8305047,61.7042796,25.3937852,23.5815898,17.1218144,67.2417349,33.7708387,49.7661425,27.4752885,21.918697,69.6852831,2.9463565,32.8786842\r\n56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.1595047,2.1272689,22.8962698,63.9127479,68.9607092,56.6057916,28.3530591,11.9715636,15.84462,67.1525914,39.0566685,41.8420222,28.2093676,23.0337753,51.9868144,3.6849654,39.3040155,19.4050471,2.2484829,2.2161949,23.0417987,64.0409628,69.0125366,56.5929334,28.5622394,12.1875576,15.7396981,67.6373089,39.1245808,40.687004,28.245989,23.2336996,52.6304035,3.6680582,37.0302061,19.1760947,2.0005497,2.0005502,22.7441323,65.3827197,69.4392192,58.1005233,28.3715309,12.4783688,16.2599364,68.5854216,39.6794282,41.0892829,27.9386521,22.8643748,53.3622734,3.7929713,36.004331\r\n57,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,0,0,0,1,0,0,0,0.9768508,1.0709327,13.8324477,77.1471786,76.3541676,71.8434798,25.1365486,25.5484237,21.9275343,67.3297864,38.2792627,44.4779102,16.3497816,12.7074522,66.3779598,4.1461429,35.5972604,8.9356528,0.9578747,1.0572837,13.5320807,75.8869432,77.0900995,70.5561991,24.9412315,25.218052,21.8957184,67.4583273,38.310449,44.7134217,16.1706933,12.6681433,66.0431248,4.1788118,35.508889,9.817686,0.9917682,1.0918555,13.1962199,74.9923818,76.2798197,70.0585078,25.2047266,24.3227492,22.2019305,67.1436792,37.8232207,44.0544591,16.2439156,12.5469511,66.291086,4.2440356,35.5638541\r\n58,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.3185448,2.5482329,30.2830744,72.1848598,73.5864725,69.262392,17.2050075,21.4022637,17.921859,64.4360859,25.7059853,52.786597,34.6223539,30.363906,67.4832021,2.6212851,32.8873239,16.4723032,2.3569081,2.4836278,31.7185359,71.9723369,72.5487684,70.0479473,15.8410985,21.0615599,17.2871761,63.1329294,23.8673131,54.2532156,35.7192871,31.5367554,67.0119006,2.520507,32.1625344,18.0167598,2.4168387,2.476536,32.2511969,71.2381278,72.5094135,71.6159788,16.020827,21.9074618,18.3393229,61.7750532,23.2183459,54.9231507,36.0833161,31.8018157,67.7327146,2.7867007,35.3146853\r\n59,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4680479,1.4720211,13.9689351,56.1987203,62.8924633,56.8310842,28.174773,6.6615081,15.4731773,65.902438,40.4932311,38.5971643,18.9068088,13.8527362,48.2342342,3.0808277,41.9477868,15.3877476,1.5423983,1.5303292,13.054753,56.1227354,61.933645,56.7337075,28.8171266,6.6476527,14.9247528,66.3852931,41.0000633,37.2952009,18.8757738,13.4645376,45.8247749,3.2225203,41.6756234,14.8102345,1.7346534,1.7387516,13.3062629,54.2498734,61.0903545,56.3080349,29.579865,6.2037533,14.3065428,68.6199513,42.3959158,37.3641271,19.1909047,13.358228,44.7796333,3.6875422,43.1247154\r\n60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3195317,1.2976102,14.2154109,67.1973308,68.1587102,55.1986054,30.0369315,17.3268066,19.2149847,69.5243873,41.9024922,35.7451167,18.2544849,13.8812866,52.0100653,3.3223463,36.4229448,13.498104,1.3735031,1.3306668,14.137905,66.720805,68.392694,56.4763103,29.5242861,16.400936,18.9450846,70.010778,41.7188415,36.6539308,18.6234144,14.0348328,51.7406491,3.5952659,36.3687062,11.8755667,1.3422275,1.2885865,14.1832274,66.459782,68.2409785,56.6723259,29.6008944,15.6253741,18.1011284,69.6331671,41.9935056,36.7550657,18.6986051,14.2401907,51.7538438,3.6568474,35.9073621\r\n61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6851757,1.8206178,24.9141164,82.6866381,78.4890259,83.8674652,13.6515949,59.4657886,23.1402117,59.7287244,23.2471709,59.3036396,30.7329078,25.9120672,85.3629803,6.2998576,34.9211876,21.5730875,1.8012213,1.9470833,22.7507647,82.5716289,79.1806887,83.4544478,13.570024,59.3294825,23.1460007,57.8864774,21.7038926,59.3416809,29.1044957,23.9967098,85.296146,6.1969335,36.5914316,20.0094134,1.625312,1.7635768,20.9326217,82.1874794,78.3156999,82.6363012,13.6729061,59.3797927,22.7448777,59.2966295,22.4859529,58.6202755,27.477191,22.133944,85.6009695,6.0443294,36.4530423\r\n62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.826981,1.7520844,20.5961854,78.2472199,74.147816,73.2396579,22.8864016,61.2571049,27.3914893,62.3464844,33.012599,56.2529331,26.4332445,21.0575631,84.9053278,3.6626106,43.2052572,19.1700084,1.7190232,1.6425688,20.390039,79.3760853,75.0381322,71.1742944,21.5713247,61.2595812,26.7663227,63.9755268,32.6506725,57.2952158,25.7800359,20.4232965,85.3909878,3.5173733,42.5921726,20.3340427,1.6873097,1.5781255,21.0335279,79.6690463,75.4809948,72.0055854,23.0125143,62.9511324,26.1448336,63.7417088,33.6145056,57.1746929,26.2135664,20.9219265,85.0045571,3.3044773,41.4773018\r\n63,0,0,0,0,1,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,0,0,1.4475265,1.4923294,18.0644423,76.958218,77.0478367,76.0737369,14.4426542,51.4490212,23.6163144,61.3731856,25.521231,52.2506481,21.8272901,18.2013359,83.4162108,4.2195122,36.5308151,18.6802974,1.2825528,1.3284454,16.7938512,75.4003701,74.3195967,74.4116436,14.7356721,49.7488047,23.7077433,60.7158721,24.5758184,52.0090384,20.4822211,17.1699951,82.6676907,4.4974874,36.5989848,19.9795082,1.1898921,1.2494159,17.5489824,74.4953826,72.3261016,75.9965517,16.1011037,47.2417295,23.0216015,61.9960988,27.018953,52.8589285,20.79333,17.1551289,81.8832891,4.7581903,36.3113898\r\n64,0,0,0,0,0,1,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,0,3.4349181,3.5301252,33.9364304,69.952039,70.4562245,65.5211202,19.1798035,16.6163172,14.7355921,62.8170631,34.6390622,54.5668732,39.9960503,33.7869791,66.2276682,3.4746391,37.4937427,32.5181749,3.4107326,3.4966873,33.0706114,69.5858571,70.2251508,65.213234,19.6594127,16.884602,14.0893903,62.9540542,35.0879758,54.3551131,39.2676728,33.0767332,65.7185625,3.3186219,36.925823,32.5706897,3.31266,3.384655,32.5794073,69.0993942,70.1208367,64.4367548,20.1886716,16.8083668,14.2994833,63.1562418,35.1436433,53.778338,38.9627957,32.746158,65.5794903,3.313734,36.7596722\r\n65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0647672,1.1139957,22.8717458,77.113224,77.6981181,67.9162218,23.1324145,59.1527537,26.0409377,67.4289141,34.8359449,59.2585003,24.8621361,19.988719,86.0167316,2.8881656,46.6405352,12.337673,1.302698,1.3941012,21.5780412,77.9598046,77.4218482,68.7395145,23.2431021,58.0931829,24.5140131,67.9363641,34.8823409,61.0202607,24.1468928,18.8264015,85.8854766,2.6424441,47.414877,15.0423856,1.4025567,1.4962595,21.473924,75.7865127,76.4044905,67.9661445,21.7101668,56.0153433,24.7433972,66.6765068,32.7916909,59.5813671,23.6138058,18.4182163,85.7273209,2.9972067,45.8924214\r\n66,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.158242,2.1503393,22.6666349,58.6624138,62.0200399,53.2240113,25.3593326,16.2891067,19.6270174,64.5107239,34.8918989,40.0790983,29.9019458,22.9876141,60.0054762,3.2981546,39.6763168,29.301725,2.0253042,2.0414775,21.2055478,59.4836797,62.271418,53.5362859,25.3399313,16.6930816,20.5650235,64.0669463,34.610794,40.5930021,28.8553093,21.9660766,59.7698079,3.7187849,38.2154951,27.9639134,2.1069841,2.1557408,19.9088747,60.7742059,62.7773143,53.3832591,27.2232155,16.3740485,20.7786335,63.6376423,35.2732908,40.5421113,28.1050879,21.4171891,60.1416533,3.647834,39.0695136\r\n67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2263776,1.2748728,16.4395467,76.5102794,79.9730931,64.0781224,22.4284861,53.6896607,26.4909784,65.4028887,34.8208041,49.7219547,20.2324183,15.5667887,83.9443265,4.5389187,39.8537325,10.7768888,1.1133814,1.155428,17.0253945,73.8488475,76.7598166,63.6598149,23.0565704,52.0429778,26.5385075,64.8485965,33.8525892,50.3739521,20.3841727,15.2550521,83.065373,3.7637928,37.9600751,10.1053176,1.0289971,1.0704513,16.2323241,72.1748153,72.4144303,63.5448596,21.9397326,53.6052697,26.7860023,64.5776025,33.437786,49.6463811,18.617399,14.1702429,83.1151227,3.4356191,38.4137559\r\n68,1,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,0,0,0,0,0,0,2.75614,2.7362714,26.7802703,55.037655,58.7092014,51.7896223,24.9484864,10.8618109,15.2022196,64.4675226,34.6799689,44.7212782,33.9044121,28.1088742,58.7112688,2.9841308,36.1443884,35.2397263,2.3706683,2.3706683,25.829009,55.8464448,59.1867427,52.6361229,25.3925151,10.8211022,15.4728753,63.7043976,34.7643138,44.2303946,32.8446488,26.629948,58.0083956,3.0631463,36.3337809,34.4796262,2.2217063,2.2217063,24.1458319,55.4833176,58.961201,52.7298779,25.1011741,10.1710394,15.2648333,63.8621236,34.5840372,44.7336947,31.9650643,25.9531394,57.8017367,3.0693659,36.3682057\r\n69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.9976207,2.050807,26.9729028,67.0801524,68.8765476,58.7831732,29.3029489,12.0473133,15.749065,65.6579784,37.8364466,44.4682403,32.158957,26.1237998,52.9077157,3.2172295,37.7424701,23.7002894,2.1765495,2.2416371,26.9141989,67.0684085,68.7151787,58.9102156,29.0235723,11.6729523,15.8629289,65.5774959,36.7940184,45.413973,32.4274279,26.3216917,54.0239111,3.0211785,37.4322297,22.8748795,2.1079346,2.1787834,27.6000819,66.7985648,68.6099783,59.0788145,28.7632776,10.9648796,15.5443455,66.1443683,36.4791953,46.4476934,32.716344,26.8365498,53.8786395,2.9004155,36.3762909\r\n70,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,0,0,0,0,1,0,0,1.0715793,1.1003032,14.7895268,74.6098796,75.4509343,68.8284601,22.0426078,65.5392936,26.9253669,66.1460697,35.3380029,45.4026703,18.0160399,13.9174736,85.1126927,6.3105113,32.7931739,9.3926787,1.0340058,1.0710291,14.5092402,73.6723924,74.4783936,68.3330235,22.1768134,65.0877927,25.7541615,66.1463649,35.2760443,44.4492277,17.8516621,13.7525012,85.4461971,6.7431201,32.6953574,8.9214701,0.935468,0.9721809,14.4990268,72.9415871,73.9809147,68.149348,21.4118135,65.0793055,24.4876266,66.8581738,34.3820696,44.5674225,17.7897119,13.8671859,85.3161942,6.3282842,32.9249601\r\n71,0,0,0,0,0,1,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,0,1.9757119,2.0267387,22.1281931,64.8802755,67.0432217,62.594463,24.1156612,13.026962,14.8069531,66.0062098,39.0726989,47.6564296,27.1513326,22.1272855,60.6094649,4.1474414,34.9411721,25.3444227,1.8179044,1.8543789,21.3764175,64.8196721,66.792851,61.6513654,24.2872796,12.8229127,14.9078459,66.6993902,39.7339025,47.4251001,26.2964848,21.2035083,60.0227515,4.282984,35.6676098,24.424308,1.6973727,1.7518171,20.333591,65.2112501,66.8642411,61.1139799,25.171486,12.7745761,15.0458669,67.2437766,40.3746103,47.0115748,25.572039,20.4106137,59.948614,4.4245405,36.1718571\r\n72,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,0,1,0,0,0,0,0,1.2960034,1.3084629,15.3326167,65.29763,68.2322852,53.1468975,27.1412855,11.2267444,17.7667973,68.4149148,38.522518,38.2688855,19.0781572,14.5684459,54.6597121,2.9252423,36.7700885,9.6250202,1.2863073,1.2990508,14.7466037,67.062078,70.0663375,55.0017833,26.4828515,10.305811,17.193845,67.1915689,37.4018541,41.3467781,19.0548988,14.3014531,54.7064516,2.7826134,37.1231029,10.771216,1.3541168,1.3626715,14.7476831,67.8298605,70.3154984,55.6627832,26.2775331,9.3393773,17.0491051,66.996747,38.523501,42.1997752,19.604625,14.7349327,54.2361399,2.6677437,36.7191496\r\n73,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,0,0,0,0,1,0,0,0.8830113,0.8978829,13.4874927,75.8614203,78.0122223,71.5025938,22.0493073,66.517284,30.4877983,68.5934465,33.7449138,48.122231,16.7668733,13.3800444,85.8081605,5.5076387,31.6481674,11.2816132,0.9627961,0.9635228,13.5245303,76.1412518,77.1753948,71.667237,22.0516164,66.4168005,29.7272931,67.708185,34.0871952,48.9818183,16.643758,13.1433991,85.7566045,5.8006816,31.3272409,12.5000094,1.0760005,1.0953157,14.0147724,76.2220177,77.4798203,71.5070998,21.465126,65.7003183,28.711955,67.0736456,34.2157538,49.2929166,17.1699886,13.4246557,86.2866449,5.8004108,31.4669238\r\n74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2.0084919,2.0513026,26.3454588,68.4670126,69.7752165,59.1365476,29.7850263,11.9693445,16.7406618,66.1182263,37.9186482,44.6208001,31.5883434,26.0967449,52.4970918,3.5162616,37.3447505,25.1043762,2.0502507,2.0876541,26.1841702,68.1356857,69.5929152,59.2538882,30.1542388,11.7090675,16.6933992,66.1775201,38.2840844,44.3584809,31.7416899,25.9619707,52.4371944,3.6329983,37.5628482,24.2533455,2.0350951,2.0854114,26.9184513,68.0150055,69.605474,59.8357595,29.5806386,11.8027561,16.3645641,66.0750395,38.0621388,44.7024316,32.1095706,26.1882034,52.6170419,3.3786029,37.6695962\r\n75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.0188226,1.083909,12.8509432,78.4368403,76.8037724,72.9376966,22.962616,27.6017983,21.5441077,65.4554103,32.7104797,50.6781848,16.3253139,12.4141093,64.9119248,14.6111685,39.8022665,7.3001713,1.0317903,1.0914927,12.6582114,77.0462113,75.1802523,73.0350391,23.5924607,27.4064739,21.0419313,65.8497613,33.1047525,50.182864,16.1630022,12.2383558,64.3582221,14.4976237,39.5020113,7.6339009,0.9787677,1.0179763,12.8049626,76.8213607,74.7412729,73.6171602,23.7984176,27.1108484,20.196487,66.2744181,33.2597839,49.782805,16.0756352,12.3200743,64.1236167,14.7047169,39.6836112\r\n76,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,0,0,0,0,1,0,0,0.8074066,0.8636871,13.4122199,77.6194937,77.4957799,72.1023459,22.8991417,66.2934287,24.1066268,67.7883569,32.8786286,48.6920698,17.0739567,13.2118236,86.106913,5.3949726,31.6508112,5.2469795,0.8581928,0.9381902,13.229396,77.8650386,76.9869158,71.7068746,22.0711321,66.8738162,23.8295065,67.7826778,32.5731388,49.1076615,16.8668986,13.1132205,86.21084,5.4775716,31.7272818,5.925242,1.0252471,1.1136437,13.3894332,77.4647014,76.7346579,71.1048057,21.4535269,66.9330971,24.3723896,67.8664171,33.6174667,49.2877403,17.4082348,13.5650017,86.19013,5.9409853,33.8416692\r\n77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3713386,1.3958248,18.7591044,65.4787447,68.0927976,55.9955532,31.7981218,11.6301736,14.5104113,66.103931,36.7506642,41.1590339,22.7044684,18.1117754,49.4497509,2.8637624,39.4793447,13.7658402,1.4100519,1.4640809,18.6594541,65.8601843,69.4231036,55.9954475,29.7696245,12.0261873,14.7475222,66.829471,36.5670116,41.2482313,22.9533779,18.1779586,50.0911771,2.7290078,39.3023497,12.7760373,1.2838036,1.3380279,19.2633654,67.4158555,69.3885377,54.5454482,29.6497874,12.6621354,14.7869174,67.2840383,37.0347074,41.0327672,22.9453715,18.3458417,50.8638807,2.9319148,38.7650597\r\n78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5185101,1.6242926,10.0340107,76.2694629,76.335803,77.7190212,25.9583146,19.3313099,14.9004805,67.1449567,37.5570623,46.4025326,14.7854832,10.0868231,55.2701278,10.5221712,40.2645812,4.3991369,1.4343703,1.5102255,9.9464192,76.9943501,75.8646337,78.7765427,25.469009,18.3915171,14.9072056,66.668704,37.7384973,45.5833182,14.8388426,10.2650488,54.1599046,10.1336709,40.8397469,3.6504384,1.1169872,1.1935396,10.1280016,77.2511382,75.8331978,80.9099505,25.3884785,19.2203441,15.4268923,67.3377269,38.7294668,46.2934669,14.4391917,10.1939198,52.4674011,10.4769308,40.7548991\r\n79,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,0,1,0,0,0,0,0,1.1873198,1.2351402,19.7660979,64.7900393,68.8502427,53.5158898,24.6639829,13.0354124,16.8987677,69.1317937,41.4774678,42.3135674,23.542465,19.5088351,56.936659,3.5933726,38.092811,15.6592741,1.1912962,1.2404954,18.0438815,63.7019337,68.6824197,52.7687967,24.8247421,13.0512994,16.642096,68.936521,41.8305002,40.9638733,22.8046983,18.4709514,56.7321289,3.6172661,38.2627092,16.6491017,1.2586183,1.2708998,17.5965073,63.9526057,69.0321036,52.5446272,25.2786026,13.4118135,16.7759694,68.0053604,42.0692355,40.9583728,22.4185458,18.4272766,56.2967576,3.6627152,37.9879157\r\n80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2.1160758,2.2114165,28.2228986,67.2192978,69.0126117,59.5619259,27.4270816,10.5827807,15.5340355,65.6712805,35.3000035,46.8300062,33.3830951,27.401274,55.0550048,2.8535672,35.6821102,21.1436099,2.1435376,2.2414502,28.409429,66.6861092,68.4329411,59.9280167,26.7864549,11.2035095,15.5255778,65.3324677,34.9160415,47.5116381,33.8817443,27.9814151,55.9896003,2.8284195,35.7288315,20.780852,2.2743499,2.3620844,29.5615447,67.0424349,68.6912741,59.8872177,26.219724,11.1871505,15.4722824,65.6798005,34.9804124,48.4699761,35.4526212,29.4625113,56.3352664,2.7383014,35.4798623\r\n81,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,1,0,0,0,0,0,0,0,0,1.0303335,1.0323173,15.3366829,73.8106797,75.4940923,68.8549371,20.0639078,62.3660623,30.0059589,69.1618239,32.6908395,45.3681145,19.5543728,15.4579748,85.0109944,4.4959326,33.6132236,10.1941286,0.9465435,0.9513681,16.1702595,73.618424,74.8066671,68.1159277,21.6318842,61.549004,29.719502,69.314683,34.0757208,45.4859618,19.7695036,15.7978973,85.1830864,4.4658815,32.6071628,10.4838608,0.8068252,0.8117445,16.5354281,72.6821761,74.5297863,67.5107446,21.7671746,61.235714,29.1004074,68.9688871,34.2050615,44.1715731,19.5839694,15.8226913,85.5979899,4.1899121,32.417247\r\n82,1,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,0,0,0,0,0,0,4.883376,4.9729189,38.6730882,64.6326638,67.394323,53.4633686,20.4818953,10.225588,16.0435757,59.8781342,29.1264319,51.1107211,46.0895489,38.4392333,59.2088342,1.8864737,40.2427841,37.6475391,5.2588025,5.3814998,40.2378233,63.5410479,67.4053541,53.7965675,20.0763597,10.3444054,16.6599397,59.9029992,30.0935992,51.0417185,47.8897336,40.3274074,59.7595404,1.7283822,39.7195053,39.7576504,5.5412291,5.6066382,40.7819682,62.2502332,66.7799413,54.0876569,19.2858545,10.5217272,17.6968486,60.4048586,29.2321684,52.0724,48.7775262,41.0356697,60.886791,1.5596485,40.021374\r\n83,0,0,0,0,0,0,0,0,1,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,1.3158063,1.3681554,11.3732697,57.2079716,62.402308,55.4563845,31.304118,2.4608285,12.3947691,68.9027114,44.1510911,32.0447166,15.8343643,11.5480528,31.205207,4.5873517,36.8962122,7.4144811,1.2994338,1.3414558,11.966583,58.1939533,62.634592,54.6681424,30.4737111,2.523688,12.88045,68.5405046,44.4945809,32.7412471,15.7182106,11.5188395,30.5567311,4.3559071,36.477131,6.6326893,1.3684469,1.4090245,12.1494579,56.5162155,60.3253955,54.2102537,30.7652594,2.3919415,12.492375,69.6313675,45.5072524,32.170282,15.8163225,11.5835242,29.8979588,4.4546559,37.1440172\r\n84,0,0,0,0,0,0,0,1,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,3.8505719,3.9667713,37.8153824,75.05597,72.2020962,69.355359,21.1159527,52.6765609,21.5533826,57.7474711,28.1530358,57.1137843,43.8314656,37.4475462,83.7085847,4.4164591,36.4284044,21.4066772,3.9253393,4.0483422,38.2813161,73.9980323,71.4876189,68.6968074,20.1758007,52.6921357,21.2042804,57.4071548,27.3978126,57.1207076,44.1147501,37.7961857,83.7497093,4.4150988,36.7935556,22.5008285,3.9001561,4.0062588,38.7434383,74.7792082,72.7417271,68.337194,18.424641,53.4861571,21.2418044,57.1328035,27.0371398,57.7836008,44.7606334,38.2715532,84.2268169,4.1085697,36.3928861\r\n85,0,0,1,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,0,0,0,0,1.9918571,2.0306777,19.6151586,77.6653637,76.8271372,73.5408421,17.8152546,58.3677331,26.1117261,60.1847431,29.4571259,57.1005369,24.4899223,19.6209096,83.8878918,5.610312,37.452842,17.1544036,1.9765569,2.0145639,19.5794152,77.7987083,76.9243445,74.3355753,18.3238276,58.068774,25.9516153,60.1650541,29.53149,56.2708786,23.8113705,19.224298,83.578744,5.5938338,37.6908514,17.3170732,1.8264667,1.8742307,18.8844052,78.0483857,76.9820776,73.7827751,18.7955663,57.5366694,25.8977905,61.2383278,30.1453746,56.2772766,23.184502,18.6424848,83.2049935,5.6268047,37.9151141\r\n86,0,0,0,0,0,0,1,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,0.9714108,0.9703976,8.3165137,59.8798005,62.4507936,57.8534281,31.5193095,9.5755288,15.8839894,67.9062545,44.1386824,35.1504118,12.6916427,7.8567362,43.7521723,4.684734,39.1352683,6.6177524,1.0724531,1.0739789,8.1399788,59.5254595,61.5907649,58.0963927,30.8269889,9.710417,16.810554,66.6610081,43.767218,34.6880628,12.8822514,7.9794321,44.0807127,4.5087187,38.4475968,6.9322413,1.1944769,1.2037506,8.2753679,60.5732112,62.4245118,59.2980495,30.28145,10.5099282,16.3583379,66.2839668,43.687395,34.6750554,13.218949,8.197378,43.7903945,4.6835736,38.0102752\r\n87,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.1540983,3.2146511,31.8884092,60.4045412,63.9222796,54.4137229,21.9514965,18.7496681,19.2136636,60.9765067,30.9758265,50.2005384,39.9660638,32.3570483,65.544301,2.6407066,41.6365386,38.0014982,3.133505,3.2214971,32.198773,61.5595805,64.6130858,53.7709945,21.7747407,18.7791115,20.0974344,61.4924237,30.7304019,50.3004512,40.1398198,32.7362385,64.987381,2.4437487,41.7889893,37.606019,3.2144171,3.3770604,31.5832611,61.5739237,64.5047955,53.6797262,21.6433077,17.9103092,20.7888355,61.4133447,30.1012347,48.6581819,39.382129,31.9622437,64.3808518,2.5517341,42.9174484\r\n88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2704553,1.3637963,17.4300451,80.1733958,75.9757927,82.9818153,15.1825099,56.6570103,21.441119,60.3606532,23.5680029,54.5041267,22.2162435,17.9724575,84.0188407,6.0477763,34.4869201,15.9063653,1.3363802,1.4214889,17.4954266,79.85352,75.8580119,81.4451277,16.5392045,56.6050544,22.2456244,62.2335646,25.6684484,56.1077071,21.7716212,17.3699781,83.4975112,6.8232047,34.0418453,15.1307654,1.339717,1.3830301,17.7175759,80.4629324,75.3979993,80.8843266,17.4928024,56.1221472,20.4586603,64.1356878,27.671204,54.8029819,21.6985032,17.6999244,83.1552847,7.0817686,33.2946642\r\n89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4508694,1.5124191,21.1552791,78.0287546,78.3026654,68.5480475,21.0828272,55.5901288,24.2382994,64.4817815,31.1275294,62.4098231,23.2955249,17.9803319,85.8495469,3.3491586,45.5001967,16.8085321,1.5642501,1.6863683,21.7040688,78.1833312,80.1532771,69.2214795,21.1964196,56.0260578,24.4254119,63.7879129,30.7032675,63.5734094,24.1907927,18.5258587,86.2569383,3.1782442,44.2378233,19.1079897,1.8517562,2.0353627,22.6203315,78.3191089,79.412826,68.2812608,21.3805316,55.0758294,23.0898754,63.2939212,29.4498466,62.9765088,25.4550276,19.5389704,86.0416489,3.113781,41.5855122\r\n90,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,0,0,0,0,0,0,1,1.7730405,1.8469855,19.1283288,66.252201,66.7498143,62.9460546,28.6099083,14.1527725,18.0037978,66.403482,42.1873852,36.4594149,24.2850927,19.074059,48.2418759,4.1919155,30.7936466,19.1466134,1.844285,1.8509623,18.8899176,66.7269753,66.8660571,62.4862254,28.4793679,14.0344615,17.470872,67.0893376,42.102799,36.5225196,23.8384274,18.6567663,49.1292791,3.9044652,31.3742977,19.2222359,1.9642369,1.977549,19.0658933,66.7510112,67.5669676,62.9537821,28.7991803,13.2522306,16.4049955,66.4867381,41.5436896,37.3216892,23.9156563,18.9617958,49.1345429,4.1370747,30.9527055\r\n91,0,0,0,0,0,1,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,0,0.7947958,0.8330027,10.4134545,63.597186,63.8947825,61.4930659,30.4039507,7.8883737,12.2424109,70.339667,45.6710928,40.9960031,14.2276443,10.3948915,47.0721026,5.1169975,36.1646425,10.3284383,0.7809007,0.8147055,10.1954809,63.4847351,64.1365823,61.4764159,30.5662113,8.2693763,12.548296,70.2136098,45.248666,40.7385334,13.8640573,10.0644255,46.8511616,5.1437515,37.1280148,9.8047924,0.7446613,0.7806608,10.0809283,63.7616247,64.1655321,62.363339,30.4616993,8.1956808,12.835978,70.7855483,45.1003652,40.5447541,13.6297207,9.841842,45.765202,5.3725814,37.8565405\r\n92,1,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,0,0,0,0,0,0,6.9230168,7.0607927,44.7787017,63.9961899,65.4119047,55.4788564,20.3359897,12.1847007,17.6552647,59.0288236,27.4590818,53.6508154,53.2448853,46.0997269,62.5849605,2.3998019,42.8013797,42.5087543,7.0576803,7.1726694,44.0644332,63.0315368,64.8359959,53.4332209,21.1408914,11.0816214,17.349098,59.2643308,28.5706301,53.4083735,53.2311335,45.899614,62.6318099,2.2846216,42.0502316,44.7938347,7.0091794,7.102006,46.0615035,62.9169212,65.0551234,54.6554025,22.3552711,11.5759442,18.4854064,60.6344508,29.5267846,51.9620686,54.1717761,46.904301,62.6825874,2.4027521,41.9264269\r\n93,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.2101771,4.5048116,39.6893518,63.9190543,63.1699752,60.915891,20.8239587,6.5408071,13.5792345,57.7021748,30.6859531,46.4245753,48.0894707,40.5944585,50.1251089,3.1571261,33.3250658,36.5302278,4.3172902,4.6077106,39.8023728,63.2346347,63.6000789,60.7426593,22.0683584,6.3486328,14.1385472,58.5953392,31.4477539,47.2863805,47.8725823,40.6200232,50.2726532,3.207936,32.5646431,36.8852772,4.5821836,4.8738189,40.3917131,62.0789233,63.448403,62.2973745,22.0640267,6.4980977,13.936095,59.1551649,31.0873387,46.101811,48.7640009,41.5654117,51.1259492,3.1243551,32.3393776\r\n94,0,0,0,0,0,0,0,0,1,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,1.2272881,1.2722182,14.5827297,61.7407589,65.3156389,56.5973881,28.1413498,6.3191508,12.6738896,66.8488828,42.7520143,34.87777,17.3805447,12.9063667,42.4906574,3.0599933,37.9982853,14.6046755,1.3251591,1.407396,13.5677439,62.9241812,65.5160298,55.5884416,29.2218372,6.5391209,13.5116994,67.192293,42.5011688,34.4012951,17.3635121,12.7564658,41.3585227,3.1084883,38.0345179,12.0629413,1.1288037,1.2559839,12.7660567,64.2721213,67.3136427,57.5588793,29.7158336,6.2538787,13.2810572,67.7437681,41.7676167,35.7409238,17.0388755,12.6877021,40.0787026,3.2525163,38.916031\r\n95,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,0,1,0,0,0,0,0,1.2823428,1.2690047,17.1592773,64.850906,67.4790174,51.2842603,27.2690586,11.425284,17.0059974,68.9801129,39.0377418,41.7479479,21.9242024,17.2875138,57.9259534,4.5180958,35.7575636,13.7010788,1.1993274,1.1866061,16.5543483,64.9954822,67.2347436,51.9445962,27.6651526,11.267713,16.067409,69.426829,39.3570922,40.8431049,21.5306997,16.5795473,57.7706512,4.284829,36.9113405,12.4194276,1.1487183,1.1257574,16.4500967,65.1243626,66.6234014,50.5982477,28.5022748,11.3126555,16.7413957,70.1210598,40.231881,40.3373873,20.9963068,15.9300266,57.6935135,4.1987436,36.1439495\r\n96,0,0,0,0,0,0,0,0,1,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,4.538664,4.6129904,41.5861641,65.0326589,66.5669038,56.5165526,19.4663051,8.9146569,17.887445,59.4655575,28.9866382,49.6369618,48.473038,42.1545962,59.0804732,2.3956736,37.1033969,32.8702789,4.4647926,4.5040526,41.5675203,64.9156587,65.9210729,56.4184348,19.0962267,9.6279775,18.3386907,59.637485,29.0755922,49.2333478,48.7214999,42.3076977,59.2759392,2.3761722,37.0634618,33.7973771,4.6316238,4.6740624,42.7585775,64.3554865,65.4909904,56.7102113,18.840279,8.9240099,17.1655258,58.5840941,28.9170666,49.1165214,49.2613961,42.8068517,59.3134362,2.5065362,36.952179\r\n97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.4906187,0.518412,9.8369172,78.0917543,76.705208,78.6541412,22.252502,32.3342978,20.5499352,62.5734158,35.5009701,46.9655732,11.5339811,7.935143,63.4973548,6.4586178,35.8802,6.2080537,0.5049925,0.5514438,9.4184639,77.9182734,77.4905452,79.0156506,22.0121015,32.8778981,20.4625564,61.4062304,34.9253574,45.9470064,11.9231369,8.2544794,62.4220139,6.631737,36.2913141,5.3225806,0.4698703,0.5169515,8.5593129,78.3006435,78.3892511,79.3262047,22.8290546,32.6324977,20.5241296,60.8064659,36.7333996,46.618851,11.9005395,8.1235421,60.8762581,6.5190543,36.7665385\r\n98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1851576,1.2776823,10.1778708,76.0464953,74.2748673,80.5442854,24.6687321,13.6851515,15.4155349,68.5844861,38.518032,46.5356652,14.2197081,10.1414135,47.9213464,10.2081013,35.0945436,5.3191238,0.945537,1.0225192,10.3069667,76.9880028,74.3434829,81.1620304,23.5748922,13.3572799,16.2169949,68.0921625,38.2445469,46.3745464,14.4002406,10.47543,47.5927274,9.6561614,34.6371271,4.5342915,1.0052646,1.0136249,10.4733241,77.3629999,75.3828182,81.1218442,23.8053063,12.310712,15.2803248,67.5027956,38.653067,48.0032136,14.6374604,10.200243,46.9103696,9.8548274,33.3890188\r\n99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0068871,2.0633757,22.2066038,74.0443718,69.6757842,71.5386694,27.5824486,12.9813793,14.2018756,64.6831619,31.9861392,47.5395729,27.5045213,22.6034076,56.3202078,3.9810142,30.0442567,13.4156871,2.0391391,2.1238991,22.0877421,73.6764361,70.3262484,72.2913988,27.6282318,14.3465216,14.5235075,62.7944955,32.4019024,47.9483149,28.0352229,23.0210765,56.8326145,4.2685144,30.6668829,13.0525669,2.3863835,2.4670901,23.0725186,73.8832472,71.5798382,72.5238091,26.5638319,14.5405586,15.3320008,60.9389739,31.0510466,49.4857691,30.0136167,24.4267562,58.163825,4.0143026,31.3241266\r\n100,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,1,0,0,0,0,0,0,1.3468134,1.4111883,15.0468428,65.4664547,65.9216815,56.2289077,23.7728623,13.3379442,18.8302687,68.9624841,39.3964227,40.5888611,19.8481142,15.2504112,60.4031182,2.9700845,34.4017746,15.079292,1.23196,1.2576306,15.847724,66.6806049,67.370541,57.4889239,23.6068703,14.8004543,18.6256928,68.6424905,39.2481206,40.7800995,20.0041083,15.3672574,60.2115846,2.9987188,34.4492198,12.8980255,1.1994107,1.2252505,15.4771273,66.6615009,68.6214989,58.3661625,24.2757301,14.0499243,18.2978752,68.761954,38.5305963,41.3460867,19.7151215,14.760536,59.197411,2.8418755,35.5319849\r\n101,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.5196948,3.6174321,30.2706119,65.8739472,62.8264921,63.4328883,30.2679016,4.6106405,13.2027153,63.6260433,33.8012404,42.7142395,34.9924243,28.8224252,44.0947548,2.9219981,30.3589295,23.4981,3.5711862,3.6371688,29.5534993,65.7785859,62.634442,63.9561637,28.2602451,4.7862608,12.8613582,62.5444598,33.8007797,41.5199822,34.6494955,28.3817464,44.8706946,2.8220427,31.0058707,25.0877515,3.3036981,3.3685792,29.182469,66.4149258,62.3637694,63.6595812,26.6559997,4.2709708,13.2716553,62.0343992,33.3841381,41.2560007,34.9185536,28.7383427,45.1941333,3.1598271,31.3507229\r\n102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6290544,1.5992238,23.7669724,71.1307551,73.5043749,66.7596254,24.3376155,11.1651341,20.4077581,64.8575154,36.2140056,42.675908,27.5379107,22.6597223,49.6654935,5.2759888,29.6747485,16.4286086,1.6124755,1.5959683,23.6301617,69.8729366,72.4509671,65.9868062,25.4770877,11.0293636,20.8783256,64.8112405,37.0068547,41.8916862,27.2199594,22.3385978,49.2152945,5.5623055,28.8965918,16.935655,1.6671096,1.6584178,23.2146596,68.5312063,71.7539965,65.7041672,25.7407772,10.9976427,21.0781544,64.7556321,37.113128,42.6115754,27.6895454,22.7900731,49.4115443,5.3909548,28.9415909\r\n103,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,0,0,1,0,0,0,0,1.1075074,1.1145433,11.7847075,70.5343548,71.0650664,61.0176512,28.8852504,16.5244568,18.1381043,67.2631689,42.5755981,44.8104118,16.0232868,11.2658631,57.4686088,4.5611165,40.9286143,7.2887848,1.145817,1.1592259,11.8036542,71.1828039,71.5400788,61.4154476,28.4883337,16.4218303,18.3904642,66.2621324,42.5609384,45.2019611,16.1932016,11.3690084,57.4050054,4.5612842,40.7437233,6.9521352,1.1062293,1.1182723,11.5968028,70.9632788,71.6373085,61.5292809,28.7887553,15.9469506,18.0042306,66.6361793,43.1706776,45.239401,16.1619205,11.341481,56.8395892,4.7162693,41.1434279\r\n104,0,0,0,0,0,0,0,1,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,1.9688386,2.0227323,26.8102215,70.8785055,69.8024407,66.75155,19.6275585,55.1967405,24.3725306,59.0425283,28.8220174,52.7727012,32.0239259,26.9171227,82.8405361,4.7794488,35.8640299,26.9271746,1.8460976,1.8727192,25.428302,70.9644779,69.586073,66.8317053,19.4910388,55.0602579,23.6298594,59.0006159,29.4784971,50.9300899,31.0384847,25.6938751,82.9440595,4.7693737,35.1271142,27.167493,1.8052692,1.838616,24.3738182,71.0635207,69.411217,67.3258517,19.6180801,55.1020792,23.5321272,59.2539456,29.4455409,51.3531527,30.2639788,25.0484066,83.0874869,4.9163938,35.5742945\r\n105,0,0,0,0,0,0,0,1,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,1.1610611,1.1576658,15.0750418,68.3636107,68.9168185,67.7351193,27.1345146,47.0280663,18.8333977,63.3242839,36.3984727,46.3473484,18.4174405,14.3990912,76.3374423,6.0447903,36.4973874,15.476173,1.1760019,1.1958006,14.8962703,68.8552938,68.5632831,66.67715,26.9276335,46.2697789,19.1568808,63.0811415,36.8857335,45.2711785,18.2489408,14.2788619,76.6833794,6.1242607,35.9318815,14.7429187,1.2401986,1.2677025,14.6175584,68.4654835,68.7495353,66.2657447,26.2583349,45.660304,19.5366013,62.7971632,36.8910505,45.269566,17.837783,14.0050321,76.4330683,6.0982895,35.682925\r\n106,0,0,1,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,0,0,0,0,3.3599265,3.4762789,35.0596544,80.5297782,78.9973932,74.5442185,12.9524695,63.1293562,29.4725135,56.6560605,24.6641738,64.3191052,40.9423727,34.4675264,87.8639379,4.4843925,40.401143,25.3752974,3.3400212,3.4488156,34.5465353,80.8516121,79.2985106,73.9147086,13.3604561,62.710324,29.7347749,56.8687634,24.7297384,63.4829948,40.3208396,34.0693416,87.8893024,4.5733559,40.3209157,24.8983217,3.1697234,3.2802254,34.17606,80.9704806,79.3402257,74.0006641,13.9185887,62.2421905,29.0054747,57.5076823,25.550183,63.4330693,39.619769,33.4478124,87.411404,4.7652151,40.0733309\r\n107,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,0,0,0,0,0,0,1,1.4422985,1.4936746,19.5165876,68.0554472,67.0507311,57.7755546,29.2836579,13.2237473,15.7174276,68.7730027,42.0995681,38.3510521,22.7662789,18.2648354,48.9851237,4.0798441,30.2310203,13.2478234,1.18387,1.2177195,19.5830803,66.8526629,65.2378619,57.8924672,29.7837844,13.2689311,15.6269097,69.3754974,42.3838961,38.9488382,22.5786848,18.2074149,48.7671569,4.5963461,30.9957781,13.8968075,1.1872713,1.201277,18.7997967,67.0732651,65.0694422,58.9007022,30.4322317,12.9228793,15.7040616,70.0159855,42.9472533,39.2224414,22.0647159,17.934583,49.1867122,4.789964,30.8184509\r\n108,0,0,0,0,0,0,0,1,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,1.3586609,1.3493412,10.2205494,70.400872,71.6050712,67.5336519,29.3761201,11.1906904,16.481483,65.7122843,42.1534454,40.9473954,15.6265442,10.2560825,44.4578634,7.2461849,37.7250647,6.3741835,1.3101687,1.2776861,10.3394245,70.2601742,72.1825574,66.9891319,28.8379797,10.7648918,16.2866267,65.2987045,41.7974938,40.9337038,15.4635181,10.1730393,43.8612701,7.301459,37.5605984,6.3114908,1.3063333,1.2972217,10.7571709,69.5747595,71.1417881,67.1386074,28.5868748,10.4289532,15.5476574,65.7188758,41.3337018,41.969331,15.6083874,10.2003752,43.7710717,7.2306051,37.1977012\r\n109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5905265,1.5982373,23.4636588,69.4089128,72.3566013,66.161849,25.496679,11.6904064,21.0346739,65.5148229,37.4610659,42.3969293,28.2606218,23.4070762,49.815419,5.2984089,29.5257542,15.2891616,1.7145123,1.7090192,23.2763595,69.6558934,72.8506567,65.2564391,26.3391102,10.8998628,20.8142735,65.4882089,37.3516408,42.4711701,28.4629209,23.2150573,50.1380208,5.628643,29.9275372,15.4461661,1.8093841,1.8149527,23.9811394,69.1634143,72.3744046,64.8855387,27.0951202,10.4889251,20.13179,65.457781,37.7536723,42.3789933,28.7065369,23.7297527,50.3061256,5.262672,30.7031192\r\n110,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,0,1,0,0,0,0,0,1.7286746,1.6478044,17.6793076,60.6863924,65.2244573,53.6412573,30.3477991,8.1466777,16.0317737,69.4771915,39.7960532,40.8564287,23.410155,17.5702973,50.013048,3.4823711,39.1646815,17.131992,1.6574986,1.5827432,17.876009,61.250991,65.0820913,52.3731768,29.6997601,7.961037,16.0883575,68.3410045,38.3394022,41.9172409,24.2237492,18.1150264,49.8803104,3.3864462,38.3582002,16.6256363,1.631748,1.6368752,17.5179808,60.7919098,64.4266532,52.5147386,29.4978656,7.7263895,15.5333024,68.3467928,38.4706175,41.753757,24.0538501,18.0040869,49.2900521,3.2761876,37.6696127\r\n111,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,0,1,0,0,0,0,0,2.3218016,2.3740615,25.7322072,64.5044598,67.3692485,55.1285722,29.4734256,8.0044988,13.6609729,67.305304,36.9030138,44.1868473,30.2887333,24.1022953,51.7167418,2.6853771,37.0904357,16.0694168,2.7399763,2.7647276,26.7337946,64.2160252,68.3393352,56.1558991,29.3273515,7.8320424,14.3108059,66.6979075,35.3091155,45.1867382,32.0163263,25.1499631,52.0887136,2.6146286,36.8801218,16.7086513,2.955766,2.9898729,27.5234094,64.96896,68.8352621,55.8854658,29.0819106,7.8521322,14.4876299,65.8196852,34.3405468,46.4457679,32.6850924,25.9297988,52.3353784,2.4900096,37.068142\r\n112,0,0,0,1,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,0,0,0,2.8381468,2.9268386,30.9593084,74.1030315,72.6155323,71.6831047,21.5433764,32.36382,13.7481884,62.0452566,32.6167756,51.6249291,37.6990323,31.0290742,71.7732442,5.2706467,34.4874933,17.7867985,3.2089222,3.2805299,31.4758154,73.7292427,72.5305891,71.9968944,21.3176617,32.6472634,15.0176342,61.0191202,32.6890651,51.1404236,38.2930504,31.5920457,71.9401482,5.2580236,33.495412,18.7639303,3.7183399,3.7687522,32.81237,75.3634882,74.5538941,72.4017906,20.1926982,31.794837,15.4873884,60.027594,31.7196258,52.3063556,39.6687839,32.7541748,72.4000854,5.3272794,34.0372564\r\n113,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,1,0,0,0,0,0,0,0,0,1.3668553,1.3980521,13.3912367,68.9656017,72.2954991,67.3042443,20.5189518,63.5179066,28.1098965,66.575245,35.8943026,45.5091665,16.2464201,12.9117242,84.8620831,4.8582651,33.3192588,10.2508573,1.4051965,1.4493759,13.4787286,70.8756742,72.4864122,66.8144946,20.3491056,63.968268,27.9244776,66.8056219,35.9631544,45.3063097,16.5860453,13.1197356,84.5911259,4.8554324,34.6472719,10.5369985,1.3921454,1.4758636,13.2600734,69.9418279,71.4790397,66.340642,20.5170788,61.8355446,27.4657564,66.3460234,35.6321311,44.5945969,16.2785931,13.1740519,84.7706891,4.9396169,33.0716983\r\n114,0,0,0,0,0,0,1,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,4.6563836,4.7574305,33.7927911,67.5326215,70.1332515,59.1556953,23.1378159,16.8695578,16.5826069,60.5357994,30.3135225,51.6421637,42.3950632,34.3725354,64.1024708,3.5520368,38.7377436,26.977447,4.6749972,4.76206,35.3896623,66.7994732,68.8246375,59.2717659,22.80486,16.8003671,16.4663183,60.474465,30.4307215,52.441031,43.6043754,35.7155762,64.5192546,3.5004054,38.4325242,27.7080356,4.9284012,5.0018548,36.2661329,67.5793135,69.2393983,59.656428,21.4127051,18.2273978,16.6531905,61.0897502,30.2786407,52.8903307,44.3677873,36.7209401,64.8090261,3.5741207,38.2787023\r\n115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.6017729,1.5901784,15.5548571,61.8733334,63.9693873,48.2029906,29.6933069,5.904883,17.2932768,69.3193746,42.5926779,37.1919364,20.8362755,15.6945352,46.7699294,3.5605086,40.5790441,12.5000767,1.7572565,1.7334267,15.9887595,62.8985225,65.7781722,49.4863496,30.3169236,6.8781559,17.6406079,71.1303776,43.5728005,37.2145783,21.3485283,16.230897,46.2105534,3.4936918,40.7500459,11.7788829,1.7297519,1.7177965,15.9691473,61.8419235,65.0972167,49.4985464,32.0115088,7.084548,17.7651738,72.184701,44.0255511,35.8629389,21.7242326,16.5144555,45.2550159,3.3557871,39.9697823\r\n116,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,0,0,0,0,1,0,0,1.1751063,1.2659559,13.8200221,75.8745209,76.1145032,70.0853627,21.2919101,66.7208336,24.7062913,68.3733506,34.0380522,48.6083259,17.767005,13.8938328,86.5791553,5.7610491,33.4996002,7.6693885,1.0786989,1.1460224,13.2555355,76.2778265,75.3976793,70.0610411,21.0314033,66.8329256,26.048255,67.7904087,33.1430043,48.1401473,17.4806609,13.3925302,87.0411936,5.4365549,34.4449831,7.6271632,1.0338817,1.0844121,13.8023679,76.8916123,75.7410798,71.8673848,20.6562464,67.5211146,26.7040159,68.1220689,33.4309558,48.6055384,17.2904604,13.1281642,87.5034092,5.2624826,34.3964556\r\n117,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,0,0,0,0,1,0,0,1.06441,1.1431293,16.827341,76.9282527,77.5534367,66.8340422,19.168176,64.259277,27.3420318,67.5809144,31.8797415,52.6403332,20.7263786,16.7600017,87.5993658,5.8740376,33.2674519,11.4078685,1.0022626,1.0614795,16.5348071,76.8128761,77.0931976,67.4468498,19.2573923,64.3948371,28.1013334,67.7711969,32.3112438,51.8729818,20.4827833,16.5937668,87.0753388,5.7747937,33.6372722,10.5892647,1.0164255,1.0862737,15.6365211,76.2276854,76.2781844,68.0359005,19.3229425,64.0299329,28.8804686,67.2263819,32.4372325,51.6955214,20.0591756,16.0012656,86.8724224,5.8646244,34.2800558\r\n118,0,0,1,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,0,0,0,0,1.0049078,1.0071105,9.6693354,75.8775666,75.9686596,72.4015229,24.1425886,29.564173,20.7464175,65.2642621,36.8860653,49.3122221,14.229414,9.4198296,62.1489988,6.8700666,39.9230701,7.748538,1.0880783,1.1012759,9.9639595,76.0947441,75.8895781,72.6086753,24.1179013,28.7695303,20.7354358,65.5369259,37.5837556,49.3172604,14.4202871,9.7428114,62.0066126,7.1486733,39.2592556,7.8134284,1.1206069,1.1457631,9.9127112,76.1878832,75.7602696,72.9860503,24.1670186,28.223448,20.2297661,65.8688072,38.4411667,49.0911926,14.012945,9.6666943,61.2352391,7.1992642,39.8223945\r\n119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1291398,1.1932942,16.1701245,62.8892563,66.2181416,50.8259523,28.2243291,15.4238156,16.3156405,69.425565,39.0074247,39.139946,20.3095813,15.7728929,56.1348559,4.2715063,35.6967914,13.2550469,0.9702789,1.0559968,16.1360687,62.9885456,65.9924967,51.2555821,27.6072703,15.6326756,17.0254506,69.0531052,38.5675058,38.3078053,20.0584761,15.5886245,55.9463009,3.9726395,34.6763641,12.8116432,0.9883822,1.0590755,15.5600637,63.7787246,67.4532377,52.353001,27.7727292,15.7077016,16.6147058,68.6777139,39.0244312,38.3436266,19.3639365,15.0694401,55.9459294,3.8875896,33.9668692\r\n120,0,0,0,0,0,0,0,0,1,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,1.3073016,1.3463249,15.7081859,57.6258153,60.4468303,55.1536644,28.3342048,5.8604922,10.7870661,66.1098986,41.9558753,36.628228,18.7997772,14.4760306,46.0539487,3.9093159,34.1274641,17.421995,1.4297836,1.4584721,15.8325355,57.4279945,58.7858435,54.3279542,27.5440517,6.2033246,11.1241017,65.8727298,43.3223659,34.1819802,18.125937,13.6955698,45.4254365,4.0372652,34.6869195,17.3727906,1.4778829,1.498373,15.3126977,59.030574,59.2110891,55.8417039,27.1276977,5.8443091,11.1078593,66.5377346,43.2560003,34.0485765,17.6019166,13.2416688,44.8794988,3.8104037,35.2917745\r\n121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8518048,1.8352809,11.9651657,75.1492848,74.3317169,79.8697146,25.9730764,7.7729841,13.0218139,67.9398058,37.6876708,44.1322757,17.0673104,11.9973925,46.219005,9.0350272,36.3172332,7.4107011,1.6968907,1.6805806,11.7494427,75.0668279,73.4047243,80.3513975,26.3854627,7.8406961,13.1061799,66.5983733,36.920306,42.7004894,17.1558,12.106181,46.5985807,8.6222189,37.3400426,7.5220973,1.7549461,1.7519881,12.1809158,75.1403272,73.572514,81.0903288,26.3816987,7.2870591,13.6080263,65.7429679,37.6405015,44.5862054,17.2666719,12.1555568,46.6431331,8.658282,36.7337067\r\n122,0,0,1,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,0,0,0,0,1.1911269,1.2104057,9.90668,76.2748055,75.7777253,73.1730018,24.3907431,27.7810255,20.0361903,66.3272573,38.7994345,49.3108398,13.9966668,9.7095136,60.0945393,7.0559034,39.5941249,6.8223166,1.0850423,1.1139602,9.8642667,76.7470427,75.7595574,73.4669157,24.7074761,27.1363678,20.3234793,66.9773551,39.5726669,49.5620239,14.2067686,9.7689512,59.0630427,7.0036456,38.9799098,6.7120047,1.0595937,1.0854346,9.435292,76.2821499,75.1265199,73.2682844,24.4861265,26.0635618,20.340269,66.9313714,39.2925157,49.5168823,13.8694494,9.4525921,58.9178026,7.0347714,38.4483753\r\n123,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,1,0,0,0,0,0,0,0,0,0.8821168,0.9078941,14.4210486,69.1966363,70.1068127,65.4146912,24.6242002,58.618292,24.539677,72.0795229,35.9350985,45.9045044,17.2686486,13.3319508,83.2213345,4.2981751,35.1681154,8.151979,0.9322878,0.9575584,14.9791795,70.0441661,70.9088175,66.7702048,24.0801511,59.5437625,25.4304235,71.6828653,35.2104323,46.450593,17.3956231,13.3797505,83.5947752,4.1734634,34.9917973,6.9286936,1.0395989,1.0648403,14.9348515,70.4217463,70.6992794,67.1908321,23.412477,60.8529762,26.3007896,71.5157698,35.1075548,48.2017733,17.3542121,13.3875658,84.2290832,4.1905231,34.6980675\r\n124,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5327675,1.6530562,11.3430448,62.6059308,64.8606382,57.5823215,31.4851209,4.2574387,16.9118707,71.8548616,45.6453175,39.5181919,17.0025107,11.6288808,33.7365623,3.9137924,34.9906323,6.6929187,1.2920857,1.3714508,11.2903205,61.1751899,64.074262,58.8660519,31.3292361,4.4354994,15.8264547,69.9124945,45.5763932,36.4105042,16.6945481,11.3389039,34.4812171,3.633969,34.8948699,7.7235835,1.0692653,1.1497806,11.3486474,61.5018716,63.3965377,59.2648515,31.9041238,3.9220037,15.481594,69.2477448,46.2907661,36.5931672,16.3428883,10.8530291,34.0454244,4.392184,34.6082276\r\n125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8472336,0.7937691,14.6868475,76.6925452,74.9541768,75.6062342,18.9312363,58.7570166,24.6293718,59.8185588,29.3617655,55.6294852,17.5255368,14.5078978,83.0625926,6.0328584,31.650939,13.0850935,0.7615676,0.7187227,14.2387532,76.8093907,75.6740694,77.3521203,19.2438721,59.0273359,25.0926767,59.4039922,29.7422009,56.1033262,16.8217847,14.0297911,82.6867844,6.4114556,31.8181744,12.4160933,0.7617015,0.7181284,13.2615042,77.6963113,77.3722787,78.5363964,19.9669664,59.2398473,24.9036144,58.8128239,29.9795578,56.5255571,15.7982064,13.3822928,82.8314753,6.0830095,31.9784482\r\n126,0,0,0,0,0,1,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,0,0.8250197,0.8266027,8.5914527,63.0786545,65.360608,62.9307483,29.9730026,5.9355644,12.0431853,70.0654546,45.2749361,39.5196218,12.9287384,8.818744,40.4362668,5.3399533,40.2897084,7.9505338,0.9029278,0.88801,8.2071964,62.5907161,65.6562378,63.2885127,29.6801337,5.7169621,12.2724744,69.9574858,45.2997437,40.0936872,12.6890249,8.7213648,40.4548294,5.2978582,41.0500724,7.4970511,0.896881,0.8755048,8.1213045,62.6561136,65.8995302,63.0481378,29.863707,5.7146237,11.8804074,70.1705791,45.3240764,39.8869899,12.5018387,8.5330015,40.1063323,5.450812,40.6279489\r\n127,0,1,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,0,0,0,0,0,1.1895498,1.1816861,10.7283931,63.8402106,64.4163192,63.7264191,27.8207004,5.7956463,12.4968298,68.3761386,41.390458,39.4904604,14.6503292,9.6844806,41.1566075,5.1899904,38.5433269,5.7990024,1.2204595,1.2323648,10.7039259,63.6268045,64.2362242,63.395563,27.6705584,5.5618552,12.0702777,67.9140578,42.3068187,38.1993415,14.2341227,9.3499507,41.1546102,5.1419999,38.722421,6.2829473,1.1778534,1.158394,10.5866534,63.4811599,64.5809064,62.0708055,27.2420465,5.3414957,11.7781174,67.849424,41.3823854,38.056067,14.0548495,9.3160746,40.1452417,5.5081675,38.6994151\r\n128,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.8745225,4.9658814,49.4753452,67.3102341,65.622145,58.1266152,19.4033891,12.8300602,16.1845046,57.5565149,29.5125234,50.9096025,55.9081779,50.0369904,61.2570525,2.3224291,39.1458514,37.883626,4.8827004,4.9136591,48.1893596,67.2167065,65.7515955,59.173157,18.4877751,12.5247564,16.8432784,57.3097227,28.6012701,51.8961511,55.3005344,48.8435623,61.6326216,2.4024904,38.8282662,39.2644186,4.8443234,4.9114401,48.2265582,67.3040133,65.1864676,60.3124176,19.1761642,12.1055744,16.8727332,56.3133627,28.7390295,52.3730405,54.8843881,48.6981636,61.9055594,2.5043847,38.6257674\r\n129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.0804353,1.0849878,11.8896706,68.5456737,71.5945033,60.6283844,25.6294731,26.978155,21.3279892,69.3074753,39.4578798,41.6744519,14.7679794,10.5873816,67.8925666,3.4251019,37.0570229,9.8802038,1.0943727,1.0990207,11.9818619,67.5896371,69.7574341,61.4396126,25.7489105,25.9845965,21.3266877,69.714228,39.8400712,41.4424309,15.0298243,10.5986415,67.081476,3.6127569,36.6268614,9.8101013,0.8912895,0.9240126,11.9215719,67.5590334,69.8995458,61.7168995,26.0839653,24.8388662,20.7263173,69.3297005,39.5870009,41.5961304,15.0610066,10.7150469,66.9446176,3.7293802,37.5336792\r\n130,0,0,0,0,0,0,0,1,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,2.351783,2.3856473,30.4126152,72.5577409,71.3692302,68.8270044,19.8854321,54.0356506,22.5372554,58.9732158,29.0799381,54.6429749,34.9950486,29.9604033,83.4257075,4.6729644,36.0883641,26.6431925,2.3231139,2.351899,29.373498,72.1587583,71.3747015,67.974381,20.5653569,54.121123,23.0768904,58.9614715,29.4673925,54.176273,34.1370911,28.9854058,83.5132327,4.6465367,35.7890035,26.6259221,2.1752579,2.2116963,28.2944498,71.0505274,70.0974332,67.2239587,19.9172778,54.6416647,23.8243658,58.8884771,29.7599763,52.9931612,33.3070473,28.118456,83.3027204,4.645441,35.4069702\r\n131,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,1,0,0,0,0,0,0,1.6597244,1.6594618,16.4379073,66.2838694,67.999321,61.9076986,29.4324181,9.9706848,16.7772888,68.2865379,40.2443842,44.9266404,22.3982532,16.4275969,54.7889359,3.3871539,32.0719923,11.3738764,1.9288791,1.9425023,18.1226363,65.1299334,66.8713795,60.2805371,30.2923753,10.1289692,16.0051546,67.5189785,39.2676089,43.9506769,24.5094778,18.0673554,55.0208647,3.2507684,33.2973458,12.0934959,2.3118432,2.3778175,20.7775054,63.4323793,65.3544026,58.4066536,31.5117871,9.0850541,14.9362565,66.2523936,39.1001505,43.8012784,26.8935622,20.0223618,55.9734787,2.9767855,32.8103397\r\n132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2.4089295,2.4945797,30.5231885,66.6981091,68.847462,59.8183699,25.9771414,11.3510571,15.5177414,65.9718633,34.7640727,49.0945465,36.434972,30.3507839,56.7194985,2.7692958,35.3545116,21.9927491,2.6250315,2.7312708,31.9694395,67.9535398,69.6890915,61.4203078,25.4904833,12.1172618,15.8290078,66.394121,34.8235135,50.5080058,37.7139812,31.6026581,57.3071751,2.8919639,35.2387547,22.4829982,2.9325595,3.0335352,33.3800237,68.3486172,70.0391288,60.7709534,25.6944791,11.7281251,15.5727028,65.3017608,33.7138419,51.7420332,39.2307812,32.9864397,57.4282235,2.9222101,35.2408077\r\n133,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,0,0,0,1,0,0,0,1.4031807,1.4683844,14.4570031,74.4985084,73.6644459,71.1881437,25.2190998,23.0019959,18.7231468,65.9662804,35.6985586,47.6671737,19.0892842,13.8999565,65.1086679,4.9347289,33.8952432,14.6984184,1.3654174,1.431463,14.6137952,74.0157792,73.6533406,70.8239691,25.6025025,23.2667327,19.9659484,66.6821353,36.7577171,46.5190269,19.5275787,14.4251968,65.8967765,4.9120292,34.5483092,14.0117993,1.3014829,1.3556956,15.073289,74.7631438,75.0058844,72.2475052,25.8174334,24.6746871,20.119049,66.7763803,37.7251202,47.6021663,19.7227098,14.7931652,66.2438257,5.0087476,34.8096692\r\n134,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.7886135,2.8478096,34.5999325,72.346046,73.9873227,71.6926817,14.5194182,23.3868507,18.2000681,61.3177929,22.0235781,56.3528419,39.3065206,34.562195,69.2774145,2.4322379,36.9503546,21.6321244,3.0598279,3.1814033,36.1007304,71.9041371,73.0511094,72.313371,13.8884047,23.4567227,18.2835471,61.1936888,21.425289,56.7973366,41.6005964,36.1913892,70.3093509,2.327283,38.3379888,23.2051282,3.1098037,3.2314969,37.6009148,70.919156,69.5917253,72.5690062,13.6182681,22.9028458,19.3180366,60.2574112,21.1388971,54.7434068,42.4882629,37.1898055,70,2.6773296,38.1118881\r\n135,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,0,0,0,1,0,0,0,0.9534905,0.9929429,12.2840221,74.2600859,75.3719649,69.4951746,25.6376133,23.3950435,20.9201661,66.8133746,37.6850112,42.5322806,15.873381,12.1097436,65.9949174,3.9032716,35.7007944,9.0281832,1.0089261,1.0406633,11.9562049,74.2611951,74.6803595,68.417817,26.9003833,23.7015734,20.8530224,67.8460256,38.5175492,42.5323969,15.7094804,11.8651875,65.2406185,4.2967135,35.2610419,9.6395707,1.0175793,1.0551986,11.9422843,73.0652234,74.5877058,66.5366113,26.5206578,22.3722931,20.6191856,67.9731007,38.1193272,41.8087816,15.6795909,11.7464224,65.4355708,4.2421852,34.4923893\r\n136,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.2306338,2.2306338,19.9376427,72.9911981,72.860462,73.3096805,17.7412184,22.5804467,24.203102,67.1339391,28.8084459,47.6342054,23.9443872,19.6189495,69.4228635,4.6474359,37.9649891,30.2631579,2.1623363,2.1623363,20.7491421,72.0374442,72.4396891,74.3539269,19.4628293,22.3879756,24.5885334,68.3032907,30.0193028,46.3163004,23.6445783,19.6285141,69.3513514,4.2497377,37.4730022,27.393617,2.2747543,2.2271353,20.5509372,72.5820017,74.6109846,73.7295018,19.2421559,24.6592905,26.3397917,68.0578255,30.5957038,47.2616322,23.4031936,19.4111776,68.5363248,4.6161826,38.6792453\r\n137,0,0,0,0,0,1,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,0,0.9169774,0.9055383,8.2487932,62.041451,65.9290507,62.8826618,29.9426671,5.6642616,11.91444,69.5113374,45.7056443,39.713599,12.8237413,8.6058931,40.0977781,5.1974879,40.3489368,7.2014085,0.9381975,0.9196157,8.5376424,62.2125618,65.9165755,63.2174483,30.0809831,5.4572277,12.0908777,69.9029629,45.986987,39.2166475,12.7507226,8.5733737,39.8211189,5.315328,39.7810073,7.5505387,0.9543585,0.9531056,8.5604964,63.6928275,66.524687,63.4949036,29.2005322,5.4058795,11.7094534,69.5010587,45.8011086,39.5567798,12.2757717,8.1711808,40.2826608,5.3248354,38.867488\r\n138,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,1,0,0,0,0,0,0,0,0,1.1857595,1.195282,15.1371506,71.6925571,74.0139371,66.5982536,20.5517933,61.8598269,28.9300514,67.7291287,35.0588407,45.9307495,18.3032933,14.6705521,83.6035916,5.1244828,33.347507,10.0706322,1.1039512,1.1137044,14.6020208,70.8565378,72.6808983,67.3346514,21.4522132,62.0109577,28.4766644,67.9299313,36.0329679,46.3446435,17.4508149,13.9319861,83.9399966,4.9791577,32.1057375,9.9221365,1.3364266,1.3678823,14.1836201,70.2170513,73.3593066,66.322843,21.1105759,62.3020528,27.8952647,67.544811,36.0832574,46.1131335,17.2831521,13.7073128,84.2161905,4.8170355,33.0303807\r\n139,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,1,0,0,0,0,0,0,0,1.4853516,1.5446856,18.9235176,65.9124952,67.5784532,62.1158321,26.0451095,12.6333025,15.8412909,68.3765083,37.5475475,42.1947525,22.5317382,18.1452785,52.8760025,5.2711259,34.4010779,19.1635384,1.580481,1.6038886,18.5560459,66.0120701,68.5085305,63.498591,26.4275501,12.0161982,16.0483847,67.9349274,37.6331667,41.66983,22.7982573,18.2400119,53.0778209,5.1892871,35.2340123,19.1032093,1.6645209,1.6853253,19.0388047,67.0032915,69.1419096,63.4850164,26.7227392,12.1282039,15.9862443,67.490748,37.9021706,40.7677902,23.0709696,18.3399067,52.6118223,5.1716644,35.3776489\r\n140,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5589804,1.5568777,12.5849246,62.6288079,64.9745213,60.7924369,31.2032173,1.6733289,11.3850666,66.9365771,42.2180695,33.3172094,17.2220297,12.1486901,29.6679733,4.1355199,31.8362495,13.0348867,1.5807759,1.5139686,12.6490697,61.1453437,61.1147089,58.4521302,30.9106563,1.6871743,9.8564399,68.3941011,43.4301769,30.6466891,17.2495288,12.5707263,28.3842772,4.6793897,32.1071924,12.7498392,1.5997516,1.5305744,12.9882409,61.3670967,60.9535542,57.9103392,32.0836457,1.5906114,10.0544791,69.3393778,43.7256998,30.4593118,17.8544705,12.92054,27.6530841,4.7147281,31.8044613\r\n141,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8895157,1.9401741,11.8454694,55.5072337,55.3843666,56.6659158,34.3965526,2.5283256,11.4092875,68.7436559,47.661398,23.7820504,15.8414831,10.8602511,21.9239867,5.6279538,32.2095366,10.946752,1.861211,1.9114253,12.1380004,57.0201484,58.0145506,58.00443,34.9957018,2.3905683,11.1043746,68.0796222,46.8740735,24.5324576,15.4356013,10.5491002,22.2612717,5.5866666,33.0013768,11.3496933,1.6869525,1.7374711,11.637114,59.1153658,59.6434302,59.1721105,34.9362192,2.5996466,10.5039889,68.023584,46.5989121,26.0473033,14.9784858,10.3608448,23.3167623,5.696505,32.9573196\r\n142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3881152,1.4304584,16.073983,73.6957593,75.9913295,66.0062586,23.4763504,56.1246723,28.9150014,68.7295934,37.0008273,47.1499411,20.089822,15.7084304,82.745463,4.5478109,41.1240655,10.9354633,1.2931858,1.3375647,16.0841762,75.5662248,78.7034516,66.8554228,22.5751611,55.5836021,26.8402178,67.7731275,35.0393614,48.6409077,19.8293562,15.4666253,83.5502081,4.4674388,41.8302974,12.4976757,1.2568361,1.3034062,15.8711333,76.142235,79.6135733,64.8930333,21.8598758,54.343173,26.8793815,66.313782,34.1705573,48.685604,20.0285897,15.5420684,83.6115892,4.5426266,40.4733334\r\n143,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8607285,1.8564191,26.9394575,68.0965193,69.958143,61.5320799,21.0662496,15.6676316,18.7952592,61.5504202,30.318521,47.9022969,31.722232,26.8512919,63.3564276,3.4184456,34.0012002,30.1101198,1.7195142,1.7490991,25.8995542,67.2869823,69.511841,61.6544252,20.863996,14.865792,18.4151403,61.0003118,29.7300769,46.4331944,30.4356565,25.7082418,62.6516613,3.2292357,33.2848992,29.3262311,1.6935536,1.7163311,23.9692503,67.2134922,68.7970596,62.0425059,21.1202446,14.9703555,18.6721013,61.6242081,30.2145382,46.4053949,28.6599859,23.94747,61.8419756,3.0736985,32.7371343\r\n144,0,0,1,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,0,0,0,0,1.9303422,1.9648808,21.3865061,77.5742707,76.1164354,74.4910388,16.7880739,59.3727524,25.640384,59.7682871,27.9341107,57.6331652,26.9053592,21.9381382,84.6581087,5.3308455,36.4510019,18.7819017,1.9565139,2.003108,20.8350904,77.887568,76.4087558,73.9070188,17.1891805,59.8773564,26.1020879,60.4719984,28.2169434,57.8140326,26.0680108,21.1692647,84.45428,5.4135014,36.5661654,18.1926436,1.9204407,1.9654497,20.4556771,77.7888353,76.6871028,73.5621485,17.735901,59.2404631,26.0161499,60.5010317,28.6541009,57.668208,25.2764296,20.4937893,84.3062412,5.5514015,37.1493874\r\n145,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,0,0,0,0,1,0,0,0.811015,0.8451364,15.2045052,75.929587,75.3852852,70.3005983,18.904954,66.6545647,29.5680931,66.3343944,32.0161572,49.6024517,18.6206298,15.0335826,86.0052837,5.6945678,33.2218883,7.854024,0.7159628,0.7429544,15.528818,77.8748899,76.166571,72.4529538,18.923804,67.5183025,29.9939726,66.867107,32.1558494,51.2389829,19.049711,15.2657765,86.170775,6.0531342,32.7092925,7.8271266,0.7909307,0.8235895,14.5687883,77.3525525,75.3654766,72.6869368,18.8300731,67.5260474,29.3294965,66.8835221,31.7954896,51.3377332,18.5027632,14.4008639,86.2064114,5.7789383,32.9855471\r\n146,0,0,0,0,0,0,1,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,1.158665,1.2723167,8.7034916,59.1272408,62.69246,58.7009861,28.7394315,9.5658004,14.1354793,68.22854,40.4919111,37.4983691,13.3986915,8.7202838,50.3334228,4.0270227,38.1078083,9.615461,1.1443529,1.2052172,8.9138864,59.9588482,63.3739763,58.6475908,28.6193867,9.9768339,15.5044793,67.8675987,40.6422869,38.5536607,12.9795656,8.485929,49.4785923,4.2018836,38.7964637,9.1512737,1.1347045,1.2036073,9.6937275,61.2537329,64.2883387,58.4237676,28.5138034,10.5397425,15.7568007,67.9824342,40.7043401,38.7771237,12.9840329,8.5925635,48.793788,4.3390992,39.0180849\r\n147,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,0,0,0,0,1,0,0,1.0303942,1.0800205,15.5950476,76.0033619,76.5478387,68.4008339,19.8816681,64.6375682,28.5112984,67.1479905,32.7972671,51.2097424,19.8777335,15.8332926,85.9739094,6.0383849,34.4355052,10.790833,1.0595685,1.1035239,15.8264801,76.7944046,77.6848371,69.1614231,19.6871253,65.6998657,29.7692927,66.7780294,32.3119971,51.552628,19.8640585,15.4421325,86.035174,5.8554439,35.2567929,10.9294734,1.1255017,1.1688339,15.9443889,76.043282,77.4326505,69.5799789,20.609421,65.7207628,29.4402504,67.374008,33.3891106,51.1749343,20.3657041,15.7314473,85.9869394,5.7825557,35.1895723\r\n148,1,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,0,0,0,0,0,0,1.3279798,1.2575624,10.3673902,52.6775973,58.5721081,49.8306771,31.7082447,5.5402592,13.9395957,72.3644809,44.3810447,34.7914915,16.8399269,11.0630772,41.7285536,4.3304832,40.8854282,10.1987776,1.4558612,1.4124791,9.6918861,53.734285,60.5479959,51.4936162,31.1085898,5.098036,15.0038024,72.8496164,43.8383212,37.7049846,16.2061164,11.0248936,42.1429845,3.8724025,40.6812173,8.1577004,1.6830762,1.6392425,9.8883723,54.2624817,59.9960072,52.5127374,32.170178,5.3333249,14.1206024,72.5863177,43.5884072,36.4451485,15.7633388,10.6352533,40.9347898,4.1614684,42.2619083\r\n149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.1990738,1.2136403,18.9286053,77.4938161,75.1985953,73.4002019,23.8163829,40.4012544,18.0944682,64.5455639,30.7873593,54.2608156,23.0447436,18.6495779,75.2311728,13.2411883,38.5996191,11.3448345,1.201812,1.2198148,19.6333282,77.3236341,74.9359968,73.9868618,23.5572386,42.9555923,18.1488327,64.405809,30.3549696,55.8814573,23.8623224,19.298806,76.9326769,13.2709708,38.7871593,11.5841569,1.2739773,1.2776023,20.0493108,77.4611977,75.0493266,74.5445965,22.5748637,45.6093131,18.8237996,64.1330297,29.7940269,57.0307953,24.0184012,19.4539853,78.461647,13.1477833,38.556836\r\n150,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,1,0,0,0,0,0,0,1.1619564,1.1777071,18.8455372,66.4687927,69.7589264,57.4383877,22.0963167,16.76316,18.820994,67.4816953,35.8362854,45.4310065,22.9687608,18.6505851,63.9791489,2.5689996,35.3666151,17.1784804,1.2757268,1.3209142,17.9349486,67.0501228,68.5892432,59.8156557,23.2951263,15.72788,18.8248846,68.0032241,36.3279546,44.8548767,22.223909,17.8485381,63.3535618,2.6777333,35.2316845,16.5624792,1.3141306,1.3518937,17.3153417,66.1910171,67.8420825,59.3024855,23.9295065,16.1108604,19.2404455,68.2076879,36.9099718,44.6796552,21.9603691,17.66737,63.5748161,2.9366012,36.1093837\r\n151,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5763959,1.5763959,16.4674513,63.6170323,71.6733444,71.3660335,25.3742366,5.4170029,15.384646,73.0363249,38.4438007,32.8389895,20.0104493,15.7262278,39.399093,5.0443459,35.3004292,13.0057803,1.7042735,1.7042735,17.1060546,63.9963097,71.7355748,69.3023855,25.5640436,4.1506345,17.6231344,71.3617197,35.8507477,34.7917487,20.8288482,16.0925727,40.2941176,4.9828179,35.0225225,14.244186,1.9905956,2.0114943,16.3962199,67.65847,73.3257618,66.8166111,24.4854195,4.039311,17.849547,69.4069892,32.9762073,36.7591283,19.9231614,15.6421515,40.8711217,5.4385965,36.7276888\r\n152,0,0,0,0,1,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,0,0,1.2236893,1.2849037,16.8845952,72.9847995,71.0539236,75.3921806,17.4580492,46.9408616,21.5757257,62.8723509,28.6491312,51.8536917,20.234375,16.5364583,81.8899782,5.270198,38.326226,22.5555556,1.3455567,1.3577281,16.5983536,71.3881817,69.1698886,75.3854913,18.5008525,43.7194373,20.2889337,62.6576698,29.1006885,49.5904261,19.6734059,15.7335407,80.7441608,5.1834131,38.9479277,24.0139211,1.1475965,1.1599605,16.8647025,74.0218156,72.0786254,76.9508177,19.2147984,43.1434352,19.6701855,63.2695144,29.7050375,52.1280283,19.8053656,15.8074698,80.6460519,5.3667745,39.1657638\r\n153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3028968,1.3569423,20.2746418,67.4968397,69.1566755,54.3364026,29.4524973,12.119077,15.1802512,67.4637302,37.7204159,40.686431,24.0386891,19.151224,51.336282,3.0330625,39.8192816,11.6176799,1.4918202,1.5133079,21.1918663,65.9778529,68.3048855,53.845234,29.5867497,12.4111721,15.3195263,67.0753878,37.7568702,40.2011985,25.4133167,20.3903639,51.5360164,3.0320069,41.231138,13.9639724,1.7221551,1.7435439,22.0989074,65.1654247,68.2582105,54.6322498,29.0709777,12.438621,15.3800663,67.1088216,38.3303212,40.3734939,26.0672423,21.1370181,51.436022,3.2691328,40.5028161\r\n154,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.2191671,4.2543524,40.9400298,67.8436422,68.4017594,63.6022495,21.3617403,10.6286975,18.3681357,59.0809195,30.4113838,49.2592658,45.8755237,40.1152489,56.3111744,2.8050295,36.5043949,26.7830309,4.5663542,4.5357842,41.3105399,66.5772226,67.1928812,62.8795033,20.2035529,10.2053487,17.8292613,59.1703878,30.0006997,49.1976218,47.1346004,41.0134247,56.7484125,2.693605,36.2252924,30.1714191,4.5606078,4.5304905,41.8698939,65.3145078,66.2416234,60.8844323,19.7191558,10.0386978,17.7268071,59.6214669,29.5504642,48.5820107,47.6756546,41.3873314,57.3368145,2.5730189,37.8045346\r\n155,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3412408,1.435216,14.4015909,57.209838,60.6847344,56.9683744,29.9144272,3.8136411,11.5445719,69.4199033,42.1374386,37.5810282,18.2442792,12.8634638,35.6845756,4.3411831,44.6717248,10.1595724,1.2605803,1.4041747,14.1590645,55.7108187,58.465289,56.2348204,30.5215619,4.1902854,11.1988274,69.3464185,41.4595717,35.0962549,17.9411817,12.5213012,34.7424408,4.014962,44.8608256,9.000184,1.3544493,1.4552657,13.6636844,55.0797076,59.3036496,56.8032171,31.8891883,4.3559852,11.1955246,70.1513244,42.5426071,34.9385448,18.3686487,12.1780725,34.9788695,4.1877107,44.6022512\r\n156,0,0,0,0,0,0,0,1,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.944251,0.9839791,11.4116018,69.7580935,69.8300765,68.8620307,28.0318306,43.2385195,20.1253673,63.7119378,39.5721697,44.5175558,14.9138983,10.9573543,73.5275083,7.0166179,36.3930886,10.2959173,1.0877244,1.0995072,10.9179926,68.9884829,69.6355424,69.5718964,27.7477,40.9747433,19.7206987,64.0308981,40.1011589,44.8125179,14.4970994,10.5649779,72.2053311,6.9350051,35.6650845,10.4562598,1.1018768,1.1137792,10.9853064,69.3293133,69.2068494,69.652036,28.0928811,38.4378273,19.8580018,65.0523958,40.1268519,43.5194404,14.227469,10.3177866,71.6589759,6.9954875,36.3932252\r\n157,0,0,0,0,0,0,1,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,1.0131789,1.0264698,8.1260395,64.0768185,65.7770157,60.2006937,29.4093993,9.1539262,16.2345007,67.2848076,41.2455659,39.353682,12.9356601,7.9801148,44.3305473,4.4691634,38.9430364,6.6177485,1.0508779,1.0575673,8.2498303,62.9226578,64.3318645,60.0136586,30.601886,8.9219119,15.7381101,68.5497826,42.9394814,37.6593443,12.8735421,8.0231102,44.1346246,4.6671431,37.7611306,6.851411,1.0092504,1.0082391,8.4425323,61.1680585,63.427051,58.5166549,30.2537755,9.332785,15.9334141,68.8305387,43.1140759,35.6665943,12.8634434,8.0253809,43.9710396,4.5862482,38.7270623\r\n158,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,1,0,0,0,0,0,0,0,0,1.0514823,1.063607,14.7997133,71.0416516,72.1143378,66.321386,22.3396429,61.1241519,27.6297045,71.6167477,34.6535646,49.8512846,17.3275059,13.5913171,84.4793936,4.1829949,35.1189579,7.0445912,1.066689,1.0789843,15.949985,73.7152663,73.9787074,67.8385937,21.5454381,61.9208971,27.8518326,71.837364,34.6037726,51.9058941,18.7065899,14.7297478,84.7694976,3.7814832,34.2728768,7.8595002,1.1388163,1.1388163,15.7644792,74.2547825,74.3792501,67.9863694,22.1251871,62.491059,27.7865857,71.1959621,33.7329749,51.8406991,19.0126902,14.6907231,84.2160906,4.1064416,33.986639\r\n159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.2415282,1.2636247,17.0128633,72.2235042,72.6912933,59.2510905,21.0670564,30.0439334,22.6848065,66.0543476,33.8043436,48.3132212,21.0122988,16.8684918,73.7084141,2.8507995,34.2462941,17.5798953,1.1710381,1.2161889,16.0537351,72.4280674,72.6784526,58.8053796,22.1572073,30.7024937,22.4616973,66.8797154,34.8024839,48.3748676,20.8921955,16.5569893,73.7509983,2.7366188,34.2479722,16.6927821,1.1576899,1.1837677,15.5932174,71.9078684,72.934608,59.8916058,22.3223231,30.8392298,21.4764894,67.0381675,34.7305911,47.7630554,20.6062222,16.3236869,73.2341722,3.0875913,34.0785282\r\n160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.0957732,1.1225928,11.9309319,78.4458186,77.9050181,72.3919049,21.5261684,27.4119825,22.4858009,66.1024044,32.4898336,50.1393321,16.2564596,12.2117074,64.6090231,14.7345486,39.0195999,7.7515377,1.0160644,1.050324,11.9332698,79.1673343,77.7572954,73.1880628,21.6971481,28.267297,21.692279,65.594483,32.5212321,50.316814,15.915547,12.0263802,64.9376199,14.8170065,38.9330049,8.3169177,1.0451952,1.0787778,12.0431901,78.2470405,77.3064307,72.5420579,21.8045741,28.6318992,20.9438852,65.6378324,32.1555461,49.6983602,15.8088901,12.0062348,65.4881322,14.6464613,39.0380639\r\n161,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7830706,1.7980133,19.9608327,58.9897538,60.110603,61.4011558,30.1636246,6.9189591,12.3371152,64.6906367,41.6192507,34.4484799,25.5739875,20.5681056,41.7391169,4.4253178,31.5726518,25.5027039,1.9235771,1.9881685,19.4084743,58.8985485,59.2417179,61.336263,30.9375363,6.6865882,11.6785718,64.4320817,41.1547515,32.7830607,25.4172548,20.2027315,42.010041,4.5240707,32.0141819,26.7483553,1.723038,1.7884415,18.2447927,58.9956249,59.4722522,61.7235948,32.9637165,5.6339044,11.6968095,64.7942527,42.0551,31.6457907,24.2863186,19.5287742,41.2358658,4.5064875,32.071159\r\n162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6116174,0.5796583,9.2611299,78.276336,77.1273323,78.4935976,22.4972284,47.1195964,23.1002237,62.2161313,30.850485,50.6827061,12.4870702,8.9710496,75.2363394,6.0550964,33.2101443,7.0997,0.6872561,0.654704,8.6753028,79.6903521,78.1722462,79.7287539,23.2353514,47.3906733,23.0793907,63.1149928,32.0712445,49.6762032,12.5990498,8.848393,74.8130315,5.9492354,33.5294225,5.9451238,0.5785309,0.5785309,8.348358,80.0023341,79.0375051,80.6675756,21.6403576,47.6236202,23.2079474,62.4195101,31.9341329,49.2917641,12.5065883,8.5044801,74.2187471,6.1034085,33.9935799\r\n163,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,0,0,0,0,0,0,1,1.4158262,1.4176457,17.7964133,66.1074358,67.3068995,61.3361823,30.9175429,12.744155,15.7417086,69.7757342,42.2358643,38.1683199,21.4548746,17.1553006,48.9307972,4.849112,30.0930342,13.3951918,1.43449,1.4161847,16.974849,65.6733269,67.5881226,60.9287009,30.7413559,13.8561153,16.919822,68.578843,41.8770622,39.565459,21.1626226,16.7088014,49.0077509,4.9239331,29.4336202,12.0252911,1.3983218,1.3754905,16.7920617,66.6153836,68.978538,61.8821253,30.6667041,14.1268142,17.1163717,67.8494814,42.3879091,38.8163295,21.0860612,16.568614,48.6360857,4.628055,28.8473885\r\n164,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.385592,5.6390352,39.8535012,66.8337075,65.7934674,52.8733734,21.3034244,15.270312,20.1638492,60.5775187,28.129486,51.4041575,48.835109,40.7125242,64.4646446,2.8889381,43.3528735,37.3556682,5.2575511,5.4715233,40.0722903,66.4630152,65.4812653,53.9463284,21.7139209,14.5129954,19.5387384,60.8741514,28.4158006,50.4813241,48.8051159,40.6935777,64.119148,2.9190607,44.9499722,38.58133,4.8475578,5.0108926,40.3547061,66.4729146,66.2379633,52.6458862,22.0411402,14.9256161,19.5971194,59.3503059,29.1979218,50.2488875,48.8630788,41.384058,64.4130372,2.7216122,45.4442343\r\n165,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,1,0,0,0,0,0,0,0,0,1.0774495,1.1811175,13.3793884,71.5228459,73.3355874,70.4542565,23.4964292,60.1008764,25.5951537,69.7451413,35.8564383,48.8081131,17.0164053,13.2396505,84.5737521,4.9119949,34.9184685,9.2156357,1.0219417,1.0877044,13.9641301,71.1333191,71.6912767,69.1623922,23.8743168,59.6901088,24.6351499,70.215961,35.9909488,46.2513609,17.4626462,13.6005172,83.79588,4.8774765,35.1480373,10.1922097,1.0084903,1.069161,13.4526425,70.8680655,71.018929,70.0063256,24.3775902,58.7113676,23.8434528,70.352824,35.8461032,44.7810532,17.3958817,13.062834,84.0550235,4.6396108,35.8363499\r\n166,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,0,0,1,0,0,0,0,1.4151544,1.4538998,15.3294643,71.8124142,72.1128768,61.508285,30.6716887,14.7041722,16.5893932,66.8572924,41.9447724,48.9102135,19.6081491,14.0642182,55.645284,4.5072353,38.7100433,10.1824352,1.4446443,1.4953796,15.4103419,72.3714328,72.6019202,62.2355293,29.9178491,14.9259069,16.6373058,66.7541158,41.6919983,49.7834138,20.2698872,14.5369862,56.1280775,4.3788848,38.4256952,11.1908571,1.7202305,1.7639226,16.2751418,72.5132107,72.1109505,62.567743,29.2648895,15.5092816,17.1147425,66.4745188,41.8276604,50.6347459,21.3452504,15.4645842,55.9879513,4.2206637,38.3238331\r\n167,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,0,0,1,0,0,0,0,2.5827964,2.6916751,22.0804082,72.066839,71.0941664,64.6882598,28.1160226,15.4583029,15.7232945,63.7908564,38.5722696,51.8398934,27.9692184,21.1149798,57.4649427,4.0495795,38.6500377,19.453459,2.8737065,2.9839524,23.7843778,71.4228529,71.0526112,64.9528436,27.736926,14.8239327,15.0535349,62.618121,37.5015308,52.0125918,30.1967967,22.9412096,57.2953901,3.8782528,39.3042287,20.835381,3.2587317,3.3551156,25.9244658,71.4462364,70.6028502,65.1510022,27.919161,15.0950909,15.2914677,61.8916677,36.8049762,52.2616668,32.8698323,25.37266,57.9802912,3.789173,39.7102588\r\n168,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,0,0,0,0,0,1,0,2.2295184,2.2754107,27.9123034,65.5173529,70.4264096,56.6542481,18.9458011,8.6041309,22.5616272,65.3788574,29.6730476,51.5790441,32.7975582,27.8043926,61.2339276,2.2648055,41.7455906,16.0792684,2.2825738,2.3616223,27.7748553,65.6427221,70.1125895,55.0149255,18.861404,8.010882,21.0323107,64.3659423,30.9477253,50.0056431,33.1367438,28.3483998,59.6586622,2.3674961,41.5055277,16.8161205,2.1966699,2.3266518,27.208502,64.4328386,70.056259,52.6011678,19.2183097,8.2102299,21.775674,63.1170655,30.5396868,48.179487,33.2983018,28.0710496,60.0227326,2.5948979,40.7154484\r\n169,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7749491,0.8566102,9.6983102,78.4253175,78.7715688,73.9749282,21.774657,26.3385157,19.7490271,63.4122005,34.3510122,50.7671471,13.5271945,9.9392297,64.5054655,8.2025696,37.6680232,5.9885954,0.852426,0.9241008,9.735322,78.6256387,79.1136996,73.943683,22.1122576,25.9345869,20.1953341,63.2693346,34.1751921,50.3276866,13.549843,9.9546752,64.6290147,8.189145,38.5018415,6.530217,0.7897984,0.896364,9.1758241,79.0598554,78.8230959,73.3192918,22.4368799,26.111296,20.192963,63.7894389,34.3975316,49.7440861,12.5523598,9.1412274,64.1557309,8.3728547,38.4544254\r\n170,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,0,0,0,0,0,1,0,1.6011456,1.6697759,21.5076039,63.7675529,72.2689071,56.3036532,22.7181316,6.9843315,17.1437354,65.8543234,36.9462651,45.4488763,27.9995172,22.1951396,54.3865506,2.7470625,43.1051923,17.2317027,1.5575464,1.6245347,21.3830209,64.0271372,69.8688688,54.569308,22.7398316,7.8983932,16.7567758,64.1391374,37.1490213,45.3395297,28.1998855,22.5397002,54.1826761,2.6732359,41.8340034,17.1512292,1.7661252,1.7916115,22.0493911,64.1827002,67.9524986,55.4587945,21.9413187,7.7034145,15.4496116,62.7000703,35.6780596,45.559609,27.780725,22.5653294,55.4352084,2.9762107,42.9665715\r\n171,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,1,0,0,0,0,0,0,0,1.6106253,1.6571816,20.5420093,68.6792652,68.766795,64.7911521,27.6151173,11.6430063,14.3932083,68.2102043,37.360196,43.0019991,25.8543209,20.7203593,51.4622377,5.4162572,34.4729935,21.1949625,1.6693325,1.7145124,20.7998483,68.0920667,68.0809816,65.3936817,28.3086149,12.1266047,14.9674834,68.268959,36.5051574,43.7471654,26.18144,20.9657008,51.5408701,5.2150699,34.4292517,21.4197496,1.5484538,1.5678848,20.8761,67.0077282,66.8811829,65.3464735,28.0636596,11.8185878,15.3748048,67.6598479,34.9139375,43.3188708,26.2982442,21.089752,51.2173542,5.0261204,33.8941585\r\n172,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,0,0,0,0,0,1,0,1.9810783,2.10816,26.0263368,66.3246694,72.5563981,53.5043992,18.9564742,8.9891284,22.4098513,63.5583038,31.1418242,47.6748209,32.3412679,27.2554826,60.2055865,2.4559428,39.9544706,18.509619,1.8279935,1.9338434,27.5774658,66.0043227,72.6490337,53.4345615,20.3420404,8.1707667,21.0874028,65.5941226,31.7150779,48.1977849,32.8385574,27.3717968,59.2712916,2.9039388,41.195722,21.1442758,1.9372942,2.0468551,26.6160045,65.7972443,71.8894997,53.2714068,20.9599809,8.3755704,21.2839292,65.6170888,32.4302388,46.6746952,32.0066498,26.25884,58.9451223,3.1036893,42.7753329\r\n173,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,1,0,0,0,0,0,0,1.4516266,1.4899945,17.1409051,66.5256729,66.9287019,58.1799857,23.8705872,16.3284139,18.4282831,68.0844807,37.1917893,45.1333221,21.6357583,17.5089702,63.6292719,2.9793093,36.1669671,16.5637928,1.433121,1.4712003,16.5077811,66.6116772,68.3995538,57.2782984,24.1556787,15.971398,17.1271567,69.235578,37.7177057,45.5109026,21.3283493,17.0596992,63.1048521,2.9231656,36.316121,16.2863037,1.3960586,1.4346214,15.9179581,65.2072136,67.780171,56.6952749,25.5723144,14.9254086,16.6910785,69.3622723,38.2575246,44.7119841,20.8560066,16.8027792,62.5471168,3.172384,36.4174375\r\n174,0,0,0,0,0,0,1,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,4.4229235,4.5289246,40.1873025,67.4022405,68.0414981,57.971087,16.7425961,20.3421938,17.4233657,57.839224,27.262862,52.9867587,46.7774841,39.0931499,68.9976211,2.6925123,37.7162925,37.2741726,4.4672531,4.6301764,39.033539,68.3143712,68.9279294,57.5212243,16.5400704,20.972063,18.6825878,58.2561114,27.132767,53.0415174,46.1127127,38.383715,68.4150778,2.6322454,38.2641448,37.3903829,4.5832904,4.7055439,38.9250208,67.7862775,68.3807544,56.4101514,16.8775216,21.1048556,18.3944136,58.5353999,27.7289917,52.9418593,45.8840051,38.2385545,68.2177394,2.6608777,39.0461149\r\n175,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8784664,1.7961801,23.2537015,80.9070554,75.1745509,71.0891261,24.1789708,60.8460007,25.2080278,64.6571112,35.095976,55.4775619,27.1453121,22.2815269,85.0887479,3.5443087,41.4812016,23.3822777,1.8398573,1.693389,23.601585,80.6654341,76.9714934,69.779169,24.2252617,60.6031612,25.2900027,65.9233416,37.9921703,55.6815035,28.1195614,23.5277001,85.1937096,3.5124426,39.3346307,22.0705957,1.6354869,1.5055339,24.506825,80.0330836,76.8928673,69.2652388,25.5016213,60.9309259,28.0365491,66.2790949,37.6994132,53.5836215,28.6683758,24.2342612,85.2163908,3.6313686,40.1212059\r\n176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.6228869,1.6548904,17.5812538,62.0985313,64.7039137,52.4658673,27.9610552,6.3445393,16.8556764,66.7218154,41.5404092,40.2330994,22.4928936,17.5573136,49.2500898,4.4980541,42.538067,15.0717703,1.6013977,1.6594379,17.7045585,61.8517786,63.9131767,52.4832648,27.7522846,7.0111716,16.1207139,65.8512211,41.0471584,38.7240445,22.7797283,17.6762167,48.7773892,4.5625032,42.5883188,14.3902439,1.5417615,1.6015874,17.5251518,62.0699832,64.9773871,51.1529148,27.8143404,7.0592939,18.0871615,67.2279903,42.1967064,41.1044807,22.0373558,17.4722818,49.1731235,4.1479841,42.0653153\r\n177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1223084,1.2106437,12.4649894,64.7908333,67.0157038,59.9245716,25.9098226,8.5044094,15.7086782,66.7399792,38.0495521,40.0540517,16.0385867,11.9516856,48.1301451,3.7366423,32.3504111,13.9652509,1.0652934,1.1011154,11.9440489,65.2541652,66.7137124,59.8919443,26.3351734,8.2983018,15.3830956,67.0198519,38.4823919,39.8434129,15.6910775,11.6144234,47.1041848,3.5805067,32.3341762,13.0145119,1.0755916,1.1025477,11.8833295,65.384828,66.7970861,59.0057908,27.4968381,8.0352666,16.6935537,67.2474904,39.1817678,39.4653657,15.3759126,11.4235452,46.7108847,3.879825,32.9523418\r\n178,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0523018,2.0708696,21.4266031,65.5936669,69.2278289,55.6258525,28.5197925,13.1763544,15.551649,66.171925,38.1790374,40.058922,26.0084323,21.1090402,51.6410046,3.4587836,39.857072,16.9074762,1.9926452,1.9893841,21.8866284,65.431373,69.8078632,56.4838526,28.8770874,13.0438296,15.6911157,66.5829195,38.519393,39.9134465,26.4937244,21.6955124,51.8689726,3.2732839,40.4388049,17.2964496,2.0847049,2.0524475,22.9283368,64.2098561,68.6320353,55.7743037,28.9502005,12.6328974,15.8618874,66.691492,39.1116848,40.5211989,27.4856643,22.4138188,52.1749246,3.4901077,39.0289096\r\n179,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,1,0,0,0,0,0,0,0,1.7940048,1.7817178,21.5628313,67.9076273,69.2276591,65.7180695,28.4177377,11.7459323,15.495757,66.2876225,35.0860044,45.1517046,27.0693686,21.9250986,51.084985,5.0014865,35.5167111,20.7618084,1.8321299,1.8058932,22.3630114,68.1807989,69.3379846,65.4721266,27.1051368,11.8469332,15.4122907,66.0601629,35.701871,45.5478651,26.8971119,21.9653663,51.1757598,4.9259983,35.7427775,20.8512904,1.8476186,1.8322214,22.329668,69.2843116,69.4239953,64.6241751,26.3556764,11.5996826,15.184978,66.0421254,35.7301163,45.5978704,27.2544074,22.1633385,51.512106,4.8960089,35.6765878\r\n180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.0538333,1.0607036,13.1198062,77.9625675,75.469773,72.8763626,24.8780899,27.2332497,19.9243341,65.7052345,33.1009489,48.8282278,16.1516667,12.3671182,64.2213032,14.2523043,38.5561394,8.4667313,1.05733,1.06423,12.9765456,78.2030624,76.0704016,72.7383335,24.1800997,26.2791975,20.1449264,65.3042851,32.5753408,48.6124785,16.1398263,12.466184,63.7116556,14.0219571,37.4816839,8.9817949,1.0849224,1.096852,13.1300299,78.8509299,77.0353807,72.7559248,23.2499472,26.1581611,20.5718702,65.2046638,32.2339176,48.092832,16.3930952,12.5300715,64.0330681,14.4633989,38.5982986\r\n181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.2840172,1.3121978,14.1390038,77.5339748,75.886875,71.9896646,20.9346987,26.8627625,22.9057671,64.1372938,31.3593523,49.9165352,18.5290266,14.0622698,65.4307136,13.8564879,39.7266488,9.2832478,1.3032475,1.3149989,13.8366025,77.7134437,76.3483109,71.4253464,20.784507,26.0091509,22.5130719,64.0086367,30.9383893,49.9269718,18.264812,13.9076413,65.5354362,13.5883907,40.1493581,9.12008,1.2961499,1.2948787,13.3911087,77.8491352,75.7568661,71.8358894,20.926808,26.2980956,22.0573949,63.6042154,31.3176868,50.4901155,18.0675696,13.6807557,65.2841661,13.6936523,40.4973755\r\n182,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,1,0,0,0,0,0,0,0,1.8244273,1.849203,24.0503196,68.2416842,68.2724815,64.9750809,27.2829315,12.0208802,14.0798138,68.0006833,36.6639964,45.4145044,29.0262163,24.0823976,55.8929156,5.169519,34.8554807,20.5385509,1.8144114,1.8496294,24.2771093,68.034925,68.2521926,64.1144997,27.3820288,11.4700362,13.8013592,67.8435195,36.6945884,45.3486089,29.2104884,24.326466,56.8988914,5.0609681,34.6425488,18.9121905,1.8107692,1.8534741,24.043752,68.7466219,69.205261,64.9039437,27.0850703,11.6570303,13.7730502,68.1021054,36.849149,46.684287,28.9878837,24.1838921,57.4536537,4.7977233,34.979369\r\n183,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,1,0,0,0,0,0,0,0,0,1.0827109,1.123291,16.9703221,71.0420293,75.8938416,62.5672872,17.3555867,62.3172843,31.5718092,66.7157065,32.9270261,48.1413932,19.8237243,16.1296038,84.6545932,3.8561693,34.7647495,10.8541041,1.1272622,1.1685971,16.3740139,70.6899708,75.0951186,63.5243856,16.7970786,62.3952934,28.5486598,66.124379,32.9019428,47.660727,20.0567798,16.1198141,84.1238004,3.7521796,34.3278726,10.3636062,1.1699651,1.2129534,16.4535396,72.5442027,76.5790571,64.2719217,16.5375804,64.4029194,29.6730274,66.818646,32.0626788,49.2098327,19.8588677,15.8097247,84.4282243,3.8229416,34.6809473\r\n184,0,0,1,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,0,0,0,0,3.9611579,4.0797841,36.3362929,82.5786519,79.8923596,76.1836466,12.8290662,62.0785492,27.9791771,54.9857582,23.6850797,65.5407449,43.1713933,36.2663989,87.7532182,5.0499582,39.3926132,21.8813765,4.1239893,4.2228623,37.3587112,82.6372166,79.9127335,75.8939078,12.323503,62.3033302,28.3415498,54.5402886,23.129397,65.6361507,43.9552237,37.1052008,88.0197366,4.9176735,40.4638633,23.2637782,4.0789617,4.172311,37.1041747,83.0649978,80.1385525,75.3517315,11.9603585,63.0493039,28.5934079,54.3167237,22.5774191,66.2945577,43.9499348,36.9726346,87.9739897,4.7181705,41.1890957\r\n185,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5321258,0.5996934,8.9912466,77.5270962,77.1599806,79.1395515,23.2210133,33.448971,19.7221888,65.889525,35.4558917,46.3450266,10.9470819,7.6044615,68.475689,6.165988,36.4976501,4.7697368,0.5605394,0.5871352,8.5962351,77.6945378,75.8967363,77.4741571,22.36256,32.3320011,19.7679741,64.1352902,35.4495854,47.5958348,10.530873,7.2774326,66.7165509,5.7795187,36.6666752,5.1666667,0.64554,0.6727288,9.1920518,76.5274522,75.1797676,77.3781816,22.2234029,32.1582405,19.9671859,63.562581,35.4426432,47.0795444,11.5273514,7.8107243,64.966261,6.329523,35.9020396\r\n186,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,1,0,0,0,0,0,0,0,2.0245172,2.0776777,24.1242233,70.5243267,71.003587,67.7531998,25.7427144,13.7029285,14.8905678,68.9901627,36.2140204,51.0088906,29.0833227,24.0627908,58.2026347,4.8732288,35.1601336,16.282057,2.2153992,2.2622774,25.3050672,70.5275443,71.0060854,68.2251575,25.5920462,13.8814961,14.7616907,68.8273769,35.2878372,50.7784183,29.8755483,24.8973931,58.8746678,4.6840821,34.8294177,17.4532193,2.3528722,2.3810773,25.945305,70.6716575,71.0412043,68.580311,25.8402901,14.5486267,14.3974625,68.4997868,33.6647055,52.0127641,31.0215512,25.5114578,58.5476216,4.7217908,35.2898544\r\n187,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,0,0,0,0,0,1,0,2.7675214,2.9589064,27.1260769,61.4811317,63.5121415,57.1693924,28.4231402,7.7216272,15.211311,65.4938707,35.4704971,44.0113333,32.8761667,26.3714723,52.3726576,3.1764269,41.91672,20.5068746,2.8144103,2.9998495,27.8159244,59.6210058,63.3145635,56.5020443,26.7834101,7.8270576,15.157984,64.2821387,35.1262793,43.3860679,34.0805216,27.5455758,51.8512237,3.2398598,42.0094765,20.7264337,3.0120794,3.1990565,28.9632607,61.2949438,64.1256382,57.1256773,25.4872739,7.5497222,13.9356449,64.0970536,33.0028668,44.5820414,35.7077002,28.6917149,53.2461411,2.5388556,41.2538187\r\n188,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,1,0,0,0,0,0,0,1.0127513,0.9887089,13.5835015,64.0663484,67.9378106,57.1767633,27.216863,16.4854643,20.1000807,70.6950447,40.0221726,40.1659916,16.4254887,12.2075179,56.1445307,3.928681,34.7012513,8.54037,1.0317453,1.0268484,13.5443541,64.3018767,67.7723218,56.6474335,27.1702228,16.4167353,20.3485899,70.8724907,39.993489,40.1139699,16.3281242,12.2031338,56.468867,3.8683757,35.0098652,8.9123813,1.0083206,0.9957401,13.2147075,63.3227913,67.3218929,56.8236249,26.7376027,15.5734818,19.7883047,71.299542,40.1982153,40.8133214,16.6880426,12.1353076,56.6287205,3.8920146,34.0188871\r\n189,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.798586,1.8104618,24.2266504,57.9658578,59.9296489,55.9449958,31.1832824,8.4592938,15.3159456,67.5046152,41.8199405,40.5366611,30.5300576,25.4049786,55.0807778,2.4461793,37.5491661,38.1187741,1.8289694,1.8411193,23.6259683,60.0840435,62.3569026,59.7136168,30.0937523,8.9373099,16.7000164,65.4139633,39.5405714,42.059245,28.8854968,24.1509352,54.1867061,2.2954058,36.9907856,37.2659176,1.5243405,1.5608586,22.5752292,60.9702767,63.0550022,59.1995919,30.0407727,9.037012,16.2484012,65.1722296,39.2452198,41.415532,28.5131807,23.4044373,53.031217,2.493397,38.249964\r\n190,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7433294,1.8656618,20.216195,72.6174843,72.9012106,67.0982714,26.6496008,8.6358149,16.1177676,68.4464987,39.4986138,41.3277276,25.1403412,20.4321431,47.2496386,5.7032323,29.9254094,17.5870214,1.558727,1.6258216,19.979622,72.7142175,72.2947491,67.2171283,25.7911406,9.1429554,16.6878764,68.1118918,38.7654879,41.5406284,25.0180446,20.4178592,48.3429624,5.634333,28.9499557,17.4830118,1.4676136,1.5513014,20.2205863,71.7829132,71.4639766,67.0360013,26.5916196,8.7558722,16.0755597,68.247941,38.6620511,42.0843832,25.3529303,20.6655743,48.5850513,5.5716328,27.9252334\r\n191,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5166859,1.5524769,13.2642621,51.7568264,55.6018028,50.5830827,35.5202329,6.9670947,15.1068243,71.266545,42.726648,30.8014287,17.1328582,12.0046589,40.3117154,4.2597202,45.4469232,11.4973262,1.6943292,1.801243,12.4036145,52.7748332,55.5374615,51.3282389,35.7697228,6.3712349,14.6759497,71.7873282,43.4121874,32.01509,16.5636988,10.772198,40.424638,4.7755122,46.0833743,10.8938608,1.7052868,1.7776982,12.2134989,51.7591892,53.5918242,52.0236524,37.9013048,5.6677541,15.1084101,73.7203506,45.0260343,30.8442135,16.3799777,10.8287706,39.0025434,4.8076947,45.384648\r\n192,0,0,0,0,0,0,0,0,1,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,4.1622447,4.2655739,39.911471,65.7659424,66.5314754,57.5429157,20.4528052,8.5415198,17.5269112,60.0672689,29.7214571,51.0956135,46.8258954,40.3536108,57.073844,2.3556243,37.8420555,32.5613543,4.1094693,4.1861519,40.0682884,64.8792205,66.4385109,56.7278993,20.3965653,8.3284022,17.4754314,59.8577592,30.0242707,49.9573021,47.2822852,40.7144503,57.3934037,2.3348427,38.098438,32.1004997,4.3235856,4.4098695,41.2449713,65.484558,66.6582199,57.5272007,19.7588107,8.9806399,17.3420973,59.4786852,29.4750893,50.2505931,47.9473405,41.6027501,58.4665544,2.3788843,38.2181701\r\n193,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,0,0,0,0,0,1,0,1.9163572,1.9163572,20.4986743,65.0543437,68.0305467,52.4917152,22.8691465,6.7203552,20.9878524,71.4625957,38.677109,39.6161596,26.5442456,20.8381248,52.8389318,3.1972911,43.9721664,21.7197521,2.2892581,2.2892581,20.6824109,63.9709696,66.7954698,52.6922452,21.8424065,5.8771792,19.2760827,70.8011082,37.8671522,37.3531667,27.2140355,21.3157819,52.927977,3.3548745,42.3139121,20.5296882,2.4723596,2.4723596,20.7426194,61.6598513,65.3583019,54.8461664,22.2016212,6.7597443,19.2571862,70.2195713,38.1274364,39.2971501,27.3163709,21.4223633,53.1284658,3.7687686,42.0672976\r\n194,0,0,0,1,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,0,0,0,2.2828356,2.3736044,34.314204,70.1386295,68.6395069,67.4300159,19.2264878,33.0397091,16.1401171,61.2119151,34.2716859,50.4997044,39.9842287,34.8983289,73.1310985,5.2268713,35.171581,31.4949024,2.0067132,2.1286436,32.3899499,69.2032144,67.0388289,66.7954179,19.388679,32.6533048,16.3065579,61.0189934,34.5757428,49.7673087,37.8732512,32.8826866,72.673088,5.0801526,33.4983975,31.6733765,2.1213535,2.234683,31.2300211,69.5127888,67.9686703,68.0179243,19.2257516,33.1164637,15.8151491,61.0987503,34.9398225,49.533165,36.8834234,31.7592466,72.614322,4.5994651,32.8814838\r\n195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0706381,1.1367179,13.2795371,77.4064575,74.2367033,79.3101816,23.3409541,41.0472286,18.8370381,67.1666341,37.897636,49.9996469,17.0737042,12.9742481,74.6411899,7.820101,36.1060293,8.0180937,0.8816754,0.9488491,12.5955453,76.340753,74.0577724,77.6007988,23.9835421,40.3336156,19.565965,66.8978926,38.9837285,48.4900674,16.5708485,12.5000277,74.2381968,7.959628,36.5056856,7.7840517,1.0206377,1.0883459,11.8367823,76.0235071,74.5349517,77.1922636,23.9052027,40.2784281,20.551741,66.6261486,38.7697814,47.7690546,16.1456626,12.1706468,72.7710622,8.0154305,36.0287482\r\n196,0,0,0,0,0,1,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,0,4.5042755,4.6801376,38.7372117,70.9142623,70.8158264,64.8754928,19.083919,15.6635261,16.2629007,62.006057,32.1655169,56.1345205,44.5499401,38.1002163,65.559303,3.418987,37.852761,33.7794187,4.4185002,4.5872268,38.2214176,70.431301,70.5622417,64.6586936,19.3424795,15.7092463,16.3190108,62.3917496,32.5606528,55.7911433,44.2177702,38.0005053,65.8048599,3.3758402,38.25651,33.6184499,4.1895083,4.3574897,37.9415055,69.8995847,69.9267522,64.3812506,19.5728496,15.7659651,15.9089764,62.8006975,32.7142878,55.2154808,43.6034795,37.480867,65.9258955,3.5051808,38.045682\r\n197,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6171299,1.6171299,19.9542102,78.6047662,76.2129773,63.9712153,18.5406892,61.5781145,26.7012268,64.5939569,33.3024662,56.9072326,26.162189,20.8056108,86.4880441,2.9152966,40.6208838,15.367942,1.8097445,1.8072552,19.8839333,77.1822519,75.5249784,63.3295033,19.6273317,62.4554326,28.4042199,66.1988232,35.7605599,54.5788829,25.9450496,20.6646867,86.2915122,3.0842316,41.7123494,15.3333093,1.7482944,1.7783247,19.6110521,77.1820752,76.8128459,62.9341488,19.8036787,61.9589198,28.0706622,65.6620201,35.4988647,51.5599801,25.7464505,20.7501672,86.0844883,3.0605118,40.2816197\r\n198,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,1,0,0,0,0,0,0,0,0,0.9806097,1.1032266,12.5811962,71.1611428,71.7002302,69.3344151,23.4512916,60.0353885,23.0442232,70.7746378,37.6415037,46.4579931,16.4645438,12.5080921,83.7284719,4.7721146,34.885568,8.4015911,0.9905753,1.1734294,12.6807353,72.0526266,73.7949103,70.4207131,23.3361648,60.765481,24.8510799,69.8778387,36.6766563,47.0770626,16.3134536,12.6143553,83.8065361,4.7689895,34.5540244,8.6693059,1.1099096,1.2129295,12.7210337,71.4706012,73.9152473,71.1756225,23.1610325,60.2412453,25.1586374,68.947506,35.6294883,47.9641678,16.4929395,12.614745,84.1348594,4.7892249,34.9999261\r\n199,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.111727,1.1139173,15.7612283,77.9903747,75.972074,73.8049108,22.0034575,27.1889584,19.8005995,64.6488254,34.5731383,50.8688274,19.5329248,15.6906129,64.533703,14.2007171,40.8995809,8.2309494,1.1565556,1.1587605,16.035926,77.3108066,74.7429774,73.9771758,21.9964332,27.7671857,20.1679712,64.5157281,34.6897848,50.9745884,19.5408166,15.7118195,64.4468859,14.3608577,42.4020342,8.6333783,1.1607145,1.1629138,16.0991259,78.2133051,75.0412908,73.494698,21.9285119,26.9104911,19.4481388,64.8026336,33.9889446,51.3217979,19.844111,15.8824358,64.6125769,13.8701326,41.8719894\r\n200,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,0,0,1,0,0,0,0,1.0128152,1.0317271,11.423941,70.8982435,71.5804487,59.1201299,28.8093499,16.9408919,17.8235336,67.0450297,41.8312139,46.2723004,16.2424388,11.2509342,58.2600291,4.6477503,39.7068075,9.5545684,1.013871,1.0216749,11.3804057,70.8207409,71.2052134,58.9245448,28.6032372,16.6472,17.905172,66.8919565,41.7051011,46.3045835,16.1137572,11.1718696,57.9357046,4.571755,40.0513034,9.2383478,1.0949658,1.0940749,11.326935,69.9914146,70.4536031,58.9521713,28.5321027,15.9783817,16.9773496,67.120612,41.4354167,45.4902001,16.1822589,11.294228,57.5680532,4.5289368,39.6879017\r\n201,0,0,0,0,0,0,0,1,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,1.3161117,1.2975071,11.0204907,68.0136313,68.9377588,69.1222562,30.5055708,15.2020775,17.9318104,66.2628012,42.1233673,38.0372274,15.0458947,10.6549221,49.0944776,7.7448458,42.1204098,6.2499817,1.3268543,1.2966848,10.8361084,68.2794953,68.9903166,69.4448809,30.2961451,15.1575488,17.637535,65.8176079,42.3120839,36.6830112,15.2308834,10.8862932,48.1037596,7.6117858,41.4278176,6.5181321,1.5239385,1.4892724,10.7542907,68.6580962,69.18177,69.0113847,30.1301221,14.4120618,17.2287017,65.3492456,41.721439,36.571311,15.5717461,10.9533193,47.4762144,7.9260432,40.5879342\r\n202,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.0027309,4.9485214,44.9935574,64.7614609,65.7547326,56.0110334,18.0899407,11.476348,18.4945672,59.2203159,28.4387653,52.5483408,52.5571472,46.3434194,65.5294673,2.6116422,43.7937702,39.7060841,4.8295081,4.8403667,44.4845883,64.9695956,65.3437141,56.400264,18.0991407,10.9174587,18.4674619,58.5982452,28.1562581,51.9250514,52.2097158,46.0771153,65.780146,2.8747473,43.189607,39.6625963,4.3704257,4.4526128,44.2987986,62.8785198,63.4474135,55.8065872,18.914303,11.0770916,17.1657216,59.1835758,29.8387392,50.6697031,51.5976618,45.8915943,65.3763851,3.0203734,42.7795006\r\n203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.1229096,1.1092026,12.1972625,69.7201172,72.368881,61.5526327,26.9058827,28.3067945,22.7157167,69.0678391,40.1146167,41.6170583,15.8392715,11.3631808,69.3531532,3.3875628,36.7144464,8.0854682,1.0688538,1.051281,11.8416149,70.5242652,73.0467529,62.6130649,26.8426465,28.4922917,22.8169777,69.4122168,40.2195237,41.8483832,15.4450828,11.0555407,68.9868091,3.4086212,36.5109139,8.6337391,1.0714183,1.0791235,11.8628841,69.2667939,72.1521726,61.1817441,26.0768686,27.4978643,21.9265315,69.3010855,39.5981916,41.2826729,15.3409136,10.8367844,68.403739,3.4117185,37.3015623\r\n204,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,1,0,0,0,0,0,0,0,1.2912987,1.3117623,18.1036536,68.909663,69.6724895,63.6137061,26.8297513,11.8289056,15.7055056,67.017363,39.0710499,42.4086106,22.4053457,17.9035514,51.8326058,5.2423962,35.2153672,17.5199888,1.4206704,1.4360944,18.0962789,67.5505754,68.4824287,62.8278215,26.6256502,11.8322511,15.4272234,67.1533661,38.7915643,41.6521536,22.1165991,17.7892362,51.4644672,4.9630267,34.5849051,18.9497602,1.4514449,1.4912662,18.0894537,67.7304399,68.351967,62.1374878,26.4514505,11.4841533,14.9063986,68.0778828,39.0724867,42.8248487,21.9200639,17.5412636,51.2012267,4.9946949,35.165819\r\n205,0,0,0,0,0,1,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,0,2.2065294,2.2511627,23.9632167,66.6020914,68.3660318,64.4447548,22.6615101,13.9874278,15.2812173,65.1312982,37.4674079,50.037601,28.7227713,23.5700799,61.9634097,3.8574908,36.0937491,25.8522737,2.1475083,2.2029365,23.1793356,66.322143,68.3702506,64.3183903,23.2295145,13.8018484,15.1564247,65.4533034,38.2587272,49.5545571,27.8433987,22.6911732,61.6078084,4.0789742,36.1695317,26.1556108,2.0958949,2.1301572,22.8907966,66.1922381,67.927165,63.6548263,23.4374669,13.4519383,15.2036509,65.6565855,38.5913289,48.9149346,27.6235522,22.4476305,60.873032,4.1545333,35.7598256\r\n206,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.255089,1.1929147,13.764153,80.1066608,78.0430957,84.5433939,21.0927816,47.9708733,23.6735685,65.7045164,34.8678355,54.0832476,19.1503221,15.2220213,80.1004498,7.3749339,34.2717146,13.1107278,1.1673197,1.1058704,13.3985118,79.1665906,78.0908651,83.5281169,21.7171074,48.2331835,21.4395181,65.9852086,33.9634171,53.8565216,18.4398477,14.6130895,78.3160627,7.2215025,34.0529356,12.2532895,0.9907566,0.9301761,13.0965025,79.5385653,78.9851832,82.5176876,22.50312,47.5349401,22.1344989,66.0036533,34.5524817,53.9238618,18.2891333,14.5608676,76.892137,7.0982382,35.0256655\r\n207,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.3785607,1.4040307,18.1020793,64.8641419,68.0673731,54.8888553,27.8220052,10.0080093,18.4770488,68.5716363,39.7595844,39.4135638,22.8233679,17.9342178,48.70987,3.5967443,35.5724399,15.6585795,1.3909398,1.420541,18.0323363,65.2102774,68.0486388,54.6171581,27.8859711,10.0405934,18.5315969,68.6358083,39.3881498,38.456886,22.8564809,17.847459,49.1044695,3.513515,34.7943031,14.8666647,1.4792503,1.5106877,18.2393778,65.2798691,67.307277,55.0949228,28.0798393,10.1675582,18.4770675,68.3018032,39.1538078,38.3164226,23.1258658,17.9595296,48.9800981,3.3201891,34.5001079\r\n208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8107354,0.8564418,8.7154275,81.2779453,80.9793689,77.8752584,22.1483661,27.9918848,20.5511806,65.628005,34.4713852,49.5769909,12.8438586,8.9306456,65.5085374,8.8053977,36.8357577,7.8587735,0.6756302,0.7218065,8.2568684,80.6534488,80.3178288,76.755092,22.1428272,27.9058558,20.3552891,65.9590737,35.1017912,49.0711592,12.2013307,8.323539,65.0984195,8.3852163,36.1762387,8.086564,0.6419021,0.6806445,7.9230735,81.2140337,81.1300276,77.4151999,22.9293151,27.5903891,19.9300523,65.7260291,35.6667198,49.9722725,11.9454603,8.0789557,64.7810214,9.1947137,35.3310927\r\n209,0,0,0,1,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,0,0,0,1.5465722,1.5997091,12.3152504,67.0960311,67.3732492,68.1342165,30.3512846,4.8453818,12.9601254,70.3354263,46.7164968,33.9237111,16.8891852,12.316571,36.2714792,6.2795712,33.8114169,8.7559867,1.6257978,1.6321234,11.6549171,67.1930615,67.6493013,69.8738507,30.0020718,4.5913172,13.1641886,70.7795267,47.6769592,32.9102768,17.1491418,12.2209449,35.3706379,6.5850004,34.3265355,9.073788,1.7455258,1.7520461,12.2065743,65.8026631,65.857734,68.5217603,29.5628718,4.2407272,12.3169098,70.3819392,47.283758,33.8216078,17.8488287,12.8152059,35.5398335,7.3010163,31.6082387\r\n210,0,0,0,1,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,0,0,0,3.8367561,4.1171919,42.5727222,71.1487644,69.8054692,70.6250706,16.9787982,37.2383775,17.7702977,59.9015886,30.7362589,56.163791,48.1717741,41.8667548,75.0910983,4.6270092,33.810089,32.0836202,3.9792983,4.2069649,41.8265935,71.2732898,70.5853033,71.4583648,16.9638818,38.0441477,17.2925982,60.2018961,30.6690025,56.6789076,47.6829282,41.3224124,75.1816722,4.5618071,34.5847164,31.603119,4.0430115,4.274141,41.3318966,70.6187182,69.2531624,71.5028549,17.3602012,36.7304143,17.83248,60.6650516,30.7767175,56.666882,47.883424,41.2685685,74.7235839,4.8240111,35.0870636\r\n211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.0074054,1.0367867,12.1729463,78.6707231,77.564883,71.9689192,22.746284,29.0034027,21.3001909,66.0761433,32.4405031,49.951869,15.8629068,12.1371006,65.8514537,14.664597,38.6995314,8.8090427,1.1024973,1.1548824,12.3019135,78.6256946,77.4131482,72.0642658,23.3058086,28.7711337,21.8345176,65.4278909,32.5072372,49.3484663,15.7154082,12.0204401,65.6310197,14.6028951,38.8727397,8.9658341,1.0489627,1.1065384,12.5547013,78.7250813,77.7352539,72.1259764,23.2026237,27.9775279,21.414649,64.9575085,32.0573116,50.5670396,15.7602913,12.0841562,65.5105479,14.6114869,38.4555539\r\n212,0,0,0,0,1,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,0,0,1.0731735,1.1226784,9.6307912,73.7738998,72.3764916,77.2604021,22.520372,13.2396939,16.0457215,63.2388979,36.5580114,42.780752,14.5127119,10.2048023,53.3008252,5.9234731,36.3987635,7.2265625,0.9610245,1.0127843,9.3455485,73.4927705,72.4622396,77.9952203,23.4795062,11.8723812,15.949816,63.1203201,36.1195082,45.2924582,13.6363636,9.571323,52.3566379,5.8846154,35.2419355,7.0850202,1.0776811,1.1513772,8.8871806,72.3281312,71.2769929,79.5820865,24.9212577,11.0953939,15.4265661,65.0231581,37.8293313,43.4643518,13.4909091,9.2727273,50.8164852,6.4920273,36.9767442\r\n213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.9349966,3.0233075,37.6882608,71.2283932,72.1884784,62.5307599,17.8295281,15.4344956,18.6652916,57.5989862,25.6617301,54.5674101,42.6757009,36.9605253,63.0487591,2.7607466,32.6639074,26.6128771,2.9937744,3.092818,38.2793998,70.7032263,72.0819212,62.5077357,17.4305908,16.3674287,18.4835519,57.8863683,25.6785198,54.2324575,43.3416172,37.430392,64.0735881,2.6579196,32.6431867,27.8101043,3.0812239,3.1807029,38.6361893,70.956236,71.8781673,62.3976603,17.5315745,16.965096,19.0653361,58.2624314,25.4043757,54.6685864,43.3642253,37.7091198,64.806649,2.6757797,33.2804821\r\n214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6810608,1.6810608,18.531207,65.4386983,69.2002205,55.5583993,31.0766733,10.2962132,15.8366162,68.102265,40.0268162,39.3127491,21.7881234,17.2006092,49.7209415,3.0857754,37.0862103,15.7243927,1.588475,1.588475,18.2125656,65.7696674,69.3000621,56.412407,30.901675,10.6223027,14.6518164,67.6198327,38.7247248,39.9331959,21.8400351,17.4750343,49.9448799,3.0779995,38.4211565,14.6551775,1.4144959,1.4062616,19.1758519,66.6590306,68.8429104,55.8376283,31.3494561,10.6752755,14.6192377,66.9129472,37.804948,41.974137,22.4019573,18.0223666,49.8680602,2.8546292,38.825083\r\n215,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2884149,1.4072235,15.0259367,59.579867,62.8329683,55.4560672,28.3452383,3.6691212,14.0927624,66.8037812,39.4089017,39.5232788,19.4846464,14.4019564,36.5492895,3.9664458,43.2732067,9.3743605,1.1537702,1.270417,14.1401718,57.9734711,61.4577564,54.2569248,28.7925502,3.5899419,12.1853339,67.2041021,39.412647,37.9115818,18.8012792,13.559284,35.5201974,3.7906229,44.2941395,10.1317676,1.2268608,1.3445509,13.7193901,60.1645608,63.4672767,54.7376335,28.0812885,3.6048901,11.9264071,67.9464404,39.9366364,38.0216736,18.4252063,13.1990715,35.565935,4.2788036,44.1294613\r\n216,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,0,0,0,0,0,0,1,1.7057899,1.7400567,18.4762931,67.7026312,69.0539179,58.4642557,28.3352716,14.0835808,16.0189858,67.3499361,40.911286,37.3998359,22.004462,17.6371642,49.1857122,3.9900654,30.4794669,14.1853853,1.5676861,1.5954159,19.2614345,67.8462264,68.5419472,59.3309848,28.3844051,14.147378,16.8810657,67.259674,40.7211451,38.4764051,22.6083458,18.2067203,49.0162504,3.9065611,30.0740834,14.6647922,1.5734603,1.6002253,19.1623929,68.4313261,68.4459771,59.5528682,28.0251239,14.24901,16.7257727,67.3996796,41.6559137,39.2456975,22.7844765,18.2310187,48.901636,4.2225787,29.2974718\r\n217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.6295224,1.7281748,14.5905582,61.2106331,64.2129804,48.0853147,32.161354,6.3183006,16.2285055,68.7622905,46.0274315,36.5163608,19.8825535,14.930085,46.1920149,4.3744966,38.9726783,12.2000049,1.5570544,1.6518974,14.4165942,61.7347612,64.2307363,48.4812967,32.4169638,6.7165194,16.7855473,69.3825784,46.7721847,35.7046911,19.723197,14.7126371,46.5957237,4.3601189,38.9449704,11.9433295,1.5113004,1.6456436,14.4738563,62.0301735,64.668093,47.6244781,33.2062189,7.0976263,15.2314838,69.3727966,46.8930498,36.0179227,19.937245,14.9267755,46.8992412,4.0873896,39.5101717\r\n218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9890725,1.9890736,23.5439918,66.2020384,66.9028229,54.9756132,29.8383685,10.869882,15.3868733,69.4924174,39.3893759,41.4895473,28.3711701,23.2875777,54.159462,4.0455014,36.4955155,17.0833523,2.0433097,2.0433107,24.126659,65.4180529,65.6625146,56.3612033,30.5869248,10.5381632,15.9547882,69.0214948,40.2909142,40.3691277,28.6316394,23.4498888,54.1249925,3.7424396,36.1458911,18.5526131,1.9955551,2.0113978,24.1590767,63.6420042,64.0511449,55.4100527,30.6570544,10.7936494,15.4381307,68.5433411,39.8847015,41.2005159,28.6336169,23.4152422,53.0728,3.5384101,36.2472535\r\n219,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5210203,1.638605,17.064936,59.6635053,62.6525263,59.1392736,29.2080924,8.9801341,15.5377584,66.8562884,42.4090674,40.7593705,20.647037,16.010818,47.7791148,2.9885985,35.7570208,15.9434577,1.4673084,1.5185638,16.8132909,59.276355,62.1254044,57.6067726,29.4509083,8.8060304,16.796508,68.0555847,43.6736541,38.8009285,20.5278165,16.0380559,47.2187227,3.1532648,36.7179026,16.1176926,1.6763336,1.728153,16.262657,59.725564,63.8279774,57.3494574,30.5389675,7.9195706,16.2481742,67.6470288,44.4665714,39.3084543,20.2542321,15.5095227,46.3799139,3.1222882,36.9673631\r\n220,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.7629604,3.8501132,40.8166398,71.830335,70.4868827,72.7436578,12.33682,27.3143936,21.983817,61.6143323,21.7373671,56.4229126,45.7200338,40.3690041,73.6057298,2.703272,34.3059937,26.2803235,3.5524399,3.6382761,41.5046386,72.5850106,70.5684807,74.0099602,12.6462573,28.3545856,22.2197058,61.9940835,22.2483237,56.1605368,46.0318557,40.7543279,73.586078,2.8190754,33.5585586,27.4484536,3.4347245,3.4519271,40.4454671,72.6146758,71.3185062,75.1523737,11.2778635,29.1755052,21.9268795,62.459114,22.6701213,56.1230254,44.9547272,40.5511053,74.2401059,2.8899057,33.8017751\r\n221,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.605016,1.6456723,17.8789012,58.9096309,58.2750139,62.1384098,33.1093199,5.7381446,11.5628693,64.668567,42.2888915,31.6851798,23.2776852,18.039251,40.2110884,4.4431894,33.2079904,24.1935657,1.6699412,1.6597664,16.9322537,59.6917198,57.5881146,62.25107,32.0631424,5.904298,11.1342325,65.1601888,41.4267523,32.189457,22.2871989,17.0429308,40.5391046,4.1998564,32.9820233,21.6165495,1.7950461,1.784923,15.6267223,58.9370141,57.0701415,60.1104003,32.3515349,5.3537458,10.3077986,66.1603665,42.6028987,30.8828911,21.2636941,15.5683716,38.9929982,4.3449344,33.6961493\r\n222,0,0,0,0,0,0,0,1,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,1.5050951,1.545712,20.1000522,70.2977134,68.8064023,65.0810039,20.8102468,50.3181193,21.8749207,59.3332327,30.8935543,47.7037948,24.3408853,20.0515114,81.0798027,5.1129926,34.0375031,21.7101731,1.4979732,1.5608159,18.9787522,69.0309235,68.4427763,65.3497905,21.0652482,49.8467431,21.6510718,59.4205339,31.0006512,47.2786062,22.9294561,18.7371087,80.5257535,5.1048091,34.5297421,21.0543603,1.5381553,1.6142924,18.5321086,69.9095355,69.9317112,66.2720293,22.0306592,50.5230924,20.705868,59.714941,31.4493487,46.8880091,22.4472671,18.2973319,80.0519405,5.2690944,34.6471662\r\n223,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,0,0,0,0,1,0,0,1.1398247,1.1766404,15.8820113,73.7796987,76.2703885,67.3029406,20.2155952,66.4220036,30.3572509,66.5966254,32.7644128,48.350731,20.3428755,15.8681711,85.6552572,5.6228682,35.4815466,10.1386675,1.0229652,1.0360543,16.0143675,75.2651284,76.7958855,67.5287531,19.4805612,66.7790794,30.1820148,66.7036914,32.4680584,49.3700184,20.1886943,15.836499,85.8123986,5.8065615,34.8508023,10.1462727,1.0607359,1.0906811,16.3692774,74.5351948,76.3454495,68.2288498,19.351478,66.20091,29.953618,66.3294916,32.4351888,49.5254787,20.241515,15.9309464,85.7352523,6.1017785,34.2159624\r\n224,0,0,0,0,0,0,0,1,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,1.0811332,1.0645274,9.4909778,69.3983654,70.087555,67.8918207,28.4907075,28.2027928,19.795945,67.1425423,41.2571527,42.2775661,13.6106954,9.3960497,62.7368137,6.8442352,33.8506521,8.3920956,1.1646841,1.1975627,9.7504379,69.1895197,70.1230567,67.0659814,28.6103874,24.1796063,18.8897891,67.3656796,41.1833117,41.9813731,13.5457153,9.4283431,60.3198978,6.8522382,34.7279402,7.9399096,1.2564857,1.2919175,10.1048019,68.9927543,69.1671545,66.479661,28.7320534,22.1870501,17.6924482,67.0164098,41.0338278,41.290741,13.7205139,9.4267223,58.1566304,6.8129749,34.8789425\r\n225,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.6331769,2.6750721,21.7178911,59.2197051,61.3870928,56.6483658,27.2679595,7.2585743,11.0175093,65.2425074,36.2803181,37.1182251,30.4615352,24.1070281,46.9444808,3.4027044,33.2771397,32.1737821,2.542689,2.5858855,20.6731904,60.5060088,61.7580021,58.0918801,27.7309349,6.2719314,11.0558465,67.6850021,37.8264833,37.3617266,29.7696555,23.3791568,46.9024138,3.4612402,33.3112837,32.1054278,2.5767898,2.6603483,20.3769838,62.1932246,63.2372581,59.6088535,28.1841369,6.9587993,10.8514227,68.5647905,39.2935598,38.8845739,28.6411068,22.393659,46.5166249,3.5623727,31.963772\r\n226,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5994254,0.7044123,8.3253236,74.8997138,74.7376067,78.0541123,24.7162797,20.4149148,18.1563906,66.8477569,38.7515146,49.5881817,12.6700681,8.0215399,54.6456338,6.8464708,31.7204409,5.0653595,0.6971477,0.8304467,8.5237686,74.1698336,74.884406,77.8152758,26.2237663,18.4387735,19.1879337,66.0236106,37.7874754,46.6426761,13.1944462,8.249999,54.2948518,7.5129524,31.6609058,6.3517915,0.5961015,0.7298838,8.1669735,74.2480216,74.9441757,78.256249,25.8435816,18.3659353,18.0429044,63.2246578,35.1288699,46.43864,13.1005652,8.2402276,54.1739302,7.8719711,32.0394077\r\n227,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,0,1,0,0,0,0,0,1.4787614,1.4796975,13.2061366,62.7309664,66.8619325,51.7247863,28.2855986,10.0622311,16.544931,68.8467768,39.0418435,39.2816154,18.8857889,13.5409331,53.1591375,3.5067567,37.8099874,11.7285985,1.3780648,1.3876605,13.3778671,63.1717958,66.8540162,51.9635417,27.6842139,9.9969441,16.1454724,68.8571315,38.9062909,39.7021554,18.6063271,13.4877381,52.3493904,3.7404588,37.8971821,11.9947842,1.365322,1.3730743,14.3731262,62.9762954,66.5227882,52.3772322,27.9948047,9.9475584,16.0276001,69.0894914,39.7924185,39.0130185,19.2427296,14.2212366,50.9321069,3.6787864,38.2330541\r\n228,0,1,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,0,0,0,0,0,2.554819,2.479412,29.7759076,69.8517542,68.0282503,63.2138961,20.5981916,16.5499096,15.6133304,61.9453216,33.3572456,51.6927417,35.9334213,30.5584511,65.8079774,3.4425376,34.2383628,34.1479832,2.4965619,2.4191961,28.4696879,69.8209555,67.9772367,63.371634,20.7557718,16.6274122,15.6338247,62.2498006,33.7687179,50.9465952,35.2796137,29.6253594,65.732875,3.2482653,32.6608205,32.4932272,2.4723941,2.4192424,27.0674529,69.8180286,67.5088048,62.6828217,21.1792107,15.8638292,15.13183,62.2231527,34.802515,51.7767934,33.5937442,28.1022965,65.4131644,3.3916098,32.28315\r\n229,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,0,0,0,0,0,0,1,1.8624519,1.8858275,16.7472935,66.2798233,70.2983984,59.3701122,27.4379037,12.79699,15.5703811,66.8794169,40.0786051,37.0028691,21.6179364,17.5268326,49.1431746,3.8332272,29.620369,15.4411877,1.8368983,1.8251942,17.2403826,66.5733141,69.6819567,57.9480064,27.8011782,13.4596328,16.1046784,67.4962102,40.3269501,37.3672323,21.457559,17.1771232,48.6233109,3.8909703,29.7106984,16.3173604,1.6931953,1.7345664,17.739313,67.2013,69.2786621,58.364028,28.0614647,13.9077516,15.6533693,66.8556518,40.8223843,36.9802244,21.047712,16.8717311,49.3791042,3.9748918,29.1134727\r\n230,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,1,0,0,0,0,0,0,0,0,1.2119476,1.2728745,17.9565689,71.4990379,75.0020818,64.9426294,17.4512647,62.119751,33.7126527,66.6104592,31.9125174,46.8904598,20.5707845,16.5714331,84.7765285,4.4440963,34.0536207,10.3146709,1.0790622,1.1366458,16.9857171,71.2989719,75.6106973,64.0322378,16.988935,60.3221007,32.3711223,66.3717796,32.5170578,46.7310486,19.8498867,16.2002331,84.8567824,4.4356211,34.3161908,9.6610038,1.0626426,1.1227349,17.2457115,71.415718,75.4183034,63.2241058,16.8750297,61.9022654,33.0203539,66.3399012,32.6514374,48.4067993,19.4784967,15.917653,84.8026579,4.354379,34.0746543\r\n231,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.723369,3.8047269,33.7374746,65.7309773,64.9450628,60.8737242,20.6281486,5.0838854,15.8742789,58.781878,29.5016819,44.5530143,40.5067308,34.1488507,48.0167129,2.8141456,32.9656029,29.8512016,3.5573828,3.6465255,34.8829566,65.4814393,63.7301979,60.4902579,19.935845,5.0889694,15.5069937,56.843065,28.7861037,45.017921,41.3450723,35.0844584,48.6890609,2.6384832,33.5745072,31.5543569,3.6767346,3.8501732,35.9342144,64.1577619,63.3247396,60.153836,19.5849626,5.772025,15.5900927,56.679,28.1053415,45.8908841,42.9900465,36.4761335,49.1107416,2.818736,33.1949672\r\n232,0,0,0,1,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,0,0,0,1.4692858,1.4072608,16.4826747,67.7792676,66.4281495,70.209562,26.7049147,16.7513134,14.8953621,66.9728381,39.9942124,43.3293196,20.4372366,15.613958,60.4308991,5.7161261,33.4052948,20.2092524,1.2838798,1.2277822,15.7946354,67.0993822,65.9283638,69.4382968,26.509329,15.9626464,14.7353301,68.3612659,41.1270986,44.0307478,19.6032281,15.2775218,59.8985765,5.7881208,33.4325489,18.6787943,1.3026259,1.2350314,14.8235193,68.342359,67.5132771,70.0617041,26.3121942,15.3326584,15.8253345,68.0452598,40.6818794,44.8760604,19.0941738,14.5432101,58.654163,5.9340794,32.6373538\r\n233,0,0,0,0,0,1,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,0,1.1081866,1.1326431,13.5324705,66.7208969,67.636761,64.8170117,25.7956865,10.2234507,13.2181182,68.317513,43.4468311,44.8215143,18.0596671,13.7030891,53.777751,5.0934292,35.6570783,14.9575615,1.1030676,1.1305256,12.8286413,66.1003104,68.0186948,65.0446998,25.9881381,10.2255628,13.0718821,68.0909897,43.6114555,44.1833354,18.0080506,13.3092679,53.452292,5.0283025,35.8573295,14.8454291,1.1604965,1.1936486,12.6382697,66.2998195,68.5259965,63.8909039,25.8905057,9.5050077,12.3237165,68.2458638,43.3377358,44.3411541,17.8520401,13.1224697,52.609075,4.8995758,36.0015245\r\n234,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3222763,1.4070969,10.5430721,63.3339857,66.196281,59.5185258,29.0431072,5.9184701,15.826889,67.2576976,41.3601069,36.6928981,14.9747594,10.5064017,39.394996,4.780807,36.7151958,11.7598955,1.310077,1.4164664,10.9789361,62.3593547,65.2496793,59.0676251,29.4197113,5.5745119,14.8894489,66.9952866,41.2071202,35.4132628,15.5078021,11.0088489,39.3067998,4.5061072,37.1069385,13.0033849,1.2656853,1.3688708,11.5863455,62.2044016,65.132781,59.454567,28.9656234,5.7367684,15.6235276,67.1014449,41.0716051,36.1293887,15.6206508,11.229868,38.4624497,4.6851801,37.1305547\r\n235,0,0,0,0,0,0,0,1,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,1.1888628,1.2150554,14.0724649,67.4864911,67.1257779,66.6720502,26.0752084,45.3974041,18.9416473,63.0459243,36.852124,45.064533,17.7516411,13.8068314,76.1638647,5.8993816,35.3923742,13.4014884,1.128749,1.1389796,13.7256238,67.9298944,67.0946519,66.644475,26.5361702,44.1714813,18.5871349,63.6283298,37.7945607,44.9855915,17.2457398,13.2832196,75.808769,6.016473,35.5142243,12.4734435,1.1264793,1.1365534,13.3588814,67.9878709,67.5983918,66.633486,25.6262961,44.7571621,18.5522804,62.7489849,36.5824625,44.8071899,16.8237672,12.9953754,76.0100559,5.7912395,35.2081903\r\n236,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,0,0,1,0,0,0,0,1.0738895,1.0633407,11.6701931,72.1233432,72.4466032,61.7995897,28.2585219,16.544791,18.1256238,67.4300826,43.0553381,46.1625222,16.743457,11.1904005,55.9625342,4.7247133,41.2188367,8.7980727,1.0928855,1.0822981,11.8183993,72.0174692,72.1695202,61.6120619,28.4294214,16.6042928,17.3324104,68.1037391,43.5709711,46.4903008,16.734278,11.2564056,55.4160583,4.817778,40.9927961,9.3514994,1.0200036,1.0169648,12.2146846,72.1100784,72.3611779,61.6444554,28.8677093,16.3573705,16.743918,68.3932486,43.5049071,46.5646004,16.9445823,11.5394043,55.1257353,4.9345092,40.8974538\r\n237,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0637202,1.0726115,17.9038151,72.8851958,73.2419793,68.4694468,26.5765855,8.5014358,16.7732703,67.9852486,38.0505993,43.6901097,22.4669573,18.6008481,49.5333471,5.3171192,30.325041,15.1136324,1.1937908,1.2027661,17.9196195,74.9593248,73.671783,69.8755559,26.0909168,10.4223772,17.4740306,68.4975445,38.39155,43.942921,22.1885079,18.3753217,48.0310488,5.3125256,30.2253064,16.3833016,1.3965274,1.4055236,19.2649689,74.3679466,73.5618604,70.1783034,26.471352,10.3704433,17.0850225,69.3376422,38.8113547,43.1995257,23.4866601,19.5284982,48.5478608,5.4401919,30.6636201\r\n238,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,0,0,1,0,0,0,0,1.2680818,1.2795886,13.1167874,71.139727,71.3071112,60.6362618,28.2059272,14.8423668,15.887367,65.3826248,41.2943995,48.3845021,17.7870799,12.5911279,56.277641,4.5850235,41.1310531,9.3396665,1.2179252,1.2411675,13.2755358,71.3317422,71.675383,61.0885955,28.8005736,14.6984981,15.3433399,65.9015437,41.3257328,48.8158442,18.2185081,12.8501248,56.7277873,4.4007473,41.0051169,9.0402697,1.1641657,1.1669266,13.4403598,70.7865662,71.4810499,60.7332516,29.0560206,14.462971,15.2623374,65.8939888,41.4471375,48.6779284,18.3840183,12.9472325,56.262585,4.4573779,41.0061048\r\n239,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5075448,1.6181643,14.2927963,68.1824608,73.0679911,71.6062761,22.9591961,12.4718514,19.2017986,70.2556981,34.4246449,40.6280044,17.183908,13.7356322,48.5203453,4.4242424,46.1439589,12.962963,1.7922293,1.9017583,14.5885534,67.4913326,72.5812449,70.9966267,23.8695988,12.2487562,18.6951646,70.0624575,33.8410997,40.9992354,18.2285714,14.4571429,46.3759214,4.6553809,45.4198473,15.0735294,1.8473792,1.9614042,15.0033493,66.8600001,73.0413402,70.8649089,23.9734356,11.7018328,18.1929729,68.8368141,33.7651317,45.5145135,19.4444444,15.1891253,46.2082262,5.1201011,43.7027708\r\n240,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.436978,1.459757,16.2854621,66.1948279,73.1136039,70.608034,23.7104707,4.3300959,13.1863255,65.9589867,37.28982,37.4393837,18.6170213,15.4255319,42.1085859,4.377312,35.8190709,12.2516556,1.5605428,1.5605428,15.5359412,63.6096664,70.9044019,69.0154918,25.4976536,4.7043246,13.9163299,69.4362236,39.1168753,33.7729241,18.452381,15.2056277,40.7772622,4.7105562,34.3267108,11.4035088,1.4407068,1.4407068,16.656844,63.4621468,72.3602387,69.718371,25.1524535,4.868264,13.5283741,71.7180183,38.9621511,34.2897158,19.883351,15.8536585,40.309633,4.8712206,35.8064516\r\n241,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,0,0,0,0,0,1,0,2.3861214,2.5447252,20.0315441,65.7486972,71.2638365,62.1659497,25.0418102,10.2187853,17.9062537,66.700941,32.5365294,40.2208311,26.218976,19.8887822,54.6369145,3.5349125,44.5286566,18.2692246,2.4165747,2.6142027,21.8606423,65.2954392,69.3676224,61.3443398,25.5282741,10.4059581,17.017674,66.0008717,31.9912258,40.0490686,27.0833123,20.5357042,54.192132,3.6926891,44.3027915,19.325106,2.5736277,2.7717254,20.9954961,64.3449776,66.7723484,60.1805596,26.5143451,9.6916502,18.661482,66.5211174,30.9595209,41.7955641,26.7431959,19.2602099,54.0861247,3.5349207,45.0169349\r\n242,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2.159409,2.2206122,18.9099623,63.8269035,63.5310121,53.0723371,32.4123503,4.1673274,12.3262705,69.1669037,42.6707016,40.0170276,25.5874449,19.5327673,44.2223894,2.8327667,40.0430579,17.499975,2.0461523,2.1057888,20.2972845,62.9128992,62.9681272,53.5961121,32.4887963,4.6041229,13.0680022,69.8181132,42.4763,39.5669742,25.8354382,20.0335522,44.6982186,3.2633938,40.1379025,16.111086,1.998099,2.0126107,20.6042493,60.8230341,62.264441,53.0631762,31.4658444,4.4625799,12.7625548,70.2351996,40.6863768,38.2920872,25.8444912,19.8750449,44.0598832,3.3285452,41.10084\r\n243,0,0,0,0,0,0,1,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,1.1407999,1.1454515,12.9582434,64.2544727,65.7198083,59.9453155,26.1566433,15.9698486,15.7704546,65.759669,40.1026578,40.9829402,18.3640808,13.4649888,57.8535337,4.3607562,38.5868593,14.0778315,1.0850837,1.1183034,12.5315939,64.1209011,65.6541848,59.8284397,26.0112718,15.5472887,15.2747788,65.9331449,39.4270985,42.0320245,17.7511977,12.8480096,57.981701,4.1146423,37.9608979,12.5511817,1.152059,1.1568984,11.9248121,63.2689491,65.151171,60.7263778,26.8872614,15.6852113,16.0342084,65.056513,39.9242201,42.0130381,17.0109746,12.2299314,57.5967293,4.1927166,37.3578209\r\n244,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.6069084,4.7999007,40.7130679,64.0608979,64.4735805,63.4371462,22.3268986,6.8914634,13.7550148,58.8925997,31.2732155,46.0986735,48.9472608,41.8605343,51.545324,3.1025496,33.1180879,37.7961036,4.7775738,4.98253,41.8110789,64.6313611,65.306898,64.4081306,20.582216,7.5462701,14.1518843,57.760982,29.722365,46.7970519,50.0176904,42.755661,53.1327975,2.9635051,32.8368952,39.5999017,4.8371857,5.0303149,42.1236135,64.3573574,65.6421025,63.6220299,20.7360854,8.2663073,13.8662879,58.6860546,30.5914929,47.6285162,50.3910405,43.481522,53.4779961,2.7489909,32.6526286\r\n245,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.6685277,1.7350454,22.3320827,65.6434974,68.668581,54.1439341,25.3676599,10.0016575,18.4500941,67.1889326,38.4643722,44.9069122,26.7945259,22.411879,52.8417587,3.790955,33.6489712,19.1627599,1.563397,1.6196575,22.0301214,64.8407967,68.2652387,53.463921,25.124457,10.2243318,19.1832584,67.0429002,38.8378954,43.6822049,26.6201959,22.4047639,51.9455005,3.8104799,33.5641072,17.6433241,1.5226389,1.5713813,21.7660377,64.6417586,67.8855551,53.8683416,24.9594525,10.5409311,19.2112146,66.956732,38.4918038,43.0959807,26.4824579,22.5342959,52.2291625,3.8314463,33.9542017\r\n246,0,0,0,1,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,0,0,0,1.1183423,1.1402445,12.4697615,66.3901388,69.4178923,72.1475725,29.4389982,7.5158634,15.2824586,67.7003732,44.2459831,37.4835031,15.9537464,11.4876156,43.0915466,7.3625002,35.0770457,11.8181861,0.8421193,0.8639934,12.7271681,66.367705,70.1163751,71.4562101,29.4688269,8.63459,14.8710747,67.2935778,43.8723866,36.5740349,15.9765941,11.8384026,42.1459173,7.2056811,35.7334384,10.8156105,0.9226758,0.9671233,11.5342875,69.1047353,72.1511602,72.0455953,29.0470227,8.2086663,14.7618984,64.6192557,41.9230686,37.4960942,16.0674092,11.6828718,43.3695745,6.8643802,35.3855315\r\n247,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.4623288,1.5095064,23.648582,77.6071613,74.8822665,76.5598405,19.7161013,54.4861441,19.9693922,64.5470386,27.8127869,60.5435704,27.165742,22.8563502,83.8722688,13.1896244,37.9026714,11.9749894,1.6135227,1.6568858,24.8373791,78.4281056,75.557187,77.001177,18.681022,56.8843186,20.7116128,63.8346801,26.8186526,61.0293629,28.3795666,23.8587315,84.8336029,13.0035358,37.7543931,13.1220563,1.825218,1.8587704,25.7557375,78.9223378,76.2997042,76.114395,19.0485702,58.3551756,20.8856401,63.4904785,25.8474566,61.3102967,29.5531195,24.9043131,85.3665754,12.7341892,37.5264238\r\n248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.555069,0.5058077,10.7677276,77.5273669,76.9096105,76.6130741,20.0442071,45.361655,22.6076365,61.4812583,32.3569096,52.5032505,13.0794285,9.8828295,78.3043577,5.4307354,32.5021315,9.7014983,0.692938,0.6112786,10.4634314,78.0310931,77.7392264,75.6265331,21.0698393,46.2445292,23.3303973,61.7427454,31.9694726,53.0824575,12.6200554,9.3649948,77.7508132,5.5053224,31.5482558,9.5166221,0.6962537,0.6158549,10.3403071,78.6273121,77.6890415,76.815104,22.058216,46.201812,23.1527337,61.8145667,32.7345471,50.7384089,12.8144616,9.3029399,77.1360797,5.3329892,30.5729181\r\n249,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5501301,1.5847846,21.4303089,71.7207074,69.5984885,69.2008518,28.5200059,11.2658032,16.7326328,65.9665705,38.9372178,45.2226764,26.5722029,21.6070776,55.5972332,4.5603725,30.5116807,14.3015236,1.5606985,1.5958475,21.170088,71.7112036,68.5587783,67.9768592,28.6169927,12.1124556,14.9734267,65.6844537,39.0779655,44.713285,26.1545392,21.3660943,54.953305,4.6823492,30.1047294,14.3628263,1.6055722,1.6400316,21.9058644,72.4735467,69.3208314,69.088381,27.7759309,11.7433832,13.8793547,65.1978204,37.9496566,45.1729998,26.2454031,21.6273902,55.3041709,4.4393178,29.8029416\r\n250,0,0,0,0,0,0,0,1,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,3.7372669,3.825495,37.564842,74.3127877,73.7726265,69.3173585,15.1516942,57.0061453,24.0649713,56.6666211,24.5427644,58.9249721,44.484259,38.2020549,84.473853,4.4774913,36.4324507,30.3876876,3.6337099,3.7412293,36.9907544,74.0989061,73.7343351,68.7470053,15.2883221,57.5791708,24.2188656,57.4540281,24.9018475,58.4908068,43.6726645,37.2863515,84.1525608,4.3905979,36.7773172,28.9841748,3.5657078,3.6420806,36.4606237,73.3038779,72.841585,68.1618716,16.4727693,57.0647055,24.2813297,57.4852025,25.8012696,57.6018878,43.1904467,36.9130351,83.9258288,4.3834196,37.3241394\r\n251,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5319259,1.5319259,21.9231524,77.6856184,77.1084001,72.8297927,21.045846,55.6894113,24.9273181,64.4428604,34.7739416,54.7776655,26.5414768,21.5999073,84.7136178,3.0800018,40.6223452,17.8785987,1.2948763,1.3572777,21.6422735,77.4589259,76.0787821,72.9629212,19.9212999,55.3307131,23.8065693,65.2218925,34.0200733,54.7012795,25.9835127,21.3797052,84.7114011,2.8434083,40.5150187,17.5737229,1.249134,1.3103052,21.7069746,78.5540676,77.8221441,73.3515179,20.0728718,55.5134037,23.3705419,65.0203299,33.8835146,54.8362283,25.7506978,21.0459924,84.2181528,3.2399109,42.1379702\r\n252,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,1,0,0,0,0,0,0,0,1.99275,2.0273887,22.5096354,70.4020267,70.0903577,64.9077976,26.3471036,12.4959645,15.6160766,67.105288,36.6432889,46.7393334,27.9991059,22.8021616,54.5138335,5.1342343,34.6910116,18.3815979,1.854649,1.8824585,22.9531043,70.2473282,69.7096666,64.5561538,25.6065242,12.8381659,15.8293268,66.4822161,36.119514,46.4053004,27.930315,23.0426993,55.3685965,5.0222363,35.2969411,19.30111,1.784492,1.8355388,22.6658042,70.0396586,69.1038782,64.8261194,25.315083,12.8711196,15.8537329,66.0499576,35.7582776,45.5514918,28.3333416,23.2511291,55.7322307,5.078186,35.6986283\r\n253,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,1,0,0,0,0,0,0,0,0,1.1898742,1.2928815,13.2001091,74.0369823,75.1686061,69.9779185,22.5476243,62.0606795,25.1149005,68.1165452,34.6748763,46.8990536,16.7993025,12.6476536,84.3544912,4.6020703,35.4456976,8.9284545,1.1973153,1.3206799,14.0730991,72.7761936,73.2316511,68.1412931,23.3860692,60.3802401,24.0043807,69.7634862,35.9417406,46.8865409,17.4542047,13.352375,83.8221564,4.6954617,34.7594379,9.3999022,1.0820354,1.1874358,13.2702927,71.5389223,72.0766455,68.951938,23.6727483,60.2919474,22.7358434,70.2913767,36.2632478,47.123747,17.0024889,13.1065186,83.9114014,4.8544894,34.8363886\r\n254,0,1,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,0,0,0,0,0,1.1060907,1.119147,12.1589441,64.807586,66.588133,62.0918478,28.4256655,9.4833631,11.1387059,70.273024,42.3201829,40.6102948,18.0869831,12.500796,50.473698,4.4547231,34.5214234,14.3097643,1.0128279,1.0259511,11.6896123,63.468331,63.4518324,60.8493738,27.7858858,8.6214925,11.0513423,70.2687241,42.2870138,39.1767405,17.8889024,11.9882572,50.2252437,4.3198315,34.979266,13.5072388,0.995619,0.9857223,11.7383702,64.6330806,64.3159337,61.2078973,27.2575854,9.2320717,11.9938715,69.2299835,42.6415714,38.5640708,17.8757243,11.9067796,50.6557439,4.3854506,36.066011\r\n255,0,0,0,0,0,0,1,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,1.3792891,1.3931091,13.7526571,63.1680748,65.8367146,61.8590309,27.8447915,15.4097884,15.9554765,68.1772052,42.5054307,40.9214732,19.9318672,14.3385395,58.9619232,4.6357135,38.5480812,14.8877256,1.3991628,1.4083481,13.5119466,62.842549,64.9555118,60.8956653,27.0201072,15.0944729,16.1673546,66.8438521,42.1280498,41.0052323,19.3011031,13.7570137,58.1998445,4.3887125,39.2899918,15.3633903,1.2455473,1.2455473,13.022701,62.9455251,65.3573615,60.1558148,27.236173,15.0189846,15.4112257,66.2551218,41.5091888,40.8725854,18.7500714,13.4397646,57.9378198,4.3076638,39.3245859\r\n256,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6571134,1.7103628,16.6815783,59.609834,61.7489308,55.9583186,31.8854218,8.0724831,17.2234014,68.4101855,45.1608565,36.2503287,19.5610015,14.9815395,44.3643746,3.047784,36.5889841,17.8331913,1.6521535,1.7066043,16.1352804,59.0327341,60.0782234,52.8939244,33.8950015,7.2977372,15.9635825,68.3541314,46.3261664,35.7697643,19.1672936,14.6358134,43.2668847,3.2895192,34.4013077,18.2602584,1.3706159,1.4256769,13.2029329,58.9588963,60.9873148,54.6498537,35.0374166,7.1245854,15.4117197,68.9616627,47.8053594,35.1944415,17.2984412,12.4447215,43.1332311,3.7386822,33.7986444\r\n257,0,0,0,0,1,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,0,0,2.3361402,2.3581931,23.8872193,79.1441,79.6799624,81.990592,14.9582027,55.0170178,24.6507964,61.5608641,25.088226,57.4457458,29.1340296,24.3472585,85.9170798,3.0057043,40.2417189,26.3485477,2.1678006,2.1899959,21.8464181,78.5045361,80.403761,80.5377644,14.8703445,56.0033969,23.9248846,59.5348628,24.2594176,56.5097372,27.5,22.4565217,85.4984213,3.3611599,40.0270758,23.9913545,1.9049182,1.9274685,21.4389644,78.7769976,80.3358293,79.8070909,14.6636225,55.707764,23.7579806,59.1973908,23.8566653,58.1389229,26.421331,21.837814,84.4357077,3.3408072,37.8365831\r\n258,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,0,0,1,0,0,0,0,1.1553546,1.164336,15.6776181,71.8435095,74.3296682,57.9852553,24.6153431,21.4811584,20.9973773,64.883214,39.0852572,51.1935477,20.6870111,15.6734411,64.6771742,4.1264015,40.5911231,12.025412,1.1166454,1.1415269,15.634072,71.5057599,73.458548,58.0563261,24.4392275,21.3873092,20.0302941,65.2778931,39.3518625,50.2736294,20.4749734,15.4431134,64.4603292,4.2467145,40.4451044,11.4970752,1.1379964,1.1669587,15.5661072,71.9643247,74.1250665,59.1960864,24.7162901,22.0216736,20.5622862,65.4262152,39.9414573,51.1269906,20.1446805,15.0524588,64.5247898,4.4421508,40.8054573\r\n259,0,0,0,0,0,0,0,0,1,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,1.0822482,1.1174093,16.3233083,60.18179,62.1462672,55.796547,28.9329428,5.8780641,12.5406776,65.170947,40.9247106,39.3420422,20.2177554,15.2931398,48.9627008,3.6610541,33.6551931,19.5332144,1.2267325,1.2538201,15.8172178,60.9224479,61.9086695,54.4136699,28.7304574,6.4647633,12.5442555,65.307421,40.5675277,38.9248197,19.8767004,15.2782434,48.7604419,3.9433282,32.7828367,18.2864821,1.3085637,1.3470488,15.0216958,59.4446893,60.9538309,55.2032397,29.0127439,6.2218384,11.4674225,65.4361402,41.156178,37.7936707,19.5400327,14.8040969,47.652296,4.0540573,33.949249\r\n260,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,1,0,0,0,0,0,0,0.9756788,0.9555173,11.6177285,64.5266984,68.9140441,56.3004553,29.0852368,13.7956654,18.2399008,71.2226827,43.3684974,35.8374789,15.5953214,11.3204661,54.9185572,2.7695924,38.0749152,6.02941,1.0572318,1.0435689,11.4520119,64.8062366,68.6029177,57.0449128,28.720834,13.7790919,19.3698059,71.2854514,43.5612536,36.0914817,15.5117238,11.1485556,54.1150657,2.7878678,37.5000082,7.9819229,1.0724031,1.0504193,11.0721226,64.0255341,67.7082954,56.8521768,29.156565,13.9055923,18.9413879,71.5301144,43.1656873,36.1621769,14.8302409,10.6025461,53.9916543,2.8918606,37.7133165\r\n261,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.4669471,2.4228766,30.0334469,66.8600117,67.3675729,70.7909966,16.6526509,28.7219762,19.7177061,61.166963,24.1816617,42.514757,34.5477387,29.3551089,76.0771993,2.6969178,38.6075949,31.3636364,2.1833507,2.1383057,29.0507784,66.2273948,67.7152019,71.2940067,14.8267718,27.0187267,21.2991165,59.8063514,23.6395519,41.7355174,32.5751073,28.4549356,76.1488971,2.6730938,39.3248175,31.3504823,2.0634262,2.0728882,28.0348763,66.2859124,68.2521503,73.8409806,16.7430084,27.1427378,22.6836474,61.2308971,24.5024439,43.1233148,31.9644369,27.3073666,75.2054795,2.8334786,38.8288288\r\n262,0,0,0,0,0,1,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,0,4.3325399,4.4621792,33.5886148,71.5424902,72.0404375,67.6973648,20.6438804,13.9823416,15.2588659,63.3307089,33.8216325,55.9909329,38.4174237,31.9851591,61.0407621,4.0565671,36.8666117,26.3454721,4.3023858,4.3984148,34.9122864,71.307079,71.6744722,67.3958217,19.9773527,14.0056463,15.2166237,62.8045733,33.3024426,55.9084911,40.0171547,33.49866,61.9443593,3.9227022,37.0129857,27.0645092,4.3064072,4.3805099,36.1158662,70.8659138,71.4712381,67.0905872,19.6021618,14.5324326,15.3204372,62.6875039,32.5395623,55.6981213,41.2353114,34.7203638,61.9285173,3.7132514,37.1726514\r\n263,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1125054,1.1813021,15.0724374,65.3357099,67.0279403,54.1787737,28.9038587,16.6247938,16.9683897,69.6759305,41.9635633,33.9492732,19.5319025,14.6362667,53.2583178,3.6172679,35.1391372,8.8926354,1.0871076,1.1659446,14.817627,64.964773,66.9002398,54.3913957,29.0416316,16.6552152,17.6671696,69.0711522,41.5587166,35.1819737,19.2999417,14.4382026,52.6271771,3.7444343,36.1709485,9.2282065,1.2006814,1.2491126,15.1249658,65.3308171,67.5780758,53.5569673,28.9031968,16.6525388,17.3833955,68.6180787,41.8618,33.9879719,19.6240855,14.7615233,53.0626098,3.4534098,35.6199532\r\n264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8817645,0.9215861,8.2587054,77.4087633,76.8671413,75.302838,22.0095956,28.6107734,17.941384,66.4072827,34.6096944,51.8127099,11.9225347,8.4044122,62.7145382,9.4716743,38.3712654,3.356483,0.835957,0.8683615,8.3576755,76.5839073,75.4146562,75.2561743,23.1700707,26.869479,18.0280649,66.6333466,35.431108,50.7878953,12.2644935,8.6775419,62.3978698,9.3199454,37.545,4.2141249,0.8608004,0.8933419,8.9760653,78.5896798,76.5447717,75.5095867,22.6584753,27.6342565,17.9920112,67.228802,35.8326619,50.679648,13.0805492,9.1981192,62.464132,8.863238,37.1582697\r\n265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.1135856,1.15445,15.738909,71.8996561,72.776928,59.9921551,21.7580384,29.9714594,21.5078187,67.4036398,35.3307069,48.3972445,20.2449789,15.9818618,72.9624536,3.4554441,35.1106635,16.0542709,1.0960584,1.12701,15.6271457,72.362982,73.5961934,60.8580519,22.3368785,30.6778405,21.9036601,67.4092052,36.1934331,48.0621579,20.2025244,16.0116294,73.0578083,3.6081383,34.3286633,15.9966198,0.9755735,0.9980103,15.2788518,71.3070355,72.477949,59.4607194,23.473983,30.4973247,22.027981,68.1062649,37.3132948,47.5429998,19.4415321,15.5929688,72.2856663,3.5890255,34.0879595\r\n266,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.952548,5.0608312,47.0192388,67.8338221,66.4064805,59.5557049,19.301788,12.4937043,16.5225397,57.0908013,28.5239363,51.267818,54.0168306,47.5371179,62.2959515,2.3641469,37.8498476,40.7314882,4.8203487,4.8347433,46.1649798,67.1581986,66.8778842,60.6159501,19.3568523,12.7511186,15.575417,58.0589543,29.1712078,50.7602289,52.7699191,46.308316,62.9970841,2.3271269,38.7068931,42.757877,4.6834915,4.7000653,44.9278472,67.0657706,66.8156145,61.9242428,19.775753,12.1260449,15.1769116,58.5003484,29.2414716,49.6247318,50.7153122,44.5734201,62.8318427,1.9891036,37.7721779\r\n267,0,1,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,0,0,0,0,0,1.3141462,1.3269481,13.2831003,68.2458596,67.5942367,64.285243,27.2596402,9.7218833,11.445573,66.5198581,40.3287578,45.5400399,18.0986017,13.2566349,52.9616638,4.3060943,30.3677558,18.3890578,1.277155,1.2511821,12.8754589,67.741204,68.1835645,64.8555516,26.788434,10.0642136,12.1669559,67.665127,40.6618747,44.4129303,17.745894,12.8611023,51.6037787,4.0243155,30.6891368,17.0454545,1.1518603,1.1257248,12.7872054,67.2387241,69.2278104,64.2965026,27.436391,9.7507828,11.5823198,68.9904082,41.2706559,43.1642915,17.8891815,12.7260289,50.5822892,4.368472,31.915848\r\n268,0,0,0,0,0,0,1,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,1.191512,1.2191061,15.1991799,61.2330351,62.4408407,58.3016161,26.9049946,16.365942,14.846136,69.849303,41.4659488,40.5480163,21.3057186,16.2124927,60.5490832,3.5692334,37.2319443,21.1504812,1.290625,1.3137349,14.283714,60.7962873,61.5374052,58.4353449,27.2808481,16.205992,15.8701599,69.9023235,42.4894714,40.0098784,20.8642044,15.5097842,60.0990482,4.1076863,36.776676,19.3223444,1.2678633,1.2866112,13.5424885,59.7113131,61.675338,59.5442854,27.8057139,15.8943585,16.2950253,69.3322336,43.6525935,40.1782278,20.3976707,14.6565314,59.4337822,3.9650008,36.2367897\r\n269,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.6580202,1.6928703,17.7588623,65.8319542,67.4014929,54.3509849,28.3180644,10.1734952,18.2363205,68.894762,39.8910586,37.5580268,23.120628,17.7198465,48.7453391,3.3894214,34.1142719,13.8095416,1.6495373,1.6698685,17.3093152,65.4495215,67.1477666,54.8100118,28.7727778,10.0267537,18.4741025,68.9947362,40.2295565,37.2306694,22.7415635,17.5726628,47.9706602,3.3484643,33.5299371,14.1587181,1.69578,1.7456122,17.0207543,66.3160427,67.4122553,55.4692545,28.2770072,10.0295084,17.9000224,68.9687119,40.578279,36.5112395,22.8121075,17.4796045,48.2744719,3.2203404,32.4200961\r\n270,0,1,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,0,0,0,0,0,1.1017461,1.1243231,10.2795329,64.5423533,64.337564,63.9668392,24.3327727,5.6573379,13.1513483,67.3062826,43.1360656,40.0696404,16.2009998,10.5732446,48.9588675,4.309041,39.5405428,12.7201184,1.1385095,1.1198157,10.8766641,65.789682,64.9829678,64.9767926,24.2928807,5.6623528,13.6797116,66.5905258,41.9620994,41.4196741,16.3245643,10.664084,48.2454043,4.2721665,41.3041604,11.9717386,1.1383927,1.119232,10.9914062,66.2709559,66.3879102,67.3512361,25.760422,5.2696904,13.3765803,67.1934221,42.6958728,41.2087883,16.2526145,10.8881151,46.6336914,4.4817918,41.8920004\r\n271,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,0,0,0,0,0,0,1,1.3659964,1.4032917,19.6087172,68.629883,70.392405,61.7954521,26.628281,16.2183451,17.7435738,69.2962706,39.177051,39.1056076,25.5881527,19.9358436,51.527183,4.0889303,29.5283295,19.0528456,1.3834911,1.4109398,19.1708534,68.1804026,70.7423277,61.5684718,27.0835967,16.1965832,18.1029865,69.8669304,39.291373,39.4616762,25.1515956,19.7478137,51.3310772,4.0649292,31.0715327,19.0949049,1.5108873,1.5387875,20.2807979,68.9904861,70.7837388,61.762683,27.9917471,16.7466536,18.4594587,69.4713023,39.7662868,39.1199824,25.841635,20.3426969,51.4444938,4.0544905,30.0443342\r\n272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2.1016808,2.1252708,20.3760353,64.2584349,63.6437234,52.771612,31.9744265,5.3391402,11.8447851,68.8014808,45.2389021,40.9294307,26.907897,19.8485598,44.7104657,2.9945994,41.4469254,17.9545455,2.0967633,2.119725,18.6451034,64.5221546,63.8879729,52.4667617,31.7525927,5.5077852,11.9522579,69.2275994,44.5919874,41.2586747,25.7702047,19.076109,44.8146835,2.9906753,40.2127771,16.5271967,2.3004434,2.3004434,19.2830847,63.7735709,63.4354194,53.1677678,32.1759948,5.7248967,12.57799,69.465904,44.2744395,41.1525984,26.4182742,19.8788217,44.0121922,2.688837,41.2362458\r\n273,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,0,0,0,0,1,0,0,1.442925,1.5285794,18.5591488,80.0772495,78.856212,71.973141,21.2180982,68.0929945,23.9451148,66.0567004,31.1259672,52.938091,22.3999924,17.4959387,87.8442244,4.5757592,32.408841,8.7162669,1.5223976,1.6059892,19.421162,79.7783695,78.9520312,73.5071799,20.5943651,68.2002408,23.2914068,63.5423202,28.9776078,53.0620704,23.6811945,18.66037,88.1395491,4.3965595,32.1707212,8.8961663,1.8029152,1.8626181,19.88178,79.5932982,79.0619254,75.998596,20.3468081,70.3727835,22.8383471,61.432802,27.5113243,54.6568332,24.66852,19.768538,88.457044,4.2560697,31.7434542\r\n274,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0.8779006,0.9067491,11.6672972,69.710398,72.2400117,62.9045267,26.6918971,28.5585728,21.9024741,68.4478712,39.6206363,43.7487929,15.5366131,11.364096,69.905801,3.2888064,35.5214738,7.103271,1.04155,1.0444277,11.9364173,69.0693221,71.2233734,61.9016795,26.5042842,27.8127226,22.2258796,68.5985918,39.7250145,42.605591,15.7050647,11.4081141,69.4581774,3.2655136,35.1212485,7.4722884,1.1154874,1.1301846,11.8307929,68.8354738,70.9493801,61.6864942,27.0209403,28.0635097,23.0079876,69.01704,39.8624312,42.3395606,15.4521652,11.1122397,69.3621852,3.3702124,35.6396289\r\n275,0,0,1,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,0,0,0,0,0.9851467,0.9881297,10.6842123,77.5346306,77.9082285,74.1672472,24.4122912,34.3580818,21.5005869,65.0357819,36.614232,49.7600583,13.8882998,9.7649792,67.4001561,6.9901396,38.8341555,8.119126,0.9910559,1.0045602,10.4660648,77.263544,77.925916,74.1304633,24.2181841,33.2651296,21.0187888,65.1974945,36.8998928,49.6675497,14.0130937,9.7156924,66.6642638,6.8186145,38.8226431,7.9901366,0.9560177,0.9772926,10.3638924,76.6460546,77.9108696,73.9159212,24.1644614,32.5841316,21.1411117,65.1806054,36.6941012,49.0650687,13.9105254,9.6790803,66.0219808,6.9356562,39.2602126\r\n276,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,1,0,0,0,0,0,0,0,1.6704402,1.6913753,18.9232288,67.530132,69.5526292,64.2074602,27.054238,12.1928139,16.1024102,66.8975077,37.9400429,39.6568847,23.0567758,18.3279055,51.9801867,5.2178305,34.9473485,18.6493317,1.6829257,1.6968019,19.1140348,67.9820638,69.4981862,63.398842,27.8657006,11.9706502,15.6717911,67.0120017,37.9188762,40.2013234,23.3131036,18.5016602,51.6706832,5.1683227,34.2327409,17.0337022,1.6489935,1.6341938,19.2815763,68.9523496,70.2311015,63.7553474,28.0694117,12.3100241,15.829155,67.1137728,37.7638484,41.1936394,23.3068878,18.7233709,51.8475763,5.2208531,33.8586359\r\n277,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7336094,1.8242361,18.5267796,71.0894059,73.0312399,67.4625161,27.0025093,10.2336321,14.8141817,67.1362551,37.6239321,41.2749461,22.9120654,19.1077113,48.5450232,6.1562307,30.0349095,13.795657,1.7388203,1.8348268,18.9399233,71.4929916,73.2948535,67.6921805,27.6150521,10.4445958,15.3015345,68.041544,38.7061636,41.1660602,23.1138092,19.4486489,48.2698196,6.1435512,30.372701,13.177386,1.6663623,1.7619103,19.4918041,72.1874804,74.1004869,67.0911288,27.172147,10.0459824,15.9068868,69.0891067,39.4808368,40.3938303,23.8478243,19.9474409,47.7262357,5.8093668,31.3649481\r\n278,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,0,0,0,0,0,1,0,1.9348403,2.0877338,20.4612922,68.8523987,72.5746891,64.007867,24.2166141,11.499088,16.9490134,66.8796382,35.6201371,47.0153008,26.7117903,20.9208235,56.0238995,2.9265091,44.029854,18.1507598,1.8865274,2.0418065,20.1047008,66.2197592,71.8196579,61.8667302,23.5119758,12.9144495,18.7276946,67.7156475,34.9056023,45.5818994,26.414293,20.5074628,55.5603372,3.3919499,43.7394649,15.5173258,2.0425027,2.2013585,21.1507374,65.7918307,70.5149487,63.1658977,24.4277345,12.3302533,18.0401585,67.3438291,33.554958,44.1576678,27.4400447,21.5325181,55.3839389,3.4644901,43.6097112\r\n279,0,0,0,0,1,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,0,0,0.9073658,0.8810915,14.0707805,76.9243961,76.3931493,77.4511435,19.9327249,43.0511316,19.8316303,64.9732677,30.9952364,50.012578,18.5257848,14.8262332,78.9769367,5.1304348,39.9144254,16.6167665,1.0203261,0.9936167,13.3642297,77.049485,76.0120614,78.2000264,19.6473935,42.4464099,20.2749766,64.3581406,30.2815995,48.9590372,18.5406019,14.4520159,78.2595694,4.9589202,38.4085213,18.2258065,0.8945353,0.8673467,13.4261162,76.289514,76.1114101,78.5185752,20.2998117,41.4053152,20.2194352,64.2242777,32.1364098,50.0034072,17.65553,14.2569124,77.8218426,4.9880526,38.030888\r\n280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2842138,1.3041954,16.9280203,66.6510695,67.7958088,54.0536952,27.6493089,15.8180883,14.9963103,69.299092,39.9434238,41.902415,20.8464666,16.889278,58.148522,4.0074025,35.7953512,14.735114,1.3321672,1.3371456,16.7624963,65.0230507,66.5891389,52.3270184,28.2585086,14.7736283,14.0127007,69.9326906,40.1720672,41.077508,20.774611,16.6102262,57.7269074,3.8515572,37.1271626,14.7249286,1.2764824,1.3122048,16.8346269,64.4871578,66.1513805,52.5412588,28.1704511,14.9693914,14.2311626,70.2608007,40.6483596,41.2881981,20.9855187,16.7078794,57.3138119,3.7641047,36.2072863\r\n281,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,0,0,1,0,0,0,0,1.3230501,1.3421579,12.5977144,71.1472959,71.4962811,62.7248907,30.3962339,15.2619254,16.0120413,65.1252039,39.1407263,47.371142,17.5454932,11.5465792,55.6407367,4.2124251,40.4606176,10.8062513,1.3205059,1.3376216,12.8514433,71.1560711,71.4931645,62.4219301,29.5733967,16.2233321,16.2316805,65.8403972,39.854216,48.1128773,17.8275643,11.8213428,55.4315317,4.2137559,40.7979556,10.4497191,1.3096065,1.3344719,13.1646248,70.7701096,71.3942166,61.7629978,28.7278953,15.3333214,16.4978827,66.2505328,40.6886273,48.0219197,18.1235951,12.3376139,55.6575818,4.2949677,40.6583995\r\n282,0,0,1,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,0,0,0,0,1.1459886,1.2082102,13.5518581,76.7183238,76.1466588,72.522763,20.0806542,50.0024416,25.7886863,62.0182962,34.3560065,52.3226335,18.1967693,13.9699146,79.4074024,5.9256076,36.3495235,11.8802994,1.198832,1.2616053,13.2882033,77.2906015,76.6478193,72.2457681,20.4451624,48.2810314,25.158549,62.3644103,34.4918208,53.3598671,17.8452091,13.6029417,78.7992189,5.8226622,36.5564695,11.9836059,1.2536989,1.3147441,13.1724939,77.6500764,77.1085782,72.6416594,20.6028771,48.0677227,24.8657839,62.3058793,34.0618129,52.8005048,17.5533172,13.3445025,78.1723127,5.8735418,36.5910066\r\n283,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4155501,1.5016498,22.4678007,61.1689001,64.0003268,59.068792,29.5831871,8.1394369,15.1524584,65.4853156,38.5668639,41.2423155,27.6859187,22.5410285,52.3424301,2.3201511,39.695641,32.1576882,1.2889479,1.3751495,20.6113967,59.4015789,62.4694803,57.8900202,31.0712586,8.5132396,13.8623853,66.7337142,38.4739932,39.0520935,25.9390612,20.9002026,50.8050482,2.5235516,39.5665411,29.687553,1.2388172,1.338133,19.5461005,58.1257461,61.8436241,56.6305765,30.7185015,8.3653924,12.9027688,66.5040504,37.893675,37.3141209,24.5288137,19.6299616,49.3737435,2.6031613,39.4947012\r\n284,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,1,0,0,0,0,0,0,0,0,1.0844168,1.1722547,18.4457801,75.8275796,75.5117954,66.1194097,16.3647189,66.0772066,31.1951547,65.9259651,29.9707724,50.4096532,21.8803603,18.1798619,86.1021711,4.1086978,33.6695059,10.4302771,1.0090847,1.1134586,18.8831232,74.6818129,75.1137942,66.418484,16.1293953,64.2720263,31.4552515,65.4326055,29.9173189,50.8772524,22.4445772,18.7624249,86.1654371,4.0739685,33.7164251,8.6037453,1.0730089,1.199679,18.8071604,73.3364187,73.7051803,66.2734358,16.59098,62.8341099,31.3356653,65.319522,30.8222471,50.8505831,22.101127,18.2200446,85.4658308,4.6366403,33.6333432\r\n285,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,0,0,0,0,1,0,0,0.7729066,0.7870906,14.2788337,77.0513509,75.258558,72.2016528,18.533005,67.0601498,28.4679122,67.5106967,31.998909,49.8956844,18.3735602,14.0966434,86.1563984,5.6761849,32.9443937,9.0376308,0.7424463,0.7560099,13.9273158,77.563632,75.8044895,72.1275427,18.22509,67.6427057,28.4267251,67.6827,31.8988568,50.0553114,18.2284046,13.9867157,86.5014527,5.6336095,32.6247613,9.3316405,0.9391711,0.9208262,13.9187882,76.2725836,74.5352773,71.7165283,18.7463455,67.7599427,28.7323187,67.2501332,32.5650358,49.6324473,18.0068584,13.8402526,86.1887347,5.925803,33.5035585\r\n286,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,0,1,0,0,0,0,0,1.3872803,1.4109173,12.6180039,66.8776589,69.9404756,55.0901986,25.6512683,9.446479,16.5621426,67.9246419,37.7475873,41.9596644,18.5623754,13.2467466,53.4675259,3.0726161,36.4656182,10.8695041,1.4840819,1.4804395,12.5313474,64.5134454,68.1054559,53.4459825,26.4557955,10.2704074,16.6086445,67.2757336,38.056807,42.4980619,18.8501413,13.1467614,52.6910581,3.2056404,36.9808078,11.2435407,1.5780093,1.5743272,13.0870972,63.4206621,66.5278996,51.4620466,27.4815678,10.3865351,16.7111794,68.1625584,39.7358231,40.2818438,18.9695136,13.4749643,52.5443047,3.4164836,37.2678538\r\n287,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2913545,1.2760962,9.7583042,61.5350551,63.4523398,54.5085398,35.0926479,6.9794735,16.4526057,70.9284703,43.7602215,34.1479937,15.7037189,9.7370201,38.1381559,4.3861227,41.2980859,5.3149223,1.406635,1.3915698,10.3128217,59.4264133,62.5610599,55.6813257,34.7141083,7.9447813,18.2893342,70.6182184,42.9704028,32.7178705,15.8046922,10.4465181,37.5122805,4.4070888,40.6363552,5.4779674,1.5928006,1.5773918,9.8371669,57.2488914,59.7185238,54.7150149,35.1272302,7.9460739,17.3064408,70.7899318,43.4973981,33.4063937,15.2440966,10.0488374,37.2067739,4.4558237,40.6228057\r\n288,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,1,0,0,0,0,0,0,0,1.3694932,1.4421806,17.1125223,69.7007169,71.3543351,62.7339998,24.9508591,12.6906417,17.6445002,69.2918654,36.6404131,43.8077807,21.9524441,17.440194,52.8772149,5.1999995,34.5962579,14.5725424,1.4829006,1.5520791,17.4438472,68.5674578,69.9715873,61.0266334,25.3093471,12.5449048,17.374797,69.1000033,37.1092317,42.6096498,22.3692189,17.6973093,52.7478455,5.2206659,34.760277,14.6517813,1.4482398,1.5218296,17.5710783,68.7318783,69.7284043,61.1573602,24.9946597,12.4453114,17.4958844,69.0868301,36.7800096,42.5856341,22.4463611,17.7319449,52.7764676,5.4409707,34.2429025\r\n289,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,1,0,0,0,0,0,0,0,0,1.1018122,1.0965558,17.989281,78.9924915,79.5975459,68.3123713,15.6031134,66.3319251,31.5617523,67.4649782,29.7364658,51.7718871,21.4765624,17.7458388,86.4070829,4.8538565,34.5949734,11.6758152,0.9979622,1.0091791,18.6113252,76.876718,77.2527017,67.2860296,15.9600306,64.7578377,30.2687033,66.8263404,29.9127017,49.9866761,21.733118,18.1490153,86.1777235,4.5226453,35.4945638,11.261338,0.8989526,0.9524867,17.5299679,76.6035681,76.5279772,66.5572248,15.8327885,65.3380222,30.5548935,66.2432347,29.9682154,51.2484106,21.2008942,17.6585673,86.1284594,4.301647,34.2825317\r\n290,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0.8170631,0.8295945,11.7648469,67.1183348,69.5108508,61.5748609,26.6608304,24.2895956,20.0158164,69.4542062,40.6963935,40.9651865,14.895204,10.8960617,66.8911288,3.5753386,37.0083919,9.3952268,0.8720124,0.8846611,11.5696703,66.9544816,69.3603968,62.0403838,25.5652183,24.5989392,21.0966397,68.9767012,40.243326,42.1156125,14.7122171,10.9829665,66.8939987,3.5461826,36.1669196,10.0663496,0.8524713,0.8691602,11.8698753,66.6432891,69.0618882,61.4240892,25.2523053,23.1546364,19.9237149,69.4059332,39.8734263,42.3671444,15.2435023,11.2529396,66.4473538,3.470697,35.5521122\r\n291,0,0,0,0,0,0,0,0,1,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,1.3853029,1.4997046,23.1439206,63.1949131,63.4417785,56.192437,22.145702,11.2729001,15.8295502,59.931454,32.119072,43.2118245,28.1440428,24.0676337,56.3913565,2.7769418,35.8519003,33.8686122,1.3665987,1.4821105,22.6935924,63.0270412,63.4516501,55.346046,23.9304085,11.1103845,15.6108008,61.4124981,33.4387352,42.5282385,27.250123,23.0128356,56.3117972,2.9857538,35.5358647,34.0554762,1.3140823,1.4390895,21.0943417,61.7230464,63.2713765,55.3259556,26.1065958,10.398349,15.8993106,63.7775707,34.8877643,41.7988209,26.8368921,22.296875,56.0740401,3.1211186,36.2250319\r\n292,0,0,0,0,0,0,1,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,0.6976557,0.7292262,10.6407645,62.1925319,62.2183154,59.1864188,29.5660574,9.9322535,13.6260775,72.1535174,43.420312,36.5538225,14.216629,9.4970487,46.8098303,5.495508,43.2926851,3.6858855,0.7715839,0.8037404,10.5692788,63.7034199,64.0562894,59.8666657,29.332482,10.636383,14.4069841,71.7252353,42.8066672,37.3262778,13.9448307,9.1716129,46.4762435,4.9816627,42.8159591,3.7216505,0.8241416,0.8571143,10.8733632,64.5711071,64.7711432,60.2241183,30.2269389,11.1407462,15.3593648,70.9780925,43.5545934,37.6942583,14.1848927,9.1404563,45.8564689,4.8104607,41.6740207\r\n293,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.8373179,4.9539813,40.8693071,65.5916187,66.6234031,65.5223335,20.8806899,8.6270643,14.7813366,58.7526096,30.3387127,49.0672117,49.0821282,42.3121896,54.3391089,2.6319415,33.4778761,40.3185533,4.8829254,4.9911727,42.1734641,65.1144381,65.8669865,64.7116233,21.0044022,7.7038974,14.9121738,59.2055999,30.552879,47.8327664,49.8938459,43.1882411,53.9154385,2.4810869,33.4927836,41.3354115,5.1361166,5.2193655,42.436724,64.5367673,65.0491443,65.4495921,20.4138298,8.7877883,15.54197,57.9964205,31.1353608,47.2830155,50.048105,43.61806,53.8800194,2.4719153,33.9944777\r\n294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9994715,1.0799743,13.6417179,80.8397321,80.053161,78.6857463,25.4772957,24.79697,18.1820149,64.229588,34.462193,55.1958729,17.9757766,13.4429068,65.3463599,8.6417683,36.6620564,6.5740777,0.9423649,1.0232711,13.1545355,79.7820316,79.3762452,77.5969929,24.9943612,25.3543876,18.4750706,63.0144267,33.4177691,55.7276496,17.7151721,13.4289656,65.0807218,8.279497,37.6310239,6.9444483,0.9339482,1.0221042,13.167953,79.8959273,79.7282088,77.0405807,24.9897655,25.9799614,18.4867871,62.2740719,33.1877049,55.188712,17.7126176,13.3916315,65.8490459,8.1195143,36.8219709\r\n295,0,0,0,0,1,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,0,0,1.2464665,1.258979,15.705164,74.1851841,73.2904856,77.9662731,19.131867,43.5117697,18.927663,62.4943718,29.4938969,51.2352707,19.515442,15.4685836,80.3982053,5.4431072,39.7222222,23.3681462,1.097212,1.1098128,15.3686015,75.4833316,73.6843376,77.1797104,19.3232603,44.316179,18.8802643,62.4881821,29.6122023,51.7691313,19.1152815,15.0402145,79.9943407,5.49117,38.5005637,21.468144,1.0960482,1.1089481,15.2545046,76.6690681,74.9590249,77.9769285,19.8944611,43.762906,19.0601806,63.4072614,30.7626468,50.2904141,19.5115258,15.1756312,79.6693735,5.3662692,38.9940828\r\n296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2.134157,2.1398286,17.4142899,62.0077652,64.6538443,51.9087571,34.8624115,6.4158978,15.208019,70.9196199,41.3760358,40.1046195,22.8167003,16.6266754,43.7468219,3.4711995,42.5747059,15.4958806,2.179705,2.208283,18.3408105,62.3586256,64.7408661,52.6982144,34.6878202,6.9075762,15.291104,70.3094655,40.6042086,40.5476586,23.8383267,17.4491633,42.8972823,3.4508472,43.6116442,16.1764978,1.8761845,1.904542,18.0027199,61.4801455,63.69198,53.1079418,34.5663363,5.8389043,14.848543,69.4930985,39.288324,41.1022338,23.7626079,17.1311779,43.6331324,3.3136958,42.8212693\r\n297,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,0,0,0,0,1,0,0,1.2658875,1.3253586,16.0969305,76.889008,76.3415179,70.1190378,20.7832957,67.046602,25.2759878,67.7222215,34.4023322,51.5695353,18.9514382,14.5843212,86.9933684,5.4221613,31.3845901,7.9787634,1.3625367,1.4225971,17.1461481,77.845724,77.2183433,71.0334409,20.343096,68.4026846,25.0479229,67.986438,33.9600823,51.7346676,20.096543,15.4579774,86.8590417,5.4236365,31.999022,8.788787,1.4212217,1.4894504,17.7241999,78.8833098,78.446913,71.7829123,21.0916143,68.3477211,24.0208063,67.2282657,33.0477708,52.1489101,21.244964,16.5079963,87.4498361,4.764883,32.1606839\r\n298,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,1,0,0,0,0,0,0,0.9274817,0.9337925,15.68186,66.3484201,68.2395649,57.8979421,25.2053833,14.5030464,18.7738206,68.6864245,39.0033789,41.1481912,19.1295504,14.5141647,59.058274,2.9436272,35.7442063,12.3436798,0.8498809,0.8560813,15.6771979,66.5961211,68.5754519,57.8323631,25.7548128,14.7250233,19.0115001,69.1547471,39.3688857,42.2190692,18.8420219,14.26582,59.1942365,3.0671011,35.1563087,13.1920847,0.8784477,0.8784477,15.3206518,67.7518052,69.2576831,59.1098241,25.7587926,15.3302733,19.2315149,69.1315954,39.5067899,42.5624597,18.2684771,14.0661446,58.9585101,3.3941993,34.2777832\r\n299,1,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,0,0,0,0,0,0,0.9542002,0.9398268,12.6138265,56.2195396,60.0601599,53.597266,32.9850032,10.580264,18.506812,70.0080808,44.2233472,34.2634416,18.5498638,12.8168381,45.1497308,4.1299221,38.6389703,16.8800889,0.9021759,0.8761287,12.2975066,56.2987302,58.7262536,51.9817595,33.2052358,8.7832805,16.8355486,70.6387735,44.6821883,35.1046565,18.3552418,12.7629437,45.1048045,3.9892316,39.2396456,15.9190704,0.960263,0.9344984,12.555698,55.152708,58.203162,50.5106252,32.9107833,7.566674,15.7525422,71.6171524,45.7401119,34.6231866,17.8860272,12.6431634,43.7077958,4.0784871,38.9936309\r\n300,0,0,1,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,0,0,0,0,2.3003804,2.3575524,25.5688896,79.5435509,78.1747487,73.6276907,14.4811895,61.2020408,27.1972786,57.7011678,27.0339737,61.1324581,31.9196089,26.1692342,86.7153605,4.9378685,37.848213,21.8525066,2.2397026,2.286775,24.727127,79.1633299,77.7587338,74.2275221,14.8684353,61.5335001,27.0674885,58.3633381,27.2334227,60.4276986,31.31397,25.4995537,86.4463885,4.8428793,37.6554412,21.1355836,2.0262201,2.0602426,24.057294,78.8356854,77.4972019,74.0390591,15.7584983,60.577394,27.2195558,59.0031594,27.1566001,59.6935334,30.3411747,24.821379,85.9586825,4.9633957,37.0051711\r\n301,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4513476,1.5479405,16.3050372,67.3803376,70.0689331,54.8277747,28.4525,10.8337373,16.8943015,70.450557,41.3064439,40.784265,21.6832611,15.6052403,52.5476577,3.2951187,36.4647728,13.7596725,1.4749883,1.5469194,15.8535912,67.3654847,70.5837414,55.7188484,27.7670423,11.4302921,17.5112384,70.7534957,40.8617083,41.084238,21.1166464,15.0780641,52.2271531,3.1094875,37.3489825,14.0243667,1.4764155,1.5477707,16.2288016,66.6845759,69.7743953,56.091546,27.8782918,11.7981883,17.9680067,70.5317148,40.5296667,40.311684,21.011631,15.3890606,52.0929274,3.0407479,36.4462778\r\n302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7434814,1.8146953,24.0003905,73.4520576,72.2056211,67.5520924,25.5039151,10.550068,18.0158679,63.5373697,32.5565486,47.4227213,29.2642528,23.8451317,50.789533,3.7871076,30.8400162,20.0988826,1.7915007,1.76482,24.1485115,74.028826,73.5353328,69.3132104,23.852429,11.0644056,18.2565982,64.3562856,33.3056574,48.4422791,29.4823433,24.2546864,50.8076367,3.8918285,31.9343295,19.7151046,1.9799501,1.9546634,23.787924,74.223281,74.54737,69.6741318,23.1152133,11.1259227,18.2369245,64.7946831,33.1351986,48.593172,29.4403718,24.0697899,51.5668507,3.7865464,31.5517601\r\n303,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,0,0,0,0,0,0,1,1.602266,1.6019342,20.7488767,67.7337547,67.9822907,63.1020012,30.7545474,13.8473903,16.7800188,67.0560991,37.9974485,39.1963699,25.5844003,20.5872785,49.5568472,3.4612215,31.4308254,16.6322521,1.5513587,1.5785866,21.1766871,67.3943022,66.8594165,62.7928532,31.2326354,13.3553149,16.3910801,66.6738703,38.1729416,38.8362013,25.95537,20.9466417,49.2258622,3.1129252,31.6914894,16.8008248,1.68413,1.7180785,21.9483783,69.137064,67.7488034,63.6851997,30.0055819,13.1838226,16.258401,65.1890274,36.8289317,39.7180928,26.5946699,21.3132523,49.2599555,3.0109878,30.6140997\r\n304,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,0,0,0,0,0,0,1,1.8027447,1.8531279,22.1917411,65.4213959,65.9398642,62.3966719,29.9308485,16.0667832,17.4625792,67.653527,39.4672396,41.8745332,26.6194157,21.6272896,52.4568617,3.7763602,32.133795,18.5622333,1.7750378,1.8171381,22.5664764,66.7026601,66.0559037,64.8734317,30.6714456,16.2746535,17.5306744,67.7651784,39.8700735,42.0699954,26.5228226,21.8304449,53.1012797,3.8780951,31.9008072,18.1330492,1.8644825,1.8971432,22.9915705,67.2545391,66.7610328,64.8012775,30.2561242,17.2299005,17.8267983,66.6637098,38.5948508,42.6196886,26.5942373,21.9344972,54.0820382,3.596127,30.9858077\r\n305,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5797796,1.4347119,17.9509635,64.6845029,72.0425355,71.5251324,18.4282227,23.5950131,24.403975,68.3412883,32.7507457,44.4224186,22.2613065,18.040201,67.393617,4.1838843,39.5418327,16.5841584,1.4965,1.3514323,16.8917315,61.7364836,71.0685539,70.2642867,19.5434381,22.0165121,21.7825801,67.6493225,33.0442276,43.7876553,20.7707708,16.5665666,65.552017,3.8860104,38.4848485,16.75,1.4490806,1.3253182,15.9203019,61.4961696,69.1095889,69.5654259,20.1462982,19.8690781,19.5263308,68.076511,34.2795447,43.714963,19.8672114,15.8835546,63.919214,4.7290117,37.8406709\r\n306,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,0,0,0,0,0,0,1,1.8734423,1.8687354,22.9582719,67.9533209,68.6756568,61.9071221,27.9740466,14.9236663,17.4104956,64.2568373,35.4347027,43.7951658,27.9687045,22.8160982,52.3160897,3.8543653,31.7859484,21.4570245,1.9878696,1.9831494,23.153297,67.7865074,68.6892572,61.8320948,26.9272601,15.1260149,16.2487033,64.7925166,36.7241791,42.3977523,28.3750097,23.2831157,52.2532569,3.8603326,32.1287224,20.1016842,1.9563916,1.9891822,24.2132387,66.6005068,66.8647258,61.069604,27.6248425,15.4902174,15.384051,65.5441258,37.4748501,41.7007735,28.5066903,23.8704254,52.1105973,3.826466,31.9406065\r\n307,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.8565029,1.8165635,18.5760309,64.1965704,67.2730866,53.1097864,30.5368518,4.5461457,15.2061867,66.3495564,39.3344157,39.0248012,24.5472413,18.2329956,44.5552336,3.4952894,42.8792511,15.0000071,1.7420152,1.7246696,17.6341372,62.293225,65.5569215,51.3068805,31.4276714,4.2992858,14.6150555,66.6382017,40.904852,37.7218734,24.3712478,18.3853236,44.0806956,3.3384251,43.2875465,14.3902509,1.7176993,1.7004027,18.0571592,60.6699962,64.525784,50.5281749,31.5475547,3.7386431,14.6969027,66.7976453,41.0061501,36.0789694,24.3822861,18.2804123,43.8775816,3.4316161,41.9734376\r\n308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5836019,1.6072629,14.961857,76.3928022,74.2224278,64.2955782,22.8025774,60.0582348,30.2157325,66.2485788,38.6278185,45.6606799,18.8472895,15.3251461,83.4310167,3.8734966,35.9657905,8.6526812,1.4544831,1.4780005,14.4925703,74.6762524,71.9869242,65.2941263,22.9051828,59.4614042,29.9737814,67.7894546,38.5491971,43.9804195,18.1784576,14.7583936,83.6318565,3.4758966,37.4880562,8.7807023,1.4021667,1.4021667,13.7951211,75.2142645,73.1879064,68.1106517,23.2913466,58.3101043,29.2871937,69.1558559,36.7808531,45.9349329,18.0074668,14.2363568,82.7065046,3.900395,38.4481933\r\n309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5583041,1.5647874,12.1215159,64.5360572,64.7952308,60.6899064,28.9626883,4.1618971,15.8589092,67.338003,41.9927265,36.1178934,16.7519791,11.7979216,37.2985839,4.3124905,32.2356702,13.3720675,1.4715057,1.5165372,12.4371221,65.1627341,65.0416054,61.0230653,28.4575691,4.5157258,16.3209782,66.8657963,40.6392108,36.510605,16.7887424,11.9628686,37.1297773,4.0152132,32.6948069,13.2850038,1.3622299,1.4001895,12.2171931,65.3043192,65.0576146,59.6723796,28.1613543,4.6933352,15.1316465,67.6937731,40.9594642,35.9942471,16.5313652,11.8222513,36.625007,3.859075,32.8380157\r\n310,0,0,0,0,1,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,0,0,4.7472409,4.8260588,42.2126226,81.1971942,77.7376374,79.6741085,14.1717194,46.6772934,21.954921,56.4040786,23.0554821,66.3202855,48.9219858,42.4539007,83.2885305,3.4517914,39.8114355,25.6618275,4.8796769,4.9815238,43.2082123,81.1199908,78.0319681,79.1806952,13.7732608,47.2345362,22.8890446,55.6553635,22.5011278,65.2832567,49.7664234,43.2554745,83.9466421,3.3622236,39.9446494,26.5034364,4.8881723,4.9842206,44.1418984,79.7781834,76.2246747,78.8527958,13.2729295,49.6504741,24.129694,55.9189858,21.646434,65.3527839,50.1925355,43.853673,84.6285359,3.5509217,39.5111386\r\n311,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.0430979,3.1384166,37.1302843,69.3846958,68.1272692,63.2614809,18.5302214,16.9297485,19.460603,60.8578062,28.0594146,53.194356,43.2471361,37.6236667,66.8455334,2.6738284,36.7289402,34.0222356,2.9817848,3.0751918,36.6145952,69.9956342,68.8512465,63.2288514,18.6225712,18.6264288,20.3317065,60.4094817,27.4576136,53.6080403,42.3094839,36.8417563,67.1710988,2.5968408,35.7304912,33.2325938,2.9233559,2.9978729,36.6711984,69.3575847,69.5026488,63.1243354,18.7294476,17.9138284,20.8538963,59.4737754,27.8269491,53.8189269,42.3257496,36.9213741,67.0235311,2.5145149,35.8391749\r\n312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.7783531,1.8039151,21.1650983,64.8435261,66.7683481,56.23002,28.7928087,9.8718331,18.2466968,67.8575926,39.0012646,39.3333856,26.8059106,21.5479146,49.1585056,4.0258855,36.2662303,18.7820857,1.8046174,1.8109488,21.3915967,64.7062069,66.4752486,57.0875249,28.9356175,9.9570468,17.1696797,67.5876682,38.9450743,39.4209875,26.4627632,21.3785711,49.4759724,4.0461924,35.9891986,19.1421772,1.9735405,2.0056491,21.5490848,64.0896121,66.2512516,58.0605377,28.5520738,9.1480317,16.2647227,68.3759339,39.2142,39.5954296,26.7104717,21.7113173,49.022226,3.7274179,37.0225996\r\n313,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2137932,1.3233838,13.2502167,58.5704,64.7535979,57.2590771,30.718315,3.5216029,15.0623503,67.0835732,43.0720283,37.4126697,19.1160881,13.4841478,38.0317844,4.1384577,42.7377593,11.8999955,1.0513372,1.1806907,13.7132652,58.6751306,63.092475,57.1477296,30.0519008,3.1296907,14.4562526,66.2589384,42.1340332,38.1555467,18.6279058,13.7428087,37.0574992,4.0117773,42.8585577,9.4015001,1.0563487,1.1788813,13.8419039,59.6697644,63.1891823,57.3910446,29.8506957,3.5200719,13.9342281,67.4336472,41.6918409,38.5844005,18.598607,13.7065417,36.9205605,3.9827722,42.5752065\r\n314,0,0,0,1,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,0,0,0,3.9431442,3.9730978,33.8287215,74.4151624,74.071581,72.4969909,18.8213488,31.9821518,15.5452762,59.1568254,31.4602977,53.5199266,40.9009573,33.6523424,72.6694416,5.4534396,34.2079403,21.457705,4.1148798,4.1701201,36.0840135,74.7611061,74.2400668,72.3188893,17.5476327,33.6714316,16.2175742,58.3220628,30.9579489,53.868785,42.2457817,35.1234796,73.0871622,5.3121523,33.6373783,21.61765,4.2849597,4.3580044,37.3896319,73.7816864,72.533438,72.4592088,17.6552558,34.5301285,16.6375688,58.149045,30.4226463,54.3046446,43.4805298,36.4006616,73.8908174,5.233799,34.2886254\r\n315,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,0,0,0,1,0,0,0,1.3825683,1.4252087,15.2084134,73.7096114,76.7069419,68.786852,22.1565702,26.5101278,19.3347494,66.0335366,35.5450518,45.5663121,20.0034625,15.7873534,68.412683,4.9472953,34.486145,13.7895249,1.5765723,1.6071847,15.4078171,74.1886221,76.7289679,68.991027,22.7642763,26.1862605,19.0958717,66.074438,35.3659501,46.442745,20.0172673,15.750149,68.4692499,4.8759929,34.804931,14.3864508,1.515713,1.5296044,15.1446053,73.3451375,75.8476168,69.3878407,23.2039995,25.7022221,19.7476436,65.9917484,35.6147595,46.2619082,19.4413067,15.1926315,67.3767083,4.906968,33.7341533\r\n316,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9786901,1.0803457,8.8828049,77.6484506,78.0653873,74.4236639,23.8857706,26.1515794,21.013392,65.7438992,35.9326622,50.0660971,12.7164786,8.4829967,62.3668045,8.3119832,37.4033392,5.1136364,0.9990083,1.1167246,8.6726053,76.2104198,77.9276547,74.6085057,23.7135392,25.6411554,21.2686882,64.9821156,35.4537413,48.9111777,12.5122288,8.5318057,62.141458,8.8683536,38.3125299,4.2431193,1.0077963,1.105806,8.4671147,76.6735999,78.0386217,75.3484957,23.8172565,26.197906,20.6540094,65.4239978,36.2510049,49.2776397,12.6342258,8.8087234,62.8585692,8.7367384,38.7195035\r\n317,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.0171669,3.0562228,31.3582505,61.7958719,61.2566619,57.4001627,21.3744654,11.1288953,16.5895215,58.6342639,28.7658059,46.5264505,37.487204,31.5514163,62.5187028,2.5288856,40.2457748,35.8586414,3.1644404,3.1830379,30.5018668,62.5902742,63.3028022,57.8665125,22.1577227,10.6790046,16.2863677,58.3478735,29.4784382,46.6645489,37.2130939,30.8752048,61.1798622,2.6107757,40.1726738,35.4135717,2.9926837,3.0294003,30.4899854,61.2355578,63.620821,58.9795625,22.9601271,10.1060796,16.5345745,60.3810824,29.8903154,47.2773111,36.6179842,30.4417999,61.0143562,3.1757837,41.0287341\r\n318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.556813,1.7115662,19.608537,82.1595542,78.2243896,82.2671441,13.615841,59.2017378,22.9391825,59.5581107,22.5017069,57.7418922,26.1519681,21.0517291,85.706388,6.065506,36.5712669,18.6358554,1.4917573,1.5715811,18.7774637,81.0554481,77.2686461,82.2107381,14.4364173,59.1270119,22.9149943,60.5603843,22.9792855,57.53419,24.4369289,19.6460714,84.8164353,6.2613316,36.0140715,17.0416006,1.4112453,1.5000274,18.6156503,81.4721541,76.7280214,82.6682412,15.0369356,58.2384791,22.3854037,60.9211621,23.6700418,55.6743232,23.4654345,18.9686034,84.8051601,6.1028458,35.3781974\r\n319,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.3224754,1.3335832,21.2582586,77.5241788,74.7642381,75.3152868,21.9539397,48.2902371,19.21362,63.5964272,29.2398286,58.4184442,24.9879846,20.5200528,80.2631663,13.0532615,38.6844106,11.9590571,1.3674829,1.3926486,21.6167194,77.0888461,74.6432572,75.5030761,21.1885071,51.2645266,19.8626567,63.414115,29.0082504,59.4447125,25.5325273,21.0860137,81.6426045,13.1816584,38.6082136,11.7044715,1.3362304,1.375089,23.0696138,77.4346049,74.5234506,76.2589257,20.6778563,52.7313865,19.815962,63.7868392,28.6589987,60.0151188,26.7380551,22.3284803,82.9611639,13.2547772,37.9952028\r\n320,0,0,0,0,0,1,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,0,3.9669404,4.109787,29.7029094,71.1865964,71.5707354,66.3151663,23.1786,13.8751318,15.0606131,64.2145306,35.0242941,54.8146482,34.6923449,28.1675113,59.9081175,4.2391477,36.474728,22.9973645,4.1332616,4.2799311,31.3714862,71.6437961,71.8069088,66.4529192,22.0471766,13.814618,15.1949979,63.9046773,34.5776954,55.2866456,36.0899065,29.6746089,60.3907136,4.1534429,36.8148435,24.5444954,4.2666084,4.3977448,32.602737,71.2300721,71.7353964,66.993509,20.9777038,13.7867702,15.2305151,63.5277601,33.8808079,55.4936873,37.3557544,30.8723051,60.7939577,4.1170476,36.958585\r\n321,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,1,0,0,0,0,0,0,0,1.8250113,1.8461353,23.8732956,69.3143389,70.0947108,65.72188,26.8094753,12.7340169,14.0427737,67.729897,36.7782212,47.85798,28.7720523,23.8743814,57.955892,4.9449752,34.7024731,17.4227937,1.8997243,1.9367662,24.1342928,69.1836318,70.5298399,65.8799997,26.4569363,13.3905024,14.3974317,68.2561273,36.5285753,49.2355979,28.6940128,23.6988964,57.9220216,5.0307715,34.8590536,16.6823386,1.9642965,2.012731,23.9791985,70.197497,70.9080884,66.3183318,25.9889915,13.7766241,14.5569324,68.824571,36.3725626,50.208111,28.698347,23.9325077,58.4800775,4.9030712,34.9813729\r\n322,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0699193,1.1167188,11.9371951,81.7944836,80.7836996,78.1991787,26.3832919,25.1020903,16.224289,62.7729851,32.1667486,52.4498844,15.1359344,10.5271793,63.6439268,8.3938025,37.4915559,4.8757198,1.0974412,1.1363867,12.4844063,82.1167778,80.6270154,78.8831964,24.3223434,24.8598526,16.824256,62.8326302,31.8421986,54.1183196,15.4644193,11.1824678,64.0006631,8.6437942,37.9368382,4.4339648,1.0927661,1.1653834,12.617823,83.2766397,81.9433164,79.3275011,23.8975517,23.5152363,16.2394096,62.4475274,30.6083533,55.9207835,15.8569005,11.5973316,65.0833372,8.5643598,37.918346\r\n323,0,0,0,1,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,0,0,0,4.9322396,5.0737317,40.0542797,71.8899434,72.4214273,73.9947037,17.0341573,38.1230733,17.9986791,59.9888423,31.2774467,54.1447534,47.6573269,40.5203259,75.2166309,4.6812833,36.7126242,32.7352894,4.9145996,5.1284203,40.8741441,73.1646794,73.7989198,74.7842499,17.9646423,38.9469167,17.3251972,60.7418694,31.746681,53.7586237,47.9587265,41.0144867,75.690601,4.7078176,36.5645813,33.1005602,5.0233646,5.2519131,41.1682293,72.0632178,72.0052192,73.3608153,17.7727898,37.250382,18.5291015,59.5066463,31.1715926,54.0845206,47.8240107,40.7720924,75.6724793,4.5597709,36.1784383\r\n324,0,0,0,0,0,0,0,1,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,4.0485498,4.1147889,40.0436583,73.9800542,73.0599824,68.3490023,15.8906146,55.1170704,22.9015508,55.0923357,25.1219027,58.4893735,46.6693604,40.371203,84.5248315,3.9906233,35.8196392,29.0327658,4.0270402,4.1148919,40.3129376,74.9177136,74.5368178,68.349073,15.0596882,56.2290647,23.1442012,55.7513447,24.7475241,59.3006627,46.9180124,40.4771234,84.7202788,3.9919437,35.4189777,29.5921572,4.0585002,4.1558018,40.2412379,75.1023563,74.6884005,68.5518909,14.8701291,56.549606,23.5598261,55.3365168,24.6220273,58.2749906,46.8101928,40.4864988,84.698472,3.9105034,35.7588537\r\n325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.2660764,2.4284984,29.7598533,82.8605728,78.3555547,83.1707145,14.2636975,58.2073433,22.7812484,60.3866434,24.6858487,59.7239339,34.5536217,29.796142,84.7199385,6.1403352,35.9200762,23.7758843,2.1521625,2.2688212,28.1519714,82.6027394,79.2175256,83.3975082,14.0637819,59.2437313,22.4238295,61.495184,24.8462757,60.0221501,33.6735,28.5871697,84.5783419,6.1426107,36.0814244,23.5319008,1.86385,1.9793977,26.5352891,82.5551853,79.0192511,82.8734256,14.6794491,58.4095917,22.7594062,61.3282227,25.036207,60.410849,32.1349016,27.2132108,84.976601,6.5629986,35.8637047\r\n326,0,0,0,0,0,1,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,0,4.3480836,4.4301226,36.7376441,70.8190754,70.9903538,66.829126,19.5563663,14.4987503,15.1397683,61.9668724,32.2920016,55.7624836,41.9804683,35.2630033,62.4256905,3.7012929,37.1817031,28.9062521,4.5325059,4.6367665,37.3953325,70.8164666,70.9036216,66.2240387,18.9973465,14.5541349,15.4843955,61.5465383,32.408519,55.7196489,42.9618016,36.1313616,62.9008696,3.4377573,37.1808705,31.1884071,4.6269554,4.7515972,38.3354001,70.690738,70.7111928,66.483528,19.1367607,15.3089655,15.6228077,61.6121364,32.4592912,55.931827,43.7865266,37.0433954,63.5834402,3.467619,37.1737798\r\n327,0,1,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,0,0,0,0,0,3.0213561,3.0456658,32.7092058,68.5688065,69.380859,62.9873487,20.0531918,18.2318405,17.9114934,63.4000435,31.0834325,51.2666762,39.3835814,33.1363587,68.1687511,3.3621188,37.0387069,35.1462745,2.8484899,2.851924,32.2086659,69.2680438,68.9196913,62.7962051,20.6272718,18.1016313,17.9166908,63.0624212,32.4156068,51.4861422,37.9801254,32.1596398,67.2136827,3.492347,36.4043222,35.5753164,2.7279893,2.66304,30.7306448,70.015845,68.8131013,62.2637119,20.6817372,16.6792923,15.3624423,62.5428466,33.163342,51.8153967,36.5854127,31.1137943,66.0505796,3.4184813,34.422411\r\n328,0,0,0,0,0,0,0,0,1,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,1.4686962,1.5368636,20.9193966,60.1391705,63.7797047,55.415577,26.9987247,9.2771386,14.8980713,64.7658272,36.5969597,40.9886774,26.103122,21.6606757,55.3878977,3.4381711,35.8342828,31.467914,1.429939,1.4735275,20.6058489,59.9010105,63.5207959,56.0351821,27.4627887,8.7817976,15.0402217,65.9527091,37.740085,39.7494663,25.6437341,21.2292773,54.8209265,3.4587157,34.831008,29.6692607,1.5085177,1.5908736,19.6040519,60.6308248,64.2222962,56.7241493,27.9206162,9.2112154,15.5509679,66.5555246,36.5736788,39.9653538,24.612667,20.1232709,54.3186891,3.3739311,34.5093165\r\n329,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2.1843346,2.3775538,23.6473233,63.1202505,67.0394862,52.5165666,31.2508472,6.511424,14.7379941,67.743787,38.2690758,41.7958636,29.5403615,22.7761089,45.3515982,3.9209817,38.3117089,15.9163666,2.2288234,2.4256449,23.7999385,62.0510908,65.2247011,53.6301996,32.4206185,6.484176,14.7052435,67.4571052,37.9293095,42.7840362,30.4994393,22.718253,45.4421964,3.8259409,38.3462565,16.2613883,2.2576585,2.4783619,25.2115385,61.7558608,64.7297327,53.3841624,32.4112816,5.6432202,15.2974635,67.435406,37.6774155,42.8573655,31.4723134,24.242485,45.2190841,3.5780088,38.5332741\r\n330,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.0819293,1.094852,12.9556493,79.4369031,77.9351519,73.1303836,20.3578152,27.2365221,19.8407833,64.0765297,30.8798094,54.3120492,16.5584794,12.7450951,65.934295,13.9010669,38.0166414,7.3448413,1.1168276,1.1455373,13.2636856,79.5646686,78.5072233,73.6250243,20.400815,26.6940459,20.239329,64.8510599,31.0017668,54.2083139,17.0321336,13.1094996,65.7172708,14.1350763,38.2319676,6.9366364,1.1734597,1.2071197,13.4690378,79.0082694,77.4868447,73.0122846,20.1035721,26.8265114,21.2406526,64.3723665,30.5027246,52.68391,17.301532,13.4505686,65.9346108,14.3771071,39.3540051\r\n331,0,0,0,0,1,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,0,0,0.5464126,0.5644795,9.2315871,74.564171,74.7712103,77.9351891,25.0761883,35.5195892,21.2373087,66.6277108,34.6891168,43.3384375,12.4492165,9.1990714,71.8443627,4.1691662,35.326087,10.0706714,0.5966097,0.5966097,8.6662507,76.1664743,75.3468835,78.6357264,24.9302364,34.4607042,21.1114263,66.772688,35.1977405,44.5847076,11.9337979,8.7979094,71.9571865,4.1616766,35.1918465,9.5959596,0.832777,0.832777,8.4924204,76.7586653,75.6581727,78.4311175,23.7530628,33.3154502,21.0064771,65.9058399,35.4638915,43.5191127,12.0888632,8.5689556,70.582878,4.5508626,36.2171838\r\n332,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6409046,0.6307161,7.6651802,77.8523751,79.0463272,78.7172218,23.1268333,38.3087856,21.481652,64.3710717,35.4036132,46.3538861,11.2430995,7.265197,70.8212895,6.0182511,33.8505749,4.9319745,0.6400244,0.6298978,8.3811705,77.6991548,79.1193028,78.5190781,22.6667562,36.1387244,21.8314928,64.9901242,33.8050026,47.0250623,10.9185979,7.1782218,70.7732352,5.9442519,34.562997,4.7231286,0.5831154,0.6238486,8.4737556,77.3398547,77.9772498,77.9420564,22.9138561,34.5717215,21.1768577,64.9108711,33.9148062,48.1326266,10.7730328,7.1546096,69.9298731,6.1101523,35.9339417\r\n333,0,0,0,0,0,0,0,0,1,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,1.1529381,1.2989768,13.0323262,62.6035983,65.5468407,56.5052524,30.4678956,5.8351095,13.0366419,67.6572426,42.6687492,34.3398595,17.0331706,12.8279239,39.0187831,3.2723496,38.628886,10.5947584,1.0498383,1.1979864,12.512096,63.0014076,67.0467821,55.6592287,30.5640239,4.8465213,11.9141228,68.2145826,43.1310179,34.5396748,16.3937577,12.222215,37.8851667,3.6359771,39.5004232,10.6177138,0.9891588,1.1130627,11.7512433,62.5215602,64.6704193,55.8774968,31.2015315,4.3617986,12.3761636,67.987634,43.2388849,34.7425389,16.2525058,11.843685,36.5275777,4.1173892,40.251319\r\n334,0,0,0,0,0,1,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,0,4.5978139,4.7292166,38.6395178,70.930275,70.422906,66.262718,19.165322,15.3785432,15.7358513,62.0014625,32.6595311,55.9626868,44.2265384,37.5549856,64.0911573,3.5051298,37.2026993,31.8996001,4.6150634,4.7706422,39.5750267,71.0272173,70.1080176,65.2968781,18.913969,15.527755,15.6292102,61.8517397,32.2675539,56.1837484,44.9200817,38.3047197,64.7070364,3.473121,37.5406247,32.9359845,4.5430836,4.6985357,39.6376849,71.1270402,70.7684935,65.0342296,19.0588003,15.9314735,15.8923775,62.25305,32.2486903,56.4827576,44.7598745,38.3539878,65.0978976,3.4244931,37.7021335\r\n335,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.1766551,4.321917,41.2671373,62.6087699,64.5400445,58.9023384,16.7701655,10.4521716,15.5785297,58.2705068,25.8336911,49.3360927,48.713672,41.6140131,60.5235008,2.2737812,39.4128624,30.8700595,4.5602157,4.6776308,41.8291066,61.5050522,64.2676706,57.6492694,16.8962377,10.1369966,14.7908648,60.0705749,27.1316634,49.4886148,49.4092785,42.5392665,60.3227815,2.1627896,40.3599545,31.7493755,4.8074066,4.970343,42.8517365,61.5138045,63.5074929,57.7154036,17.6972982,10.8814266,15.372929,60.517105,28.3475269,49.2211618,50.2269855,43.7610071,61.0530538,2.0449791,40.5427332\r\n336,0,0,1,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,0,0,0,0,1.0530902,1.0593503,9.2048053,77.4605571,76.9027687,73.5334815,23.8094584,23.7924989,20.6582144,65.6934364,38.8272994,49.24954,13.5139272,8.8862163,57.5343108,6.85621,38.9812715,5.5841482,1.0861334,1.1010085,8.9276712,77.2631015,76.7875369,72.8489889,23.5471763,22.5255146,20.1480319,64.9151938,38.4486657,49.9024604,13.4697995,8.6969306,57.6040749,7.0788717,39.3976125,5.7364729,1.2002836,1.2079155,9.2217732,76.6814945,76.3757718,72.2104248,23.6799839,22.3271663,19.4836833,64.3015695,37.7042203,50.0786165,13.4627427,8.7588439,57.5632919,6.9551026,39.3317707\r\n337,0,1,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,0,0,0,0,0,4.0443389,4.1077071,35.9114997,74.9568369,72.5108277,62.0323548,18.7492846,15.9092873,16.5494102,61.7361085,32.5699929,55.5564754,40.8929868,34.2959728,66.7674063,3.4974207,33.6621293,27.2711502,4.0667793,4.1297465,36.0520744,74.2372684,72.3761785,61.4661821,18.3900689,16.269048,15.5583452,61.6641987,31.6942202,55.1478311,41.4747528,34.7533634,66.5129082,3.3820388,34.0660215,27.8679027,4.2367991,4.3006118,36.8927165,73.993862,72.4113192,62.58861,17.6488354,16.6382324,16.9042091,60.6428622,31.4134071,55.3391697,43.1183307,36.0081578,66.7372095,3.2892697,35.0621333\r\n338,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2968203,1.3038381,13.2430476,74.9377815,72.7660716,68.4780915,23.1990809,56.3296006,29.1377364,69.3123937,37.7326265,46.7835574,17.9198424,14.0777202,82.6211667,4.3017761,41.0975453,12.5644454,1.3507214,1.3580215,14.4979573,73.2854452,73.1513349,65.8919887,24.8042892,55.1134187,28.0318716,69.2977967,38.6009769,46.5278642,19.3142658,15.0312224,82.2485802,4.5401618,41.5505148,11.9514755,1.374835,1.4504403,14.5402411,73.8749791,75.4513596,67.8482219,22.9778173,55.6300602,28.6327034,68.3103288,36.4337124,47.2223166,19.1820029,14.9358142,82.1690075,4.6520056,41.2738288\r\n339,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.3669722,3.5209985,33.1558177,83.283068,82.5270216,78.8139936,11.4216597,57.4701491,27.7728779,55.0719417,20.141641,66.9860882,39.8023024,32.8997674,87.0007118,4.2496566,34.7033552,28.1985684,3.2006903,3.3571092,33.7090471,82.4067584,81.7836374,77.2564419,12.0340735,57.7884429,28.8326814,55.5814504,21.2105847,67.4995176,40.3407181,33.7021486,87.7248582,4.2434214,35.6722929,27.3535575,2.926437,3.024842,32.5727663,81.5882373,80.2109223,76.8545982,11.9090064,57.6717208,28.1125876,56.9284575,21.0088754,66.685683,39.1708971,33.0118419,88.1029194,4.0339453,35.3417884\r\n340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0.9474978,0.9474978,11.9186305,68.0787691,70.3502489,62.7793388,24.810458,23.3677491,20.442838,69.6427146,40.2529752,42.2835364,15.1043886,11.3418816,66.2494163,3.4632531,35.0202591,9.7700964,0.9833588,1.002101,12.1118538,68.4320175,70.6194464,63.3690414,25.1036335,23.76051,20.9431116,70.3358507,40.9397875,42.213458,15.788883,11.778304,66.3971566,3.5625977,35.1333004,10.6459116,0.9365472,0.9610413,12.0773851,68.8535192,70.7972696,62.1241249,25.2905891,23.6603792,20.182611,70.920962,40.8767784,42.04929,15.8896342,12.0157543,66.52304,3.3693647,34.7156725\r\n341,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.7096596,3.7648872,40.4419395,72.4157548,73.8864664,74.1748054,13.4703829,28.715569,21.0492483,63.5216131,23.5122017,58.7606085,45.2287673,41.2855059,74.3732697,2.6676397,37.4499332,28.0911063,3.4791504,3.5920662,39.3797069,75.0815855,74.6932177,75.6693473,13.2479063,28.7337993,20.2510996,62.8179148,23.2828144,59.7949583,44.0070862,40.2989462,75.4598704,2.4088421,37.1603261,28.0487805,3.4667449,3.5818772,38.7338713,76.2011111,75.9552548,74.4790245,12.9920781,28.9388326,19.9351701,62.7656664,22.5057234,61.1763715,43.5271715,40.372648,75.243934,2.1566607,38.6490251\r\n342,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4540765,1.4716626,17.8738428,63.4785282,65.9028429,60.9513914,25.8822948,12.3658905,18.2503613,65.1453821,37.1872047,43.6010325,22.1755416,17.5634596,58.8540517,3.9526807,33.3520304,22.0828873,1.3216615,1.3286532,17.1558897,63.5420203,65.7676991,60.7264868,25.0483864,13.0891527,18.3236007,65.0662466,36.3891826,43.0483786,21.4259165,17.0271531,58.5124532,3.9417452,32.7733931,20.5518021,1.3390376,1.3460342,16.3866174,64.4677743,66.2651877,60.7451092,24.3215262,12.2267379,18.1856305,64.7704314,35.320994,42.4346169,21.3100702,16.7326769,58.0036179,3.8962149,32.5280441\r\n343,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.6972201,4.7436583,43.7154576,76.5818776,75.589192,78.7197263,13.0516363,52.1045951,23.0012844,59.3900772,22.9475872,62.0839875,49.2827812,43.9586434,84.2251562,5.1869422,37.7395955,24.9208599,4.6057399,4.7049254,43.1151975,78.9365046,76.4954798,80.4032015,12.3390702,52.7097335,25.2611704,57.4203256,21.4944078,63.7444831,49.1737178,43.5246804,84.4519094,5.0506469,37.5611436,25.5471941,4.7061053,4.8044743,42.6749138,79.5800243,76.5119407,80.1204464,11.60668,53.2383315,25.4986882,56.750984,20.9991098,64.0969747,48.5812907,43.1452075,84.6871048,4.7278708,37.3157289\r\n344,0,0,0,1,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,0,0,0,1.6008632,1.7289025,10.9785477,66.1811072,65.628176,65.9710865,28.1367949,4.1290704,11.8464579,69.7710862,45.4161768,35.3642909,16.0118333,10.4296638,32.265485,8.7640524,33.3195345,8.6734694,1.3770867,1.5122878,10.8838434,65.9851976,65.3760602,66.0053365,28.5172169,3.7093915,11.8250522,69.5651688,45.8989367,34.9059136,15.7394089,10.5460949,32.0228976,8.2976139,32.7169941,8.0327869,1.4184998,1.518931,11.299889,66.8330818,65.2139942,66.6884295,28.0635488,3.0711213,12.4233106,68.9990582,45.256859,35.5375465,15.8126231,10.5042558,31.210419,8.3098869,33.2886257\r\n345,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,0,0,0,1,0,0,0,1.159572,1.1699592,13.4913327,76.482881,77.1555834,69.2804857,23.1055114,26.6263939,21.1301711,66.8793859,36.6059864,48.3181031,17.1909837,12.7617258,67.5463035,4.1700968,34.1572857,9.0530059,1.1054196,1.1174427,13.2285558,76.9761054,76.9224533,69.858956,23.1473012,26.7834094,21.1199607,66.6235105,36.1641686,47.9300933,17.1394597,12.55263,67.6142974,4.0399489,34.5712859,9.0796071,1.1335427,1.1317556,13.7278941,77.0549327,77.0259675,70.1929884,23.3722774,27.2267242,21.3347692,66.5470647,36.3133092,47.3064755,17.3919824,12.9983865,66.8916666,4.1594493,34.2744717\r\n346,0,0,0,1,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,0,0,0,1.1723283,1.1868156,13.2684845,70.6267382,69.5154127,70.3112364,25.6604033,12.5853683,15.6776427,64.7160941,39.6353741,42.4167715,18.8280994,13.3598461,54.8359394,5.8913416,34.5817518,13.844086,1.1072283,1.1624262,13.0237746,70.0072228,68.8894211,69.4553856,26.185136,10.6973797,14.4047121,64.8174017,40.4874344,41.8322832,18.5670363,12.9947846,53.5417552,5.8528635,34.504254,12.9166667,1.1957595,1.2858877,13.2438371,70.1819788,69.1637493,70.5342651,26.0811129,10.6034481,15.4843268,64.3512588,40.3616897,40.0422936,18.9092955,12.9152428,52.1271781,6.0018776,33.9362506\r\n347,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8419319,1.9275653,20.063719,65.4519933,66.9247347,57.9271917,27.0682765,9.5902693,17.056175,66.8382582,39.6523059,38.1025891,26.2114292,20.7351533,48.7793853,3.9792113,35.6284312,20.1697075,1.8081281,1.8877054,20.4059473,65.1196755,66.4024539,57.3897333,27.9560302,9.8820096,17.3038004,66.5813841,39.7801084,38.6430397,26.5565424,21.0775404,49.1074211,4.0980829,35.469934,19.7229633,1.7266743,1.802035,20.0447416,64.3919473,65.9316315,56.9308313,28.1364313,9.7913553,17.2810822,66.8159012,39.3842566,39.3601616,26.5031339,21.0191544,48.6660893,4.0577003,35.2056685\r\n348,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,1,0,0,0,0,0,0,1.033462,0.9943384,11.713693,67.4193575,70.0653585,57.6860414,30.2003065,14.3412458,18.7566583,70.2557412,37.8677395,43.2985129,15.8227761,11.1047066,53.4232688,3.5501788,36.8003421,9.0443779,0.927204,0.9006835,12.4105398,68.3053027,70.9963787,58.5610769,29.2528793,13.6008033,19.2116795,69.8105129,37.0386622,43.476468,15.9646377,11.4516595,53.2638567,3.3088243,37.5912387,9.2334559,0.9615221,0.935095,12.2969332,68.0611691,69.5314975,59.6017111,29.4329538,11.7880588,17.6400192,69.801702,37.9780936,43.7039541,16.2298718,11.4002161,52.56059,3.0262154,36.8232283\r\n349,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8769011,1.9157415,21.1728257,66.3578068,67.9321187,54.848459,25.55614,9.5031072,17.2689276,66.8028006,38.2052548,41.6584311,25.0876914,20.3972044,51.2482964,3.829057,35.4044347,18.5474101,1.9383509,2.0028996,20.7593342,65.4995174,66.6523035,53.741776,25.5623509,9.3123118,17.4815362,67.154364,38.3412955,40.9524733,25.1631568,20.3932874,50.8813673,3.7750542,35.4145052,19.168725,1.931047,1.9762693,20.5722422,64.9949515,67.0650378,53.9357518,26.343729,9.7823961,16.8751476,67.350868,38.779819,40.5378487,25.2307745,20.5974387,50.5248551,3.6056399,35.527734\r\n350,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5422966,0.5629283,9.8616077,78.2551561,79.8032235,72.815219,24.1798847,23.8078247,18.6923857,64.5114331,35.4667044,51.8845723,12.092644,8.5463198,65.186014,9.5215344,38.178918,4.8009178,0.6105675,0.6468888,9.4248536,78.1476821,79.6903824,72.8888544,25.4214975,23.7590989,19.7104604,64.6485139,35.9040318,52.4359077,11.6567423,8.1183839,64.7595314,9.314215,38.1640959,5.2162903,0.6731368,0.6796688,9.1574059,77.8121231,79.7914525,73.1185317,24.8027109,23.6449235,19.5011069,64.5031786,35.8146738,52.7547536,11.7458675,8.1395325,65.064095,8.9243742,38.2770249\r\n351,1,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,0,0,0,0,0,0,1.8844079,1.9373766,21.8566856,57.0763917,62.7297144,54.4582572,25.5915307,10.5225018,17.457411,64.1325396,36.6261033,45.2416246,27.4770455,21.8635729,58.0237613,3.0580994,36.303355,24.3065833,1.5850347,1.6384751,20.832675,57.1066394,62.9137641,55.4547888,26.1656309,10.585637,16.7512115,65.1346856,37.2817835,44.444587,25.7389266,20.6436702,57.4597787,2.5813845,35.6846134,24.2811077,1.4772403,1.5300946,20.1864596,57.2645757,62.6901241,54.6111889,27.8639932,9.6877568,16.6202278,66.7783961,38.7080401,42.6860433,24.9536014,19.9016373,56.5663494,2.5595741,36.3127787\r\n352,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,0,0,1,0,0,0,0,1.0512423,1.0649357,12.4443321,71.6456284,72.880781,60.510328,28.6857246,17.8809073,19.4254447,66.6042894,43.0615253,48.792176,16.668262,12.4777816,60.1158825,4.4706312,40.6594208,8.9271367,0.9837671,1.0027519,12.3505408,71.2437726,72.8670594,60.7534915,28.8093044,17.9193339,19.4076254,67.0093895,42.9128973,48.7727801,16.5025536,12.423061,59.7687301,4.5397362,40.9107948,9.3824169,1.1023092,1.1203786,12.370354,71.44653,73.2887145,61.0833149,29.3367525,17.8473503,19.3194715,67.1922597,42.8500343,49.0281223,16.4026505,12.2609953,59.4707079,4.6412619,40.7202908\r\n353,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,1,0,0,0,0,0,0,0,1.4989484,1.521219,18.6581427,67.355118,68.938582,64.25988,26.6609623,10.9195379,15.1939456,68.060656,38.8835171,42.9851105,23.0822816,18.6746136,51.3191574,5.385704,35.2477457,17.7564071,1.5882593,1.6287906,18.9913216,68.1023639,70.193996,64.2599321,26.3544881,11.0669398,15.2564893,68.1286818,38.877153,43.8555328,23.417328,18.9842931,51.6564301,5.6312385,35.3638715,18.4484944,1.6437367,1.69229,19.1142576,67.9961053,69.2445276,65.0538992,26.2568439,11.3771071,15.3529242,67.7794287,38.9263884,44.741128,24.0166754,19.3911278,51.6803293,5.3330147,35.4590173\r\n354,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,0,0,0,0,1,0,0,1.0545117,1.0365888,14.6267445,77.1413154,75.2613932,71.6451307,18.76645,67.2176259,28.0431116,67.4774683,33.3080786,49.7926832,18.5934911,14.1806456,85.2418214,6.0753618,33.6544477,9.244395,1.1339308,1.1133213,14.8754334,75.8928033,74.2618871,71.2946553,20.2130711,65.6240419,27.7015811,67.7141225,33.8034427,48.9728443,18.7198246,14.2585626,85.2534497,5.9880847,33.8900381,10.6524925,1.2732468,1.2532387,14.7481763,75.1738233,74.2447696,69.8303821,21.8878588,63.9733243,26.7880893,68.0167505,34.750917,48.7547926,18.27695,13.8156045,84.893537,5.4287648,33.9456525\r\n355,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.0487896,3.1423664,31.8530939,65.1251675,65.5172345,60.6853891,28.1358805,7.8220237,17.3359652,62.4271848,32.8755344,48.6444464,37.8385386,31.4306354,53.0081048,2.7480907,39.5711624,16.9580003,3.5507663,3.6064375,32.9241932,65.4055368,66.9146801,62.6328283,26.2926393,8.4658974,16.9741954,63.2565529,33.968684,51.1632849,39.3763208,32.7965643,54.0461179,2.8459712,40.5594949,18.7396819,3.7820867,3.8656662,33.2970821,64.989423,68.298975,61.6657045,24.6563255,9.4904026,17.037078,61.9438263,32.9503124,50.0707401,40.2426133,33.4183145,55.3206658,2.6707805,40.8022926\r\n356,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,1,0,0,0,0,0,0,1.0835367,1.077116,12.445517,62.8590529,67.1022951,55.3790336,27.1924446,13.3622042,19.4042634,71.4427155,41.6634331,37.2202866,16.3156357,11.7063563,56.0610719,3.189465,35.7925552,7.5851299,0.9929692,1.0011152,12.0126687,65.2813334,69.0402883,57.0659717,27.0895324,13.7771613,18.7722836,71.3934056,41.7795726,38.013558,16.2945811,11.6434215,55.6082243,3.0454447,36.5546529,6.8313914,0.8849193,0.8648119,11.3939032,65.6546731,69.8940057,57.1610439,28.2343236,13.6960986,18.6696127,71.6593688,43.0048304,37.8396957,15.8451873,11.2322352,55.8413352,2.6333063,37.1736505\r\n357,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.1442413,4.208257,38.5934801,65.7650259,68.9075487,58.8401007,17.3885356,11.0976928,16.9757553,59.0077693,25.8384857,50.290194,46.1804074,39.2337673,59.807022,2.2606127,40.3416457,29.4547973,3.9050719,4.0188009,38.8067563,64.5072737,67.3000904,58.5764082,17.1572379,10.5753559,16.5525438,59.0980591,25.3174524,49.4722991,46.6681581,39.8103099,59.9822686,2.1169954,40.0110292,29.8797422,4.0758476,4.1734725,40.2376045,63.0450535,66.4982982,58.4212741,16.1468629,10.7823544,16.5129751,59.1068309,25.3587117,49.6226401,47.8008092,40.9099958,59.7479125,2.0037618,39.9981759\r\n358,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,0,0,0,0,0,0,1,1.8486172,1.8217208,18.3576198,66.4214612,67.2385072,63.3835267,28.6491836,13.5055617,16.3282839,65.5012008,40.9545629,37.2890844,23.3126071,18.5119055,48.6408227,3.8285407,30.9900814,19.8889423,1.8520956,1.8255067,18.690298,67.2412136,67.9216968,62.9333048,29.0780642,13.2238284,16.0908376,66.2060012,41.4299451,37.7303295,23.2327296,18.5109408,48.1587292,3.9745756,31.2718707,19.8901364,1.7896692,1.7705858,18.9640703,66.8302342,67.6520834,62.1518066,29.4840606,13.3983256,15.6032074,66.7122711,41.9881604,37.5854164,22.8358474,18.4796668,48.1308966,3.9642239,31.322019\r\n359,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,0,0,0,0,1,0,0,0.962601,1.079067,17.5045143,77.0795254,77.2555718,67.3226805,17.8664908,64.2887928,26.9523006,66.5006281,31.5302543,52.1608827,21.4270613,17.8032747,88.0162182,5.3082043,33.1063007,10.3787769,1.0289955,1.0877004,17.2494205,77.3517802,77.7296113,66.0120823,17.6113934,63.5593454,26.9491063,66.7257066,30.2709682,51.6956608,21.0293984,17.4188169,87.5958861,5.3459566,32.7141136,10.7376601,1.0262555,1.0837386,16.6624313,77.2148213,78.1399074,66.0310037,18.1036686,63.6302247,26.5961114,67.2752715,31.0489739,52.3142885,20.5894459,16.609868,87.5571074,5.6820803,32.3708152\r\n360,0,0,0,0,0,0,1,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,1.2769624,1.2630269,13.1304276,59.9025423,62.8552279,59.7573629,28.1487421,15.3268985,16.192721,68.6114158,43.1320513,39.6075733,20.2973452,14.3478656,59.4903679,4.1785384,37.2187108,17.4952685,1.3141563,1.3187427,13.2973181,60.5559276,63.2618423,59.8770506,28.6917117,15.0969618,15.3737471,69.0837556,43.1632904,39.5168751,19.8251776,14.317367,59.1712233,4.2405015,37.5952372,16.6989841,1.3812449,1.385849,13.3317391,60.632183,63.4283016,60.2205132,28.7096008,14.2376919,15.0315725,68.5796003,43.1515576,39.3914361,19.8070084,14.2877622,58.8598642,4.4054064,38.1832423\r\n361,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,0,0,0,0,1,0,0,1.0257281,1.0889516,14.4854549,76.370758,75.4765761,72.816133,23.9899816,66.5042346,25.4879271,66.9171698,35.0904045,48.4712511,17.9489754,13.5452094,86.0041162,5.1633568,34.7100683,5.750512,1.1474806,1.1995962,14.1805428,76.5977261,75.4881319,74.0752008,24.0969745,67.5512009,26.8588558,67.7445827,35.6112101,48.8381497,18.0847999,13.6169236,86.148513,5.1390343,33.8592714,6.4229681,1.1148034,1.1887639,13.4813776,77.7409792,76.022999,73.4188974,23.2600463,67.2025821,26.9407944,67.1954447,36.1387238,50.2716695,17.5567725,13.0160039,85.7124546,5.0302176,33.2709366\r\n362,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.2491408,1.2473405,16.9329285,78.2533253,77.2374087,74.9716109,24.9629905,28.0413182,19.102307,64.5432792,31.294764,52.7165581,21.723379,17.1313343,66.0115539,11.8998065,39.0395055,10.5957549,1.2897752,1.2797076,17.0737927,78.3947136,77.3955959,75.4339088,24.814098,28.5710813,18.905491,64.1512192,30.481356,53.2228293,21.6735856,17.1445761,66.9505599,11.8797707,39.5839039,11.467536,1.3035012,1.2866465,17.2576599,77.5345469,76.6147426,74.6565615,24.8105625,28.3656681,19.2840871,63.6647554,30.3356009,53.1951098,21.6686491,17.1695095,67.3535049,12.0503838,39.0024792\r\n363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8730942,0.874711,13.1030108,77.2536483,74.1436607,80.2659524,22.9803946,42.5601446,19.5486787,64.5427101,35.4553442,51.1068329,17.4374518,13.3124473,74.5974116,6.7991376,36.7661011,7.4614795,0.7940241,0.7988934,12.9235481,77.1127226,73.4814092,79.702427,22.1369983,43.8409638,19.453641,65.2585109,36.1166083,50.4645813,16.8893414,12.9227408,74.3202608,6.7942724,36.4150369,6.7063553,0.947232,0.9921413,12.9897001,77.9651695,74.4257325,79.6219497,22.5673677,42.8236502,19.629747,66.2746793,37.2867584,50.8646613,17.0663687,12.9121903,74.5721332,7.5606491,36.9721942\r\n364,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7294762,1.7832152,13.8126878,55.6558127,58.9815521,56.1801653,31.0216011,5.242667,13.0085198,68.5070979,44.3873943,38.3868609,20.5568113,14.7779886,42.0032519,4.2271666,46.8492104,15.1193667,1.5939601,1.6357267,13.9010002,57.15416,59.9712487,56.9403061,30.207918,5.1507878,12.0779519,69.1575342,43.5810452,39.054091,20.7336265,14.8401649,42.7516851,4.043262,48.0493836,16.2202322,1.5515687,1.5941245,13.9577053,56.6249345,60.1279292,58.1281954,30.7306785,5.0518693,12.3985272,69.2066853,43.8229344,37.5922149,19.9685825,14.2091003,41.9618015,4.4607701,48.9326887\r\n365,0,0,0,0,0,0,0,0,1,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,1.1251598,1.1907918,16.8168461,62.0909814,64.3565791,57.8638572,27.7606255,5.8801707,13.7344037,65.2174637,39.5462939,40.306616,21.9524026,16.8024717,50.4648859,3.481325,34.8263889,20.4439762,1.0912525,1.1659702,16.6819683,60.362394,63.5294526,55.9558371,28.5565944,5.8996297,12.7435165,65.133078,40.1751143,39.9458681,21.5565784,16.5449702,49.5629517,3.5469485,34.0297306,20.6024521,1.0637646,1.1342953,16.1739552,60.1682357,62.0204932,55.3188842,29.3872334,6.0969184,12.3357666,64.6991173,40.1037944,40.0563961,20.5852761,15.7692338,49.262393,3.658535,33.9426187\r\n366,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.216257,5.3064542,42.2833767,66.290391,66.150618,64.0862116,20.365304,8.8574366,15.5281284,58.3844478,30.9430623,48.4699931,50.0978515,43.2956088,53.8817247,2.4073125,34.9405766,44.665342,4.8993924,4.9538931,42.1314806,64.5006205,63.946792,63.2640036,20.466334,7.8764812,15.5910121,58.1258296,30.9255843,48.655483,50.0863062,43.5185851,53.8943105,2.4281146,33.7851607,45.2622926,4.7205801,4.7558791,41.3760299,64.6559535,64.1047617,63.7200767,21.0908843,7.9627484,15.9198582,58.4800683,31.6530531,48.4806432,49.3146942,43.1763019,53.2180429,2.3431657,33.4410897\r\n367,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3229084,1.2760495,24.9935726,77.4328872,77.0780692,70.4735297,20.9649919,61.3625334,25.2661979,62.9148682,33.3590284,54.3182037,28.1846401,23.8379983,86.595427,2.9995028,38.5770609,17.4576942,1.0456245,0.9984299,23.201556,75.5344875,76.1987652,71.4947138,19.8791765,62.1166339,26.5106021,63.6068869,32.5884014,55.5579849,26.8245147,23.0514029,86.7168752,2.6807794,39.337849,16.1316406,1.0257828,1.0418273,22.3890125,75.9064747,76.331786,72.3696016,19.4675861,61.867391,27.709118,61.6714141,30.3008045,55.7640121,25.9503317,21.8194633,86.8991927,2.7282704,39.5474512\r\n368,0,0,0,0,0,0,1,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,1.1200452,1.1738091,11.1814965,62.1736962,63.8588071,60.6030979,27.452454,15.4329623,15.888735,65.0346308,39.7597055,41.5688746,16.5885662,11.7196047,57.057907,4.1125771,36.3484166,9.764026,1.0583094,1.1032604,10.1277173,59.1311941,61.3964913,58.9035899,27.7828198,13.4841021,15.8064815,65.098082,39.6928851,40.1762802,15.7041518,10.9880371,56.1958909,3.8737593,36.2032682,9.4186857,0.9870834,1.0328575,10.0430839,58.4435573,61.137553,58.255817,28.7285753,13.5268889,15.3289175,66.9012529,39.2206584,39.5616972,15.5143656,10.8288615,55.3288444,4.2030441,35.1417193\r\n369,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0893379,2.1405353,19.5012839,61.6714438,62.6646049,54.8831934,27.4716046,15.4884722,20.9000658,65.2873476,35.8450193,40.7961706,27.8554645,21.4422932,59.1221648,3.8368681,41.8338311,24.6010303,2.0315739,2.0841439,19.2917643,61.8477829,61.5662331,56.4600845,28.1184932,16.1348852,19.6234862,65.6821098,37.1147116,41.0440516,27.6451417,21.0399219,58.4282953,4.1909751,42.9636085,24.3556374,1.73108,1.7574589,18.8864765,62.8778569,62.5302951,55.725727,27.7112652,15.2879467,20.1732726,65.527562,36.8395748,42.7906341,26.8632478,20.5961153,58.7662678,4.1756216,43.8211998\r\n370,0,1,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,0,0,0,0,0,4.3877079,4.4137823,36.4453405,70.5727419,69.9427163,64.2038551,17.7334126,18.7409118,15.6150346,61.6902246,32.30648,57.7505957,44.3052136,36.8246442,68.8211571,3.1345123,34.7283175,36.0009742,4.3244085,4.3775106,36.6890509,70.1260855,69.780498,65.564202,18.110105,19.2890434,16.2024254,62.2035846,31.4432262,56.0048463,44.2067974,36.6114066,69.0496636,3.1268513,34.9981476,36.6344202,4.2400049,4.3021365,36.6943209,70.1985076,69.9373661,65.0516909,17.9549413,19.7114461,17.1754629,62.1841805,31.12051,54.9564031,43.2583318,35.7772452,68.6823166,2.9299468,35.6353696\r\n371,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,1,0,0,0,0,0,0,0,0,0.9040288,0.9575213,13.2814986,69.7542943,70.8632995,67.9426056,25.4053394,57.6820069,25.1748214,70.7310927,35.9747784,43.5404654,17.0405758,12.5952025,83.6738113,4.7465439,35.5743417,8.8233426,1.0204021,1.0663264,14.0085003,68.7660295,70.7271475,66.9809446,24.9381698,57.5530982,24.7024926,70.9084054,35.6098378,44.8734238,17.3524113,13.0714493,83.8881241,4.6907763,35.1983544,9.4228776,0.9665871,0.9536026,13.9197105,68.460306,69.7517105,65.9735631,25.1639534,57.6764025,24.3818319,71.2229953,35.8013611,45.2348532,17.1128559,12.9118581,83.4948496,4.3487358,35.806311\r\n372,0,0,0,0,0,0,0,1,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,1.5075536,1.5699528,17.797492,68.9291438,69.6788363,67.1054157,22.8269731,50.5597587,20.53674,61.0270672,31.8542891,46.9583467,22.0001207,17.6534702,79.6159887,5.3965066,34.891317,21.0503996,1.3626203,1.4095736,16.6777593,69.7499846,69.7015313,67.5264411,23.8576,50.5815424,20.1123456,62.2678198,32.9699252,46.4303355,20.7803081,16.6224854,78.9379276,5.6073451,34.6994461,19.5934395,1.2749006,1.281284,16.4388099,70.0107864,70.6785313,67.6667285,24.6466197,49.9413581,20.3515895,62.7386334,34.1091081,46.2514987,20.2198297,16.0882265,78.6072391,5.8430367,35.234018\r\n373,0,0,1,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,0,0,0,0,1.3041352,1.3179933,12.1060135,78.8057902,78.6572694,74.8376218,21.2297963,44.7901518,25.0556067,63.8015685,34.7918331,52.6412399,16.0442747,11.7180587,73.6081853,6.1992643,37.730802,9.9218036,1.1982926,1.215813,11.9094539,78.1799241,78.6201255,74.6553487,21.5047423,43.917045,25.5728867,64.0341239,35.2145134,51.5053207,15.840325,11.5038866,72.9216164,6.3346929,38.2610498,8.9607759,1.2268977,1.2332238,12.0657889,77.6006629,77.5844032,74.431756,22.1219793,42.2725056,24.7733436,64.4346796,35.3056762,50.9117816,15.6018338,11.4133518,72.1152315,6.4036202,38.0400897\r\n374,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,0,0,1,0,0,0,0,1.0704101,1.0966093,12.0218807,71.5460176,73.351706,60.7884919,29.3231782,17.8188669,18.752413,67.1631982,42.8031561,47.9967158,16.3030258,11.8648036,59.172235,4.7697931,40.2631073,9.9095569,1.0490865,1.0835657,12.11477,71.7983381,73.4743215,60.7840865,29.3603128,18.6326913,19.3067189,66.8986162,42.8224942,48.3038558,16.3675725,11.7611578,59.0939095,4.6532285,40.6581987,9.4624399,1.0592311,1.0864733,11.8431452,71.5832535,73.3533632,60.0202195,29.761842,18.3345823,18.6844665,66.6998889,42.509073,47.9652263,16.351651,11.6917884,58.8976226,4.5614174,40.1362606\r\n375,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8716476,0.8960537,9.2380054,77.3959589,75.6385923,75.1812641,22.5142389,27.5991286,19.0550321,65.6031147,35.2419821,51.7011863,13.5032522,9.4902451,61.9175624,8.8798317,37.3835044,5.6490385,0.8603271,0.9087767,9.4143637,78.2502535,77.0711857,76.6171519,22.9763988,27.8839496,19.286387,64.7246306,34.8265042,52.3132224,13.984878,9.8092206,62.5312308,8.9607644,38.5251677,6.2500028,0.8250317,0.8872006,9.4117663,79.0880582,76.3663008,77.7761235,22.9800744,28.0926879,19.7180472,63.6913474,34.6573702,52.4047219,13.8148372,9.7082178,62.6745297,8.7765962,37.6816689\r\n376,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,1,0,0,0,0,0,0,0,1.5907803,1.6113535,18.3568468,68.2038264,69.5315889,65.3333846,26.7754484,11.7672427,15.9152103,67.5156508,38.5957405,42.1438845,22.7793028,18.1395027,51.2599074,5.4366357,35.2065271,17.7110034,1.6331777,1.6823518,18.4759501,67.5750765,68.8798104,65.2486063,26.6433073,11.0602025,15.7557773,67.4021926,38.3782254,42.7880197,23.0494283,18.2889766,51.2332009,5.3532677,35.1952541,17.0870049,1.5771846,1.6116557,18.7056555,67.4214726,68.4894555,64.8721536,26.7593516,11.1466859,15.4814845,68.1868955,38.5107164,42.8855425,23.2313135,18.7096324,51.3645061,5.2931994,35.1869698\r\n377,0,0,1,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,0,0,0,0,2.9879336,3.0867418,33.1712272,80.6366928,79.3173133,73.9965559,14.0658724,61.4037775,28.4038279,57.5665869,25.8905023,62.9234024,38.5619745,32.5596977,87.326427,4.8844041,39.590515,24.6087651,2.9395111,3.0331359,31.8817876,80.7470181,79.3952202,73.9627742,13.9891729,61.7443864,27.9651286,57.8848998,26.3656409,62.5736708,37.4535068,31.5197031,87.569272,4.8718297,39.5403076,24.4166938,2.8658248,2.9502704,30.690589,80.8559797,79.5365464,73.5688974,13.9245723,61.9450641,28.1763786,57.5743348,26.2759088,62.120695,36.2334058,30.3015205,87.5575235,4.7922539,39.2601309\r\n378,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1431999,1.2041587,21.8420842,78.1572501,78.2010716,70.3804557,19.0224042,53.3526162,22.9181969,64.5951459,33.4870466,57.2171863,26.4221919,21.5471237,84.5462688,3.2296916,42.1423983,15.7465436,1.1402633,1.2003711,21.5397022,80.6338419,78.8861521,71.5771625,18.6808556,55.9087077,23.8055047,65.282818,33.0645174,57.5332079,26.425081,21.0966235,84.7332205,3.1815611,42.6877417,14.1702226,1.1562327,1.2163377,20.2770113,78.9422063,77.983775,70.2397098,18.526958,57.2882014,23.7930283,65.1841925,33.0067934,55.6097329,25.6676179,20.1714258,84.5005183,3.0568802,42.2953283\r\n379,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.5869679,1.6375228,21.237355,66.6982291,68.6712793,55.4574097,26.1880527,10.6943559,18.1525468,67.2764104,38.9399427,43.4115918,25.6218994,21.1839414,51.3208041,3.906008,35.0270914,17.6975904,1.7674112,1.8195086,21.478285,66.0940024,68.2817324,54.2825767,26.014556,10.2845964,18.1344493,66.576357,39.0613935,42.1111188,25.509516,21.1170428,51.312715,3.9893239,35.4342279,18.2912802,1.7920344,1.8461674,21.5917718,66.7775586,68.5227523,54.5812546,26.0240337,9.8079531,17.9943507,66.4620824,38.3195344,42.4266949,25.6337815,20.9730904,51.4845709,3.9198929,35.8593778\r\n380,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.1934304,3.2679025,35.5567584,80.2953141,75.3211263,81.6287191,14.1917001,57.7814686,26.0868084,59.0605337,23.3271105,60.785786,39.8237634,34.9065951,85.3130211,6.2398888,36.4463809,23.3796318,3.0672613,3.1470524,34.5218306,81.6656383,76.555634,81.9180939,14.6179139,58.9271871,25.8139634,59.7718508,23.9628615,59.7981822,38.9216731,33.8259555,84.4827452,6.1740857,36.5047605,23.406499,2.9089966,2.9960066,32.6485126,81.3296317,76.9713715,81.8988876,15.5792541,57.4705922,24.7788919,60.616372,24.7856569,58.8592853,37.4745478,32.5922479,84.33341,6.3508617,36.1179231\r\n381,1,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,0,0,0,0,0,0,1.6903954,1.7435517,20.2835318,57.9178413,63.0737233,55.491278,27.9424583,10.1720704,17.581263,67.2205614,39.8725764,42.0589909,25.3677451,19.9200781,56.3349099,2.3619395,36.2388132,24.2203899,1.3415614,1.3504478,18.4677802,58.1557182,64.0240937,56.3581894,28.82996,8.8259213,16.7801985,67.2132685,40.0620251,41.5071173,23.5227653,18.4703197,55.1395746,2.4749179,35.3098225,22.9524431,1.3966719,1.385388,18.449133,61.7764377,65.7021952,57.7444609,29.2668479,8.6985806,15.8574819,67.5159892,40.6358706,41.0938981,23.5767017,18.3160587,54.1213405,2.1540193,35.7292489\r\n382,0,0,0,1,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,0,0,0,4.0145219,4.27874,42.4193591,73.5759208,72.4682284,71.8330105,16.4157735,37.7231558,17.2144674,59.2429448,30.4391088,56.6659963,47.1615241,40.8906177,74.9917947,4.8119942,34.6144474,30.7724738,4.01032,4.2761258,43.0597711,73.0020058,71.6160812,72.0436845,17.0097478,38.1097934,18.1458592,60.45606,30.9177972,56.3557973,47.709424,41.556636,75.5370694,4.5906764,34.539974,32.0233746,3.968664,4.2293919,42.9390122,72.3501503,70.4653379,71.0726287,17.5324007,37.6233657,17.4417431,61.419568,31.056543,56.1493649,48.4047287,42.0072471,75.7756515,4.6011376,34.1665849\r\n383,0,1,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,0,0,0,0,0,0.925381,0.8995543,11.6823541,64.3401478,64.2629668,60.8502204,26.5041842,8.2482425,12.4933927,68.0489842,41.756216,38.8282085,17.3826074,11.6061357,50.9153511,4.8142851,37.1785854,13.138371,1.022441,0.9966382,10.2857576,64.629324,65.1177675,62.2943274,26.4853985,7.6613829,13.0542896,68.778315,43.8823156,38.8442456,16.395738,10.8357854,49.5322608,4.6997802,37.5469925,11.3184892,1.0122857,1.0263696,10.3470833,65.0317513,65.5078789,63.3896907,26.1443842,6.434631,12.5995684,68.0222746,43.3616123,39.4064707,16.5597885,10.9168459,49.7054593,4.7371799,39.0677761\r\n384,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,1,0,0,0,0,0,0,0,0,1.1193007,1.247889,18.860933,72.906904,74.1938004,65.7364576,17.5605716,62.5888203,33.0195087,65.8804294,31.0298259,49.9702368,21.8277308,17.8824748,85.4445829,4.5570399,34.0853428,9.1396768,1.1825808,1.2824457,18.9906625,70.3793324,72.5645036,64.2092132,18.2717268,60.6586314,31.5172278,65.8350248,31.8657582,47.4146736,21.8485732,17.9343445,84.7602289,4.4075688,34.4977561,9.0105529,1.1639958,1.2667091,17.8514789,71.8220696,74.9166507,64.9198961,17.6852502,63.199851,33.3760764,66.0916786,32.198931,47.5450583,20.7920231,16.8399262,84.7825908,4.6207791,33.8392845\r\n385,0,0,0,0,0,0,1,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,4.3943703,4.5498542,38.146169,67.5923234,66.9569998,58.5926137,16.105432,22.3418149,17.868679,59.2349928,28.3493341,53.2258245,44.4639195,36.8159471,69.5568586,2.316728,39.2239659,36.360526,4.3830889,4.5345476,37.0202807,68.3303214,67.673137,59.2631994,15.82349,21.9239178,17.3282595,59.0154248,27.6472986,53.5171773,43.3483563,35.7551623,69.8599381,2.333069,39.7102141,36.4973608,4.2385674,4.3834165,36.2813821,68.6527541,68.3945639,58.0840016,15.9853475,21.205642,16.7118661,59.5059003,29.04716,52.592282,42.9564066,35.569921,69.4798771,2.4181405,39.5553989\r\n386,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0.8491237,0.9009323,11.7864175,71.5778862,72.3642247,62.9068935,25.1847235,29.1998046,21.9373827,67.6660632,38.302251,45.1304542,15.3032359,11.4547587,69.3191299,3.1307754,34.7011866,6.8798202,0.8896195,0.9224525,11.7287249,70.2345565,71.8308352,62.8286794,26.232692,29.4198918,22.0454022,67.9156549,39.1405767,44.4799785,15.2601942,11.2216167,69.7978928,3.3197169,34.1012984,6.5464607,0.8811584,0.9149443,11.4071072,69.863386,71.6436523,63.8480598,26.7811732,28.77923,22.2225617,68.7010264,39.7378395,43.942349,15.3791738,11.1931274,69.745554,3.3619483,34.8051447\r\n387,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.5829116,1.6319121,18.11411,69.3031927,70.9611603,61.3409661,26.698702,23.7576168,18.2711517,69.351331,36.9897922,47.7041979,22.6595716,17.7079193,68.9728503,3.090625,35.0970938,13.7660667,1.6096651,1.6366281,17.8685216,69.9807258,71.7136682,60.9687486,25.9595803,23.951486,17.7811977,69.5432671,36.1884297,48.5291254,22.8175767,18.0229178,70.0040243,2.8961012,35.116472,13.822755,1.8701985,1.8849999,18.617287,70.4717741,71.2638486,60.8526714,25.8506773,23.3803132,16.956611,68.8233837,35.7637723,48.5478142,23.6094888,18.6349404,70.2275043,2.860956,33.8277252\r\n388,0,0,1,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,0,0,0,0,3.5893836,3.7216234,36.2994588,80.9538585,78.6352222,74.8383184,12.1477029,64.0015619,29.061922,55.7594066,23.5495193,65.5487002,42.6745005,36.0620343,88.1426588,4.2973365,40.2771939,25.6752345,3.3701959,3.5026278,35.8473982,80.5963025,78.5578198,74.7574219,12.5628885,63.9266367,28.7798966,56.5476984,24.3782655,65.4062689,42.0331296,35.5648641,88.0577231,4.3584122,40.1190848,25.4761472,3.3688959,3.5012191,35.4710362,80.4505783,78.5225872,74.4939405,12.7559455,63.2625352,29.1192294,56.6916417,24.6177193,64.7704593,41.7057217,35.1833272,87.7499201,4.4714335,40.337091\r\n389,0,0,1,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,0,0,0,0,4.1838075,4.3000879,38.4642365,81.9196978,79.6816218,73.8034614,12.1819188,62.3538407,28.5976915,54.4305548,22.1607309,66.8530054,45.0997904,38.3213641,88.4664489,4.5091027,41.7749435,26.0090336,4.0703152,4.1803568,37.8061764,81.2550895,79.6161335,73.9638979,12.3990465,63.030767,28.4588111,54.9101674,22.4423576,66.3035422,44.4764772,37.7790324,88.4488308,4.4789081,41.4118074,25.8632074,3.9006962,4.0192192,37.2923847,81.1317229,79.6298267,73.9872088,12.487442,63.2905045,28.2359218,55.5052344,22.7169675,66.1836719,44.1772754,37.3862959,88.338972,4.5252073,40.7052911\r\n390,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,0,0,0,0,0,1,0,2.9461927,3.0516869,25.3035372,68.535987,70.5700566,57.0909653,24.4056146,8.0071299,17.056609,64.4122693,30.9822337,46.8152453,30.5749937,24.4008071,56.5245378,2.865139,43.5833115,20.6586911,2.6702542,2.8143355,25.196103,70.2824724,71.3646366,57.363994,24.8672737,8.3613823,18.038106,64.0699342,30.9043001,49.0539484,30.1102282,24.1988001,57.440741,3.0041656,44.1883841,18.3060302,2.6328466,2.7901786,25.1282238,67.5594105,71.1639494,57.2730822,24.5126724,7.7707362,18.1842232,63.972173,30.883214,47.6463144,30.5024921,24.625483,58.0081709,3.1063822,45.3818829\r\n391,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.5250802,1.5542177,17.6054686,66.5160744,69.0418194,56.3810525,28.3031784,10.2666654,18.1723462,67.3492209,40.1864146,41.1948274,23.026207,18.1730368,49.3715887,4.1191403,33.9494468,17.1493645,1.6125252,1.6407101,17.8935511,65.565781,67.931511,55.7109802,28.4097163,9.8013809,17.8674877,66.5655528,40.1464365,41.2591161,23.3566217,18.4009061,49.4529485,4.2949622,33.7376486,18.5543649,1.6579531,1.6806288,18.0121333,65.3946013,67.2678545,56.277142,28.3614897,10.5210756,18.0277652,66.8992802,39.8522806,40.9689196,23.1753094,18.3691925,50.1720984,4.4125059,34.5865615\r\n392,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,1,0,0,0,0,0,0,0,1.5021957,1.5973443,18.1974841,67.6952166,67.872462,60.9062062,25.0582051,11.6165714,15.0520069,67.2871996,37.8645183,41.4408144,22.3222375,17.8850637,51.9718339,5.314234,34.8030097,17.8939685,1.5314485,1.5847156,18.0613066,67.8623732,68.5205351,61.0579486,25.140247,11.7321672,15.6053248,66.8350391,37.2577845,41.4022918,22.2066768,17.823159,52.0081117,5.4446971,34.5229203,17.6602104,1.3618042,1.4115754,18.1086546,68.3688581,69.4497042,61.1889747,25.6845763,11.2645664,15.522113,66.0055847,37.6777193,42.5214816,22.4317674,17.8070448,52.1700695,5.3105039,34.9320546\r\n393,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.283949,1.3355375,15.7188073,78.8530839,77.7862441,76.8171675,23.8213105,27.3362099,17.7788855,62.759438,33.4800211,55.912317,21.2126384,16.2873679,68.4077894,8.6557737,38.3688887,9.8557564,1.2911761,1.3333082,16.9224504,77.7092143,76.9985205,77.4150635,23.8601843,27.4664665,18.0059769,62.4758091,33.5549156,56.5016511,21.6097613,16.9268359,68.1012223,8.6433639,36.6710429,10.7518679,1.458069,1.5271586,17.5952682,78.7189101,78.0432112,76.8732766,24.4511741,27.7773935,17.6232831,64.0430476,33.2682299,58.6584032,23.1263736,17.9209814,68.8066247,8.3540011,37.3798879\r\n394,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.6923939,2.7808118,32.8368409,67.9613356,67.5012871,61.9245863,20.309224,15.7026462,19.5863223,61.0327446,30.1722348,50.5357821,38.5419962,33.1073767,64.9007442,2.8033987,35.1813074,32.2160836,2.6779204,2.7726082,32.5843852,67.5312325,67.8721245,61.7328983,20.4032412,15.959701,19.5131949,60.5381334,29.8725028,49.7035935,37.9968152,32.806333,65.2928337,2.9781326,35.7100201,31.7676726,2.56132,2.6365199,31.6385266,67.690242,68.7456579,61.8753788,21.0861486,15.5514436,19.759185,60.3531276,30.2127251,49.3001951,37.1062349,32.1625395,64.491614,3.2458786,34.7608728\r\n395,0,0,0,0,0,0,1,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,3.789932,3.9286535,33.6580546,66.4011377,66.8874143,57.8981258,19.6522052,19.7523484,16.7138437,61.2799441,31.148494,48.3566224,40.7355488,33.5463213,68.3229498,2.4764817,39.4014458,36.8360686,3.5351668,3.6969618,32.6039157,66.8698401,67.6632015,58.8333716,20.6856077,19.7539224,17.1662368,61.8900761,31.9978941,47.997864,39.77501,32.7514675,67.571811,2.6944813,39.3558981,36.6638872,3.3057021,3.4473479,32.2219444,66.5182559,67.1629569,59.0764372,21.2342755,19.8465435,17.7376658,61.0744727,32.856457,46.7288849,39.1288299,32.2089456,67.1045512,2.6856546,38.660829\r\n396,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,1,0,0,0,0,0,0,0.9698374,0.9554248,12.7067375,68.0805037,68.6755951,61.6408644,30.117379,12.5065417,18.4041303,70.1482301,38.9679551,42.9581969,16.6666587,11.7528338,52.4055059,2.8447641,36.9379803,8.9090909,0.9303305,0.950564,12.4252124,68.2190707,68.8153821,62.5570267,29.3105812,11.892111,18.8203524,71.0500679,39.9809468,42.0680067,16.7217235,11.8391979,51.8994728,2.7451702,35.5150998,7.735852,0.9288392,0.9405556,12.1118156,67.8577518,68.8175044,62.7995189,28.2091433,11.1696255,18.388896,71.2278195,39.7268391,40.990258,16.8219,11.7548356,51.4791815,2.7820358,36.5097981\r\n397,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8044697,1.8394899,17.2708498,66.6368999,67.4340315,56.5117009,28.2796697,9.4686073,17.6391362,68.7744,39.9952782,37.0160562,23.069091,17.8677719,48.8668412,3.1164467,32.9337598,15.1084261,1.8049837,1.8201063,17.5551634,66.2551402,67.3731517,56.4755058,27.9056676,9.5709055,17.4350635,68.6114558,40.1261475,36.4408886,23.0882193,17.9283172,49.3676278,3.2091109,33.5040639,16.3058435,1.8814737,1.8722709,17.9616997,65.7523318,67.0553912,56.1581773,27.5354214,9.3785284,17.0231905,68.3795431,40.2160825,36.5659483,23.4415884,18.2953067,49.2420671,3.2816744,34.4290918\r\n398,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.720108,1.6930941,19.8795443,70.2064026,71.8551978,69.0280558,26.0793945,9.2565323,18.1291213,66.7329013,38.8229316,37.7559083,24.0141531,19.5127019,47.5018832,5.7129997,32.5714519,15.5635675,1.9203547,1.8616486,20.0891113,70.0418085,71.5347621,68.4996508,26.8308001,8.6951423,18.6845511,66.3634342,38.9803809,37.2781286,23.8401629,19.5251796,47.2301038,5.7090839,31.9959664,14.9759747,1.9098044,1.8461906,19.8705877,70.9784165,71.744988,68.7529868,27.0390951,8.7342485,18.61201,66.7433486,38.647521,37.2600905,23.8522191,19.3911963,47.3286828,5.556741,32.1510843\r\n399,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6756402,0.7239475,9.2867575,79.678455,80.8551889,81.614337,24.4770376,28.1663603,20.8716727,62.3975737,35.526835,48.6389931,12.4403401,9.0393838,61.1006597,6.0483839,36.0998624,7.400722,0.5887888,0.6378322,8.0583186,80.2483702,79.5773528,80.7758823,25.126758,26.2161229,19.5846324,63.3206275,35.655144,49.504131,11.5875969,8.4854056,61.7272463,5.887906,34.9655138,6.5055762,0.6887807,0.7198007,7.5969132,79.7001914,77.9908712,80.7201421,26.4638015,24.7470274,19.534411,62.9889525,36.6386881,49.0006295,11.6677096,8.1207259,61.0891346,5.6241837,35.3410706\r\n400,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.3747566,5.4065894,33.868599,66.5982285,68.8310033,55.7487711,28.0935423,11.8768711,18.3193264,62.322794,32.8995986,51.8980715,41.8209178,34.3916195,55.3064165,3.9959295,42.7827151,29.8751715,5.2776304,5.3394694,35.8823593,66.2189767,68.7865168,55.3022859,27.3010515,11.2596132,18.2909387,62.3708237,32.9000647,51.2770628,43.6787131,36.2093661,56.2140236,3.689069,41.3780131,30.4379346,5.6086395,5.6959292,38.2474446,66.8933436,69.3432877,55.4890138,25.5182509,10.6615437,18.8149881,62.4492053,32.1375865,52.401605,45.646646,38.1941314,56.8246501,3.4182078,41.6789156\r\n401,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4262271,1.3233742,14.448916,63.6586224,66.7376797,70.0024272,21.1704628,14.7879216,21.1950773,70.0783857,33.1017966,41.1452468,18.2606903,14.0591155,59.3892994,4.3888478,35.5931759,22.0588235,1.3510638,1.1914894,13.1955806,67.7494501,69.4271524,72.9870528,20.9294792,13.3264262,22.4775011,70.1215,32.7923921,40.1694946,17.6307008,13.6262514,59.2882992,4.4273908,35.0765306,22.0588235,0.890411,0.7323498,14.2149933,70.071015,70.3146625,74.6440985,19.4716075,12.6068756,22.850317,69.832124,32.5174,41.9476569,17.9162073,14.277839,58.3032491,3.8235294,37.5318066\r\n402,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5992284,1.6248535,13.8592188,60.2342947,61.9945292,58.560438,31.0194972,5.1243832,13.0856006,67.1469334,42.4015297,38.7207414,19.0945137,13.5764765,41.9063269,4.7373445,47.2328203,15.306479,1.4909827,1.5167758,14.0679011,60.9528213,61.5966891,58.6323764,31.6204825,5.2985822,13.2800472,67.2222011,42.7448479,37.4897589,18.5158138,13.3434777,40.8426842,4.7278349,47.6336987,13.5419926,1.7534752,1.7621809,14.0048631,61.7845976,63.438306,57.8003574,30.8976483,5.3340232,12.5572266,67.7157902,42.1162636,36.227688,17.8972985,13.1098419,40.098492,4.6112478,47.0838602\r\n403,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8522944,1.8364955,18.097897,66.3351225,67.3952553,56.2218413,27.0771077,8.8522389,17.5065463,68.5834274,39.5710532,36.5868501,23.3815246,18.4145748,49.3095973,3.5668946,33.9083849,17.8331225,1.8489845,1.833644,19.0033797,66.3846883,67.2694271,56.8407401,27.0598742,8.8091526,17.2013132,68.0284965,39.8659778,36.6157181,23.8374973,19.0151896,49.6441086,3.6609076,34.075135,18.6497544,1.925818,1.9090512,19.7843311,65.7381821,67.202284,57.04738,26.3723951,8.8193076,16.4350888,67.4553,39.7181422,36.8896955,24.5219052,19.5906457,50.2753139,3.5760878,34.7083907\r\n404,1,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,0,0,0,0,0,0,1.0377759,1.0964308,11.6104729,55.7917675,61.4072962,53.9216288,30.393162,4.4365609,11.7270512,71.8395954,43.1527065,34.1779276,14.6041883,10.2073343,37.6620085,4.3963154,40.1579024,6.0124489,1.0760204,1.1202121,10.6639723,57.2076374,63.7133121,53.7772418,30.6531606,4.6327236,13.079758,71.672431,43.4125252,36.8395671,14.5244458,10.2393654,38.0527156,4.0232915,40.5178946,5.5192225,1.0274275,1.068927,11.2089467,56.9282381,61.0757987,53.3008666,32.8655496,4.720033,12.3369383,71.8042669,45.4495456,36.8656353,15.0180084,10.3376891,37.874694,4.2305469,39.9856804\r\n405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.0021725,4.2041101,34.9426607,80.2805341,79.4598013,78.262185,11.7765743,54.7036556,26.1549803,50.7930171,19.0624247,65.2150487,42.5344206,34.9341779,86.5094435,4.485621,34.2136602,29.7918429,3.640677,3.8267369,33.7075071,80.4798159,79.2808326,78.5940083,12.6973604,56.3289756,27.0106523,52.8629473,20.1974577,65.6772194,41.0795354,33.9431552,86.8790657,4.5836041,34.3143207,29.5982096,3.6069914,3.7513448,32.901659,81.6918975,79.273063,77.9707804,11.9452156,56.8501874,27.3646572,53.6910227,19.9544058,65.658042,40.5781011,33.3918961,87.1746357,4.5677921,34.6705766\r\n406,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,1,0,0,0,0,0,0,1.2725919,1.2800198,13.2665506,66.3394135,69.5392957,57.3148801,26.8883205,14.7567873,19.928014,70.0610668,40.2668149,41.0319223,16.862309,12.6744982,57.3009466,3.8814188,35.0847264,11.4583402,1.238468,1.2166219,13.1276247,66.5529966,68.8829738,58.597381,26.4190324,15.9757777,20.989219,70.4750987,40.0908385,41.1902393,16.7496096,12.5816559,56.6450436,3.9287918,34.6076967,9.7014983,1.1004256,1.1052826,13.4072434,66.1044682,69.1538747,58.9231785,27.2191463,16.2330653,19.9146566,70.548422,40.2431589,40.7329704,16.770478,12.5973322,56.483257,3.9968096,34.2980679\r\n407,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.34621,3.3644947,35.3471055,69.487129,68.7756541,71.7700751,15.4904107,33.0642697,20.233406,66.9197393,24.0723365,53.260271,40.1266478,35.0887606,75.3775168,3.157474,38.16,31.7105263,3.2345103,3.2535362,34.3047026,70.4153049,68.3701324,71.0010597,13.7034621,32.6755574,18.4291217,65.2262779,23.1311671,53.1127215,38.700565,34.0193705,76.4372822,3.122398,37.4791319,32.5549451,3.059353,3.0324919,31.9007081,71.0288391,68.8592419,71.3864094,13.0198687,32.7848878,19.188437,64.0870427,22.9943809,51.967864,37.1020408,32.2040816,76.824978,2.6359833,38.5451505\r\n408,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7037908,0.8058066,9.0223248,79.8056594,77.6455511,74.9243036,20.6889069,27.2202285,19.8759213,66.6478365,34.1189558,48.4965329,12.2549019,8.8053729,65.811499,9.0500209,36.8637788,5.0335593,0.6905482,0.7956409,9.0225978,80.2552361,77.7658482,75.0715465,21.5766653,26.1167092,19.5150172,66.867458,34.8541288,48.3092507,12.663185,9.0078315,65.9387804,8.8975239,36.6843738,6.8080388,0.6887256,0.7628138,9.4380907,81.4851878,78.7125345,76.1660748,21.1919975,25.1264572,19.6157435,66.3714342,34.762967,49.0340345,13.1467178,9.1698828,65.7203525,9.0752798,37.4602\r\n409,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4173368,1.4887674,16.6546405,66.659956,70.0759607,55.1600281,28.0843677,11.8056981,19.2328115,70.8179762,40.6714325,39.8087601,21.1135061,15.4564777,51.6683447,2.8713463,35.5037278,12.4012425,1.4910743,1.5455985,17.1337564,64.7473287,69.0758215,55.0457065,28.0849224,11.7471782,19.6102992,70.7854324,41.2811159,37.3470048,21.9235709,15.9420182,51.3593821,2.96669,36.6645913,13.2933237,1.5596864,1.5974517,17.5492957,65.2374919,68.991554,54.7993408,27.9594925,10.9720989,18.7511751,71.374041,42.2500524,38.1830084,21.2090188,15.724191,51.3749458,3.1296538,37.0324196\r\n410,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0600617,2.2037743,15.6090301,68.6881369,72.1533604,71.7094381,23.4026853,8.9388643,16.5385688,65.11187,32.6875973,46.6022709,20.1120797,15.7534247,46.5540541,4.9933422,42.9133858,20.2380952,2.3035095,2.4494949,15.2722274,66.5743133,69.1582019,70.1379429,25.2706351,8.9644984,15.6088465,62.8368021,33.6195252,44.7198534,19.6315121,15.5654384,45.4607978,4.7002725,42.4603175,20.2479339,2.3177356,2.3433438,15.8231436,69.1291616,72.7455247,70.0849469,24.8107801,6.7360508,13.5232238,62.793941,34.1968508,46.2836869,19.7736352,16.045273,45.0573066,4.6033994,42.798913\r\n411,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.6968704,1.6775087,15.2074159,59.7894165,63.8754614,49.2451802,31.170196,5.9764387,15.129846,67.1500349,41.9814398,38.1493239,21.1115359,15.3270267,44.281017,3.8196816,39.7908806,16.7410716,1.5392729,1.5403399,15.4235065,60.2345916,63.2415662,51.1698778,30.7709144,5.714065,15.7427028,65.7701228,40.7813671,38.6514843,21.2359356,15.6589574,43.4758157,3.8960965,39.7501141,15.6652402,1.6148878,1.5809057,15.7464458,59.0124927,63.1123431,49.691077,30.8626646,5.4543286,15.614047,66.2820861,41.401518,35.9724397,21.3558607,15.8469342,42.8519273,3.809346,38.8206429\r\n412,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8402272,1.9182221,17.0066176,61.8639148,63.2068098,54.7346075,27.9858669,12.7562854,17.9386016,65.4779481,40.0973532,40.3554324,24.7672474,18.568338,55.8014324,4.3191873,43.8170719,21.2676116,1.8040047,1.8803548,16.1138467,61.5298302,63.4824887,54.9359326,27.4588623,12.6670767,16.7847251,65.3675813,39.1012438,40.7614208,23.4828485,17.3689776,55.2651583,4.253761,40.7568142,21.5877497,1.8704902,1.9339429,16.1565476,60.2415564,63.5466227,54.4356514,26.9557797,10.9625893,15.4687748,65.2516303,38.3279599,39.8648086,22.7350416,17.0165818,54.6827415,4.419413,40.4791231\r\n413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4946218,1.513635,12.1938289,63.8122489,63.7172611,59.6964866,28.703196,4.2524764,14.6692189,67.1885752,41.4498838,35.0714944,16.5483013,11.8568257,35.9169917,4.0138126,32.6850825,10.9621503,1.4108861,1.4275131,12.2670745,64.2513316,63.8128271,61.087967,28.761993,3.93073,14.7946425,67.3594023,41.4727795,34.6677871,16.4532286,11.9239154,35.6133476,4.0588299,32.9626504,11.6692535,1.3931132,1.4688367,11.7950765,64.4282394,64.6748695,61.0944722,28.5350331,4.5851069,15.5024341,66.6914713,41.5423431,35.1465232,16.3097963,11.5769121,36.0029705,3.9820989,33.4786206\r\n414,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.6778681,4.7602695,37.4286241,62.0748333,66.0334568,58.1886021,21.3005735,18.4990647,17.0157323,61.956225,31.6728451,50.7859813,45.2137806,37.6189053,66.2924135,3.5870819,39.6312538,37.9063688,4.2952874,4.3372309,36.9512114,63.6840296,67.1666508,58.6188138,22.1270119,19.5224713,17.3197969,61.7469522,31.4865279,52.8005736,44.0839794,36.7863729,66.7392346,3.3057011,38.7042313,37.684058,4.2688638,4.3419048,35.0769011,64.0539307,68.0824267,57.8423716,21.7229924,19.8743207,18.919285,60.7643441,31.2012669,52.8715488,42.8133311,34.9909183,66.5387832,3.273306,39.4578483\r\n415,1,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,0,0,0,0,0,0,0.9732764,1.0117242,9.9261683,55.4084697,60.8945578,55.2084895,33.0061491,6.6238266,15.129205,70.7543427,45.971149,32.7766891,14.1877742,9.4860464,35.6152088,4.7997724,38.0150514,5.1911575,1.0788841,1.0660355,9.8491016,55.1164294,60.3634226,54.4637282,31.8327148,6.0140637,14.4241499,70.0309652,45.5001515,33.3059778,14.4246629,9.5516181,36.58472,4.3159405,37.5922519,6.4605471,1.1082442,1.056421,9.4370537,53.66014,58.2427421,56.267763,33.5037943,5.1398457,13.818965,71.3541791,46.2631953,32.7159962,14.3536105,9.1696451,36.2406171,4.5213491,37.423619\r\n416,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9764769,1.0724483,13.1433576,64.4603751,66.9409345,53.3082218,28.5920869,17.1553314,17.8438973,69.8317184,42.4330296,40.0190699,17.5991649,13.5279004,54.6704305,4.0195927,38.4141083,8.3657977,1.0368346,1.1304436,13.4498463,64.2751967,66.837159,53.6377795,29.0932112,17.6185397,18.0942266,69.5816434,41.3582696,38.2574383,17.9322523,13.8871555,54.4528049,3.9436192,39.0935498,9.7222658,0.9933522,1.0997418,13.3822909,64.168211,66.9639773,53.8708237,29.1441426,17.8325773,17.367291,70.3305247,42.2802056,38.6944752,17.562655,13.4711034,53.5102874,3.74144,37.8385846\r\n417,0,0,0,0,1,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,0,0,4.8457628,4.9513643,44.2524728,79.9962255,75.9274869,79.3154438,12.0950371,50.8330756,22.9469191,55.902323,20.3619905,64.9941799,49.8658318,43.8729875,85.067377,3.605111,39.6243842,28.4941764,4.9654779,5.0783128,44.598778,79.2345812,74.0997067,78.2659065,12.2871655,49.8844359,23.3824532,56.3723302,20.1153822,64.0919005,49.9234538,44.167177,84.990285,3.518924,38.6923563,30.5995004,4.7791575,4.8804956,43.896532,78.6344868,73.6873891,78.194038,12.4828251,49.088136,23.5710311,56.9557832,20.4512745,64.5023961,49.215749,43.293854,85.506999,3.4692535,38.081205\r\n418,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,0,0,0,0,0,1,0,2.2162858,2.2093663,23.0833788,59.0026083,59.8191732,55.9965156,28.7692288,8.4573838,19.4296343,69.6213259,39.7832459,46.8345699,28.8762918,22.9772219,54.3766038,3.2489811,44.6790664,18.6566979,2.3303336,2.3947944,23.5101614,58.9458175,60.5481958,56.3413432,27.521678,7.6151604,17.9755683,69.2754072,37.951686,45.1669813,29.567276,23.5254335,52.7527643,3.6640069,44.6889405,19.3627261,2.4724539,2.6123551,24.4868417,58.2259354,61.2127529,57.0176813,28.4102058,7.739801,15.6754661,67.8646155,37.4283351,44.2289033,31.1279696,24.6317032,52.0904882,3.216473,42.3736685\r\n419,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,0,0,1,0,0,0,0,1.2122097,1.2143384,13.0933131,73.6621476,74.4393998,59.9721456,26.5303895,20.0894673,18.9609104,64.3670947,41.5037573,49.6592144,18.8802052,13.7127338,63.9035273,4.71548,40.8952752,12.4999717,1.1879099,1.2023715,13.0661457,72.4923989,73.2549227,59.2529418,26.3936553,19.820077,17.8908318,63.9976638,41.4407966,49.1396856,18.5596046,13.6277536,63.1658234,4.7299149,39.9831731,12.2388995,1.1813446,1.1818516,12.8325394,72.5068673,72.7181027,59.5514491,26.1707572,19.8283924,17.6404861,64.351262,41.5117367,48.4433855,18.1768229,13.3092239,63.1773193,4.7628094,40.017511\r\n420,0,0,0,0,0,0,1,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,0.774435,0.7931337,9.127088,64.7238098,67.5499653,59.3791874,30.3427465,9.7440382,16.6491321,69.2569333,41.7890771,39.5985973,12.680393,8.1531069,44.1139682,4.9328052,38.1702418,5.8730458,0.8754738,0.8846348,8.539054,64.3102048,67.0566881,58.6750139,29.8547847,9.7989295,17.6755914,68.4245022,40.9863827,40.9038318,12.2582272,7.7576577,44.0417069,4.5151702,36.8174737,6.0065591,0.9942972,1.0028677,8.1259302,64.1599933,66.6060884,58.6718249,29.7576916,9.343046,17.2197894,67.2399917,41.319155,40.2717449,12.4217668,7.7843212,44.273811,4.5205356,37.8039768\r\n421,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,1,0,0,0,0,0,0,0,0,1.1879179,1.1800598,12.9754158,69.7930495,69.6416205,66.3137904,24.0094715,62.4929586,29.1872976,70.3086804,36.8485052,42.6031251,16.2557109,12.4332163,82.8078226,3.8718765,32.3253396,10.7005964,1.1361727,1.1417897,12.5502333,70.9468328,70.5230146,67.6177258,24.5793833,61.7309628,29.8680758,70.2526366,36.4502257,42.6201116,16.076656,12.2067483,83.0779089,3.5728825,31.3246965,10.147403,1.0534931,1.0590653,12.6882746,73.5880755,72.3539132,69.3028585,24.8072572,62.5951217,29.1794508,70.3598239,36.5783321,44.160653,15.8673821,12.3549457,82.90569,4.1710708,31.4446338\r\n422,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.582131,1.6996272,9.4355806,74.6313881,74.875371,77.8292939,25.3275119,22.2143834,15.8226343,66.2108434,37.1483164,46.1484389,14.6786608,9.8101247,57.0451418,9.7360315,36.8131948,5.082977,1.4159247,1.5496621,9.9835419,73.890583,74.6750531,77.364734,25.250009,22.3931737,16.178504,65.6332646,37.7328655,46.4968792,14.6466975,10.2306152,56.1193368,10.4563455,38.2924575,4.396719,1.4208933,1.5552247,10.2290014,75.4206269,75.2261931,78.5759437,25.5839372,20.1584283,15.3205044,66.7713842,38.3003364,46.0814007,14.6763519,10.4114364,55.8472041,10.2045801,40.15544\r\n423,0,0,1,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,0,0,0,0,1.3514484,1.4150599,12.95387,77.7672538,77.0437962,72.2731346,20.9989839,47.104415,23.8657389,62.3448069,34.4333119,53.0146304,17.2610227,13.1840536,77.443906,6.0262001,37.063378,11.9481941,1.3175324,1.3758856,12.9720039,78.617572,78.1042102,72.7947628,21.0067396,47.5886717,24.1593596,63.1091965,35.1420182,53.4541275,17.3411014,13.110451,76.8186914,6.0328582,37.514026,12.3290071,1.2878072,1.3445878,12.6938812,78.635125,78.1927711,72.51378,20.7561614,47.4101806,24.4000992,62.98275,34.8211726,53.4686423,17.4096913,12.9740646,76.0892823,6.0230094,37.8597431\r\n424,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,0,0,0,0,1,0,0,1.2003951,1.216178,13.6039676,77.4996226,76.1429223,71.9962345,22.9395323,67.35973,25.4193246,67.3615361,35.4984721,53.4915698,17.2058038,13.1003034,86.0353743,5.554141,31.2789696,7.7541047,1.1206382,1.160321,14.4132629,78.2251768,76.7406014,71.01717,21.4557167,66.493863,25.8995403,67.5327461,35.0686556,52.3177326,17.7847569,13.429286,86.4586123,5.4867078,31.1488087,8.2888543,1.1721875,1.203304,15.0641785,77.3961769,75.7833159,69.9241979,20.6006756,66.7279848,25.1828543,67.4381291,35.0057575,51.9010058,17.9026219,13.7175764,86.614481,5.4907493,31.8322405\r\n425,0,0,0,0,0,0,1,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,4.5203503,4.6609398,38.1710849,67.3480579,67.5623231,57.6309952,16.9674494,22.2528057,18.6073553,58.7044852,27.9105341,54.3979625,45.0370284,36.9066191,68.8687583,2.6270524,38.5873939,38.6182255,4.5786873,4.7500215,37.7471535,67.9873887,68.0190648,58.2180891,16.7204552,21.8601027,18.6154819,59.0358422,28.8392751,54.6316423,44.8174889,36.8705605,68.6078096,2.6075498,38.8935231,37.7379075,4.4226905,4.5617282,38.451907,67.200497,66.9667428,58.299918,16.5044591,21.9702816,17.9749639,59.1708085,28.8434111,53.4648598,44.9314987,37.2320478,69.0217532,2.4558622,39.6640811\r\n426,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.2680196,2.316566,29.0991557,79.9836282,76.2263402,74.2064419,11.7656789,63.0755167,28.2321952,58.125161,21.537681,61.6177953,35.3090117,29.7027941,87.75401,3.7491385,35.8786722,27.7953733,2.1969624,2.2229199,27.3233684,77.9747793,75.34304,72.6809853,11.9105409,62.4039362,27.6445631,57.5811225,21.3056382,59.018314,34.2853389,28.7315201,87.4833789,3.9143066,35.2618137,26.9381853,1.9442133,1.9557136,26.4395042,77.7271134,74.976903,72.6359302,12.4675509,63.2780083,27.764892,57.8239326,21.3873495,58.7006731,32.6365241,27.4019088,87.4332514,3.9320416,34.0655963\r\n427,0,0,0,0,0,0,0,0,1,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,1.0076575,1.1131832,12.0438243,62.4954803,64.0308993,55.1757535,31.1670731,4.6204417,13.5616834,67.8711004,42.6693329,34.5285199,16.4248334,11.8299089,36.2015741,4.1630987,39.5133079,9.7069195,1.0312025,1.1551537,11.7563081,62.9961456,63.233323,56.0038128,31.0463725,4.4225451,14.1687909,68.3182595,43.3862231,34.4091188,16.6266607,11.5446245,35.501504,4.1986267,39.443491,9.9637391,0.973885,1.0610943,11.9035251,62.114167,62.6788266,57.1167824,31.1677741,4.6419704,13.3506691,67.5154264,43.410921,36.3883107,17.0338747,11.5259138,34.1435967,4.2788843,39.8305387\r\n428,1,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,0,0,0,0,0,0,4.2756844,4.2875794,31.2846229,62.8770364,65.4356127,56.3330636,24.6829634,8.8473719,16.0504536,63.4784203,32.8728473,46.5929215,38.4032512,30.9082561,53.83068,2.2735758,37.418454,32.5142815,4.3304092,4.4152166,32.1130195,65.1164454,66.7329143,56.5981381,23.2284351,9.0737564,15.0942156,63.4496421,33.2077346,46.8628432,40.0435795,31.9844482,54.59102,1.9758299,37.3811369,34.1071846,4.2353968,4.3306851,34.4010272,63.4322219,66.0428814,55.741646,23.0086435,8.6265565,14.572658,63.0747446,33.1302287,46.8370406,41.2374453,33.5425247,54.9183886,2.0983296,38.2314691\r\n429,0,1,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,0,0,0,0,0,4.504867,4.6455091,37.6820015,74.3460668,73.1228345,62.2293568,18.0953485,16.5166099,16.0286643,61.4801978,32.1822554,55.5987989,45.1298035,37.8440233,66.8649082,3.0366535,35.1753888,29.8481677,4.5626736,4.7240406,38.9678126,73.6849352,71.6390775,62.4834656,18.6628975,16.7497519,17.0605627,61.4487654,32.0014522,55.2279591,45.9154025,38.4646496,67.0458714,3.088339,35.7164142,32.142012,4.537277,4.7161752,39.5331711,72.6111217,71.172183,63.3145069,17.451966,16.5939063,16.7267954,60.6193303,30.3682463,54.8599471,46.7002991,38.9112395,67.1494486,3.0376647,35.0925304\r\n430,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6385158,0.6696258,7.7577825,79.8156216,77.0342164,79.3417338,25.9537718,25.1762806,18.6306686,63.9926823,37.0833375,50.2802851,11.8363575,8.2136201,60.2990247,5.737701,33.4542865,6.916996,0.7555374,0.8448232,8.5619612,78.8630648,76.1496439,79.0172703,26.6653599,23.6784711,18.2046374,65.4106306,39.2817982,50.3480037,12.2173365,8.5113045,58.5439036,5.737701,30.752854,7.254902,0.6675571,0.7426572,7.8091658,76.4122812,74.1420388,77.4701419,26.6566175,22.0603695,17.3366061,64.7501576,39.0844932,49.5902165,12.1221668,7.9030209,58.016043,6.0276712,30.9691001\r\n431,0,0,0,0,1,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,0,0,1.0750405,1.0523367,8.6264538,75.4547428,73.9171186,78.2553718,25.4177479,25.1329178,18.7830291,68.2249152,36.9756999,38.2392139,11.7977528,7.9643093,58.0027836,5.9532003,40.6413613,9.07173,1.0431865,1.0194847,8.0898314,76.1075407,72.8698075,78.4247285,25.3083247,24.6121788,16.9030163,69.3345611,35.8689486,38.8753118,11.137931,7.4827586,56.1358656,5.5314534,40.1773533,9.5744681,0.9785453,1.0518053,8.2133976,74.9657319,72.7749946,79.6990802,25.6183707,23.321211,18.3641841,68.761918,36.1978208,39.4269439,10.9688581,6.9550173,55.8866814,5.648688,42.1745152\r\n432,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,0,1,0,0,0,0,0,1.6442369,1.6960649,15.8284646,63.1393332,68.0620849,51.4922485,27.7345785,9.0454984,15.0618386,69.1556947,38.7963457,36.3758892,21.6458419,16.2753022,50.8821347,3.8714639,39.2303434,11.6776107,1.5574072,1.6095954,15.9344356,63.5585899,67.9515674,51.1284606,27.7606642,8.6898084,14.7102029,70.169129,39.6265817,36.6451864,21.2921097,16.1123314,50.7807571,3.954409,38.3388704,11.0580433,1.5592307,1.5889849,15.7917908,62.2266248,66.8450312,49.3327557,29.2859737,8.7208605,14.7057262,70.1099301,39.8198377,36.5433196,20.8398064,15.7823067,49.7621938,3.6881307,36.7543781\r\n433,0,1,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,0,0,0,0,0,1.5056659,1.4716272,14.8558562,74.3677425,72.799069,66.0176185,25.0344512,12.3470955,15.2844794,64.7005702,41.0506836,49.0751534,20.1511865,15.8289533,58.8810353,4.5631115,34.6456338,17.3076923,1.5587969,1.5599934,14.3060672,74.3155505,72.3550491,66.7735051,25.1849483,11.5821421,14.9056984,64.666884,41.7891396,47.8123482,19.9053891,15.4301228,58.3781813,4.6014733,33.9996629,17.3031026,1.3607745,1.3619813,14.2677293,73.2481374,71.8029178,66.9942376,25.7824172,11.313609,13.8993213,64.9724159,42.217864,47.3847182,18.872217,14.80057,57.331416,4.6107556,32.3801836\r\n434,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,0,0,0,1,0,0,0,1.3908646,1.4143092,15.0411228,72.4569802,76.1203381,69.2780318,23.6476943,24.5802,19.9528648,65.8359192,35.586587,45.656183,19.211462,14.9610889,66.9623642,4.9706106,33.9180557,16.8032877,1.4733868,1.4937181,15.2487763,72.6537891,75.8272923,69.2076124,24.2371836,23.7322498,19.3511551,66.8679208,36.1865254,45.925206,19.1975832,14.9098188,66.3486562,4.8265724,34.2078665,17.5212775,1.3149514,1.3485374,14.9063571,73.9634192,77.1299653,69.8595293,23.953664,24.7211651,20.4943557,66.667466,36.1018721,47.9624165,18.5365875,14.4861647,66.352086,4.8071488,32.8126898\r\n435,0,0,0,0,0,0,1,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,4.5797521,4.7431078,40.9856955,68.5788676,68.8099278,60.8258131,17.1314842,19.3595328,17.8977054,59.1661916,28.1105663,55.5020473,47.3971333,39.8652423,68.7952225,2.5410491,38.3286834,36.2207615,4.5852047,4.7445983,40.8385877,68.2149224,68.7585202,59.3047583,16.9043092,19.4167549,18.3022953,58.3478314,28.3990125,54.1132791,47.1604854,39.5572295,69.0158894,2.5593562,38.9453786,36.2829724,4.5555041,4.7193735,40.7171001,67.81923,68.9537571,58.9634437,16.5255725,19.9809049,17.4348354,58.0736214,27.8236707,53.1075192,47.4917228,39.7355823,68.9868155,2.5768346,38.4889198\r\n436,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,1,0,0,0,0,0,0,1.2610214,1.2610214,13.4514522,67.2324858,70.0753177,59.7825018,27.7602922,14.1917817,20.0380693,69.4172299,41.3595682,41.6178782,17.1811366,13.0088188,57.1902174,4.0076251,34.2048611,13.4393102,1.27004,1.2776188,13.1906183,67.3655111,70.3306489,59.2282071,27.3101765,14.0755919,20.7265021,70.2040153,40.7141502,40.315102,16.7589581,12.6872992,56.8295855,3.9049435,34.2413742,12.8698377,1.2521743,1.2596265,12.9304624,67.163794,70.1682119,58.0402682,26.5587949,14.9330924,20.2584818,69.7812166,40.20858,40.6920499,16.4907263,12.5239987,56.5411193,3.9757763,33.7263991\r\n437,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,0,0,0,0,0,0,1,1.7302426,1.7137923,23.4100501,68.3584349,67.363062,64.6122409,30.10207,14.5363682,16.0001861,67.3072491,39.6870308,44.2188575,27.7957387,22.9249795,53.7295374,3.3493591,28.6239945,16.285226,1.8265432,1.8102033,24.3581622,69.5932567,68.6454545,65.5329529,28.6747404,15.0958145,16.6926435,66.7222893,38.0454837,45.1689031,28.496028,23.7894781,54.6591131,3.3240072,28.0600303,15.8906299,1.8867813,1.8789544,25.591325,69.1168505,68.898738,64.7334816,28.2698252,15.2810644,16.3698973,66.5528435,36.961366,43.7123299,30.0136307,25.068245,53.8829883,3.2556396,28.4939455\r\n438,0,0,0,0,0,0,0,1,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,1.1311453,1.1332933,10.7539281,69.7695592,69.5947564,69.1260677,27.8488319,36.4804894,19.0976488,65.3179831,40.8921789,44.0083122,13.718678,9.9284047,70.0703317,6.9915684,34.9524985,9.7093646,1.1031629,1.0900933,10.0796568,69.3089541,69.4466841,68.4571833,28.432693,33.8275286,19.9807435,66.1068296,41.0452028,42.9608859,13.3897967,9.637651,67.8290999,7.0103747,35.8867424,9.5658034,1.0745013,1.0512328,10.0284457,69.4433437,69.9705384,68.3640001,28.6763553,31.2518823,20.3614056,66.2539207,41.1547452,43.301264,13.6334096,9.4685477,65.644935,6.9216918,34.5792356\r\n439,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,0,0,0,0,0,0,1,2.0359167,2.0759251,23.8439123,66.4107911,66.3704243,60.2084056,28.4358097,16.0919623,14.4421511,65.7063933,37.4529107,43.0800014,28.4853464,23.7696378,52.5450475,3.8637275,31.4060007,18.4937355,1.7458503,1.8002248,23.0905579,67.5095601,67.1713829,60.4011634,29.0410882,15.3729005,15.0597605,65.6634197,38.886962,42.8818439,27.8304007,23.0712155,51.9386256,3.7664659,32.12165,18.7253053,1.6129276,1.6654441,23.1159316,67.927506,67.558062,60.8946494,29.2730917,16.1128852,15.5884382,66.4109335,39.6326581,44.1767133,27.7963467,22.8620849,52.9365986,3.6254587,32.3570159\r\n440,0,0,1,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,0,0,0,0,0.9788493,0.9879696,10.1043084,76.7878752,77.7612538,73.8990773,24.3216582,31.6231872,21.1362983,64.8661085,36.515112,49.1968397,13.7144123,9.4738935,65.4239593,6.9953282,39.7137677,7.7163751,0.9654784,0.9839846,9.7804882,76.8283374,77.5756185,73.521625,24.2041479,31.2508228,20.9292984,64.89018,36.7691568,48.7042574,13.7164885,9.3053971,64.3795577,6.7704096,39.5395186,7.7209502,0.9854908,0.9783129,9.8449824,75.1474896,76.3434831,73.3416666,24.4689926,29.896031,20.2974804,65.1718887,37.6213311,49.2042262,14.0275857,9.4136544,62.9563209,6.9627972,40.0261841\r\n441,0,0,0,0,0,0,0,1,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,1.2728632,1.2588121,10.8969862,68.9453601,70.3708188,67.0532374,29.0844214,10.4166466,15.2591086,66.1703878,42.5030401,41.9978474,15.7368987,10.5027442,42.9469688,7.5487747,37.5501102,7.1108052,1.2033464,1.212018,11.1405676,68.7556072,69.4482612,66.3061467,29.8096976,10.1669969,15.1050686,66.8683266,42.8970684,42.7303239,15.7177527,10.7332655,43.3333295,7.8033289,37.5302078,7.0392142,1.1854823,1.2026679,11.2388698,68.0661296,69.5429485,66.789278,29.9867393,10.4228683,14.8815071,66.9900019,42.4713974,41.0693337,16.0540426,10.9729689,43.2435494,8.1207255,37.4763275\r\n442,0,1,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,0,0,0,0,0,1.4707927,1.528103,16.0528981,72.4779808,70.7880166,65.2812298,23.2324295,12.9518212,14.4443278,63.9539563,39.3739379,48.0407569,21.5497599,16.9788219,60.0293965,4.468051,33.6298712,18.8091184,1.4548114,1.5197005,15.721855,72.3344261,70.8511541,66.797543,24.186379,12.7152867,14.7184461,64.4348116,39.7694804,47.7570103,21.0748122,16.5687008,59.4394174,4.8177724,35.0327719,20.0132729,1.3840952,1.3619527,15.2800987,73.9813718,72.8579453,67.2014436,24.1053237,12.8465635,16.0172718,64.4204802,40.8457239,49.8940955,20.2906025,16.0785425,59.2028283,4.4998011,35.0367188\r\n443,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.8302073,2.907694,32.1648712,70.2056213,69.6356695,62.0866522,21.975865,13.0230872,18.5296738,60.7435049,29.6631358,50.9859912,37.8455085,31.9013003,61.4059324,2.9996102,32.4518731,22.8609344,2.9522869,3.0333311,33.1233725,69.9441092,70.3289648,61.4233584,20.8805585,13.4527147,18.2932118,59.929796,29.7312647,51.727606,38.8496289,32.7985513,61.9148635,2.958962,32.0526647,24.6051658,3.011033,3.1214693,33.6706994,69.3695649,70.6176527,61.7814921,20.30073,13.7189444,18.3809627,59.7234221,29.7932946,51.9256911,39.4120103,33.4747922,61.8990786,2.8178316,32.3823468\r\n444,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,1,0,0,0,0,0,0,1.2924299,1.2907576,10.7177708,63.9176895,65.4459915,57.0913793,27.3916086,11.9619145,20.1942416,69.7187328,40.3235228,38.703191,15.1833528,10.2705619,53.04653,3.2616627,35.2097122,10.0682628,1.2884044,1.2867192,10.9261515,65.7431796,67.2207802,58.7661379,27.006768,11.6951884,20.8086683,69.6975877,39.9895427,39.8384205,15.2947601,10.190511,53.8704958,3.1399169,34.9999996,8.2456198,1.1618888,1.1601671,11.1746281,66.1983298,67.5088351,58.4489895,27.3657047,11.7863027,19.0673314,69.7158377,39.4569143,40.5916302,15.2762558,10.409804,53.3067427,3.0910399,34.777625\r\n445,0,0,0,0,1,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,0,0,1.8757178,1.9195226,20.7535448,79.5121915,81.361436,80.9129084,14.4712522,56.7984163,24.1987543,60.2330553,23.6880889,57.0315789,25.5276156,21.0821733,84.4086022,3.5291439,37.4056604,20.390625,1.7840641,1.8284428,18.5856653,76.3504503,78.4818514,79.0528653,13.7421839,56.0057113,25.0520643,60.4387887,23.4937177,54.1804668,23.7392095,19.2866879,83.9235127,3.7130996,36.342155,19.2307692,1.5875816,1.6312688,18.1238967,75.1347583,75.5043721,76.1675071,14.2436927,54.0373796,24.9786651,61.4814429,24.4157509,53.8608577,22.4170173,18.2561945,83.98931,3.8698955,36.1918605\r\n446,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3535311,1.3910096,13.1739489,59.2883766,61.426826,60.18356,35.7557506,3.3281432,14.9112543,67.035374,43.8471547,35.1252112,15.7471782,11.3423743,30.1335276,4.7707059,34.3896903,9.6666731,1.6402767,1.6781843,12.6706814,60.7984211,61.1852936,59.3748219,33.921951,3.2695573,15.8534849,65.4064355,43.0382418,35.8483302,16.041952,11.2555354,30.3415576,4.7601008,34.3225875,11.217899,1.598117,1.6365709,13.2255989,61.8232075,60.8929217,61.6930663,32.2487776,3.7053486,15.8458701,65.503196,43.101905,37.916817,15.9700782,11.190428,29.6620864,4.5455134,34.2089021\r\n447,1,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,0,0,0,0,0,0,3.5291645,3.6598845,32.4103335,58.3895331,64.108386,52.4312248,21.2597542,10.3770025,15.9095721,63.057711,31.8701276,43.1803236,40.0039411,34.0102883,61.5326449,2.1340319,38.1466323,39.8642909,3.1983645,3.3133853,32.5224224,58.775678,64.2062506,53.0627219,21.7797824,11.2470296,16.5093736,63.8820776,31.8731603,44.6660058,38.7142206,33.0124453,61.0487412,2.3071016,36.7224144,37.663652,3.0335003,3.1076885,30.841754,58.4090532,63.280847,53.2802465,22.1193568,11.1367178,15.7284201,63.7374781,32.8659707,44.762001,37.6533685,31.7572002,60.1484701,2.4425617,35.9482763\r\n448,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.323941,4.3093977,43.85645,68.0323605,68.4441793,61.6111396,21.4598613,11.8494237,15.3932323,58.7812319,30.106768,49.2035447,49.5766611,43.3988684,62.8249804,2.1439855,37.4560324,43.9048722,4.4301602,4.401562,43.2778954,67.4829575,70.1264974,62.4445139,22.2835044,11.1941257,15.9124326,59.0974465,30.6666354,49.5580474,49.2169839,42.7855045,63.905483,2.1084922,37.8581847,43.7312169,4.2727488,4.233406,42.4710065,67.6579574,68.8050217,62.8520298,22.9815096,10.9543517,14.812636,60.0010979,31.4769943,47.8114589,48.483293,42.2204003,63.4317264,2.0804978,38.344975\r\n449,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0382281,2.0023028,24.6956566,72.7736236,73.8823081,69.1221585,23.257079,10.2366511,17.9618591,65.0497902,33.196329,46.1057856,30.2402741,24.6837254,52.3723044,3.8299881,31.0280187,19.1359889,1.9676479,1.8785001,25.1792532,72.1885543,72.9467697,68.7690119,23.5781847,10.9325699,17.4312987,64.9182369,33.0961912,46.2882574,30.8976839,25.5020097,52.9505403,3.8820149,30.7742316,19.8014039,1.9736347,1.8842992,25.1482429,71.2180571,71.8519813,68.7826005,23.6938014,11.3088748,17.2829691,64.8104454,33.448327,45.6581873,30.6050582,25.2821251,53.0654248,4.3807677,30.6607239\r\n450,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.634707,1.6243698,15.0762732,58.8395178,56.5399849,60.8014759,32.5871582,3.9408996,10.8259011,67.744333,44.1074307,31.7552232,20.7013236,14.8950091,38.3319721,4.6050705,33.5071244,20.576931,1.4597627,1.4732337,13.9772093,59.479646,57.3394371,61.1301466,33.6885267,3.4009143,10.4875141,67.2503529,44.5865117,31.8709197,19.3625178,13.6525,37.5719796,4.6508513,33.6309608,21.6941915,1.3373629,1.2961059,13.7912152,58.626195,56.5597966,61.5059937,34.8660242,3.6877154,11.2325075,68.0407972,45.5825305,32.743029,18.9102398,13.3670838,36.1439515,4.8538507,33.8962782\r\n451,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,0,0,1,0,0,0,0,1.0196602,1.0260896,11.5386545,70.2470238,70.4346838,59.596592,28.2775372,16.733134,17.3057181,67.1455875,41.9450311,45.1533007,16.1683523,11.2408451,57.3293779,4.6804515,40.1606212,8.6008927,1.0520229,1.0477383,11.5249044,70.0225086,70.2703332,60.1327994,28.2698956,16.291102,17.4983085,67.2762111,42.2011934,45.1225734,15.9080208,11.1250765,57.3072778,4.7433511,40.4027223,8.3788133,1.0896909,1.0958154,11.8344823,70.9897086,71.097315,60.7160719,28.6746472,16.6446094,17.7919345,67.4748948,42.8075345,45.0481755,16.0707899,11.3480696,57.4629263,4.6968594,40.6040474\r\n452,0,0,0,0,1,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,0,0,2.5210519,2.643998,30.4057883,78.3594687,76.1980141,79.594004,13.1477402,51.6452818,24.8308389,58.4228277,23.3654177,58.5261207,37.7113867,31.7361894,85.3567205,3.5481396,37.956488,33.9572193,2.4297577,2.5566853,28.9593032,79.3135653,77.5287112,79.8634152,14.1850899,52.4141217,25.551114,59.5741083,23.5744892,56.8178243,35.4957397,30.0348567,85.3545528,3.7204724,38.672496,32.2892938,2.3269078,2.4341167,27.212345,79.5140417,77.736466,78.4607372,14.555773,52.9340291,25.0547494,59.3896687,23.7012813,57.4356209,34.2495987,28.6717496,85.7532522,3.8225675,38.8569079\r\n453,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.1174308,2.1447814,25.7296772,73.6545262,73.582864,67.9614102,26.0176486,10.9764191,15.2742613,66.9233357,36.5304961,45.4679239,31.7196764,26.885877,53.013424,5.0812531,32.7432061,19.5721111,1.9401612,1.975693,25.9900323,73.6659399,73.4058042,66.8078901,26.0326091,11.0026991,15.3250491,67.1993193,36.1547123,46.6182774,31.7385607,26.8985312,53.1862716,4.64516,33.2728232,19.572115,1.8725768,1.9085701,25.912257,73.9505552,72.896289,67.2114521,25.2402059,12.2505536,15.5561391,68.052815,35.1286726,46.9792775,31.5430267,27.0547427,53.3388127,4.1755449,32.7947415\r\n454,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,0,0,0,0,0,1,0,1.6412544,1.6664579,21.3956353,65.2804916,70.351574,55.7589701,23.828995,7.9595877,17.3041981,65.0151025,37.3699685,47.8841967,26.9732429,21.75041,55.4197806,3.0302547,44.6969553,15.489197,1.4749717,1.5005048,20.5989551,68.5983696,70.3562086,54.4350512,22.5914959,8.2258086,18.7949409,65.4357977,36.4627857,45.8694252,26.5826561,21.3567229,54.7001143,2.7750309,45.5523632,16.8508927,2.0082612,2.0336268,20.9433606,67.4606968,67.7771883,52.6602662,24.7752076,8.2603177,19.3733401,67.2757121,38.3431244,44.3442471,27.0580026,21.3761765,54.1295163,3.3292486,45.3835048\r\n455,1,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,0,0,0,0,0,0,1.5435627,1.5321915,17.9449545,62.0533709,64.4160777,58.1601352,28.8275139,8.6636485,15.9965994,67.2429906,40.0718433,40.4173587,22.8069833,17.7172794,53.262342,2.3639386,35.4234094,23.1357918,1.4067628,1.3835753,17.2980057,60.7361607,63.4772487,59.0612471,29.6273398,8.0720295,14.738349,67.9027181,41.474904,40.1074852,23.1130354,18.0316672,52.271378,2.4623545,36.8285667,23.9921225,1.4637863,1.4405211,16.7177799,62.9298862,65.155156,56.670717,29.5593257,7.6398858,17.2280258,67.3162651,41.7345523,38.1900453,22.5220133,17.4180574,51.7799786,2.5740779,36.9500167\r\n456,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,0,0,0,0,1,0,0,1.193676,1.1750205,15.7673057,75.9925456,74.9796698,71.0312516,22.711123,67.3085847,27.5316328,67.2527927,36.3000307,47.1380766,18.1206312,14.3617675,85.6502625,5.0119948,31.7266293,9.5660938,1.277894,1.2588462,15.5096052,76.9991434,76.2109741,71.4201276,22.8162148,66.7573299,27.8020681,66.855514,35.7074059,46.5966268,18.2574684,14.2806091,85.6240598,5.1484992,31.8336391,10.19804,1.1196625,1.100073,15.3053804,76.065357,74.8561889,70.5244429,22.1477441,66.9943898,27.4790848,66.7435284,35.786509,45.6478939,17.7863461,13.9440091,85.4645393,5.4679517,32.5388299\r\n457,1,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,0,0,0,0,0,0,6.310591,6.4325389,46.3469576,62.4514252,65.7524227,55.4262037,21.7320235,12.0159766,18.1191483,62.133424,28.929933,49.5693514,53.3087728,46.4646966,63.2411676,2.2494054,40.7576964,46.9522583,6.0908959,6.221591,45.4977105,62.1550997,65.1103429,54.80665,21.9055477,12.9573373,18.145999,62.4809589,29.758914,48.1635157,53.0594899,45.8676675,62.8232577,2.0769835,41.6489725,49.1204078,5.7305695,5.8132173,45.30035,61.5731526,64.7391814,54.4012889,21.6822368,14.1800289,19.6461303,63.0938047,29.6402112,46.7202734,52.120776,45.0859237,62.3696745,2.2728136,41.8972254\r\n458,0,1,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,0,0,0,0,0,4.5939432,4.8268298,40.1560993,73.0777484,70.8771769,64.2841535,17.4583213,16.5443772,17.4178671,60.5238665,29.2684028,56.0063346,47.5793792,39.531326,67.1957378,2.8108301,35.7817299,33.8866697,4.6357541,4.8734765,40.1073353,72.3892878,70.8076602,64.8430424,17.3331797,16.5589424,17.9060386,60.9224098,29.3013651,55.2638401,48.1656479,40.1367299,67.5198405,2.9842726,35.7076412,34.7923389,4.7413555,4.9902551,40.2917053,72.0259359,70.8363298,65.4838959,17.2410621,17.1536864,19.8662326,61.1851173,29.7509772,56.4698074,48.0135971,39.9657854,68.6149505,3.0883778,36.6268012\r\n459,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.5166797,1.5236159,15.8321212,59.598182,64.0389273,49.9231524,30.947224,5.3589568,15.7452965,67.3908139,41.7295936,36.4610913,21.1651117,15.6489491,42.2559218,3.7659577,39.2424982,14.5652119,1.5177504,1.5247532,14.9212804,60.7944823,64.9924745,50.954601,30.7202178,4.7107176,16.0782134,68.2414777,41.7569546,36.4958127,20.6072662,15.0105226,42.8197306,3.7986062,38.7329693,12.8820749,1.6688552,1.6758701,14.8064802,60.895148,65.4627418,51.8002476,30.712753,4.3055781,16.3251111,68.1388771,41.7623687,37.6017647,20.9924682,15.4519821,42.7742581,3.7515088,40.0340131\r\n460,0,0,0,0,0,0,1,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,1.4730118,1.4818036,18.5616687,61.3582853,62.3997071,57.4511944,25.1290749,16.6952776,14.6130391,67.6000599,37.5532817,41.7541183,23.6581056,18.6016584,61.7939776,3.5766675,35.9780425,22.9808631,1.2758664,1.2847923,17.332804,63.2670054,64.0087861,58.0409053,25.2022002,17.4116969,15.12905,68.4907296,38.1239197,42.524936,23.0205438,17.9144579,61.8997777,3.6976351,36.6489674,22.7837628,1.2250831,1.2478644,15.9740006,60.9575823,61.8847282,56.9841809,26.8551207,16.4990553,14.1344845,69.6035354,40.4172925,41.0356064,22.103484,16.9542763,60.6551303,3.6154135,36.4607111\r\n461,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,0,0,1,0,0,0,0,1.0277533,1.0314513,12.8014244,71.9057531,72.0529582,61.8487226,28.6180041,16.5691094,16.8341464,68.35399,43.2095658,47.0416061,17.3820473,11.9130324,55.5862493,4.7218996,40.8943771,9.3981614,0.9895632,0.9932886,12.626814,71.5866069,71.7513934,61.3712806,28.8575319,16.2845218,16.828037,68.3941782,42.7729331,47.1185957,17.2351063,11.865968,56.0279181,4.6934305,40.4258158,8.6254757,0.9786699,1.0158277,12.8472284,69.9328524,71.0461298,60.1314034,28.9825921,15.917368,15.9723695,68.4244261,42.9831107,46.1478307,17.2691866,12.0411395,55.3887977,4.7251535,40.2986913\r\n462,0,1,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,0,0,0,0,0,1.5646997,1.6035029,18.8243082,68.8666231,70.3665138,63.1895819,24.6390675,13.3160874,13.6965554,67.0838597,36.0354562,49.651366,24.0917626,19.3985213,62.6865933,4.1885737,29.3970698,21.1926589,1.6133067,1.7210995,18.8853612,68.6825031,70.2097603,63.4284493,25.2208016,14.1091601,13.5009059,66.8913738,36.5238118,48.313521,23.8694871,18.9723515,62.7221914,4.0894582,30.471003,21.2197113,1.4514395,1.5711805,18.7445113,68.1245258,68.7459635,62.9402802,25.0282545,13.5513087,13.2340471,67.3736174,37.7723904,47.9414358,23.703037,18.6876302,62.0682792,4.3717837,30.9268764\r\n463,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.2007029,3.2257178,29.9180333,58.8691291,61.911839,55.2780416,24.1018579,9.8899515,14.6433537,62.0272212,32.5752675,43.6892211,36.6383853,30.186586,60.7634474,3.4435365,42.2073582,34.0336971,3.2487814,3.2826359,28.9003531,59.2139706,62.6170118,54.9666059,24.7081154,9.928816,13.8026292,61.9804473,33.9490275,43.1596354,36.0058253,29.49086,60.5267621,3.4080709,41.673684,33.7230937,3.1343648,3.1281972,28.3149113,58.9607739,63.1775097,56.1856123,25.570972,10.429264,14.841268,63.1348126,34.0282495,44.0923216,35.9563528,29.3763144,60.543499,3.4978612,41.1513242\r\n464,0,0,0,0,0,0,1,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,4.2480617,4.371079,35.7300218,69.5187288,69.2829981,58.3250414,16.3226138,21.2661073,17.1171834,60.0072892,29.7092626,53.3103914,42.700708,35.1357418,69.5850084,2.4251556,38.6888618,36.4558446,4.0918354,4.2255707,35.3710185,68.6115041,68.8872724,58.0332801,16.5725486,20.3403037,16.6942881,60.8930572,30.1230052,51.6348712,42.3003045,35.0038962,69.5677276,2.4848836,39.8974152,35.6421196,3.9264863,4.0596743,34.6991432,68.0445143,68.3065616,57.8603431,17.7903857,20.4847228,17.3280846,60.9323374,29.7130407,50.6341614,41.9127866,34.5022963,69.3216606,2.3741786,39.8173271\r\n465,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.5183214,1.4819805,19.5100089,61.35422,64.8751835,51.3521668,28.5033691,6.182988,16.258255,68.7196843,41.1949804,40.4112751,24.3890148,19.4595709,49.5638791,4.257737,40.7533765,17.4180328,1.5722966,1.5348788,18.673186,61.9653902,64.9325912,51.6609,28.2341545,5.3402381,15.6657205,68.1043352,41.3948982,39.7094576,24.1198009,18.7705576,48.721369,3.8385255,39.708775,17.4778838,1.4108463,1.4419393,17.7359103,61.4852944,64.7246372,52.4319208,28.3384394,5.6407661,15.3581776,68.0634873,41.1806186,39.5249243,23.047372,17.94242,48.8042334,3.8323782,41.2974014\r\n466,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.5546755,5.7344307,39.4405188,67.2012746,67.2415762,56.2246776,19.792164,14.849349,19.5461878,59.7188804,29.6511899,51.773743,48.9068038,40.7706035,63.3004187,3.1536683,43.3759005,35.2219365,5.4828863,5.7326575,39.5447777,67.5471868,67.0201362,54.9694033,20.356244,15.1916422,20.178945,60.4287664,28.718258,51.0273426,48.8017038,40.2976469,63.9771517,3.1031626,43.9368068,34.0881192,5.2623418,5.504716,39.5553392,66.9585951,66.0911981,53.5547292,20.7153545,14.4931409,19.8085025,60.7536429,28.4349571,50.7188823,48.5575098,40.3313913,64.6346828,3.0359331,44.2967257\r\n467,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,1,0,0,0,0,0,0,0,0,0.8959835,0.8959835,16.838745,72.4264711,75.4063845,67.1203047,22.4454643,60.693221,28.3933963,69.5608484,34.2487219,44.7735298,20.0003778,16.2446108,85.7680018,4.3089876,33.5126615,10.445159,0.9960621,0.9960621,17.343521,72.8818862,74.9217412,66.7409114,22.6692847,61.2967266,28.086182,69.5277784,35.2118021,44.5292892,20.4297974,16.5730757,85.1390917,4.7566752,32.6063327,11.0506285,0.970938,0.959318,16.9245312,71.4237156,73.0080041,66.0267613,23.2496916,60.8545067,29.1134745,68.9174615,34.7351953,43.6815702,20.5238629,16.4331544,84.2876548,4.5551022,32.7214658\r\n468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.1381148,1.1530524,19.2219858,74.5744571,76.1489674,59.7015109,19.3506661,32.0263965,22.9670004,66.8159803,33.3493506,50.208726,22.8806494,18.7605985,73.5294169,3.0215989,34.8816398,13.549633,1.0413043,1.0530291,18.5846751,73.9134734,75.5116565,58.1927516,19.4339398,31.4997613,23.9619559,66.5596377,33.5655301,50.2776328,22.1708446,18.1628542,73.5537956,2.9226272,35.106805,12.7410583,1.1253398,1.1267371,17.9700605,74.1810352,75.0958412,58.5984715,19.6875794,31.5723436,22.7557052,66.1878923,33.175666,49.7656097,21.7286004,17.635971,74.0716568,2.7670583,34.7096569\r\n469,0,0,0,1,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,0,0,0,4.1811621,4.2853916,38.8082241,73.1080585,72.066093,72.3804335,17.578478,35.3536297,16.4483545,58.2344958,29.9115459,53.3712746,44.5119405,37.4738594,74.3411782,5.0207252,34.2734578,26.0643408,4.2384653,4.3705843,40.4210286,72.8573371,72.8883182,71.7163743,17.5391759,36.267584,16.5903503,57.3420936,29.3839547,54.2915656,45.4339557,38.6831934,74.3683091,4.693227,34.1549716,26.9412842,4.1900582,4.367805,41.3949545,73.4205938,73.0969052,72.136514,16.7687506,36.6714563,16.3627696,57.7615181,29.8407901,55.4579493,46.3614305,39.836728,74.3754073,4.8141523,34.9082895\r\n470,1,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,0,0,0,0,0,0,5.7604413,5.8826672,41.21375,64.8689191,67.7110765,56.6164064,18.9193,11.431752,17.7890449,59.8645099,28.1512088,53.7375371,49.5418313,41.7574359,61.8784632,1.5038476,40.9021188,41.1459175,5.7423678,5.9972289,39.9398372,63.9526131,65.978776,55.0153767,19.7473578,11.1148837,17.0416359,59.553135,28.7202891,54.2833435,48.5965347,40.7467091,61.7626723,1.6918289,42.2460378,41.8829432,6.4369156,6.6747263,41.4504713,62.9589555,65.1661657,54.02208,20.2458821,10.6894821,17.410601,59.6677479,29.1252737,54.8393695,50.8062726,42.8488572,61.5340884,1.8388919,42.2830164\r\n471,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0600664,1.1196449,19.8550537,78.2953946,77.2085522,68.8539305,19.1184711,58.7950439,23.3437635,65.596024,35.4400465,53.7532594,25.2693727,20.1216926,84.1681001,2.5899897,42.5786187,14.9719266,1.1415898,1.2014338,20.1666689,77.9394297,77.3003907,66.5154437,19.2833216,59.3729086,23.9104956,65.6541091,34.3675771,54.4626144,25.4517092,20.547496,85.5970547,2.9744892,41.9521293,16.5886369,1.5009354,1.5009354,20.0002665,78.0493381,77.8489622,65.1426102,19.6887378,60.0042155,26.1999728,65.4777966,34.7092668,56.1123088,26.1534665,20.5947495,85.4249545,3.2957683,41.5313246\r\n472,0,1,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,0,0,0,0,0,4.3713066,4.4958449,38.1343365,71.3882723,70.646849,65.2135209,17.0192193,18.9233806,18.1245225,60.7912645,30.65644,58.1142132,45.5849113,38.465256,69.3278292,3.1769025,35.7991913,36.1473707,4.3600576,4.4091644,38.1441529,71.1106942,70.6745811,65.4111044,17.2238947,19.3186963,17.2764956,61.0910121,31.1692885,57.9016909,45.8108566,38.4117575,70.0081449,3.3447953,35.4568408,35.78563,4.5073254,4.5359792,37.2517844,70.6511415,69.9874245,64.9743229,17.5345046,18.4748516,16.9938654,61.3853797,32.0799591,58.357194,44.6362389,37.24595,69.4275045,3.2427382,35.3515847\r\n473,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2.0746254,2.142701,27.3373023,79.4501502,76.220897,76.0264189,19.1517348,59.4525933,20.5710507,62.0893875,24.6148598,61.3927973,31.2408601,26.3628118,86.0040194,12.4124631,37.6749037,14.8393981,2.3556084,2.4148926,28.2655265,80.1056169,76.8587004,76.1861185,19.2906246,60.7941892,20.8059671,60.8703886,23.6190295,62.021106,32.4164251,27.2359951,86.3896005,12.0048341,37.8734852,15.3584307,2.6822382,2.7528173,29.3843754,80.3234298,76.6989702,76.2760715,19.2590441,60.8200891,21.0038209,59.6584208,23.3135367,61.2670439,34.0329273,28.5161344,86.4147301,11.5610508,38.2768018\r\n474,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,1,0,0,0,0,0,0,1.1567805,1.1685757,12.5921631,68.0865326,69.2098023,62.9109521,28.0211666,11.1676899,17.7500064,71.2192424,39.0379611,39.6127244,17.5178382,12.4859196,52.716976,2.6751287,37.9000846,7.7617329,1.165699,1.2115988,12.3559916,66.9968574,68.800114,61.0785591,28.6274247,10.078586,17.7925036,71.1063646,39.6051881,39.6056408,18.0586651,12.6020893,53.164827,2.6385676,37.2913639,8.4775057,1.1893019,1.2594542,12.2827801,67.0939086,69.5471504,60.0527338,28.5334131,10.3023308,17.8999641,70.8944786,39.4324282,39.9060623,18.1358031,12.4718844,53.0043182,2.7063331,36.1046314\r\n475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5013903,1.5013903,21.3186254,74.3313572,73.3446816,69.4358651,22.5070207,53.7220252,24.5767413,63.9195931,34.7355159,50.4025755,25.5041168,21.2912056,84.9679823,2.2983858,39.5477447,16.7562568,1.5580336,1.5580336,22.1644356,75.7358926,74.0175019,70.6001567,23.1371874,53.9569231,24.432125,64.4239152,35.1379792,51.5843192,26.3603496,21.5545972,85.180178,2.7926613,39.3551727,16.986219,1.6000358,1.6000358,21.9034513,76.8048005,75.6752978,71.9980624,22.3963545,53.5708146,24.3420647,64.1544455,34.2447052,53.3949663,26.6811055,21.8050768,85.3208332,3.1527136,40.5001991\r\n476,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,1,0,0,0,0,0,0,0,1.4700213,1.508207,18.2577939,68.0858659,68.6373751,64.9853481,26.4222873,11.2220367,17.32801,67.7188068,38.4694053,41.6954342,23.3555574,18.3925964,50.5314268,4.9811019,35.9423389,17.4902617,1.4619733,1.4836765,18.5837529,67.9207834,68.4448608,64.7761123,26.3698901,11.5209021,16.9620322,67.8516211,38.2223684,41.0625081,23.2591417,18.4764694,50.7177457,5.47473,35.1816756,16.6020823,1.4938231,1.4907274,18.3931147,67.8459391,68.919128,64.6059889,26.6232441,11.8255383,16.2062478,67.9429946,38.4158022,42.2281929,23.2740294,18.3774406,50.8828648,5.4569293,35.2653233\r\n477,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,0,1,0,0,0,0,0,1.5291333,1.4928496,16.5330344,62.3575417,67.4492804,51.4130517,32.0003409,6.6762978,12.8664282,69.0759153,38.5410439,37.5029673,21.6954083,16.0439654,47.8636311,2.8246447,39.275259,7.7510096,1.4310515,1.3658627,16.8251701,65.2720239,69.4635939,52.9601278,31.6983252,6.59165,13.6878432,69.39304,38.0801267,39.1283128,21.7673321,16.0416089,47.4931801,2.7599774,38.3846036,8.2046036,1.6481235,1.5825178,17.3197756,64.6132802,68.2321107,53.2901238,32.2437305,6.8776154,13.9158001,68.1240206,38.203856,38.9261229,22.4980509,16.3694524,47.2637628,2.9067864,38.6965656\r\n478,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,0,1,0,0,0,0,0,1.6264576,1.5943057,21.8039076,67.6101376,70.9007119,50.3272955,23.9053901,13.1820109,18.4393767,67.9310864,37.7663811,47.6020837,26.8987299,22.2781549,61.2348877,3.8433558,37.7532494,16.0091613,1.6100052,1.6314568,22.3184713,67.4213775,69.9984908,49.7192176,24.3386755,12.6737802,17.5070546,68.6068431,37.6881697,46.6642555,27.0019489,22.4831088,60.3046288,3.9129773,38.1729781,15.6150693,1.666304,1.6875574,21.4415089,67.3157361,69.8061614,49.8104167,24.6505144,12.2553663,18.0833641,68.5440529,37.6470094,45.4807189,26.197267,21.6408254,60.7615303,3.8250398,38.5935791\r\n479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1868591,1.2260591,13.389225,66.1552685,67.2790615,61.1150105,25.4830143,11.1766866,17.3667518,65.2742936,36.4991016,42.2652236,17.6210104,13.7281057,55.6227297,3.2223389,34.2100566,16.3510078,1.1844864,1.2279106,13.2254123,65.3029149,66.95026,61.6308681,25.147626,10.8306794,16.6528914,65.2163531,36.7240651,41.7351417,17.6329905,13.5340516,53.775005,3.1852403,34.0451186,14.934198,1.145908,1.2086425,12.8869755,65.7037184,67.9345823,60.278818,25.0774623,9.9572111,17.2765904,64.977441,37.2344224,41.8678892,16.9159893,13.0396054,52.5098211,3.31812,33.8646177\r\n480,0,0,0,0,1,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,0,0,1.0682341,1.1300457,9.1587048,70.4924644,70.5607208,78.7717509,25.2418054,10.8587192,15.7563475,64.6223816,37.2935638,42.366828,13.6823105,9.6389892,49.9615385,7.0195195,36.3567073,8.0392157,1.2906731,1.3179597,9.8768879,69.1768494,69.6090955,78.9315988,27.5432686,11.5196513,15.7861381,65.85459,39.0704616,40.7267244,14.4912281,10.2105263,49.5883234,6.9180088,36.4243323,9.1085271,1.2184282,1.2445025,11.0149797,69.7604305,69.4054947,78.1868226,27.741551,10.5539473,14.8315001,66.4953338,39.8152371,40.6956823,15.2945114,11.2784471,48.9247312,6.2061711,37.4095514\r\n481,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5869253,1.5869253,20.6467079,72.8568812,73.432893,67.6289572,25.7227332,10.0140339,16.6578991,68.9597122,39.9691384,41.2270762,25.4456978,20.7134045,47.6658272,4.8096354,29.7750566,16.6144468,1.7281887,1.7664369,20.8236887,71.6655708,72.9648666,66.8127652,25.9940022,10.268974,16.208626,68.7591807,41.1767029,38.3840359,25.5201639,20.7019562,46.8213905,4.7976616,29.321543,15.0168095,1.7279727,1.7650287,20.8776589,70.350302,72.2138521,66.1005864,26.3642041,9.1053914,16.8622685,68.0549413,41.2695442,36.2180293,25.5429278,20.4446515,47.4784502,5.2868798,29.8304302\r\n482,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,0,0,1,0,0,0,0,1.383515,1.4172338,14.2357449,70.1175336,71.8081713,61.6858951,30.9718544,14.5143328,15.443251,66.5746799,42.3576766,48.8028306,18.9425019,13.3729637,56.1480093,4.7119852,40.3263056,8.74442,1.2642475,1.291185,14.6797589,71.2080515,72.3766379,61.6588194,31.2706747,14.2766809,15.9901071,66.5886123,42.7658631,48.5560631,19.2387679,13.7178268,55.6871302,4.6098779,39.975015,8.4488901,1.2925404,1.3158101,14.9219095,70.9604669,71.8371751,61.2916011,30.7260665,14.2154859,16.2717275,66.3131763,42.2801964,48.3843782,19.3129348,13.7930882,55.3125191,4.604384,39.7002437\r\n483,0,0,0,0,0,1,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,0,1.56894,1.6122503,19.5714557,65.6607059,67.0260277,60.744295,25.6879864,12.4201885,14.1953651,67.2018588,40.7902986,47.588197,24.6749755,19.6025115,59.6562868,4.4762209,36.221623,23.0549844,1.4716776,1.5227645,19.0478507,65.9224064,67.1929885,59.8552816,26.0097888,12.3681349,14.6043534,67.4266212,41.3267092,47.0706612,24.1713583,19.0370429,59.1344475,4.6834868,36.5784041,22.6177796,1.4961294,1.5463802,18.5508406,65.8595445,67.0956529,60.2194379,26.6080867,12.202668,14.5697294,67.7981899,41.5049443,46.5158186,23.6804445,18.6551531,58.8531948,4.6578909,36.4090063\r\n484,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.9071779,1.8831829,18.9343777,61.4595244,63.8618726,50.9309661,31.6103777,4.8166374,13.7711967,68.326124,43.591562,39.3601866,25.6123082,18.6063581,44.8288636,3.2488368,42.2225426,14.9082295,2.0264767,2.0505901,19.7032834,61.7758649,63.0013024,50.3852242,31.063504,4.7742604,12.8550557,67.6931379,45.0469918,40.0626893,26.051118,19.1721969,45.1121561,3.0049337,40.1878973,17.1361341,2.0076519,2.0076519,20.5080296,63.1242839,63.4924611,51.8769232,31.0170564,4.9216668,12.7834105,68.4472303,44.0709374,40.2858581,26.5449128,19.5336253,45.207568,3.1823788,39.9580852\r\n485,0,0,0,1,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,0,0,0,1.4802028,1.6173009,10.9300139,66.3328199,64.6365343,67.0821255,27.8720788,3.439301,12.2551088,69.1263823,45.2443078,36.1283725,15.8579822,10.4131768,30.2732067,8.4856917,34.0280843,8.59375,1.4295288,1.5628068,11.170491,65.895216,65.969778,67.5627752,28.1328646,3.5282678,11.9690012,69.5195045,45.9292392,33.3644126,16.0047598,10.5419176,29.6882725,8.2175298,34.3420091,7.3899371,1.4626569,1.5577555,11.5255366,65.5439525,66.2373925,67.0502765,28.1697351,3.63264,12.1993624,68.5394636,46.3575275,34.0514861,16.2891457,10.6890544,29.1906412,8.2744,35.4913546\r\n486,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8442239,1.9013395,11.6727649,52.7606822,53.7404961,52.5118181,34.5613317,1.9831443,10.6265915,70.9702237,49.375352,25.1573071,15.8727156,10.8508433,24.6127696,5.4383675,29.915025,9.7058938,1.7406714,1.810285,11.4272709,54.6685589,54.1515865,55.5245228,34.715047,2.1404001,10.5841116,68.8956746,48.6406721,23.4348538,15.6323937,10.6835952,23.2343002,5.6842406,30.1899129,12.3563289,1.6935515,1.7439587,11.9437607,54.2080302,54.1991795,56.8673423,34.3710894,1.8200966,10.6278079,69.3576359,47.7880939,23.0688983,15.5594003,10.7276478,21.7631341,5.5233465,31.3537298\r\n487,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8265317,1.8895652,25.6560547,67.8311721,68.9969461,58.09559,28.2962592,10.7436637,17.5027428,66.6891033,37.2151439,42.6124539,31.354314,25.877643,52.2384636,3.6795522,36.541052,24.7849599,1.9583741,2.0177315,25.6112102,67.953244,68.6503354,59.4004918,28.4177013,11.2790601,17.1767945,65.9002881,37.0395716,42.5211607,31.4534563,25.7907501,52.9881555,3.6673105,36.9465543,24.6597097,1.965452,2.0003175,25.687619,68.7128728,69.4952956,59.9992605,28.928209,11.8202379,16.7653332,65.7417114,37.4002219,44.265382,31.2867523,25.7122708,52.7818894,3.6470077,37.3392822\r\n488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0473428,1.0546839,11.021517,65.618886,66.8009382,60.8763961,27.7093562,7.8251064,16.0588782,67.7622012,39.3623287,39.8852989,15.2220254,10.8786461,46.0120851,4.0048717,33.8732988,13.1728453,1.0694195,1.0768668,11.9535212,65.5056815,66.535111,60.8523099,27.4638947,7.1632371,15.5203946,68.6013836,39.2066944,39.6570045,15.3757721,11.2373237,44.9886826,4.1122839,35.1648392,12.5758498,1.0142787,1.0216985,11.5050953,64.7688459,66.7763267,61.072911,28.567933,6.8634624,15.8148736,68.0561948,39.2882838,39.7938293,15.452938,11.0348897,44.4059844,4.2265788,35.3912935\r\n489,0,0,1,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,0,0,0,0,1.1934889,1.1744359,11.8021436,77.6790333,77.6903407,74.1997699,22.7582923,40.8809948,24.2454279,64.6817142,35.190262,50.7228885,15.1413828,11.0383686,71.7452184,6.5808777,37.7771013,7.8181172,1.1437813,1.1321278,11.4556764,78.3180819,78.1707938,74.8625116,23.3017452,39.6606377,24.5334124,64.5411663,35.7823491,50.7366197,14.7665372,10.6914408,71.063897,6.8403343,37.5872589,7.6605554,1.0840972,1.0844719,11.0699369,77.9615688,78.3442136,74.6163407,22.9977567,39.1941111,23.6742902,64.570232,35.3887487,49.932911,14.4932784,10.4583334,70.3626837,6.8772826,37.9478505\r\n490,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.53124,1.6037564,10.5051254,52.3293186,53.7872092,50.2577657,36.7703054,5.1659517,13.9301929,73.7287701,45.8885389,31.3723201,16.2109295,10.1953095,38.4648278,4.7399349,45.1260748,8.2317123,1.3917608,1.4635484,10.2244018,52.9798233,54.8926839,51.3983267,37.2794245,5.4601915,14.6947078,73.3656251,47.4073367,32.146307,16.52476,10.1780233,38.1012546,4.4288105,45.126058,10.1227056,1.2598911,1.3147868,9.541742,54.9844569,55.8932207,52.3938138,37.5642798,4.7106738,14.7308899,72.2295442,46.8732107,32.4215368,15.5282671,9.1800057,37.6493626,4.3416528,45.026101\r\n491,0,1,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,0,0,0,0,0,3.924505,3.9781108,35.8022968,69.8967685,70.9130832,64.1487721,18.9432203,18.5557736,17.1433725,63.1142499,31.0613635,54.9149595,42.2223169,35.1332722,67.7253513,3.1924822,36.8577749,37.3322969,3.8350154,3.8655345,34.9583817,69.5178741,70.7004616,63.026546,19.5289065,18.9531734,17.7571859,63.4322788,31.1807276,53.9837501,42.0005595,34.7814264,68.125499,3.0986893,36.8011015,36.6876157,3.4613392,3.4853349,33.4385531,69.4402901,70.4376353,63.4720399,20.0798814,18.5248235,18.1525323,63.4801276,31.4120545,53.0823431,40.1857489,33.6295221,67.9667211,3.5000573,36.5118439\r\n492,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,0,0,0,0,0,1,0,2.1144288,2.1501818,20.8481084,65.1852046,64.5713465,59.863684,25.9744406,8.1912118,18.6015287,66.6749621,33.2294479,51.4981496,27.3424397,21.164652,58.0894545,3.079634,44.0116675,22.3148537,2.2321209,2.2489535,20.6339805,63.2594741,63.4406789,59.4052688,26.7223552,9.1094101,20.272511,66.1232738,34.2688836,50.048433,27.5073657,21.1682202,57.7011746,3.3038708,43.8110019,22.4999875,2.0197586,2.0364827,22.0933621,61.1531265,62.1999344,58.7178338,26.4105566,7.9851971,19.3345711,67.5594141,34.8101625,48.940846,28.951154,22.7769167,56.5548287,2.9712339,44.9932041\r\n493,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0698876,1.0778612,19.4080004,69.1241532,72.0060016,64.7881389,20.2439185,61.0535883,28.3021446,64.071126,35.9714943,50.0327563,22.2720836,17.5598662,83.3419214,3.5704213,38.3641049,9.8200945,1.2605855,1.244239,19.4255179,69.0536658,72.225717,64.057934,21.1428991,59.5897275,27.3006604,63.4953442,35.8775069,52.5653577,22.4979815,17.6431915,83.0386173,3.5398936,39.0061184,12.9001955,1.4259468,1.3867591,19.990174,69.2118845,72.5610889,64.2806429,20.7415625,57.6676589,27.3322214,63.0495693,35.2411907,51.2478925,22.3360895,17.5520657,82.3843207,3.7987794,37.0899134\r\n494,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8361778,1.9311067,20.7851845,75.7393552,73.9957768,72.4783363,24.0581793,60.3846021,26.7301485,60.778878,31.4440009,54.44807,25.6097251,20.3725793,84.4032242,3.5672201,43.1018585,15.9998062,1.8176537,1.8975734,19.834271,76.208982,73.9291941,71.2264169,22.4814827,61.2104378,25.4743135,60.975068,31.6891827,55.8982332,25.6793778,20.2025893,84.5515789,3.578515,43.2221155,18.2446743,1.8348364,1.9168429,19.9663982,77.7507739,74.1153155,72.0840458,22.5977656,61.9877484,26.6352378,60.7335446,32.4351028,57.7901897,25.9891179,20.3897197,84.9940117,3.8176136,42.7455973\r\n495,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1186822,1.139178,18.4992503,76.9504962,75.8664889,70.7538749,24.3857287,57.9762721,26.2230816,63.6300006,34.9640246,50.4456986,22.924441,18.7770177,82.9798759,4.6467651,43.1695479,16.9499837,1.1730689,1.2343994,19.1375273,75.5453266,74.3857946,70.5188405,24.1098277,59.0609162,26.5546066,64.7329848,34.8155068,49.2659966,23.9162122,19.6668485,83.2414445,4.2623722,42.6984045,16.3051616,1.1463241,1.2071102,19.0794683,75.2983008,74.6902261,70.2096272,25.1848584,57.1378899,26.6232651,65.0015732,34.2987498,49.9199579,24.3952235,19.9179365,83.7586282,3.7729052,41.7401537\r\n496,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5853016,1.5169573,12.9031327,60.0948551,60.7830186,53.8575614,33.4664188,1.7116963,10.2542081,70.2967671,45.3070915,30.3977154,17.415159,12.5467429,28.1538725,4.7461211,31.5591531,10.4166791,1.5660527,1.4969772,12.1825782,56.5609417,57.6282534,53.4812908,35.0722901,1.9356609,8.9646801,71.2104253,47.0298999,29.8189454,16.5914443,12.0101564,28.1646367,5.2189203,30.1853056,10.3125064,1.535328,1.4664812,11.8034392,56.8360863,56.6130436,55.3659116,34.5956262,1.4844492,8.8145916,71.2483341,48.1640621,28.551739,16.3825286,11.7502049,27.8666786,5.3554029,30.2297331\r\n497,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7604719,0.8684966,9.6453642,79.5597687,77.3599958,73.3887495,20.0315043,25.3708317,19.1516061,65.3922245,33.3987948,49.2514928,12.4487696,9.1700804,64.6404174,8.9534507,38.2729178,5.6291403,0.7908406,0.8878923,10.0141589,79.4046421,76.8231021,73.9854018,20.5314033,26.3903502,20.1268359,66.4711396,33.4779161,49.7497539,12.6964684,9.4131982,65.3967752,8.8490981,38.3746423,6.0572701,0.6502544,0.761469,9.363106,79.3576312,77.1203327,74.0544712,19.9498498,27.6782383,19.4069053,67.0206796,34.0478381,49.3164096,12.06837,8.926104,65.7237102,9.0270668,37.6609505\r\n498,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,1,0,0,0,0,0,0,0,0,1.1143377,1.1199583,13.2054447,77.2929683,76.9507135,71.4328329,22.7314143,62.3150281,27.6413363,66.7377271,34.2577188,48.90939,16.5746698,12.7038757,83.3292654,5.3074726,33.9950832,9.3064437,1.2789706,1.3077441,13.8341623,77.125826,77.5058587,71.7043154,20.9536152,62.1691116,25.9715331,66.600518,33.915532,49.0516792,17.1607012,12.8964785,83.6366862,5.2610815,34.9445552,10.4777563,1.2934907,1.3171101,14.6452827,77.3959449,77.4246883,71.6071367,21.4474181,62.2795147,25.8374673,67.2914287,33.4041438,49.2654337,17.2508456,13.2617817,83.5770065,5.281471,36.6954125\r\n499,0,0,0,0,1,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,0,0,2.4061614,2.5003588,27.3715791,80.8666517,78.9001534,78.9528308,15.2616734,54.0356943,23.817202,60.2180002,24.2069388,59.5739742,33.7090164,28.4631148,85.8269395,3.7614298,39.4336433,30.955335,2.2804252,2.3796469,26.7667819,81.4564674,79.9531596,80.0470238,16.0504891,54.8314752,23.7451521,59.8656984,25.0411163,58.780495,33.2560101,28.1948545,85.5030891,3.4668389,39.7627417,29.7279793,2.3296545,2.3909194,25.0152229,79.7646604,78.7058319,81.7688367,15.4901018,54.8014788,25.5105622,60.7020256,24.0505476,58.3558639,31.2607573,26.3554217,85.7110912,2.8565198,41.0222222\r\n500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9360347,1.9664027,20.6609003,78.9295266,77.6767792,65.0648628,20.3153866,60.20885,28.3267855,64.6078972,34.5076464,53.3867902,26.3639067,21.6714363,86.6184285,2.9595777,40.2754023,13.3708168,1.9769801,2.0071256,21.0759351,77.4996159,76.6405089,64.2702701,20.8844666,59.1294608,27.7048214,64.1164575,33.4124382,52.7952614,26.1803897,21.3126768,86.442352,3.3679891,39.6662347,13.2527006,2.0033694,2.1294765,21.0382366,75.8592474,74.481511,65.5420127,21.7883504,59.2143546,27.0633423,63.0481971,33.8448758,51.3458039,26.3661827,21.3196097,85.7134398,3.2996409,40.5001754\r\n501,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.4623451,0.4529342,8.3063298,78.439587,79.2592995,79.3534039,22.0543532,32.2763485,21.2979417,60.8368441,35.4977891,46.7199925,11.8619217,7.8979377,60.736621,6.4607014,36.9318069,5.2901024,0.5423155,0.5187482,8.5303815,78.9486248,79.3275434,80.2455615,22.8463953,30.6952824,22.1496445,61.0222119,35.0606356,48.9983124,11.7594295,8.131842,60.7549252,6.3049128,36.2158529,7.2183099,0.6473799,0.6799684,9.3413592,79.5676246,79.9676755,82.2627985,23.6676831,29.8947901,22.2105953,61.1690628,34.7320659,48.4146114,12.5374095,8.9467433,60.9886957,6.6313732,36.151795\r\n502,0,1,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,0,0,0,0,0,1.2917738,1.3003537,11.1634549,65.0325201,66.2475832,66.5454424,26.1608338,5.0971248,12.8953479,67.480581,43.1679845,40.7912173,16.146871,11.1081311,44.5368298,4.450323,42.0221083,11.8731869,1.3729326,1.3990837,11.3196591,64.411105,66.005617,65.9914443,26.8659134,5.3528474,12.9126901,68.1028726,43.241565,41.520396,16.1820632,11.3856531,44.345647,4.7623077,42.1650126,8.9214529,1.3240831,1.3507732,11.7342416,63.0720251,64.7635336,64.3159599,26.861175,5.6882079,11.7990087,68.1834543,41.7229632,41.8238232,16.5868922,11.5562468,44.5800345,4.7820308,42.7586493\r\n503,0,0,1,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,0,0,0,0,1.056556,1.0625349,11.3515924,77.5936546,77.9591339,74.4228219,23.3920726,37.3544455,23.1369461,64.9649436,35.9975885,50.5790481,14.6205394,10.5697539,69.6116345,6.9833508,38.7609553,8.0328737,1.0589047,1.0771778,11.4246511,77.825456,77.8710079,74.0603543,23.4972947,36.5301196,22.1564304,65.1615739,36.0695914,50.1315315,14.5614914,10.4993778,69.0240581,6.9637657,38.5141891,7.8746016,1.0297618,1.0388204,11.3513753,77.5409279,77.5299691,74.5677688,24.1438584,35.8908892,21.5707778,65.2280229,36.5765761,50.1253531,14.3004304,10.3086053,68.4187832,6.9259737,38.3902747\r\n504,0,0,0,0,0,1,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,0,2.6234601,2.6654724,27.6711027,69.0548862,69.255691,64.2147563,21.7760022,15.9660873,15.1419289,64.7270553,34.6741414,51.1851227,33.9541169,28.1446258,64.4264267,3.4266106,36.6386389,28.7771046,2.475254,2.5096579,26.9841716,68.8811815,68.9273058,64.846805,22.2380714,15.7497299,14.9197462,65.062286,35.5193341,51.5813422,32.9831014,26.9739798,64.2937698,3.4843363,36.6466059,28.634443,2.4190551,2.4613106,26.3487455,68.8239353,68.742419,64.6579955,22.3824823,15.5853162,15.0735853,65.2123506,35.8383263,52.0007783,31.9495121,26.1164835,63.8878258,3.6469482,36.6383499\r\n505,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,0,0,0,0,1,0,0,0.6271285,0.6790374,13.0050091,79.0856227,77.7864031,73.6579024,22.1822435,67.6442639,24.6732328,69.1197535,33.2179602,49.3872512,16.3056633,12.7045597,86.7090295,5.7007789,32.4556942,6.4552249,0.688464,0.7479316,13.141824,77.3792417,77.1519861,71.3605787,23.0976058,66.846663,24.593516,68.5932783,33.3448917,48.6072276,16.5291808,12.9559716,85.8566801,5.77218,32.3816211,6.3853459,0.835191,0.9003726,13.1841518,77.4044464,76.8217506,72.2362509,22.4774132,66.9324479,24.484423,67.3442297,31.9776718,48.6054568,16.6872906,12.9596605,86.1176084,5.7862838,32.3498186\r\n506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6741641,1.763457,19.5825524,72.4924867,73.3543614,66.2425005,27.2269752,9.8631705,16.0884557,68.990061,39.6490792,40.4642113,24.2872616,20.1367632,48.0300029,5.8413968,30.7346694,15.7389596,1.6197205,1.7387765,20.3855274,72.8669331,73.9707675,67.9391085,26.8446474,9.5945825,15.8884321,69.6697384,38.4311108,41.5182099,24.6072954,20.2239252,48.4779188,5.4292171,30.102684,16.3415721,1.6640669,1.7820897,20.150046,73.7333502,74.4561924,68.2142689,25.976109,8.5248842,15.9840998,68.8295469,38.2299289,42.5727357,24.82726,20.4808579,48.0582396,5.3964156,30.5460343\r\n507,0,0,0,0,1,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,0,0,1.3733197,1.4580485,10.6179857,69.7322661,69.4679677,79.8355436,27.9422295,11.3525332,15.015195,65.7386788,38.9710222,40.4013434,15.2786675,10.9865471,49.4932432,6.3539587,38.7517147,10.4395604,1.2617565,1.4126715,10.4703977,70.0197652,69.9457374,78.8057843,28.1198934,10.5981654,15.3395996,65.9612376,38.9985836,40.38543,15.3172205,10.8459215,49.1390306,6.3756281,39.4501279,9.965035,1.3276422,1.4736009,10.9728047,69.45385,70.2192616,77.1608081,28.0580314,10.4225901,15.4012454,66.8205011,38.924224,39.7919854,16.4909197,11.6871705,48.336414,6.098301,40.036452\r\n508,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2656346,1.3045537,15.2591831,80.1690581,79.0880266,65.2876348,18.4332057,62.6282045,29.3589427,62.7051126,33.1059919,49.1728059,18.9256395,15.0369285,83.8126289,3.2057958,36.8257707,8.7065522,1.3972593,1.4209906,15.2596865,79.6543725,76.2921291,65.2331286,20.8552547,61.4177193,29.3905169,63.1907715,35.3222848,47.0489064,19.1510245,15.3754121,84.8059703,3.3328875,37.5012393,8.4689792,1.4014448,1.4250864,14.1017065,77.61872,75.6799929,65.2996693,21.294926,59.6217149,29.2198324,65.2307797,35.8109761,45.9446479,17.7302852,14.4332303,83.9670318,3.8761316,36.8258675\r\n509,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,1,0,0,0,0,0,0,0,1.4070978,1.5092537,18.9347526,68.8225969,68.8329794,61.6750336,25.5145742,12.0341535,16.3369118,67.6314776,37.6792523,42.1630605,22.9278696,18.3723507,53.147467,5.3916825,34.7483102,16.6881508,1.5417064,1.6376019,18.6497294,68.2340285,67.9989194,61.3783946,25.4142755,11.9213003,15.7606043,67.9717061,37.8572439,40.9996641,22.4171081,18.0602291,52.7515261,5.365894,34.2015591,16.6015712,1.5496676,1.6584212,18.3667704,68.6284813,68.3694495,62.3437403,24.6843067,11.8975016,15.8777303,67.2677089,37.2926319,41.639536,22.4456767,18.0073972,52.5900482,5.17025,34.167483\r\n510,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.9925331,3.9142923,40.3789939,66.2886077,69.422992,60.7129869,22.2863816,11.2087343,15.7942814,60.871065,31.7382591,45.36671,47.3873803,41.052626,64.0576258,2.1564883,38.3130136,43.0081163,3.5918633,3.4456747,39.6249554,66.0345078,68.6087961,60.8843273,22.3245659,10.9013185,16.1578244,61.1985815,32.465944,45.857172,46.1891748,39.8755574,63.6794894,2.1665665,37.3584871,41.558032,3.2477104,3.2026063,38.0742904,66.5727564,68.7729069,62.1858868,22.237024,11.188428,16.4571167,60.3925662,33.0005481,44.243682,45.2898938,39.0984994,63.0939198,2.3320646,37.1404662\r\n511,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3755776,1.4094989,11.8281227,59.4864443,62.1101408,53.4385848,33.8410005,8.3255749,14.189493,69.598025,40.603862,35.4974919,15.2461408,10.6906726,45.2028421,4.9539105,43.9274587,11.1904868,1.4753659,1.5094956,11.5014566,56.811108,61.1566061,52.4615446,34.698593,8.2891783,13.5046236,70.7834548,41.1437748,33.1556032,15.5743662,10.7879208,43.5624387,4.7600557,44.9921894,12.4390365,1.6345248,1.6700361,12.0939356,54.846039,58.4936474,51.0676954,35.3175855,7.3023278,13.529763,70.0781672,41.6658697,32.1432796,16.6282616,11.4823307,41.5289524,4.5786073,44.7797969\r\n512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9623331,1.0126097,8.578705,77.8492055,78.5671637,75.5626485,23.7461868,28.1147302,21.6957375,65.6945831,35.0661962,51.378282,12.2231486,8.6293315,64.7984865,10.1079286,37.4781697,7.3453627,0.9356205,0.9908082,8.9598747,77.290786,78.2838273,74.4885934,24.0902442,26.8253351,22.1624522,65.5991075,36.3892598,52.5023176,12.8577215,9.0555935,65.2754901,10.016254,38.9316097,7.7608162,0.96389,1.0183365,9.6759063,77.4964509,79.2207792,76.0677047,24.3462091,26.0821226,22.8146957,63.8134013,34.8165868,54.2355975,13.1249964,9.6169296,65.6579943,9.6625165,39.0519977\r\n513,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0604191,1.1392786,11.8719203,60.1217855,63.6444209,59.7813871,33.3732089,4.0625663,15.4991417,70.951393,47.8770842,34.7180194,15.9218527,10.9591921,32.4591554,4.2893105,35.7384879,8.3333267,1.0573578,1.1336265,11.8376428,60.5124546,64.9558586,59.2060881,35.5516447,3.5167065,15.094468,70.9262755,48.6398559,32.5251844,16.3446014,11.284597,31.6844581,4.874873,34.8677945,9.2592524,1.1061541,1.1279925,13.0231415,59.2425129,62.6966803,60.1420976,35.2404543,3.0340253,15.0756609,68.6245957,46.8595462,35.7780554,15.7816283,11.3643742,30.4418571,4.6831869,35.1432704\r\n514,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.650861,0.6275534,8.8574826,77.5581383,78.2921462,72.2009883,24.2982936,23.4118566,18.8806855,63.3898491,36.0460413,53.2884904,11.7043474,7.947827,65.2196395,8.548336,37.3254163,4.8029604,0.762691,0.7706251,9.0834646,79.262169,79.8977071,74.2263644,24.5692244,23.1740777,20.1789629,63.9972948,36.3963857,51.8532601,11.8570924,7.8184332,64.393677,8.6666705,36.7101662,4.2372922,0.8504757,0.8890489,9.6843775,77.8798407,79.3575485,73.5746234,24.4376328,22.9778142,21.8798961,64.3434619,36.9236329,51.2828675,12.2313164,8.1030338,64.3124597,8.3614907,36.3291955\r\n515,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9942948,1.9968766,24.9850131,72.1676554,74.0129287,69.2322098,25.710819,11.1578068,20.0739674,65.5261609,33.9036817,47.0878044,29.905042,25.1904288,55.1072791,4.5675863,29.4925077,19.7498306,1.8773925,1.9148986,24.2011542,73.6508783,73.9872824,70.2870217,25.1165543,12.3539221,20.6529236,65.2508082,33.6016153,47.8480284,29.1282348,24.5057062,55.9273109,4.4835257,30.7830204,19.8195515,1.8371398,1.8777958,24.1747775,74.6643188,75.0951193,70.5280813,25.9595832,11.9589597,20.529691,66.0773907,35.024303,46.8685347,28.5654076,23.7758776,55.4868459,4.6847499,31.3660383\r\n516,1,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,0,0,0,0,0,0,6.8153131,6.8899421,46.4332263,62.3183121,65.724596,55.3599111,21.6050506,12.0424722,17.5464715,60.8911526,29.153499,51.5221759,53.4711611,46.499872,63.4512246,2.3033078,41.1899564,45.9936685,6.6838994,6.7138894,46.9774648,63.7473825,66.1284885,56.3561016,21.2798419,12.0216534,17.8251379,61.7129668,29.2758132,51.5035408,53.7305829,46.7052885,63.6129094,2.3473085,40.7073755,46.3699162,6.7451976,6.8460838,47.4420404,64.3880812,66.5236569,55.8504508,20.9530921,12.3394516,18.063103,61.4944922,29.3676727,50.5837706,53.9688607,47.1563708,63.3274144,2.3914785,40.5076579\r\n517,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.6647766,5.7433818,38.8625758,68.0248016,69.7346842,55.2766307,24.636263,10.3919559,19.1557973,62.5467551,32.341491,53.4282908,46.6939697,39.173434,57.5200534,3.6634764,41.7547816,31.6091605,5.9287786,6.0440805,39.4652381,68.0725461,69.2917212,55.2784863,23.4223877,10.6417175,19.1001468,61.3282802,30.9328093,53.1645018,47.7442461,39.9341794,58.2967005,3.2192857,42.4801433,33.1890852,5.5988683,5.7273838,40.8798337,67.6398159,68.8781146,53.8702445,22.9437713,12.7677328,20.2828056,60.9223012,30.2870551,52.4281691,48.5079414,41.1420963,59.8666407,3.1711726,41.8494439\r\n518,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.0298776,2.9961045,27.2866823,58.3203719,62.2272713,57.1054629,24.8171529,10.2552938,14.8911635,63.0583427,34.8491508,43.6395506,34.2212547,27.7151822,60.3611351,3.5123063,40.9379,32.1711914,3.1534047,3.1088267,26.0981232,59.6334063,62.3974978,57.0162293,24.4353829,11.1784277,15.5601208,64.033711,34.7882187,42.7618475,33.5798433,27.1487571,59.7368967,3.6050616,41.1231651,31.5944723,2.6071942,2.6169011,24.2127336,59.1779601,61.5865265,57.8792346,24.4605603,10.8956329,15.0597277,63.3340999,35.8387025,43.2265057,31.254451,25.3044775,59.5092614,3.5274036,40.1209583\r\n519,0,0,0,1,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,0,0,0,1.9994206,2.0657424,22.1142492,64.3263144,66.1220217,68.4984423,22.2145792,33.1224348,15.7886935,63.000879,36.4480435,47.2477636,28.0032662,23.061801,69.3247936,4.8354858,34.4776105,25.8966676,1.843818,1.9058208,21.6548793,65.2782597,66.4359521,68.1305422,22.5775345,31.9539824,14.672758,62.8412753,37.1385878,47.1393664,27.0011958,22.3297739,69.1086413,4.8170637,34.6153538,24.9232245,1.6970545,1.7167124,20.4365315,66.739296,66.3668057,68.074592,22.7431,31.4765804,15.3512118,63.0557195,37.4007213,46.7847733,26.3588677,21.608933,68.4337586,4.4284499,34.6652326\r\n520,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,0,0,0,0,0,1,0,1.9915123,2.0076792,28.5033721,63.2424429,71.5467824,53.3594591,24.6019573,9.7040447,21.4350071,71.4824303,35.5112027,46.547048,32.1601179,27.4728088,58.6593196,3.102369,44.2485885,23.3726981,2.1492017,2.2183635,29.4787689,61.5211918,69.6714828,54.4459827,24.6233771,9.7490329,21.6110397,71.2330691,35.5326867,47.7765831,33.4604941,28.4906855,59.1827319,3.5587092,44.1449409,21.4284857,2.1808528,2.2507851,28.9713136,60.9885141,68.0277618,54.585114,23.1778127,11.040951,22.360421,70.8883561,36.443718,47.0283996,32.9975441,27.8078796,60.2281576,2.8706393,44.5822113\r\n521,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,0,0,0,0,1,0,0,0.7264445,0.781131,13.2299613,76.0963253,75.6413643,71.4892148,20.9157562,65.2283851,23.7972611,68.9344448,33.3405611,46.922337,17.0838612,13.0093253,86.8097722,5.8322412,32.8839166,6.6738017,0.6545915,0.6831305,13.0664113,76.944028,76.5334239,72.0084169,21.7173441,65.725831,24.196352,69.0347849,32.1389248,47.0479901,16.438841,12.6740146,87.1160255,5.6240546,32.6319345,6.1028569,0.530943,0.5593016,12.8777784,79.2397167,77.8805505,73.7534239,21.5157788,67.4376494,24.755401,68.9034315,31.9182258,48.8137753,16.3209939,12.6343606,86.6710379,5.4949709,33.2892822\r\n522,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,0,0,0,0,0,0,1,1.5401055,1.6461699,20.0158916,65.8060109,69.561702,61.5986584,27.5237489,12.8290903,14.9202118,66.60633,41.3910419,40.0803475,23.1079778,18.9919467,49.3024721,4.5922669,31.0767613,14.5479711,1.5929725,1.6441424,19.9632802,64.5632667,68.3690902,59.7312904,27.6865907,12.6123272,15.2008045,66.8893485,41.3889705,40.0652897,23.4676259,19.3292452,48.907746,4.4764796,31.0353837,13.6479385,1.4837324,1.494461,18.8746956,64.2310058,68.1785635,59.155191,27.7485247,12.631056,14.6477453,66.6656639,41.9601796,39.9722912,22.6337431,18.5064574,48.9450585,4.4686776,30.2825407\r\n523,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.0608727,1.0908963,11.8538036,69.5922221,71.4550935,62.9901703,26.0810051,24.2058563,20.2412655,71.3427095,40.4792275,41.9480211,15.8930584,11.7292286,66.639226,3.1692583,33.9618382,11.975281,1.0401422,1.0701658,11.9566482,69.7946489,70.7986205,62.1646029,25.7581626,23.9944827,19.8457604,70.3700211,38.7367343,42.4599109,16.215908,11.806812,66.0899041,3.2636506,34.0154314,12.1980376,1.0458819,1.0658987,11.7105826,70.6029564,71.1082896,61.9605406,26.357511,23.0839592,18.4762102,69.942171,37.8657745,42.3708711,16.295389,11.5727285,66.2317906,3.2203046,32.994324\r\n524,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.1340194,1.129634,16.9257907,78.1094673,74.5237559,73.178671,22.0341523,25.443002,20.6855021,65.765559,33.2664092,49.3658839,20.1719497,16.3777155,64.8045162,13.8988653,39.2477882,10.3932512,1.154564,1.1612271,16.5762855,78.2033364,75.8124531,73.7524515,21.6314422,26.1599158,20.8449687,65.9009266,32.6674594,50.7556211,20.1423823,16.0002844,65.1261173,13.5979595,39.9791489,10.5622418,1.1394706,1.1303317,17.0063738,79.371239,77.7653163,73.6252476,21.9816712,27.0748592,20.5063353,66.2984062,31.9953961,51.2199877,20.6778361,16.5962051,65.4711628,12.9934699,38.3596987\r\n525,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,0,0,0,0,1,0,0,1.0816487,1.0999732,16.8364351,74.7493402,76.0177548,68.8379431,19.7954444,66.1824274,29.3784112,66.5475783,32.758719,49.962996,19.9973535,15.9465548,85.1620839,6.3234545,33.7714973,8.9595583,1.0409159,1.0666596,16.3869775,75.7937213,76.623627,69.306031,19.0386998,66.1730368,29.6663722,66.9096006,32.4572541,49.2921596,19.9634996,15.7207034,85.3288968,5.91341,33.2640377,8.5041402,0.9300514,0.9602236,15.6010868,74.992378,75.4351068,69.4193418,19.8771413,65.6605824,28.7697971,66.9723204,31.9803734,49.06619,19.3146411,15.4717985,85.4993769,5.7609429,32.7428946\r\n526,0,0,0,1,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,0,0,0,1.2801809,1.2175996,14.5547896,71.202791,70.7666302,70.7130012,26.5314459,14.9085724,15.6259468,67.009576,39.5543267,45.5208211,18.6748385,14.0816525,57.2680883,5.6829125,33.3485317,16.0539255,1.1648928,1.1402203,13.6554008,72.3870233,71.4723941,72.270683,26.056745,14.1270072,15.467614,65.3060921,39.4733476,45.7618128,18.3770977,13.4301795,56.9122423,5.9459139,34.3501301,14.413269,1.2161323,1.2305344,13.843127,71.0557385,71.0214774,71.7325497,26.6309214,13.6048841,15.6146324,65.2508023,40.8879204,43.5433563,18.5959721,13.6123097,56.449593,5.8512297,35.1614849\r\n527,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0169405,1.0353733,19.2911995,72.6042797,72.5122247,66.6490287,26.5833235,7.9179516,15.9671055,67.6055503,37.7460025,42.3883079,23.4977954,19.7691355,50.3456121,5.6393553,28.5439865,14.4196977,0.9267868,0.9459983,18.1825503,72.0194899,72.9834122,67.3041328,26.6228983,8.3537446,14.9692498,67.919806,38.5577036,42.9328224,22.2071435,18.8798651,50.5178857,5.1721954,28.5037108,12.4246965,1.068921,1.0992969,17.8116008,72.3970999,73.2510143,67.7197353,27.4172091,8.1048637,15.3235057,68.2015052,38.4998326,42.4259153,22.5176126,18.6077906,49.8063401,5.3645781,29.1800359\r\n528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9914727,1.0848012,11.3769317,76.9299396,75.266689,79.9998979,25.5577239,16.9569104,15.6247243,66.8527274,38.5174205,45.6361421,14.8853105,10.8707224,51.4370351,10.0321053,39.1803087,3.4831304,0.8210251,0.875698,11.2455844,76.9799216,74.9558771,78.6084942,24.4411159,15.6535276,15.2510433,68.3674983,37.9737738,43.9600154,14.033725,10.4529006,49.7783524,9.8633937,38.124256,4.0697532,0.8364534,0.8755712,10.3216467,75.4027596,74.2584092,78.9938841,25.050891,14.2453414,15.2623536,68.8936419,38.2446119,44.3777924,13.9441361,9.9677889,48.530219,10.0501112,36.1666371\r\n529,0,0,0,0,1,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,0,0,0.7984389,0.7984389,8.3462917,76.3444704,75.0379271,79.268072,23.6122395,32.0672629,22.8960359,65.3514581,35.9552814,43.593419,11.759632,8.1943646,69.5063215,5.1561579,35.0178359,10.7615894,1.0115847,0.9563055,8.0537648,77.3127423,75.287402,78.1718058,23.9238107,31.8520173,21.5454444,66.837466,36.1155695,42.6632718,11.4226682,7.8217237,67.4021131,5.2229688,34.3711844,9.3442623,1.0329883,0.9759758,7.9000953,75.9639584,73.1112185,77.9555699,23.9833766,30.2710687,20.7640144,66.5569389,37.1716613,40.0297982,11.3498789,7.4757869,66.0978751,5.5485098,35.3125\r\n530,0,0,0,0,0,0,0,0,1,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,1.1944709,1.2373727,12.2142382,62.7292599,60.8862543,57.9978598,30.9269791,4.315256,12.9137801,66.2390113,42.9744824,35.6330131,17.6313754,11.8842435,33.9955062,4.2102976,39.2148317,8.7328604,1.089079,1.1126732,11.8595492,63.4129501,62.870317,57.9105585,30.4238397,4.8876819,14.1157144,66.3097141,42.36188,36.6828384,17.4751377,11.4220638,34.1152505,4.8005276,37.7747747,8.0756153,1.1159448,1.1296918,12.2466033,62.2265744,60.5810689,58.5363124,30.6875443,5.2548031,16.2088573,66.2421315,43.138171,36.6343065,18.2477371,11.826859,33.6995279,4.7629527,37.5114357\r\n531,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.2411143,3.3750013,29.2863262,82.731643,78.7738532,79.9709384,21.3372291,32.622961,16.9973304,61.0353686,25.2282583,66.9569848,35.3098009,28.8090369,74.7811116,6.2286933,37.6066058,17.201838,3.7491911,3.8525025,30.9326829,81.8438131,77.6651415,80.3494366,20.4105762,34.6700307,17.6018557,59.9422387,23.4756519,66.9102502,37.3956805,30.7191932,75.2435911,5.5513424,38.0596914,18.2612358,4.1830257,4.3006607,33.1794706,80.9831142,77.814555,79.8847292,20.3271569,34.9242432,17.4064777,59.1508856,22.8048003,65.7944603,39.7886497,32.8781753,75.6733403,5.3010009,37.8599722\r\n532,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0.9842415,1.0217948,12.6726635,79.1843981,78.0857343,71.621314,21.068265,27.647423,19.89265,64.2007534,31.8405022,54.6933655,16.0320599,12.416676,65.8639514,14.579857,37.9967994,7.360784,1.0106072,1.0307589,12.916948,79.4465076,78.6642802,71.9519692,20.5707964,27.692756,19.1999419,64.0541584,31.3887449,54.6607174,16.1138467,12.4556436,66.3449531,14.5515706,37.9005034,7.2924968,1.0154446,1.0261379,12.6915011,79.5614263,78.3989206,72.5814518,20.5433649,27.5830516,19.1991631,63.8046548,31.0836973,54.5363684,16.0116168,12.4459785,66.1071981,14.0974858,37.7202766\r\n533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.9680449,2.0068106,21.0143352,64.9850611,68.2454702,59.0261203,29.8492628,8.3645139,16.6409218,66.1185575,36.7265414,40.8780872,26.3993132,21.1763937,49.5464358,3.2938714,33.7384722,20.5052855,1.9878375,2.0261663,21.5687463,64.245659,67.3377771,58.7050862,29.8644582,8.0311903,15.6675747,65.7992289,36.5922937,41.3516251,27.0138272,21.4457815,48.977053,3.3168824,33.8813868,20.7514427,1.9591737,2.0058724,21.812855,65.4566,68.1876871,57.9880642,30.3198128,8.4829499,15.9168382,65.350541,35.9405456,42.9500049,27.3524126,21.7793013,49.3430387,3.3446805,33.3388389\r\n534,0,1,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,0,0,0,0,0,2.471242,2.471242,25.8507603,68.9051731,66.8697796,61.6672058,21.9535584,16.345539,14.9692671,61.4320793,35.8688245,51.1808538,32.5018407,26.8227129,64.1199903,3.0482426,31.6343143,29.0589485,2.2570884,2.2720485,26.0243769,69.710834,68.3912652,62.2047521,23.3008467,16.4101027,14.4698436,62.0919246,36.6900643,51.2312391,31.8366996,26.483279,63.6767889,3.5221109,31.2562567,26.6931568,2.2189843,2.2339828,25.1745055,69.0989619,68.4501479,64.1403232,23.522969,15.8403172,14.521562,62.5051767,36.2390209,51.310147,31.2257836,25.7275285,63.9669949,3.5158187,31.5516131\r\n535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8878902,0.9410817,9.4122866,77.1531682,79.0929395,74.594673,24.1500481,26.0577981,23.7388182,64.3429646,34.8504681,54.6051443,12.8311598,9.114273,65.121364,9.5941704,39.8780422,8.0246933,0.7945454,0.837888,8.8922312,78.1589115,80.2659855,74.8460642,25.1219916,26.6603589,23.3078598,64.4193497,35.1570608,55.5053013,12.1323518,8.610678,65.0019411,9.5613745,39.5226469,8.9712962,0.6086534,0.6418319,8.4045924,79.3682222,80.524763,73.9541269,24.7744242,27.0415369,22.5914289,64.7855868,35.8995846,54.6477537,11.9162363,8.2097853,64.8573488,9.3497473,39.3322958\r\n536,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.252337,3.1938514,35.9867545,66.2393502,68.635485,61.1757874,22.2403208,11.861179,17.3704714,61.181704,33.1012528,44.8302776,44.3662372,37.8310207,63.3049722,2.4661428,37.4999181,39.1377504,3.1896642,3.1264508,34.793146,63.9920798,66.3807873,61.0859014,21.4976647,11.5155653,16.9373347,61.8873898,32.4673128,44.6750312,42.6188739,36.3169964,62.1299201,2.4549751,36.791128,38.2218787,3.0633057,3.0150228,34.1434462,64.6421497,64.390922,60.6857761,21.5004836,11.2886515,17.1306536,60.3557157,31.9383268,44.9957007,41.2025009,35.2320929,61.994892,2.3911434,36.4188309\r\n537,1,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,0,0,0,0,0,0,1.5184405,1.5051952,15.5318523,60.9130082,65.1626379,57.0725675,28.4767612,9.2071302,18.9824776,66.846375,41.1342397,37.5330718,21.6849358,16.6749239,51.1684156,2.7748182,36.8452085,20.0992671,1.2992535,1.2857168,14.4528831,60.7945582,65.1553965,56.9778547,29.5320485,9.5438128,18.4395325,66.8593742,40.7929689,36.5131862,20.6886062,15.7171911,50.138859,3.4864521,37.514699,19.2704038,1.4665082,1.4527023,14.0818709,61.2732019,64.6430561,55.4930998,29.0384859,9.6874192,18.9726799,66.4609511,40.8912472,35.6639583,21.1346339,15.5410776,48.9160322,3.6679263,38.1143916\r\n538,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,0,0,0,0,1,0,0,0.884969,0.9216732,14.4553316,74.6219005,75.2640307,70.124172,21.0588989,65.2143118,24.2469773,67.4669255,34.1866804,46.0658035,17.4540977,13.4832764,86.3294734,5.9283064,32.399237,6.9357337,0.9200334,0.9760751,13.8970847,75.3676132,75.9337648,69.5981831,21.5739342,64.9725478,23.4339444,68.1117636,34.4440972,47.0184924,17.3592968,13.1776022,86.2705483,5.9188312,32.1696048,7.3957074,0.7751932,0.8444109,13.8075698,75.931829,75.6317911,70.68678,20.5427426,66.255912,23.8253881,67.695649,32.8350037,47.3037545,17.157627,13.1236858,86.3574524,5.9212678,32.3335755\r\n539,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.1827355,1.2303612,13.6110472,78.7379055,77.6862591,72.5007446,20.1444196,26.67849,21.7129163,64.1225871,30.6156733,51.5828981,17.6664216,13.6019536,66.2228319,14.5081017,39.6128936,7.6513798,1.2181654,1.2581665,14.1471141,78.1273303,77.2577126,72.5857309,20.411233,27.6165282,21.8137063,64.000856,30.6313223,50.3610378,18.245177,13.9910838,65.7427973,14.0242107,39.762484,8.5150966,1.2370834,1.2673451,14.0791057,77.9340589,76.485863,72.4589198,20.8503983,26.9271661,22.677821,64.1946105,30.9527848,50.4066547,18.319383,14.0097583,65.5021506,13.9470689,39.6938839\r\n540,0,0,0,0,0,0,0,1,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,2.754319,2.779201,32.3851153,74.0536057,72.7657837,69.5154622,18.8387769,55.0351811,22.8327217,59.4028406,28.3853166,57.3836382,37.5119433,32.4211853,83.8362597,4.5530836,37.1253295,27.1533083,2.6133857,2.6353821,32.0452935,73.9272561,72.6450146,69.3022196,19.0831439,54.9583535,22.9154365,58.8528767,28.2133184,57.113051,36.8235295,31.8546747,83.6814208,4.4262289,36.6321031,27.7974323,2.4755952,2.51368,31.4099265,72.9588166,71.6798922,68.5681095,19.2107431,54.4532649,22.2017456,58.8882013,28.4090688,56.1532415,35.7809014,30.8115281,83.6332795,4.5050846,36.6032914\r\n541,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.934764,1.9467043,20.1533637,69.2399946,69.2621681,65.9632287,29.1177663,9.1138633,17.0237027,66.8515888,41.1946016,38.0016161,24.9017074,19.8962674,47.2277892,5.3910156,30.4316703,17.7898789,2.0022183,2.0142351,19.5461577,68.953001,69.9071285,65.1154796,29.2136689,9.2892499,18.3307087,67.3388462,41.9246791,37.9929328,24.6968395,19.5042317,46.9676841,5.3173622,29.3898302,18.9153152,1.9925952,2.0296846,20.1045545,69.1471483,69.8632353,65.5483535,28.8683153,8.950142,16.9450931,68.4617173,42.1481279,38.7433135,25.3448822,19.9245526,47.5552641,5.2237851,30.2938875\r\n542,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,0,0,0,0,0,1,0,1.887608,1.9207822,22.1395203,63.5310138,72.9967183,58.6596775,24.6011664,7.8746961,21.106628,68.9554975,38.3151456,41.1036178,28.2926027,23.2894169,55.752809,2.8141148,43.8040258,17.2317027,1.7174846,1.7924055,20.457907,63.6184994,72.7734709,59.035537,25.5587987,8.5392666,21.97394,68.7119191,39.9085435,40.0109081,27.7683483,22.3982035,53.6520588,2.6350863,43.4782758,17.231693,1.7040691,1.7793769,20.3494265,62.2950382,70.9392041,58.9553238,24.0948389,7.0793427,20.2015346,67.7151276,39.3438113,38.6640812,27.5289099,22.194109,53.9894768,2.7893524,42.2880723\r\n543,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4154879,1.4098172,14.7839645,65.7189089,68.5385234,55.0931461,28.5445995,12.3291512,16.8699448,70.3365989,41.5672717,39.3798849,19.9280094,14.8397007,51.2755918,3.8161532,36.4336613,15.4846459,1.444769,1.4819962,15.4615097,65.6168501,68.7079658,55.0560159,28.0282191,11.9440807,17.1514206,70.0192242,40.7044898,39.4663753,21.3046751,15.652341,51.6378688,3.8631539,35.063567,11.7289458,1.5652078,1.6604294,16.0439954,66.24559,69.4714902,53.9438724,28.6672957,10.9796507,17.0816118,69.5136028,41.0720591,40.5442882,21.3934725,15.6640642,51.8834621,3.5578548,35.4086282\r\n544,0,0,0,0,0,0,1,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,2.3563267,2.4456698,23.697502,61.9331667,63.7877252,58.8979265,22.7426993,17.5267818,18.1018661,62.5957831,34.8482659,46.142582,30.4108618,23.953412,64.508972,3.0338583,36.7601516,32.2749021,2.1586084,2.2104338,23.082284,63.0375831,64.8137602,58.9754709,22.7151126,17.1537959,18.0575924,63.0902438,34.7693019,45.5322058,29.1208176,22.9618486,63.7453761,3.2168812,36.8352113,30.1521778,1.8919841,1.9166679,22.209989,62.2377753,63.975911,58.1494172,23.4448033,17.2352725,17.0208524,62.9905154,34.9859501,44.6844662,28.1445464,22.3512176,63.5225831,3.4357002,36.5074896\r\n545,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1754238,1.2206233,14.0750723,77.9753657,78.3005875,77.6874852,23.4011383,26.5684584,18.7645083,61.6066666,32.4993373,53.6425046,19.0648725,14.7170475,68.3207336,8.2342962,37.925048,9.510873,1.4189859,1.453093,14.6399223,78.4134435,77.6198631,76.5039869,23.6775978,26.3059591,18.740522,61.308168,32.8059629,54.0200908,19.5035458,15.1806831,67.9805397,8.1757882,38.0708891,10.3595772,1.2742562,1.3217708,15.1461156,78.9851505,78.0153558,77.291348,23.6790115,26.5255538,18.2271303,62.0314152,33.5172101,54.0343145,19.9965321,15.5914003,68.2897426,8.5660792,37.5265734\r\n546,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.051065,3.1222768,27.6688767,60.3016527,64.5065771,52.4164014,23.1807138,16.449788,17.0317407,63.4675566,32.3021452,46.933827,35.0864839,27.8401117,61.9651626,2.9030776,43.0998839,32.4686932,2.9865053,3.0150768,27.1442987,60.4707389,64.7264111,53.4676695,22.7222016,15.8519933,17.1095465,64.3880539,32.2218951,46.0177364,34.2218932,26.7291105,60.8485688,2.727275,42.3560117,34.0820388,2.7278848,2.7120188,25.501629,59.100965,64.259386,52.5882698,23.9762362,15.8914022,17.7185489,63.5497865,32.8042888,44.3174668,32.3926542,24.7708645,61.0828557,2.8158685,40.8663845\r\n547,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,0,0,0,1,0,0,0,1.5330149,1.5912141,19.5088887,75.6668536,74.4803985,72.1058066,23.3853321,24.768037,19.6946329,67.7925075,35.1040441,52.0919109,23.7372785,18.8669255,69.0062492,3.7832908,32.6397816,17.2413848,1.7031807,1.7398932,20.5599427,75.1843203,74.3044451,72.3534328,23.5582056,24.5254111,19.9042339,68.5478492,35.7666386,51.8922593,24.7935719,19.9218744,69.3813061,3.8583447,32.3028886,16.2254555,1.8009089,1.8296372,21.2445944,74.6337597,74.1581877,72.0186125,23.9204153,24.860034,19.7356838,68.2707669,34.8843543,52.1442523,26.036931,20.8172521,69.1020265,3.7954434,32.6605506\r\n548,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0.98785,1.0113662,14.8395136,71.3353152,72.9841511,59.6542011,22.9484412,30.8230574,22.3477047,68.4460069,36.659044,47.0473691,19.1253734,15.0043771,72.3373173,3.5730237,34.4539533,13.0149593,0.9454866,0.9803788,15.3441496,71.9094606,72.9531095,59.6439143,22.4539404,31.0843671,21.7180607,68.0836009,37.1652204,47.3110776,19.0997201,15.0157932,72.4390352,3.4669355,34.2080558,13.1322778,0.9684106,0.9842488,15.3265036,71.4934358,72.9663593,60.4699076,21.9655621,31.5506368,21.116883,68.1216658,37.4959306,46.0270555,18.8720808,15.1744119,72.6455991,3.596009,33.4368784\r\n549,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7512611,0.8003615,8.3838625,80.6769892,79.7465295,76.7413134,22.6447997,26.2040395,20.5338352,65.453517,35.2212718,50.0793119,12.5936714,8.5553689,64.8900867,9.0217819,35.5184123,7.3566085,0.8965156,0.9155559,9.1045972,79.3683607,79.7554942,77.0220176,22.1615272,26.8447478,21.1489121,64.6483519,34.3162683,51.5546369,12.9543493,9.1081941,64.6504851,9.2132487,36.3910344,8.125,1.0037825,1.0424822,8.8497553,78.7627203,79.3176593,75.7860174,22.5218902,27.6276658,21.3533705,64.8759027,34.6552982,51.554309,12.8387066,8.8817156,64.6769413,9.6658197,36.571159\r\n550,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3181608,1.2995075,14.3093694,78.7494625,75.011456,82.8563343,17.9223497,50.9079092,23.0527867,64.4100433,31.6897023,52.5409378,18.6464913,15.0909221,81.5439227,7.4126651,32.1577045,12.7923509,1.4468283,1.4279778,14.3763812,79.4839168,75.8889754,82.6509658,17.8929244,51.0281353,23.8061028,65.0203903,32.9516938,53.2905905,19.2778755,15.5242709,81.2896564,7.4112243,33.1768005,13.8313303,1.3143158,1.2563235,14.1692185,80.4909293,77.1991855,83.3553685,19.1204284,50.5268608,23.5735968,66.1089087,34.3068416,53.4078591,19.2485532,15.4701816,80.998706,7.3721918,34.2920493\r\n551,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5948513,1.6342481,22.5978773,71.5224055,68.5362693,68.8159067,27.2147078,11.7385716,13.7038982,65.9995151,37.2676066,45.4889005,26.6956429,22.0471278,55.7543363,4.2843403,29.6237611,14.9122583,1.8087089,1.8641855,22.0374411,72.0399611,68.3503172,70.3915673,25.8656568,11.990004,13.0303712,66.5597398,35.1048113,46.6140626,27.0414434,22.2903764,56.2114403,4.4209855,29.0125196,15.9367484,1.8814443,1.9461114,22.243448,72.8543922,68.8470619,71.6053008,27.1735074,12.5519023,13.3634501,65.85091,33.465604,46.1085401,27.8811101,22.6590228,56.477983,4.1255032,29.8546727\r\n552,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.234463,2.3199905,19.6486075,61.6222854,64.2941202,58.5322749,28.571516,6.8563519,11.8032664,68.4325041,40.691757,37.7219124,26.4294407,21.0429486,45.0323987,3.6721917,31.467847,29.8325162,2.0264546,2.1121554,19.291069,61.4691242,63.4665065,60.577215,28.632331,7.4254138,11.9269338,66.6314594,41.7852638,37.948301,25.9455851,20.4936392,44.2812922,3.626163,30.8014815,31.3749884,1.9474605,1.9560349,19.2650001,59.6257626,62.1309203,59.7806568,28.7692942,5.7921256,12.0069788,66.9163702,42.8661851,37.2328298,25.9035495,20.5561521,43.9591272,3.7969152,29.6548007\r\n553,0,0,0,1,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,0,0,0,1.9406758,2.0590477,29.658932,68.1004346,66.4594558,68.2342922,19.8117853,32.4698714,16.1705576,62.4201775,35.1213931,48.744944,35.6105999,30.4798387,72.0108083,4.7798218,32.6657511,31.4975242,1.8590218,2.0117813,28.2504339,67.3472019,66.7719348,68.6190195,19.6201939,32.9428889,15.757815,62.6455068,35.2104428,48.5817923,34.154892,29.2499806,71.9392208,4.9984056,32.28264,30.6923012,1.9605395,2.1261804,26.959199,66.0108294,66.2240723,68.3043596,20.0722829,34.4574179,15.6735942,62.3457968,35.3711525,48.9828692,33.2173955,28.1747222,71.923062,4.9079261,32.7303339\r\n554,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,0,0,0,0,0,0,1,1.9299243,1.9168318,26.7388141,68.0177503,68.1974929,65.4970734,28.569494,14.0302659,15.9005167,65.9784154,35.781188,44.1144123,30.9033337,26.1257092,53.5953544,3.1080151,29.2314516,15.7620609,1.9269791,1.9161368,27.4217199,68.9521397,68.9834584,66.5568139,28.0478341,13.4258753,15.2857739,65.0075394,34.5059524,44.8145843,31.6112199,27.2218826,54.1834727,2.9603701,30.0467904,15.7635447,2.0923245,2.0944806,28.4449368,69.4354544,69.8767103,67.0251645,27.5948076,13.7764448,15.7136519,64.5626024,33.8868496,45.69656,32.6992015,27.9488549,54.8528973,3.2290165,30.3666048\r\n555,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.9420137,4.0347964,38.7926536,81.6178552,78.2429935,80.723505,12.5124863,56.2639804,28.1023489,57.3696359,21.3745361,62.951842,43.5418638,38.0973425,85.5419634,5.591413,38.0768111,25.7850382,3.7185353,3.8072484,37.3840003,81.617814,77.3169339,80.7261338,12.2689391,55.7766744,27.7655724,57.3851476,21.4279656,62.7425674,41.9717012,36.5363214,85.5828058,5.7388578,37.1108503,25.3887499,3.5095246,3.5588768,36.6523066,80.4537067,76.3140465,80.1115683,13.1364192,56.86016,26.4979496,58.9758413,22.4784895,61.9598518,41.3565536,36.2144391,85.4975266,5.8893242,36.9402204\r\n556,0,0,0,0,1,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,0,0,1.2885,1.4164942,11.8996397,69.5047361,70.0468209,77.9228034,28.7258892,10.4553288,15.8454154,66.2955507,38.6468815,40.696024,16.6861485,12.1274109,48.8322065,5.6060606,39.6282974,11.5120275,1.3992058,1.5228322,11.9810453,70.8034025,70.611808,77.7549844,29.0695321,10.730754,16.1815798,66.6055256,39.2859172,41.4070927,17.3189252,12.2955607,48.9852399,5.2392489,38.7307236,10.9836066,1.3471456,1.4840569,11.7339482,70.7782599,71.2009983,78.6034969,28.291115,9.7764425,16.96525,66.015501,38.1393525,42.9458372,17.005814,12.005814,48.0862697,5.2426603,38.6520737\r\n557,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.145005,2.0477654,25.2518296,72.095283,73.8049549,69.0679662,24.6285336,11.597214,19.1566162,64.5280959,33.422258,46.0232975,30.9070621,25.7282484,54.0586954,4.365852,30.414078,20.7167898,2.2083354,2.1098497,24.7204399,71.8232115,73.5195197,69.6214506,25.8865146,12.0440449,19.4056402,65.3251984,34.2801996,46.202107,30.1301509,25.0548699,54.4312308,4.3100403,30.5078273,20.6678694,2.0490874,2.0516379,24.9794246,72.5032931,73.8551477,69.7789338,25.7318161,11.5868908,20.0438075,66.0402456,33.8607471,46.3328603,29.7106171,24.9835905,55.6020981,4.407072,29.2832031\r\n558,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.9718012,4.0202877,37.0963719,65.1769019,69.3367385,60.5310476,20.0455169,11.7951706,17.3882229,59.7164832,28.7136992,51.1715328,43.73509,37.4316922,59.1798485,2.1547367,40.5898936,27.6444371,4.1652013,4.2092028,37.5834362,66.8376018,71.0020628,60.0046151,17.9750714,11.2232692,17.2822557,59.6412552,27.4858136,52.7757198,45.2967564,38.2484419,60.3114305,2.2045953,41.3197236,29.5071395,3.9669982,4.0473042,38.2146204,66.8159423,69.6315169,58.5872096,17.1616619,11.1666906,17.0301014,58.4813975,25.7751806,50.1474876,45.6592259,38.8342346,60.2514821,2.16591,40.9053599\r\n559,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,0,0,0,1,0,0,0,0.9295649,0.9621492,12.3155601,72.8925116,74.0043384,67.3529414,25.6938702,22.8775318,20.3533873,69.3729904,37.6909625,41.4107518,16.2556622,12.0297236,65.5915564,4.1757843,33.5476356,8.4797051,0.8765508,0.8513661,11.4533097,72.919393,74.6121385,67.0368229,24.8708284,22.7930958,20.2583702,70.2225074,36.936826,41.6887885,15.4929897,11.4404673,65.4296336,4.2139517,33.2984295,8.0004719,0.8752076,0.8592088,11.2278291,72.1581389,72.718062,69.1715917,24.968871,23.3244227,19.3607206,70.1070185,37.0999694,42.1226272,15.4048565,11.1395744,65.8656668,4.0980224,32.8379129\r\n560,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,0,0,0,0,0,1,0,1.8726197,1.9468303,24.5315838,65.9215355,72.4138872,59.4163021,21.8183989,8.146884,17.8927804,66.0614877,34.2724833,47.8008418,28.7361826,23.3404763,57.7488537,2.9060216,44.4051462,14.8608645,2.02856,2.0557352,23.7784501,65.9323633,72.0153479,58.8674906,22.9505203,9.1572718,18.1086494,66.8494502,35.279485,47.7464771,27.6983522,22.2143247,57.0176092,3.2505152,43.0243223,18.5032066,2.1296879,2.1849321,23.11306,64.9288746,72.0173003,58.3978289,21.4065715,8.3376084,17.1168273,65.5355412,32.6230247,47.8216154,28.0574259,22.1859224,58.4334529,3.0677738,42.4160961\r\n561,0,0,0,0,0,0,0,1,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.9018843,0.9153464,12.2338788,69.5235898,69.5127773,67.8210388,27.1223894,44.473541,19.8909817,63.8452266,38.5201151,44.5708064,16.0371563,11.8005476,75.0681199,6.4512804,35.2073639,10.8247002,0.9581991,1.0013772,11.844816,69.3584661,69.4868335,67.8904908,27.2059895,43.5502495,20.1436253,63.835351,38.7578639,43.6736902,15.5348544,11.5685061,74.7168603,6.6933157,35.9991579,11.2099433,0.9276337,0.9794052,11.5586665,69.4828161,70.0452358,68.299982,27.6087009,43.0500229,20.0908613,63.3275729,38.7302205,44.1935034,14.9589763,11.1166687,74.3189437,6.7808749,36.3926843\r\n562,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,0,0,0,0,1,0,0,1.1778472,1.2218603,12.8613189,76.9404345,75.7146445,71.7417051,23.6302171,65.3161739,25.9242462,67.2346287,36.6785449,50.6307958,17.3008488,12.831994,85.9879301,5.1265491,32.0370018,6.081148,1.1267632,1.146534,13.4461564,76.7654871,75.6820798,71.8224772,23.4836765,66.2445679,25.9910788,67.558589,36.0775036,52.0991864,17.2254353,12.8971849,86.2351393,5.5000148,31.6315099,6.6092676,1.2064329,1.2221489,13.382539,76.596133,75.6666179,72.1312365,22.6364622,66.6685079,25.6932324,67.0881922,35.5252653,52.4898305,17.1467531,12.9500809,86.1111888,5.6321916,31.7925503\r\n563,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.436052,1.4764723,12.60954,62.9414218,65.219982,59.169439,30.1263542,4.5903636,15.7205709,67.5425176,41.9566335,36.7814075,16.5226393,11.6651049,37.8811071,4.4759303,34.7345122,11.3321685,1.4708484,1.4854332,12.6067391,62.9847594,64.8002852,60.2306344,29.9188392,3.9529743,15.5728526,67.6072178,42.036633,35.6873503,16.6317369,11.8133093,37.3777463,4.3068867,33.3743286,12.7026758,1.5695627,1.571764,12.5372675,63.1553398,64.7766769,60.4164866,29.0203413,4.2994181,15.9566555,67.3855002,41.9508702,36.0800287,16.6252849,11.7109637,37.5902644,4.4857698,33.6272658\r\n564,0,0,0,0,0,0,1,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,4.9694957,5.0393282,36.9053491,68.0066654,69.0923536,60.2883533,20.3858447,19.2642135,16.63967,60.5857521,28.8768786,54.573219,44.7396052,37.204472,65.4314771,3.5371107,38.619061,29.5776832,4.8898556,4.9840562,37.5581271,68.9165362,69.0032161,60.504166,19.6308277,18.5908597,17.2880484,60.3234681,28.6006289,56.135333,44.6679496,37.2715603,65.5667312,3.297806,38.9837522,30.7772871,4.7606847,4.8683004,39.3610452,68.7507742,69.5135064,60.4948414,18.8953776,18.8717054,16.8512128,60.2205977,28.6792596,56.3050765,46.085377,38.9436918,66.7718576,2.8933088,39.1767282\r\n565,0,0,0,0,1,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,0,0,0.8123385,0.8325992,10.747358,72.4887932,74.0096852,76.1709294,23.6370418,40.1755156,20.9400103,63.7774944,34.316186,44.8212613,15.0564972,11.4971751,73.3236152,4.9307958,33.8729017,9.2767296,0.7291483,0.7493984,10.139942,72.8989019,74.0335917,76.426061,23.9272439,39.7201818,20.8517199,64.3802496,33.9279267,43.7359902,14.5644796,10.9445701,73.119859,4.9593968,33.5510689,9.1614907,0.8547345,0.8748253,10.2254365,73.1361903,74.9842913,75.2886795,24.6385442,38.2531307,19.2625858,65.3787641,34.5939101,42.7184728,14.7765363,10.9776536,72.8848414,4.6060255,35.4513064\r\n566,1,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,0,0,0,0,0,0,5.6048385,5.728764,43.7991859,60.8851575,64.8166058,53.1697374,20.2045217,13.6302437,17.9973743,62.6085564,28.3807569,45.9471766,51.1867832,43.9674866,62.6742031,2.000803,40.5372398,48.2303141,5.3824566,5.5594158,42.5052945,60.8642624,63.4461579,52.8520535,20.523845,13.8923392,19.2130694,62.32146,28.9851506,45.317399,50.4368572,43.2148458,62.6877397,2.1326263,41.6008175,46.0252288,5.4467941,5.6145687,40.7634518,60.0589661,63.8043871,51.872131,20.7967454,13.8355544,18.9575166,62.3786698,30.1539724,45.2774383,49.0643399,41.8893447,62.1480499,2.4235519,41.1650008\r\n567,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,0,0,0,0,1,0,0,1.2248385,1.2028361,15.1806865,75.1278441,75.596338,69.2252627,21.4909652,64.7400988,27.5308299,68.3643269,34.2645348,47.4497332,18.4930672,14.1977552,85.1061217,5.1719891,34.3322579,9.7127209,1.1991719,1.171231,14.800964,75.3794283,75.7357883,69.0216374,22.8280148,65.3787374,27.7742808,68.5518448,34.7303221,47.6579658,17.9051863,13.9459054,85.0205091,5.1157918,33.9728984,9.2470194,1.1738415,1.146052,15.1431619,73.721044,74.6924569,68.8700215,23.0455117,64.8621677,27.4869564,68.299946,34.6585997,45.8594717,18.102746,14.1898214,84.95249,4.9720718,34.1723206\r\n568,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,0,0,0,0,0,0,1,1.4663796,1.4731713,17.2782875,67.0406601,69.6681001,63.0390761,30.1679941,14.2982731,17.4412762,66.6943689,42.1206772,39.6625668,21.6093304,16.8986918,47.7241388,4.5865587,29.098283,11.8990116,1.3712343,1.3780799,17.0339157,66.7191227,68.4067698,63.3986644,29.8458234,14.9576051,17.8103922,66.6056484,42.4092948,38.0592306,21.9203564,16.9404152,48.2149454,4.484045,30.1898212,12.5298001,1.5792025,1.621044,17.9103575,66.5491678,68.149311,62.8712916,29.3432145,14.7048508,17.8894745,66.8409231,42.334057,38.142765,22.7942438,17.8982404,48.2926522,4.4979795,29.6457276\r\n569,0,0,0,0,0,0,1,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,4.5872824,4.7160745,39.1099224,67.2429572,68.1782891,55.8393556,16.9556143,21.1837334,18.3151277,59.2375013,28.1173083,53.2017221,46.2432572,38.5378072,68.2305294,2.8032615,39.1972793,38.376045,4.5461367,4.6762646,38.6404412,67.1348774,68.1476109,56.4797197,16.6777556,21.730791,18.078456,58.812727,27.6095863,54.2609775,45.3526178,37.5862347,68.3154056,2.7613136,38.7104073,38.6725427,4.5217084,4.6660918,38.8326405,67.5852116,67.6370598,57.577807,16.8421815,21.5688121,18.0439483,59.1369545,27.7041095,54.411078,45.7563408,37.9190005,68.4806658,2.7279034,39.2824982\r\n570,0,0,0,0,1,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,0,0,3.1419322,3.2297061,33.6145947,76.8578983,75.5785174,79.7554571,11.6726992,51.0196775,27.3713606,58.1329406,23.0701749,59.7150045,40.440929,34.4833389,85.493058,3.2185886,40.8111989,32.8862165,2.9147878,3.0352633,32.5571925,76.4837084,75.2661976,78.5897454,12.4424778,51.582903,25.9584356,58.2125095,23.8085407,59.1976767,39.8809524,33.7585034,85.336452,3.5041841,39.5289855,33.1255992,2.5654002,2.6851674,31.0596983,77.0829547,75.169516,78.2487657,12.9597112,50.4461892,24.7700267,58.0130479,23.2599435,58.8064555,38.3873316,32.2351656,85.0749136,3.4476332,38.9356815\r\n571,1,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,0,0,0,0,0,0,6.2572853,6.4878091,42.6297766,62.4928367,64.8716107,54.8424353,20.4641408,11.7371719,18.4840167,59.8987664,28.8166029,53.9366746,51.9977009,44.1413396,61.9181573,1.6945641,42.7365381,42.1077908,6.4710491,6.6224391,43.0213702,62.2667301,64.3630739,54.4297084,21.1621139,12.0510974,18.8897059,60.9067137,28.7423467,52.2312766,52.0792887,44.5154864,62.2805266,1.8511597,42.8925487,43.1811027,6.8190229,6.9684761,43.577474,63.9500121,65.2169,54.3339002,19.8762197,12.119367,18.0280604,60.258812,27.6773097,53.1844898,52.5512396,45.04629,62.6034424,2.1693237,42.9440041\r\n572,0,0,0,0,0,0,0,0,1,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,2.0200694,2.1320512,26.9425547,61.6941418,63.2478976,54.1800292,21.3774271,12.1463628,17.0430908,59.6460718,30.8814367,43.8210626,32.831463,27.9904001,57.5688959,2.4606852,36.7196504,32.9893033,1.7161603,1.8090251,26.4444769,62.3907881,63.7150117,55.2238664,21.6269384,11.4581329,16.3496234,59.6620683,31.478887,43.480285,31.6676685,27.2225109,57.0315068,2.791579,36.7758837,32.6218537,1.6818629,1.799632,25.3485873,63.8776357,64.903347,56.6144064,21.4948303,11.9156561,16.802514,59.4259473,31.1131171,44.2747915,30.2228669,26.0850502,57.4184708,2.8935503,37.1234488\r\n573,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,1,0,0,0,0,0,0,1.0660898,1.0396682,10.9955313,63.6784161,67.3582855,57.4273489,29.2772489,12.5766191,19.4308144,71.7594358,41.9104475,37.4621368,14.7455523,10.5325408,53.7934601,2.825942,37.0152416,8.8785019,1.0733819,1.0463973,10.9449114,65.0522029,68.5780156,57.5766121,28.2538744,12.1635257,19.3968138,71.0270247,41.658767,37.961094,14.8499663,10.1931831,54.002148,2.8900765,36.7957617,8.540378,1.1787506,1.16766,10.6930242,65.4928645,67.342097,58.1239807,27.6626713,12.0098647,20.5308007,70.4434961,41.2357712,38.729385,14.9472055,10.1584609,54.0299071,3.0155313,35.5790163\r\n574,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7733861,1.7014273,14.6878142,62.8202749,65.8318991,71.0702051,20.8842148,15.7696591,18.5342158,67.052288,33.3268538,42.5793456,18.5970689,14.2329567,61.0364373,4.6585961,35.241649,18.0107527,1.6415873,1.567642,15.0596894,65.614782,68.5025367,71.9476986,21.0685525,16.651951,17.5293214,68.1979333,31.935738,43.8978176,18.079878,14.0848908,60.8281962,4.9552211,35.082542,20.8108108,1.5880105,1.5115004,14.4839737,65.1987767,66.176727,71.5906707,23.0038518,14.8175719,20.2376974,70.9842715,34.9964748,41.6513696,18.0660597,14.1224361,59.2763376,5.1399455,35.5554379\r\n575,0,0,0,0,0,1,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,0,1.1270744,1.1486339,12.129002,65.9214264,67.960691,63.4770175,26.1406331,9.5082586,12.3259063,68.8199041,43.3734777,43.9076409,17.4828184,12.706552,51.7655205,4.7539583,36.1959341,13.4557632,1.0731276,1.1005224,11.3275482,65.3247355,68.1312532,63.1314261,27.0064436,8.6786879,12.6896896,68.5840174,44.0998616,43.834406,16.8882734,12.1310138,50.8497363,4.7281182,35.7975128,12.3556611,1.0287959,1.0525504,11.3186613,65.2968674,67.817569,64.1030125,27.3295728,8.4702592,12.9458402,68.9776067,44.0358681,44.744218,16.259009,11.6774343,49.9934812,4.7548773,36.1431518\r\n576,1,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,0,0,0,0,0,0,0.9841449,0.9685576,12.5360729,55.3033044,59.3796691,51.9561929,32.5011439,7.7570447,15.0404215,72.8611133,45.5279936,35.675685,17.4376482,12.5342273,43.436479,4.0651295,38.8490921,13.6361353,1.2103378,1.1429277,12.1631346,55.1199992,59.418323,49.8973711,32.1748253,6.8648319,14.384883,72.5570153,44.4451904,35.2514738,17.5508087,12.4652797,42.6708067,3.9487963,39.289745,10.1412948,1.1638428,1.0953544,10.6803839,52.9246797,58.5617987,48.8606356,31.4468123,6.0430907,13.8395709,72.5236733,44.4860195,34.6533497,16.5267057,11.2695702,42.1803238,3.9338536,39.5931695\r\n577,0,0,0,1,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,0,0,0,4.2512045,4.4707565,42.041993,70.0703791,69.1413579,71.0574795,17.6791292,36.4511141,17.5739676,61.387899,30.9206825,55.2417182,48.3769727,41.8073332,74.582224,4.8482442,35.2068612,31.4589423,4.4615073,4.5895796,41.6773023,70.3569194,70.0353131,72.1759076,18.1250823,37.0413126,17.0237173,61.0295332,31.5549866,54.411555,48.2744638,41.3474581,74.8866521,4.424028,36.3819888,30.5929787,4.5968906,4.7226147,40.456225,71.6489162,71.3857462,72.9511871,17.6475247,37.0021077,17.2411509,60.6569852,31.0715536,54.4220907,47.7948626,40.8063375,75.0592599,4.6503204,36.0509084\r\n578,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,0,0,0,1,0,0,0,0.8317922,0.8371357,13.2444087,74.2453327,75.263723,68.4294589,25.6834572,25.4567854,21.7265866,66.2070301,35.1927562,45.6064983,16.2508733,11.9025837,66.7512048,4.3520061,34.1349817,9.9624825,0.8516993,0.8399404,12.7603081,73.5883744,75.0897497,68.9591261,25.1171022,25.1846586,21.8384359,66.3276227,34.4774397,45.583071,16.0371491,11.6542895,66.6175856,4.3784111,34.0956943,9.3261527,0.8986679,0.8764549,12.4641643,72.3802193,74.9255128,67.6462585,25.2128007,24.3018118,20.9110173,67.056483,35.503438,45.392075,15.8449584,11.4281675,66.2138213,4.2918972,34.3953593\r\n579,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,0,1,0,0,0,0,0,1.7207392,1.702985,16.8671872,61.0745604,64.3592067,52.9168187,30.6524874,7.4357932,15.6570119,67.4325687,38.6258296,41.5435801,23.6269699,17.451119,48.720691,3.2513895,36.9489937,14.2678246,1.5777606,1.5600498,16.6824316,61.2798946,64.3707179,53.38279,30.3185956,7.1499564,16.3186417,67.2522594,38.6712678,41.3898347,23.2725068,17.218172,48.8760687,3.1967055,37.4209977,12.9821467,1.4508367,1.4630431,16.1144461,62.591639,65.6319287,54.5631387,30.0648864,6.8451207,16.2170331,66.5734386,38.3771523,40.8756325,23.3314492,17.1666062,48.6840798,3.1304286,37.6403775\r\n580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8963612,0.9409038,13.1486998,64.6259757,67.199884,54.0656026,28.1436377,17.5780995,16.4816076,68.5722663,40.3601477,41.2409785,18.0688483,13.3951587,56.7597321,4.2487323,38.6574455,8.039222,0.8844654,0.9269188,12.7427925,65.2633249,67.1268265,54.2189327,28.5665983,17.6271841,16.8913128,69.1193645,41.643127,41.69173,17.5346477,13.1946397,55.51057,4.1693294,39.1731566,8.7548706,0.9563863,1.042105,13.0568963,64.5199439,66.7926056,54.2724257,27.7319951,17.0952165,17.5529752,68.9098097,41.61143,41.4093405,17.6153993,13.5546958,54.8943777,4.0718263,37.4987248\r\n581,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,0,1,0,0,0,0,0,1.3627962,1.420536,21.3453546,66.5535359,68.6514293,50.8828831,24.7571812,11.6315184,17.1201246,69.215758,39.7407052,42.2753402,25.0240311,20.710009,57.9704929,3.5770409,38.1376265,14.51353,1.2106061,1.3009703,20.4857212,65.7298436,68.9356465,50.8108531,24.860219,12.1002257,16.808254,69.6846265,40.6556943,42.9991989,24.4276518,20.1314129,58.005051,3.4404446,38.6306589,14.2079019,1.2301371,1.2753301,20.087558,64.9519398,68.9380457,53.5486316,24.5229334,12.3970721,16.9193104,69.4232903,41.488347,42.3824763,23.7667639,19.5806,58.1227938,3.3946902,37.88744\r\n582,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.2220421,1.2604307,11.6559917,70.1814568,71.2638069,61.6481468,26.7239111,24.3713621,18.3624305,69.375971,37.3373129,43.0725312,16.4400373,11.4690139,66.1461706,3.2019182,34.0531584,10.8368745,1.1648387,1.1976712,11.8148369,68.9332709,69.6540677,60.6693869,27.6372647,24.3514941,18.2382192,68.8659837,36.761695,43.2634473,16.7993831,11.7341278,65.6142116,3.0656147,34.2130295,11.3305264,1.1829355,1.2176428,11.8868639,68.5237483,69.8902915,60.8757183,27.9428374,24.3941993,18.9878727,67.9879612,35.9346823,42.8672585,16.5568103,11.4590216,65.3810841,2.8987178,34.3661371\r\n583,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.2581866,1.2734771,15.8240959,69.402393,70.3242799,62.2218919,25.3723803,25.4738992,19.609372,67.9410362,37.5573517,44.6811645,19.7322597,14.7257311,68.103451,3.6706346,34.5692977,14.4886391,1.224004,1.2494571,15.2148934,70.1832477,70.1744109,62.5570491,25.8132316,26.2854816,19.0399946,67.9054242,37.651078,44.6730722,19.7674485,14.5511903,67.9816793,3.6044998,33.8215696,13.7236084,1.1966486,1.2218248,14.5127778,70.1680998,69.9972186,62.4728303,26.430108,25.8639637,20.1317483,67.8914171,37.9523745,44.1569319,19.2762073,14.1645236,68.3241552,3.5379922,34.4280827\r\n584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.1648175,1.158389,16.8667946,79.5662932,77.993469,74.0521778,23.5787692,27.2848808,20.8243493,65.5976869,31.9680603,50.8540764,20.7713526,16.5864606,65.3991544,12.6189768,38.2487665,11.7521217,1.2285925,1.2466363,16.6579406,79.0510539,77.6327782,73.587743,24.6362723,27.8957903,20.3546032,65.288307,31.8314311,51.3648583,20.8351188,16.5807167,65.035429,12.0090205,37.8447897,11.3046858,1.2400865,1.2382471,16.3621346,79.2564263,78.0805704,74.9408505,24.6230241,28.7870201,19.7206047,65.266587,31.8791607,52.6251083,21.2847692,16.671323,65.6241016,12.0258571,38.2743261\r\n585,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2.0123931,2.0444654,22.3839133,64.0616061,66.9726383,59.0707486,29.410067,8.7497818,15.8619637,68.0793877,38.1440247,39.8274853,27.0982823,21.9123249,49.2087896,3.5701796,36.6703443,21.036595,1.9476499,1.9739366,21.8204113,64.606276,67.3069428,59.009936,29.9975763,8.4049682,16.247573,68.1275347,38.3062189,39.9476159,26.8733468,21.782612,49.2926799,3.4230074,35.3827409,19.9878542,1.9342024,1.9653725,21.7307334,64.4859337,67.3158161,58.8498653,30.1739701,8.0848249,16.4488194,67.2588682,38.0005058,39.6474055,26.5731647,21.4926309,49.0597694,3.5635406,34.556556\r\n586,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1576397,1.2204484,15.895433,59.9011586,57.8693054,63.0733763,34.3200567,4.3233068,13.6743834,69.0079237,45.1421363,33.2787317,18.2915454,13.7262648,32.2560085,5.1179809,36.0824783,15.7102447,1.3021054,1.3655406,14.9265866,60.2876867,61.6247552,62.7876144,35.2928266,4.9523348,14.6317924,68.2096504,44.9122077,32.4790983,18.039525,13.2448411,31.9540013,5.2898743,37.015524,16.2245874,1.2590618,1.3082929,15.1390553,60.4248887,62.9832619,62.6589355,35.7878343,5.1165169,14.7388231,68.5650078,44.2931188,32.3525531,18.2310223,13.5096864,31.6301064,4.9878195,35.3459127\r\n587,1,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,0,0,0,0,0,0,1.0818414,1.0520745,12.284163,56.8983087,60.9999637,53.4425981,28.6716605,5.5437741,11.3079018,69.7467022,42.4338601,36.9248958,14.7566488,10.4673238,40.0478058,3.7974586,39.0080123,8.8957055,1.0930029,1.0633817,12.4169025,55.4907232,59.638037,51.4117002,30.5406926,4.8348189,10.5012401,72.3321744,43.5673016,33.9596045,14.853436,10.8458988,38.1257779,3.9371198,38.6168043,7.5657895,1.1344133,1.1344133,12.2774645,56.2470116,60.1091246,51.8789223,30.3436169,4.8491146,10.372554,72.2741881,43.9999877,34.4521751,15.2059483,10.8251042,38.8577836,3.9910967,40.1560527\r\n588,0,0,0,0,0,0,0,1,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,1.530432,1.5371624,21.3182606,70.5808472,68.234766,66.2694648,19.6515785,51.931766,22.4438504,58.8389153,29.9809199,48.7786874,26.9232543,22.3011486,82.080827,5.1211882,35.1838234,24.3338749,1.5795555,1.6050367,21.1927652,70.2734471,68.1370552,65.8020607,20.4550237,51.1481548,22.002975,58.8354042,30.5125397,48.2478714,26.2524077,21.794308,81.8358598,5.0817369,34.2431387,23.2498347,1.5950359,1.6388378,20.7617813,70.4792209,68.6963732,65.7648719,20.8030514,50.9374158,22.5249676,59.0014218,30.2226191,49.1627491,25.5173714,21.1293131,81.4384121,5.2301205,34.4453531\r\n589,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.6604516,2.5936187,28.2437391,61.0071491,60.9390199,61.2076545,27.3544477,6.2522184,13.6867164,61.1499582,35.5105121,40.0950288,35.0684754,29.921756,48.6272912,3.2084382,32.5908899,38.7424424,2.6379642,2.5757446,27.5872623,59.9300506,60.3888558,60.2079327,26.6453739,6.3237132,13.5793043,61.0712116,35.2259927,38.2009148,34.8571705,29.4557226,49.1146473,3.1763465,32.4679201,37.8764527,2.6991288,2.6297869,26.0570462,59.018469,58.9932893,59.6695273,26.5692179,6.0020658,13.1654831,62.8945858,35.090896,38.1572414,34.5022368,28.2843015,48.7098762,3.2775867,32.2151168\r\n590,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.767128,1.7596779,17.541115,56.6033942,62.6828811,55.3906497,25.6744956,5.9914421,15.3510581,64.0524241,38.8905449,38.8010958,22.4400943,17.2017455,49.7176706,2.9690638,39.789169,19.5522343,1.5833978,1.5756918,15.5430888,55.4698482,63.3564391,57.576513,25.1932939,6.5130946,14.8154598,63.8073437,39.7932793,38.400074,20.5856195,15.2732428,49.4597464,2.8169856,39.4931821,18.8709653,1.5408103,1.5329958,14.406648,55.9681458,62.9277624,56.5108728,26.8468131,6.6661902,15.273618,65.1601022,40.2299306,37.6426277,19.8749661,14.5616562,49.2888835,2.9138676,40.6592049\r\n591,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1896618,1.1776097,16.6941577,66.6964324,67.8968852,52.6977222,25.8414385,15.7628473,16.5320635,68.6931261,38.7053227,39.6408015,21.4127979,17.3042178,58.1083261,3.957804,35.1441903,11.4326707,1.1803589,1.1983944,16.4798128,67.5556728,67.5664983,53.4900359,26.3256977,15.6357502,16.6311984,68.5718328,39.6991031,40.7780568,20.9869787,16.9879248,58.1817137,4.0346116,35.6275839,12.1262328,1.2121915,1.2121886,16.9723571,66.2586312,67.0417886,53.5205316,27.25849,15.6456509,15.3686845,68.7768951,39.9408677,41.0076828,21.0721608,16.9823497,58.165201,3.7953144,35.5522966\r\n592,0,0,0,0,0,0,0,1,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,1.3051227,1.3411082,10.0478528,68.9385042,70.0800669,66.4661323,29.0540286,20.3364361,17.3842566,66.8736253,40.9248799,41.5829748,14.1291688,9.6370437,55.8470515,7.1956185,35.8095636,6.5846571,1.3040445,1.3448816,10.4396541,69.0669977,70.3172806,67.7063342,28.8039088,18.5664204,18.1958306,67.035758,40.2447841,41.2909665,14.5341645,9.8877196,54.119743,7.1579304,37.605819,5.8695644,1.3695648,1.4003564,11.0420146,68.0872405,70.2165634,67.6136189,28.6517022,17.7279453,17.0523291,66.6206531,39.6582139,41.5216794,14.6897723,9.9408722,53.1247111,7.2447853,38.1960814\r\n593,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.0174651,2.9458598,25.2967476,59.3691062,58.9329963,57.8281385,25.979613,5.6570562,12.5033995,64.0658984,34.2153341,38.7898065,34.2141044,27.9265575,48.6689449,3.3715157,32.5474586,36.048234,3.1513219,3.1228669,23.754044,60.1149996,60.8762399,57.8856261,26.3391538,6.6705266,12.0156631,64.8264035,34.816593,38.7783123,33.177977,26.6499848,48.1280984,3.5831431,33.2346076,35.4059408,3.02601,3.0202587,23.3829479,59.3997603,61.2003714,56.9540759,26.4097343,7.0782613,11.619351,65.2445202,35.5617043,37.8934946,32.1559777,25.9998512,46.8610275,3.3766648,34.0987504\r\n594,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3239056,1.433111,14.7553358,63.041402,65.1813941,64.0981574,34.148586,4.5634614,14.8815624,67.3040656,43.336332,33.8193335,18.1120295,13.3107147,31.5978376,4.682211,35.1120963,16.1460806,1.2718961,1.3802652,13.4477964,63.2956804,64.9918396,63.7475536,34.8409971,3.8591672,15.145303,66.7886356,44.2616794,32.909764,17.1522005,12.5777504,31.179518,4.8271306,33.4828635,15.6324856,1.3674449,1.4593192,13.2511633,62.1017008,65.1604197,62.7895118,33.5307766,3.52302,13.6063718,66.698193,43.2684125,32.6912437,17.6797515,12.8003776,30.4081743,4.4210751,31.5718329\r\n595,0,0,0,0,0,0,1,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,1.0872921,1.1330384,9.3865573,58.5951492,62.3729702,58.7348544,28.9580819,13.3334633,15.3676639,67.8188725,39.2973444,38.2370259,14.9623228,10.2097274,54.3097476,4.371369,35.4061646,7.1256658,1.135152,1.1862366,9.3673482,57.5741286,61.9198526,58.5737917,29.1213274,12.2560216,15.157637,67.9063247,40.2222822,38.4903682,14.3835058,9.7726973,53.0949985,4.1977286,36.1538467,7.7197681,1.3233438,1.419285,9.016074,58.1827438,61.8875788,58.8156983,29.5494347,11.2098048,15.037262,67.6882912,40.7239273,37.7621706,14.0040423,9.2854264,51.634923,4.202499,36.6496403\r\n596,1,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,0,0,0,0,0,0,4.0803317,4.138336,26.4700819,64.5909152,66.5472982,55.6950345,28.6596781,10.2794242,18.5576695,62.0115382,31.6258664,46.3655595,34.7308649,26.6124291,52.3642516,2.6432051,36.4189462,28.2961271,4.1077463,4.151687,27.2968301,63.1895109,67.0473189,54.7347487,26.514979,9.4686373,15.6957384,63.2551595,32.649484,46.5983792,36.0760341,28.1916697,53.1942762,2.2990349,36.0140558,30.5561025,4.301988,4.3442628,29.5229204,62.0963793,65.7770159,55.8392652,24.546967,8.3501025,15.7969184,63.4604457,33.3133899,46.3718695,37.6265279,29.8536546,52.99626,2.1730603,35.9024998\r\n597,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.8434631,1.8360329,17.1259716,61.8083217,65.0188807,48.1506929,28.6592882,5.2274715,15.5164095,68.1801973,42.7452118,35.4085292,21.3362476,16.5314293,44.6020034,4.038185,40.9091136,14.0693385,1.7550867,1.7588285,16.8308878,61.4035739,63.4265705,47.5954723,28.0434336,5.6141095,15.9417005,68.0410756,41.6170554,36.5598236,21.6333499,16.2190219,44.9850339,4.0441229,40.4035887,12.4473313,1.5025315,1.5373794,16.2032802,61.4864359,63.3740138,49.1460767,28.561773,5.9656977,17.8513679,68.8032115,42.3925726,36.369736,21.2191694,15.8834969,45.8005639,3.5171099,40.5746453\r\n598,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3562261,1.4172029,20.7463664,76.877874,75.4935629,71.7435134,24.6661925,58.4604945,26.0325321,65.6120314,35.8600233,50.7880706,25.2648774,20.7831375,83.5622817,3.523519,42.0849701,19.5323147,1.4799607,1.5418697,20.7825968,74.7551416,73.9441221,70.852137,23.5051848,55.4481545,26.0247197,65.8334768,36.5242881,49.856035,25.9292751,21.1288983,83.6215166,3.0912297,40.1259666,18.6031881,1.4946256,1.5571481,20.4075733,74.6229361,72.5030747,71.5832689,24.0196663,55.6164265,26.1920466,64.0345235,35.3310412,47.4561767,24.9151919,20.1837756,84.5491706,2.5614527,39.2559743\r\n599,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,1,0,0,0,0,0,0,1.7257467,1.7994408,15.779178,65.3594203,67.323619,56.8339878,23.0110901,13.7736963,19.2955847,67.4980909,37.8957833,40.36417,20.1618908,15.7191166,60.8635504,3.4169882,36.1450895,13.8522391,1.5107611,1.5830938,15.0007111,63.8131062,66.5671883,55.8602082,24.2569091,13.7400812,18.4099367,68.2863656,38.9864366,39.6877554,19.9421919,15.2408395,60.5710701,3.2470121,36.1046661,12.7048872,1.5077419,1.5695848,15.2217637,64.4626309,66.2468581,56.3790501,24.0967946,13.6813956,18.0978729,68.2364733,39.1514825,39.6784212,20.1536603,15.5437252,60.2959408,2.9761899,35.3350211\r\n600,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,0,1,0,0,0,0,0,1.8553008,1.7589781,18.0713985,64.80429,68.3648375,54.2816418,30.1745605,6.8681136,13.4802227,67.6261343,37.5692933,39.6151003,23.1955275,16.882623,48.4968743,2.98295,38.6298639,9.3752986,1.7493612,1.7036813,18.171056,64.6358912,67.5444667,53.9394853,27.8162031,7.3702861,13.9576864,67.2483846,36.7286449,40.137486,23.4969282,16.7416658,48.8385403,3.1259532,38.8985496,9.2708154,1.6416244,1.5640418,18.5344931,64.7238888,66.6405549,53.850721,26.6772746,7.0501055,14.3944698,67.1788798,36.4744832,40.6449133,23.6997803,17.1652869,48.6434524,3.1462756,38.3736656\r\n601,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,1,0,0,0,0,0,0,0,1.6108458,1.6398108,21.1049524,67.5031974,67.8981416,65.0062008,28.2726442,11.3872911,15.5125629,67.549562,34.919886,43.284882,26.5026008,21.1361515,50.8988287,5.0780021,34.8908191,21.8677534,1.7057482,1.7376528,21.2425229,67.2791866,68.1834913,65.6380301,27.932436,11.8956045,15.0713234,66.6406476,34.9197562,43.8865713,26.4477038,21.2554277,51.3321962,5.2410744,34.3631141,22.6042914,1.7644567,1.7624689,21.4564477,67.7525685,69.061781,65.567805,27.9199627,11.7732903,15.1601085,66.2632313,34.534196,44.4463848,26.9145169,21.6458943,51.5547655,5.0977126,35.7434074\r\n602,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2954074,1.2924754,14.2132461,65.8384543,65.7012987,61.3320133,25.0625181,11.9830395,16.9130966,64.8314888,35.0909931,41.4559162,19.0654639,14.6621773,56.2696101,3.4399756,32.7730485,18.0603907,1.2890736,1.2838098,13.832199,67.1024417,67.0040317,61.6578228,24.6219753,12.1613785,17.1624021,64.5775826,34.4518384,42.3076388,18.6527847,14.4399643,56.4591762,3.3740767,33.1688069,18.1344011,1.2190161,1.2136849,13.5156798,66.7877408,67.2074888,61.4389057,25.1655908,11.5339124,17.1305032,64.860285,35.7332385,42.6960541,18.2726502,14.1559224,56.3866481,3.2673702,33.4466973\r\n603,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,1,0,0,0,0,0,0,0,1.5184055,1.564263,18.7320964,67.9901577,67.6264019,61.8403366,26.4042571,12.3433425,14.8695439,68.8862221,39.0703266,42.9837982,22.1105074,17.9030056,51.2364041,5.1922423,35.2100216,19.0652706,1.5146567,1.5591636,17.9447705,67.5511687,67.1036855,61.7484121,26.1207486,12.3640325,14.9417136,68.7091152,38.0508559,43.1652613,21.7965492,17.4487242,51.7690098,5.2978477,35.2037238,19.1197581,1.5343708,1.5775268,18.3920229,68.0874154,67.6880458,61.6775288,25.7426491,12.2447584,15.5874753,69.3076564,37.7296793,44.4660661,22.1170649,17.7747742,52.5632536,5.3889786,35.3605143\r\n604,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0664993,1.1687343,18.1634911,57.1311478,62.2609096,57.5852822,30.5313481,9.2356053,12.7371526,66.4170818,37.9392599,38.8514389,23.1854509,18.2055358,48.0225061,2.7584354,37.8116651,23.2143212,1.049495,1.1491806,16.5058598,56.556362,61.5630993,56.493494,29.1213977,9.7605896,11.8326021,65.6163041,37.8523238,37.0342935,22.38849,17.3917717,49.0939795,2.7569768,37.4137388,18.872537,1.132038,1.2308616,16.9865897,58.1787419,64.1842915,58.9524359,28.2661414,10.441626,13.079781,66.2827112,38.5720406,38.6809502,22.2567974,17.616268,50.0343793,2.732787,37.5748087\r\n605,0,0,0,0,0,0,0,0,1,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,3.7162577,3.7283141,38.8935458,63.2828246,64.0461651,53.7628048,21.4496914,9.0163723,16.9861149,58.5115736,31.7633133,47.6358862,45.0636676,39.7855624,60.8843479,1.9092189,38.7820516,37.3422951,3.6033195,3.6322438,37.3799013,62.9942374,64.8628422,54.2594286,21.2601723,9.779332,17.2529835,58.9945499,32.5010587,48.634208,44.1016034,38.7631225,60.5129181,1.8902398,38.0363016,38.0485199,3.542969,3.5588464,37.1349652,64.0145615,65.3154675,54.7003945,21.7977662,9.7106141,16.6750135,60.0968176,33.4598242,48.763533,43.8501457,38.537129,60.8849002,2.1348269,38.1933279\r\n606,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5320001,1.4955279,20.1601738,70.9153792,73.922402,64.7358118,21.897254,57.9506787,27.0848337,60.6099694,34.4355117,50.7993465,21.7716763,17.0984979,82.8340292,3.5296705,36.9910612,15.9817557,1.8843523,1.8419734,18.3512492,72.6158041,76.0535043,64.2124935,21.0535584,58.3371487,29.3863212,61.6546649,34.558467,51.5546866,20.5501959,15.8462691,82.2073386,3.352004,37.2025755,15.3781698,1.7356803,1.6941463,18.2457029,73.1601135,76.2040873,64.9040412,21.6020726,59.7153494,28.8293627,62.0939124,35.2046908,55.1211339,20.406273,16.110494,82.5083717,3.2294363,35.8138351\r\n607,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.9546671,4.1342561,36.8340231,62.7835812,62.4844071,59.7479638,20.9680428,5.8477335,14.962621,57.7211968,29.3896072,45.7461875,44.485391,37.7332527,49.1352372,2.588073,33.7871545,33.9596974,4.0755592,4.2742883,37.9220867,64.426208,62.8927866,61.9324025,20.5274489,5.9443079,14.5291161,57.2437461,29.2210225,45.5483833,45.8528266,38.772743,49.9618538,2.7881891,34.0718382,35.45248,4.2690116,4.5214014,40.006758,63.860747,61.8389915,60.6687697,20.5290698,5.8955459,14.3063735,57.5198066,30.3756632,44.8845531,47.7799263,40.4742524,50.1373901,2.9284271,33.9201191\r\n608,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.1862482,4.177971,37.0200796,62.295481,64.21957,58.6160822,18.1110053,11.9095678,16.5947108,61.1878698,27.7933847,50.6208986,45.4249221,38.6961122,64.3962985,2.7910674,42.7850781,36.782196,4.2024038,4.2007221,35.1329922,63.0504382,63.6723318,58.1114313,17.402147,12.5365684,16.1662023,59.3528574,27.1130119,49.127193,43.9116212,37.0764893,64.9435081,2.5221921,43.2722416,36.6414051,3.8090519,3.8073569,33.1856377,62.1787241,63.0742503,58.2476031,18.5293823,11.737113,16.368211,58.3887507,26.5915307,48.905641,41.7927999,35.1451761,64.2015893,2.6079588,41.1200694\r\n609,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.324635,1.4110669,19.9646818,70.3969409,71.1040252,67.1843259,26.4944567,8.0191499,15.4858411,67.3485767,37.9020794,43.3980098,24.8848316,20.4472994,49.6784301,5.6444403,28.1930792,14.6942825,1.2300279,1.2890024,19.5233914,70.8593768,71.3433435,67.2064801,27.1260226,7.7075167,15.5417214,66.695172,38.0108141,44.2994094,24.1055514,19.8036538,49.492485,5.6445365,27.9148098,14.875776,1.2016807,1.2298694,19.2924773,72.722534,72.62802,67.0156121,26.9293112,7.1369177,14.7871277,66.7642629,38.7313174,43.9540582,24.1709929,20.2234833,49.8435702,5.9916474,27.9051321\r\n610,0,0,0,0,1,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,0,0,4.5290309,4.6850604,44.0693517,79.0704043,72.6085983,79.3965028,11.6392144,51.0514291,23.9438901,56.9643902,20.3919449,64.5445295,49.5880026,43.7870798,86.0501567,3.6470588,37.4156545,32.0333041,4.2231858,4.4066256,43.0169269,79.0516984,71.2821191,78.7876829,12.106456,52.4729118,24.2610582,57.3936779,20.4801794,64.3024528,49.0411437,43.2880056,86.2278761,3.6386226,37.6582278,32.0571956,4.2064046,4.4127012,41.3694041,79.5376677,70.7885875,79.7557773,12.3373365,52.7476657,23.8261595,57.9385326,20.8465201,64.1433663,48.2922201,42.5616698,86.5740741,3.5077519,37.724785\r\n611,0,0,0,0,0,0,0,1,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,1.0493581,1.0539021,12.9454635,68.6923824,68.7722794,67.2744679,26.0764779,44.8997911,19.1563284,62.8415023,36.6445036,44.0512103,16.6763614,12.757078,76.4890558,6.0337965,35.0526062,11.5259536,1.0269231,1.0314936,12.9168086,69.2051785,69.2329931,67.6991134,25.7395586,45.524375,20.2279851,62.8928425,37.2506825,44.4477692,16.5074022,12.4122409,76.0452748,6.1626045,34.5872454,11.2377645,0.9365471,0.9309348,12.2063284,68.676425,69.0967693,67.704108,26.7104148,44.6263624,20.1554154,63.48546,37.8107871,44.2691062,15.8614365,11.8686258,75.2092931,6.2755919,35.1516584\r\n612,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8929634,0.9424272,13.1121569,80.1567413,79.8233127,76.3107635,24.2109465,27.0001291,18.6135149,61.68632,32.9655792,54.4482017,17.7252312,13.5139796,66.1794942,7.9776427,37.1013445,7.2878256,0.9875709,1.0376606,13.1936721,78.5408354,78.2599505,77.7936901,23.1809153,26.0466437,19.2642746,60.1836726,32.3816012,52.8353955,17.884619,13.7237774,66.7421464,7.7835063,36.6832318,7.4311954,1.1801125,1.2464865,13.3329854,78.4731397,78.597836,77.31825,23.8189516,25.8359336,19.255096,60.9452277,32.1651803,51.8949656,18.7001774,14.1247848,67.8361431,8.2592353,37.3439605\r\n613,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,0,0,0,0,0,1,0,2.1872912,2.2075383,29.7158033,66.3534572,68.8403561,54.4338343,19.057769,9.2231824,19.7768402,64.1052351,31.6564194,48.3657482,34.6807392,30.4008529,59.6385345,2.9876382,42.3928053,18.3069929,2.1279306,2.211086,28.797684,67.1357776,71.2139038,54.6853518,18.1310252,8.7886145,21.2353874,64.2703884,30.0828286,50.9167427,34.1093308,29.8583238,61.0127393,2.5808697,41.6212615,18.0933007,2.2379502,2.3538322,28.5297753,66.2568246,70.2565431,53.982239,18.78793,8.1117152,22.9827786,64.935071,29.0652304,50.203633,34.1421928,29.1524542,61.0673263,2.5470998,42.4016143\r\n614,0,0,0,0,0,0,1,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,4.7303987,4.8387122,40.0280779,69.0101085,69.50269,60.674508,18.2218883,18.5652822,16.9346445,59.9473418,28.4366227,56.8964,46.2767388,39.0417878,67.8518378,2.9824498,38.4222172,33.3446854,4.7298792,4.864776,40.6106325,69.0115398,68.8541748,61.3402583,17.7616503,19.0249042,17.2029003,59.81119,27.5258803,55.9312448,46.6971223,39.2319855,68.1376114,2.9152483,38.0794016,34.5583853,4.7231375,4.8772457,40.6345128,68.5901486,68.960229,60.7477916,17.0584207,19.2832902,17.3984447,59.2345235,27.7488867,55.0869292,46.887358,39.4420301,68.3173517,2.7578916,38.0015096\r\n615,0,0,0,0,0,0,0,1,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,4.144555,4.2396476,40.2216278,74.0784535,73.2024934,68.0018113,14.9517367,56.8849253,23.7454287,55.442063,24.3156576,57.7921613,46.7196211,40.3531816,84.4952209,4.0706568,36.1540319,30.6008329,4.045011,4.1290678,39.6942641,74.0827923,73.7393011,68.5249064,14.7882154,57.4007398,24.4100238,55.5209426,23.7238393,57.9149085,46.1739347,39.8177631,84.6450449,4.0838005,36.4722517,30.0722146,3.8534032,3.9346799,38.6117991,74.2097023,74.0235839,69.3206825,14.8819196,58.0440226,24.3720406,56.0213366,23.6902562,59.2044701,45.5546689,39.1270846,84.6093445,4.3770633,36.17772\r\n616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.3145347,1.353431,12.5055011,68.7282131,70.5909088,61.8496861,26.3358666,24.7241953,19.7646806,66.5029033,34.3547604,43.8391369,17.1413365,11.7880113,65.5684517,2.7558208,33.9025479,10.3024399,1.2976051,1.3315733,12.6888641,68.2418293,69.9474981,61.2153008,25.2056049,24.337825,19.2941356,65.6452205,34.0331324,44.8311111,17.4114019,12.0623099,65.6263849,2.7649284,34.167792,10.6003573,1.3064797,1.3356263,13.3714862,67.3014399,69.2461388,62.6668858,24.685136,25.6058453,19.0328256,67.0268438,34.3374045,44.0124616,17.985703,12.5867367,66.3322733,2.8504859,34.4600714\r\n617,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.1062763,3.1836844,38.7092794,71.15258,71.8848189,63.1322182,17.2984729,17.4167251,19.4517883,58.1609084,25.4077715,54.6323183,43.2845974,37.8118798,65.3854213,2.7683271,33.6272518,28.9116074,3.1376769,3.2220635,38.4617714,70.5647104,71.4423901,63.5482884,16.8961438,18.0596907,20.0337493,57.6662669,25.6106233,54.4410204,43.329365,37.8193677,65.7723619,2.782754,34.1839958,29.3607105,3.171939,3.2611229,38.098056,70.591028,71.3205323,64.2962093,16.9106512,17.8743334,20.4728372,57.8323689,26.3781738,53.6031292,43.0611587,37.617393,65.6513913,2.9452499,34.2441656\r\n618,0,0,0,0,0,0,0,0,1,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,4.7043932,4.8062186,41.8085605,64.6091197,64.0180478,55.7260225,20.7228456,11.8715294,15.0601199,56.0988208,30.6427474,49.4608163,49.2054579,42.7420764,62.2367207,2.3820004,40.0954463,38.6544776,4.4866549,4.597943,42.1790146,64.113976,63.7992986,55.2213635,20.8963749,11.0460431,15.2784721,56.5545785,30.8087781,48.7542797,49.0604882,43.0303401,61.9857582,2.1949524,40.0976668,37.3296041,4.2795931,4.3573551,41.818409,64.1769022,63.8660831,55.0295316,21.1520687,10.7524524,15.4169998,56.7646438,30.5906797,47.3888873,48.4804213,42.6046859,61.5206952,2.2522487,40.5697365\r\n619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0061549,1.9784901,21.867969,69.6773118,70.9180241,67.2725305,26.0698526,8.6934379,17.2757859,67.1863237,39.2566934,39.5760676,26.0102987,21.3182091,49.0162627,5.3962426,29.2811478,21.3060814,1.9223743,1.8841999,22.4290661,71.0370404,71.8372878,69.1520073,24.8008368,9.4213609,17.1983239,66.5774864,37.7523911,41.6353874,26.8114445,21.9674295,49.4492489,5.5471662,29.9313397,18.5754192,1.802846,1.7650391,22.7811323,70.2242379,71.4787295,67.9512324,23.7390787,10.0295237,16.8535881,65.3933849,36.7550793,40.9355933,27.3944785,22.5515688,50.0305627,5.2830997,29.8088629\r\n620,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.6545572,3.7191743,36.8104292,67.7281084,71.0918155,62.7127064,23.3747629,8.2397724,15.9582299,61.3158642,33.5628062,45.5881072,42.6507099,35.7803205,54.5025221,2.9232268,36.798772,26.4227114,3.6148412,3.699443,37.4732544,68.1759579,70.4424161,62.5921498,23.0875816,8.0942546,16.3323117,61.1496163,33.0920669,46.8890743,42.9035912,36.7064557,54.5602291,2.7300214,36.1738104,26.5641174,3.9224972,3.9958387,38.553014,65.9617752,67.1069479,61.9225514,22.1573576,9.1769118,16.6760734,59.0531837,30.7597012,47.8217603,44.0891101,38.2010031,55.1048394,2.7135965,35.4869658\r\n621,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,0,1,0,0,0,0,0,1.2516266,1.3193666,14.5621146,63.6006533,65.9864301,52.5370241,26.833316,11.5688913,17.6619901,68.137897,39.6428463,39.6268906,18.3501412,13.9651221,53.9177088,3.0071843,37.1680528,12.4665081,1.2186391,1.2531976,15.347355,63.9914969,66.6023902,52.566465,26.9227525,11.4891277,17.0950563,67.8401537,38.9920574,39.5122733,19.2673092,14.5946985,54.2797365,2.8798464,37.24436,12.2641713,1.2793739,1.2668113,15.2834268,63.4650615,66.6167766,52.0252862,27.9026359,11.5638879,17.696152,68.162362,39.1017644,39.3413336,18.9183432,14.5841866,54.4391938,2.7854446,37.1808953\r\n622,0,1,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,0,0,0,0,0,1.8582161,1.9060233,21.7434169,68.5787514,69.0970993,65.4547433,24.2857987,15.4684191,14.6756682,64.9440495,35.6154,49.3175651,27.1065716,22.4808982,62.958697,4.2993535,31.1791766,23.9897307,1.8416126,1.8635517,21.8711244,68.056979,69.1215077,65.0562022,24.8174798,13.80837,14.2342307,66.4528643,35.108283,48.8804468,26.3848134,21.9266711,62.9095033,4.4924206,30.5741026,23.925278,1.7395228,1.7783059,19.7197953,68.6852932,70.0406217,66.0890586,24.5964994,13.7174728,13.9662464,66.9598585,35.4232275,50.7867776,24.7891894,20.0056585,62.7531244,4.129052,30.3161854\r\n623,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.290352,1.3848949,11.8399663,61.4469438,64.1798261,58.6410794,29.700859,4.8954248,14.5991002,67.1324103,41.5987247,35.0453928,15.9985449,11.2591171,38.1564553,4.4660812,36.647876,10.8507292,1.4265938,1.5235571,12.5521219,63.0225213,65.6235756,59.8495499,30.3108936,4.6215049,15.0669414,67.4232249,41.4732488,36.5353317,16.7291527,11.8053685,37.730129,4.466083,35.6456735,11.1599512,1.418131,1.5031801,12.4861112,62.7873778,65.544974,60.3386104,29.8816585,4.6944675,15.4832001,68.6147629,41.348325,36.3144441,16.5775863,11.6984122,37.3369057,4.3385853,35.0098226\r\n624,0,0,0,0,0,0,0,0,1,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,1.3241035,1.3261051,11.9673399,59.9460146,61.6291767,57.0251056,30.8853121,3.7904214,13.9219971,68.5199162,44.5017885,32.9408343,17.0550891,11.8008505,33.0512305,4.6777007,36.4700324,8.3011647,1.2954806,1.2934612,11.554912,57.9913266,62.6294091,55.4526506,31.5690546,3.8707316,15.1604254,69.1413018,44.4058375,33.8526137,16.6738176,11.4377654,32.160924,4.8423344,35.8018848,8.9285679,1.3601161,1.3581057,11.3782579,57.2402878,61.3955656,56.319816,31.4398017,3.6897051,13.8759617,68.8474326,44.0372452,33.8629279,16.3539404,11.6204661,32.2410667,4.2041268,36.9223407\r\n625,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.1507074,3.2725326,32.0217787,59.9723315,63.6668021,53.8608564,21.5414944,16.4552013,19.5778911,62.71302,31.2402634,47.9150591,39.0965498,31.5309043,63.7328839,2.4705402,42.4976258,38.1746312,3.2075549,3.367619,30.236133,59.8194155,64.0362891,53.3290814,22.1461055,16.4198633,19.2720144,63.6386883,31.8789275,47.999932,37.369361,30.0999351,62.4146256,2.6438991,43.1188105,36.4754278,3.144823,3.2438593,28.9835302,59.8887485,63.969057,52.1614927,22.2160451,16.0399769,17.93235,63.2905363,32.168904,45.905965,36.5171034,29.2090555,62.2580581,2.7420189,43.1658278\r\n626,0,0,0,0,1,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,0,0,3.6861107,3.8475388,37.285425,77.7609662,72.8814993,79.406813,11.2290116,53.1014235,26.5461299,57.2436538,22.5523136,62.6020085,44.7126013,38.4487841,86.5633582,3.3901515,40.370955,32.7860697,3.3787736,3.5206901,35.749576,77.4362822,73.8084828,79.6540557,11.8605743,52.6168594,26.8053402,57.3309773,22.9627819,62.0039931,43.021978,37.014652,85.8848865,3.0777946,40.4330709,31.4980159,3.2563596,3.3897152,34.3691496,76.9541363,75.095218,80.7454946,11.7825951,50.9358327,26.6777561,57.2730868,23.2847101,59.9891525,41.5586753,35.475162,85.914681,2.987013,40.7996894\r\n627,0,0,0,0,0,0,0,1,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,3.8893418,3.9812624,39.1255731,74.4615491,72.4909446,68.3810919,17.2581249,54.2027947,21.3395483,57.0447873,26.5235033,58.3066759,45.1883068,38.8203698,84.2313501,4.0469273,36.0084677,25.8686676,4.0036966,4.1054462,39.6348609,74.5317091,72.6359288,67.7187263,16.270576,54.2511137,21.668623,56.2807948,25.6840456,57.6835782,45.505072,39.204317,84.4600522,4.0991914,35.9979596,26.5752995,4.1612673,4.2522613,39.8521838,74.6094622,73.3418877,67.9431883,15.7545525,54.6505019,22.0814626,55.4501677,24.9567668,58.4991485,46.2984524,40.0121894,84.4579076,3.9150041,36.0262785\r\n628,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,1,0,0,0,0,0,0,0,0,1.0711582,1.0766682,12.347076,74.096907,72.7946331,68.6774782,25.3190409,61.8983176,27.8936088,70.2558167,36.1235602,44.0879052,15.5201985,11.9681479,82.594517,4.6363984,32.7325861,9.6956848,1.0199828,1.0256368,12.6198168,75.445931,73.7563231,69.2499237,25.0503864,62.6071034,27.71145,69.3333093,36.710946,45.7374333,15.7813052,12.0997286,82.216393,4.9230274,33.4619691,10.2229533,1.0005267,1.0062009,12.695622,75.3085284,73.5505676,69.0892075,24.3844325,61.2852207,27.1080458,68.7741436,34.9851521,46.977419,16.2342365,12.2432863,82.5160001,5.011778,32.6384726\r\n629,0,1,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,0,0,0,0,0,1.3327575,1.3147972,11.4764805,61.617113,63.3748557,63.2058186,27.7630036,5.6083612,11.7907373,67.6288465,41.7791319,41.9467216,16.337558,11.2515635,43.9661028,5.0333967,40.8772136,8.2448275,1.4553698,1.4282222,11.4383998,61.6431932,62.4497012,62.1704915,29.3767887,5.863565,11.2565714,68.3756918,41.9150342,40.379314,16.4963509,11.2793497,43.4696417,5.2999067,39.4120007,7.67555,1.5447546,1.5170728,12.1933521,62.475676,61.7759068,60.9062164,29.9848481,5.2672642,10.9826735,67.9738665,41.2423859,39.3565731,16.5405591,11.3639311,42.2309865,5.299911,36.7679273\r\n630,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,0,0,0,1,0,0,0,1.2981622,1.3096164,15.6924898,73.5011254,75.3510636,67.6471052,22.6882299,27.8981909,20.6153706,67.1063132,34.6933174,45.8859152,19.5266115,15.2633471,68.9358299,5.1008233,34.7176909,12.7943448,1.3667063,1.3670082,15.6325954,73.085219,74.9648691,67.1435972,22.2520361,26.2350659,19.8656119,67.6936989,35.498739,45.2218464,19.7454614,15.5025991,68.812293,4.875157,34.9918365,12.2116028,1.2819225,1.3145894,15.5532136,73.4173434,76.0531441,67.5450504,22.268502,25.4209226,20.097698,66.8739378,36.3248109,44.3639076,19.9820814,15.808558,68.2520224,4.768013,34.6412254\r\n631,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,1,0,0,0,0,0,0,0,0,0.9731396,0.9773427,16.1308142,73.9490767,76.2844796,66.9199208,18.8173867,65.3683732,29.6570304,68.0034328,30.6067901,45.467839,19.464471,15.6812654,84.38116,4.3666128,34.8358485,13.763272,1.004692,1.0087139,15.7149304,73.8986267,76.5329815,66.3099169,19.4024628,65.8892658,29.5600465,68.5396709,31.5398039,45.6045561,19.4436192,15.4208124,84.0947439,4.482945,34.1884376,13.9346178,1.0538952,1.0628206,14.8852201,73.1635876,75.2330117,66.2972127,19.9106598,65.0422573,29.6452168,67.9683734,32.3744617,45.8232459,19.1291006,14.9463075,83.7027879,4.7499463,33.778916\r\n632,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.2797109,2.2717764,19.78596,59.7076954,59.6418435,54.8792208,25.085353,8.6795454,14.5352515,62.6547666,36.8700129,47.2479011,27.558018,20.9412439,55.7659132,3.336357,40.5414348,25.2044233,2.0833666,2.0753954,20.3097028,59.2818992,61.2838283,55.2339174,26.1604802,8.7588621,14.975319,63.991281,37.5968528,46.7608854,27.8135651,21.0747293,55.6414132,3.4748521,40.5732522,22.8729318,1.9830677,1.9750487,19.3996444,58.0454882,61.3686182,56.9819222,27.3045057,9.5178415,13.9216182,65.0580103,39.4084132,46.6871405,26.7599071,20.2659504,54.3393354,3.6503009,40.2594051\r\n633,0,0,1,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,0,0,0,0,4.1476625,4.2464054,37.8027003,82.8283056,80.1347372,74.7796766,12.0237057,62.4747466,28.8276856,54.4710062,22.6352714,66.594509,44.3410721,37.496091,88.1871897,4.687449,41.5633434,24.2252595,4.2560916,4.3576974,38.3654731,82.4688613,79.9216415,74.3263788,12.1858101,62.3555682,28.7695755,54.4625398,22.5401491,67.0005679,44.775697,38.0374631,88.4532433,4.5472201,41.9135478,24.8777853,4.1721954,4.2827662,38.6120263,82.0005173,79.876929,73.9349704,12.2130434,62.4606,28.3243279,54.2462591,22.3034,66.6607371,45.3017269,38.512647,88.4760111,4.5681529,41.852491\r\n634,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,0,0,0,0,0,1,0,2.0123367,2.0812678,30.4767883,60.5926782,69.0045318,54.726803,23.8430269,10.0852791,20.9592559,71.1568841,37.0604294,48.1233289,33.9410912,29.159448,60.2250833,2.9151931,44.0014453,18.6110594,1.9827565,2.0325711,29.6350601,61.0807496,68.8099087,55.3016559,23.421445,10.7697203,20.8996152,69.4256436,36.4238951,46.5732311,32.996907,28.4483606,59.8245514,2.8068125,44.6911608,16.6666154,1.8836664,1.9516991,29.4940694,63.2486694,71.2065256,57.5155344,21.8754576,10.7947056,21.1718458,67.555951,33.9296097,45.684066,32.5028099,27.9437687,58.9909594,2.4752441,46.2165551\r\n635,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.3081161,1.3356333,18.4763374,77.6467182,76.735827,73.6905812,22.9934934,33.6260255,19.9250163,64.9677983,32.3736904,53.883714,22.2514101,18.4518966,70.9849911,12.9258654,39.5481043,10.3322298,1.2870349,1.2952234,18.370382,76.8166744,75.6992415,73.0588088,23.2852755,32.854455,19.0032677,64.5891589,32.2612358,53.8948681,22.4809853,18.6651244,70.9408235,12.8541953,39.7193704,10.4996731,1.2422306,1.2539961,18.0851708,76.711357,76.597135,72.8734655,23.2727881,34.1704208,19.5464188,64.8807573,31.9326462,53.2503646,22.4502208,18.4410118,71.2515718,12.9118618,39.4555064\r\n636,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,0,0,1,0,0,0,0,1.0154828,1.0418669,12.4678317,70.3294728,71.8295876,61.45736,28.843156,15.6598385,15.617605,68.7728391,43.1108668,46.6180704,16.8323897,11.8716158,55.4302466,4.7600397,40.5819268,8.7346668,1.147274,1.1739576,12.9718116,69.5346685,71.2204194,60.5150969,29.9641854,15.7606536,15.4495593,69.1300405,43.7095009,46.3193053,17.3381729,12.3604965,55.1734163,4.7002231,40.7367782,9.0257984,1.2366346,1.2667502,12.7158506,69.8287267,71.4250831,60.5466395,30.0540742,15.9833621,15.7658609,69.1682626,43.2422941,46.0936127,17.5057374,12.2993176,55.0419313,4.6724047,40.752016\r\n637,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9638884,1.0201021,8.9382327,77.9191305,78.8167439,79.9239711,21.8419903,32.6546625,15.9926533,64.6576026,35.0729154,49.9381709,12.5291355,8.7493963,67.7068348,8.0714074,33.8249118,5.6008147,1.0188028,1.0317361,9.0985888,75.6331232,76.7649854,77.7336532,22.346928,31.6285487,16.8639529,64.7048898,34.2601709,50.15403,12.9189613,8.9152472,65.5566794,8.5284057,33.3810888,4.9395161,1.0579296,1.1138279,9.6580118,73.8275382,75.2050755,77.4192082,22.9694831,28.4640596,17.2033834,65.7511489,34.9000359,48.1763942,13.2070691,9.5137648,63.3916156,8.4523568,35.3307427\r\n638,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,0,1,0,0,0,0,0,2.1010174,2.1050502,20.2846569,65.4656582,66.2901529,53.8417781,28.2999205,7.5956706,13.4734087,67.1641289,39.7205814,42.1537358,25.3860221,19.4643169,49.7199137,3.2233645,38.3645751,11.8797666,2.1215655,2.1674338,21.6081218,65.3108772,66.1152538,53.8246195,28.2421868,7.7254945,13.4055617,68.3107254,39.6053683,41.970006,26.8279442,20.683562,50.5741402,3.0230915,38.104231,12.747367,2.1313016,2.1765305,21.8817279,64.3210934,65.6885845,53.7030058,28.2846256,7.7889885,12.0512431,68.0633244,39.7594844,41.7794013,27.1934056,20.8804752,51.0605571,2.9060924,37.1558867\r\n639,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7518477,0.7974584,9.4669038,78.7193278,76.5304594,77.5464088,22.6287717,28.2017963,19.5016418,64.2437934,35.1077015,52.6873679,13.9679699,9.5907511,62.8068193,8.7438422,38.2499807,7.1743961,0.8003691,0.8468477,9.1728231,78.9958682,77.2665669,77.2760157,23.1355798,25.8010428,20.2249955,64.2297687,36.253187,50.8395992,13.8838468,9.4918375,62.5361691,8.7026452,37.9424634,6.8627496,0.8521971,0.90733,9.6102598,80.2674878,78.9877356,76.4820049,22.3031628,26.3619717,19.5718573,63.1839893,35.3179234,51.9778502,13.9759474,9.6392141,63.1761604,8.8299037,37.5931251\r\n640,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.6737194,1.785744,14.2594869,62.0272949,64.858457,47.0049154,32.7954417,7.1230542,14.845517,70.0225492,45.5704166,36.6537879,19.7176672,14.5520142,47.6298744,4.1032406,40.1713365,13.319683,1.5687593,1.6802988,14.628115,60.9574815,63.5227159,47.3489544,32.8530881,7.2877606,14.4734153,69.7083144,44.7724068,37.6396048,19.7611581,14.7530368,47.4803162,4.3486584,40.0450613,14.375018,1.5826261,1.6154707,14.3113689,60.1169475,62.8801748,46.820236,31.8208958,7.0227765,15.3021474,68.2119212,43.7750918,36.6101162,19.5778687,14.3654306,47.1498704,3.9278576,40.5320203\r\n641,0,0,1,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,0,0,0,0,1.6395027,1.6775354,17.9986575,77.5546892,76.8434073,73.9570433,19.2670471,56.6989331,25.9016172,61.6612469,31.1465838,54.6458344,22.3224102,17.8570646,82.6893528,5.8312158,37.8242946,16.0896445,1.509795,1.5525071,16.8199144,77.0194764,76.4302632,73.4666012,19.7256541,55.3497579,25.7649894,61.8918293,32.4788475,54.1648984,21.4104806,16.9530708,81.9765295,5.9586372,37.3015724,14.5492325,1.3480555,1.3804169,16.1619963,76.7838126,76.5687315,74.095387,19.6110905,54.0969095,26.0194627,62.1255457,32.9474997,53.8929905,20.7506396,16.2906093,81.5440824,5.9125155,36.7211989\r\n642,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.3956288,1.4087264,15.9331578,72.2086319,73.3586926,61.5132579,27.0910899,25.2899534,18.3557727,67.830382,37.3726706,46.7073171,20.6921784,15.9242928,68.3078544,3.3549114,35.6769361,12.1024826,1.551641,1.5768775,16.1169087,72.6498208,73.199244,61.9071618,27.260021,25.4083714,18.6922341,67.8050732,37.2559319,47.6118507,21.5414612,16.5948218,68.8101794,3.1051331,35.0635402,12.5844806,1.5149471,1.5424231,16.989657,71.6036122,72.8214701,60.9685847,26.8151043,24.3138767,18.1889364,67.8300618,37.1020117,47.5773385,22.1717174,17.2626193,69.056642,3.0041635,35.0143936\r\n643,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4885555,1.5255134,13.18701,61.2868486,65.0645854,59.3950211,30.6180453,4.3879175,15.4932819,67.0158291,44.2035602,37.3587712,18.1259535,12.8927197,39.2752341,3.9687987,43.0915504,10.3924065,1.3215058,1.3585725,13.0443241,57.9263577,63.0892386,58.9890112,30.5245952,4.2114869,14.6191428,67.79492,43.7266796,35.6386258,18.7784486,13.367207,38.0203977,3.565055,43.7311049,10.282318,1.3438412,1.4091177,13.636898,58.6033544,64.7751684,58.6544802,30.3995305,4.1186794,14.8715105,67.1855048,42.7932478,35.6742436,19.1308549,13.6865031,37.7699791,3.9067409,43.3629769\r\n644,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1564646,1.1751196,13.9306327,60.3870026,63.2176253,55.7031451,36.1349102,7.0075895,13.9001148,68.9720752,46.2511406,33.8275556,17.1399184,12.3555048,41.463695,3.9649299,36.0941947,14.1566265,0.9329101,0.9512772,13.6912967,61.3241848,63.2182144,56.0617131,36.1343297,6.1066129,15.801935,68.6496615,45.5359837,32.2327052,16.759602,12.1929445,40.8585309,4.2561869,36.3682976,11.746988,0.8535235,0.9085026,13.9033215,61.420098,63.2509974,56.7194667,35.4259429,5.4743558,15.1373513,66.6309678,44.9551721,32.1516361,17.0054346,11.8694821,39.4059205,4.3850438,36.4785205\r\n645,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,0,0,0,0,0,1,0,2.0206715,2.0587144,22.8943861,65.2380979,70.1102669,58.2790858,23.0834709,9.3808746,17.1179076,64.749734,34.3420216,49.9492249,27.9906076,21.8791245,59.0976917,2.9060196,41.1811023,22.3148537,2.1584616,2.1955588,21.5174356,65.6814358,69.0669063,60.2064666,24.3693215,8.793281,18.8646681,66.1318563,33.0481134,51.50155,27.4163205,21.6235788,58.9915889,3.2612341,42.1999816,20.0523803,2.0421101,2.0779647,20.9407465,65.3065252,67.4290395,60.5506847,25.1444236,8.1345471,18.7493125,66.7110636,32.9383447,51.8602006,26.9867286,20.9386333,58.6436362,3.1594997,42.9024262\r\n646,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.9476154,4.9445617,45.9414436,67.7225281,69.1300721,59.3519808,20.7197211,13.012737,19.2773609,59.2350967,28.7819305,49.919083,51.6434924,46.1427064,60.2681406,2.5990477,40.0493238,35.2132005,4.9713829,4.9868513,46.6444364,68.6518948,68.9043827,58.7239474,19.4414705,12.5628275,17.2753199,59.2092983,28.4768733,49.8354615,52.7547029,47.070391,60.3431332,2.2278383,39.7472021,35.6661129,5.0175125,5.0923929,47.6887139,68.1242629,68.0324587,58.7777707,20.2005911,12.7570104,17.5327089,58.4765382,29.317649,50.3255223,53.8117429,48.4028841,60.7325883,2.4276184,40.9423705\r\n647,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3235907,1.4076282,10.4928778,67.1469722,66.4210842,55.9255959,29.5980932,5.488439,18.5537138,67.6659715,42.8658585,39.2197413,16.1655618,11.5594966,36.7702587,3.6709968,41.0331819,4.8672653,1.362958,1.5256992,11.1519227,64.3811904,65.2029848,56.2048248,30.7079437,4.7903802,18.3648479,68.9737269,43.8735191,39.4872667,16.4244733,11.6214977,35.0408019,3.7219671,39.1428721,5.6034579,1.4234173,1.5437061,11.7144409,64.8347871,66.2504843,57.3191574,30.8082966,4.5465652,17.9304945,70.0888103,44.102449,40.1366966,16.8212536,11.7622359,34.279286,3.596788,36.4739078\r\n648,0,0,0,0,0,0,0,0,1,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,1.4465202,1.4722307,15.3982201,59.7108495,60.722158,57.2160777,26.5193299,6.5403229,12.2325469,66.3925668,41.7472821,34.2434304,17.9585657,13.2642532,44.662906,3.4319258,35.7411967,15.5383632,1.4080178,1.4799287,14.9199185,60.4802542,61.8525151,56.6289472,26.8261202,6.9134175,12.4651329,66.6772911,42.0624715,34.2238596,17.6912222,13.080918,43.6052075,3.3882044,36.4502725,14.5366251,1.3504105,1.406003,14.6448842,60.824538,63.9343066,56.9265686,27.3739832,6.6446493,12.6571145,67.7572463,42.8219795,33.719467,17.5605641,13.0168126,42.825699,3.4059906,37.6455688\r\n649,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0844211,2.1407274,24.5401004,67.5793019,70.5974376,68.7276833,16.768964,28.1369483,22.3098429,64.7736531,24.9384065,48.815802,27.7629234,23.9304813,73.3364574,3.8426763,35.6751825,22.9166667,2.1198335,2.1776036,24.2123016,67.9332375,70.629594,68.6500562,17.1363328,29.2421443,23.2222543,65.4478401,25.7497464,48.0990247,26.9790719,23.1574158,73.6057692,3.746531,37.0192308,25.502008,1.9691092,2.0265805,24.7232421,68.949627,70.7176713,68.3323572,18.661031,29.1397543,22.0843384,65.9826186,26.9506614,49.7626469,27.079566,23.1916817,72.9768786,3.8354898,35.4368932\r\n650,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,0,0,0,1,0,0,0,0.916373,0.9290742,13.4026607,76.5145008,76.0087484,69.4154388,24.8960942,26.3119812,22.9358667,66.1762805,34.9967528,46.2371763,16.6165108,12.5239483,67.6575459,4.2028009,33.7787646,10.6207246,0.8262602,0.854566,13.5951606,75.8091588,76.1085386,69.9112727,25.2161608,26.1938965,22.4759736,66.4159784,34.4900409,45.6271595,16.6092544,12.466156,66.5891308,4.2715908,34.2164051,10.6625754,0.8430242,0.8483093,13.4313188,75.5038039,76.9820148,69.5774623,25.6261552,26.4319858,22.742668,66.2156167,34.4238629,46.4202745,16.5062454,12.2784542,66.4793242,4.2288755,34.4423354\r\n651,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,0,0,0,1,0,0,0,1.0034909,0.9762393,12.1429908,70.7809926,71.8651172,68.3759113,24.7274915,24.1718609,20.6426376,67.5952393,37.4766934,43.865623,15.8387539,11.9165448,66.283376,4.6853566,33.8524925,8.3249028,1.0208918,0.9933603,12.1744606,71.9135757,73.5673952,69.0464457,24.8028453,24.5197285,20.8308585,68.4748899,37.5170514,44.4867501,15.761115,11.862222,66.233607,4.4475189,34.2892081,8.5055103,1.0427331,1.0820235,12.6982553,73.1082169,73.8560207,68.9846296,24.9143543,24.4186666,20.8521487,68.3994377,38.2521054,44.645821,16.1981999,12.2320608,66.1536642,4.4827081,33.9662512\r\n652,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.270183,1.2929288,17.5051522,78.4526241,76.775947,74.9732826,22.21921,31.8186591,19.9470252,62.2993002,29.9417299,55.0693327,21.3191637,17.014396,70.3949171,13.2970858,39.675836,10.3435855,1.2884037,1.3138658,17.7139395,78.1531508,75.9793332,74.6166006,22.0269962,31.7909909,19.7088269,62.5372573,30.4071806,54.6906358,21.4676831,17.2208874,70.78969,13.3328803,39.4445968,10.6938461,1.2175776,1.2558645,17.9145715,77.5585828,75.8431082,73.8858508,22.0345861,31.9805328,20.330147,62.9533536,31.1034289,54.9438673,21.8011054,17.5179007,70.9392801,13.3739227,39.524213\r\n653,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1105646,1.1368703,16.2066511,65.0036373,67.0969324,53.3660083,28.2290252,15.9774693,15.2076807,69.9299908,40.9119171,41.1044448,20.5986341,16.2287174,56.5478677,3.977812,36.3432705,15.5229136,1.2351758,1.2620175,16.6486431,65.1920793,67.6298312,51.9843237,28.4990529,15.7278859,16.056943,69.6191088,40.6195192,41.0305742,20.5465963,16.2084115,56.1382237,4.0156985,35.4087879,15.2459344,1.2150728,1.2618802,16.4604632,63.9446124,67.9637698,51.3703765,28.3401905,15.9829798,16.1300462,69.1856634,39.372148,39.6216618,20.3107514,16.0469791,56.8113614,3.9634797,35.5611769\r\n654,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,3.1635806,3.2672459,34.6411186,67.967582,70.0006315,60.7774454,26.0004119,12.3172084,15.768825,63.9471102,32.1866139,51.459645,40.8782874,34.5499854,58.0564117,2.9298432,35.0997893,23.6634313,3.4024804,3.4755478,35.6197429,67.6293531,69.7150671,60.3900532,26.1750115,12.7092907,16.2767233,63.2276449,31.546521,51.5923405,42.1994937,35.8797975,58.251965,2.9905704,35.6202239,23.8901096,3.5888925,3.6616769,37.5502146,68.1940378,69.7870557,61.0868994,25.905054,12.4208529,16.6415977,62.8613384,31.0393508,51.4960946,44.2520227,37.7992426,58.6990108,2.8143187,35.8077901\r\n655,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.8138974,1.7963526,19.3805367,61.3207813,64.5865689,50.5941038,31.5907364,4.1570266,14.61925,66.3426602,42.1994134,35.8754076,25.3826803,19.0051275,44.1396255,3.5898694,43.0412785,14.1826787,1.449814,1.425879,18.8618638,60.899446,63.8309679,51.652403,31.4807506,3.5530807,14.4295443,67.2053764,43.2021906,36.8097305,24.7957353,18.6670326,44.5722384,3.9698939,42.4163747,11.352646,1.6879889,1.6638343,18.9518147,60.2512566,62.8054122,51.2717354,32.117103,4.9980085,13.8088799,68.119051,44.3216844,38.1450845,25.5641234,18.6410474,44.7240712,3.7958024,42.1466718\r\n656,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.6416282,1.6295399,16.3540471,62.3133086,64.0794429,50.9298429,33.6257539,7.4456263,17.9093478,71.1016581,42.6330729,37.0368218,21.5445294,15.9352902,44.556985,3.3279953,41.0191868,14.0553456,1.7949418,1.8009367,15.8899126,60.9726156,62.3077758,50.9730252,34.8271447,7.2530581,17.2087846,71.9545457,42.4271467,37.5994475,21.5874156,15.651499,43.7282751,3.4024991,42.5050445,14.3805437,1.8432098,1.8491224,16.5638737,61.8031551,64.1215587,52.841735,36.0692791,7.1323864,17.4552031,72.717939,43.1203407,38.2985037,22.0354017,16.2826786,44.2018909,3.4649942,42.9789297\r\n657,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.1762401,3.1954881,33.2530678,61.7549415,61.2500865,62.1805674,25.3764085,7.1439488,16.7314495,64.2082413,35.5353141,42.1040916,39.471494,33.7359806,50.5726601,3.344017,30.9372702,42.7407102,2.7177388,2.769315,32.4802049,63.3227731,62.4797731,62.6754023,26.0374935,7.4464829,16.3242596,63.1241954,35.5897078,42.3973871,38.0849386,32.6885133,50.6897977,3.0033214,30.9909531,41.5729616,2.2818852,2.3341118,31.7459754,63.4401919,63.1860404,63.7846526,26.3474263,8.1800071,15.9986268,62.7205095,36.0112618,42.6157089,37.6676672,32.1992054,50.2428783,3.0143059,30.3899883\r\n658,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.1455423,2.1798673,25.0280625,63.2239083,64.2021573,52.7825824,30.412764,9.6275504,15.3348521,68.1202448,39.9511616,41.7848789,29.1561273,23.7503489,52.3828581,3.5765723,36.972482,18.6716869,2.1022183,2.1252028,24.8550702,64.7553467,65.7876264,53.3062705,28.9603631,9.6761144,15.0513548,67.280799,39.1669979,43.3445689,29.4881988,23.7838694,52.4277258,3.259757,36.5628241,18.5679775,1.9579925,1.9853701,24.9214303,65.6447058,67.1398185,54.4224526,28.2967809,9.8450954,15.0068782,68.0158077,40.3227265,43.5470181,30.0602704,24.3547126,53.2162216,3.2832768,36.0015296\r\n659,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.7890088,1.8748911,16.0527158,64.3566824,67.313496,54.1921042,29.7127276,5.2929571,18.7004724,70.2091585,43.7713708,37.6960275,21.1241265,15.8005151,43.758159,3.397068,40.9098831,13.3771609,1.9459916,2.0035927,16.5854727,63.6479231,66.6865788,53.263504,29.5179352,5.5183662,18.1829807,69.5219638,43.4645183,36.9799854,21.5215693,16.419895,43.8070306,3.7138982,41.0240396,13.374461,1.896551,1.9767574,16.9618336,62.886147,65.6795454,53.0531175,28.8006308,5.7374776,18.438303,68.9845448,43.7395511,37.078418,21.5097723,16.415733,43.4288309,3.5477154,41.9343204\r\n660,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6525731,0.7276294,7.3928545,75.5430859,73.2718904,75.7858047,26.0830182,21.4672315,16.7762446,65.6469781,39.619622,49.3180505,11.9912333,7.4201603,56.5202991,5.9500356,31.0178765,5.8052434,0.5297856,0.5860602,7.530621,75.6855327,72.5273044,76.2826928,26.6824556,20.3138975,16.94852,65.3592767,39.1162408,49.4860143,12.2801697,7.6713136,55.8578803,6.0076314,31.4569529,4.7368421,0.6861976,0.7413244,8.347246,75.1769722,73.8122788,78.2491593,25.9298307,20.0562933,17.4638573,66.4900123,39.5251757,49.4258042,13.1454009,8.2195825,54.6570222,6.3477138,32.4481904\r\n661,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,0,1,0,0,0,0,0,1.4305076,1.4621477,15.3397251,63.6776961,67.2717725,53.0404622,28.4419209,8.7052107,16.3440095,68.2551953,39.9807137,38.8201278,20.1519237,15.0659446,50.1853587,4.0334909,37.9268625,13.2810903,1.4163721,1.4479169,15.2666691,63.8884498,68.0836266,53.4688546,28.208738,9.7552451,16.8258592,68.6546719,39.3770409,38.3902877,20.5569019,15.2772683,50.6302458,4.0747741,38.756779,12.3052811,1.4551992,1.4772045,15.3953736,63.8323374,67.8215277,52.7457462,28.0189947,9.1977428,15.827234,69.2675792,39.8616083,37.0134229,20.7502413,15.5377876,51.3280807,4.0165809,38.6610358\r\n662,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8169618,1.8860859,19.9328415,65.3745923,67.37989,54.6867945,26.3690403,9.7567072,16.2425471,67.120418,38.9438548,40.8241675,24.8343025,19.9802848,50.3398034,3.6607963,34.6599389,18.3242729,1.7529396,1.8067975,20.4242795,65.0616498,67.4241925,54.4477729,26.3440687,9.8002165,15.8602268,68.3869885,39.7524995,40.2056035,25.0647055,20.441922,49.8533914,3.800495,34.8537373,16.9852963,1.6651835,1.6844548,19.5912862,65.2583436,67.5874561,54.7081243,27.2295366,9.6703917,15.8447563,69.0090385,40.159685,39.8738276,24.5008498,19.9182263,49.27725,3.733252,34.8271746\r\n663,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2.1160806,2.1391753,18.4271738,62.7111753,64.3234371,52.3006078,33.6920671,6.0300156,15.1676728,67.6244253,38.3930655,40.2117105,24.0527496,17.338119,43.9646369,3.0577285,43.1479432,18.5416976,2.0812659,2.0593548,18.4650004,63.6681381,66.2501166,53.0318951,31.2643438,5.1784121,14.8381062,67.6177954,40.1136442,39.884925,24.4680798,17.9432591,44.3978216,3.0441072,43.5230499,17.6087263,1.9138462,1.8745586,19.2450279,64.5904621,67.6225072,53.361224,30.196028,4.7955728,15.188107,66.1542886,39.7754885,39.9431326,24.8678531,18.4767029,44.6149809,3.2942939,42.1765091\r\n664,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.8063492,3.8190091,33.9936343,64.1269522,67.6629216,56.7567277,21.4658566,19.0239443,18.7759601,61.2201505,31.6296467,51.7146323,42.0324083,33.9607299,66.4066745,3.2126831,39.9572974,38.4893228,3.5079255,3.5208722,33.0894663,64.1408988,66.849723,57.0218922,21.7107513,19.3276666,19.6844949,60.5749818,30.5780325,53.3154941,41.3418976,33.1532305,66.4160783,2.8085208,40.2513362,39.0857719,3.2416595,3.2806038,32.3760087,61.4454314,64.4401146,55.5634546,21.745324,18.6329939,19.6555277,61.1112369,30.7046928,51.9443301,40.4377523,32.5325728,65.4313632,2.4595281,41.2303803\r\n665,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.5142514,1.5314352,21.8160024,65.3197127,69.3478587,54.2543208,25.290424,10.4611468,18.7931705,67.0816147,38.8221818,43.3713257,26.0937499,22.0312415,51.8457778,3.8808968,33.3492227,16.6062983,1.528159,1.5713786,21.6180602,64.8390542,68.1228026,55.0747696,25.5870496,10.3481171,18.9764601,67.3339375,39.5449209,42.9852576,25.6435103,21.5429376,51.2986868,3.9874028,33.9173457,15.9512706,1.5803497,1.6241267,21.5320748,65.2077244,67.8924147,54.9770391,25.9218586,10.07289,18.3566845,67.6192038,39.9909046,42.6808611,25.620998,21.4404462,51.092254,3.9947276,34.507282\r\n666,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0361282,2.1132569,22.5421623,80.1483394,78.6472776,78.7047421,21.5915925,28.9215623,17.4445281,63.4022324,29.5965584,63.8099899,28.3205771,22.5112268,72.3712733,7.3115135,36.6521917,12.9849152,2.4184107,2.4856077,24.2378257,80.3146057,78.3538342,79.9385062,20.9899031,29.2240574,17.6765973,63.8889159,28.5373604,64.7661346,29.6425834,24.0481756,73.0944719,6.9795293,36.2096695,13.6642812,3.0102391,3.07774,26.4397096,81.5796642,78.2396686,79.2754328,21.2687064,31.130723,17.3735149,63.4545234,27.3660681,65.8903066,32.0233493,26.0051891,73.7578057,6.7390161,37.0237319\r\n667,0,0,0,0,1,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,0,0,1.2259751,1.2966759,9.1246945,74.8989969,72.8336877,78.8319165,24.9643796,22.4385174,18.26079,68.1092209,35.9610523,39.6743192,12.2742475,8.1270903,55.9759547,5.6293706,41.9863014,12.2983871,1.215688,1.2866989,9.4177852,74.6827943,73.6514009,77.4191807,22.78623,21.1909924,18.715925,67.0616891,33.8767492,39.9203567,12.7192982,8.4008097,56.0326473,5.1578947,40.4727794,10.2,1.1447765,1.2620723,9.0085072,74.0151157,72.8600421,77.5411072,22.9764497,20.8199094,17.8273955,66.8425617,35.3285974,41.3409434,13.0061771,8.7508579,55.141202,4.6236559,40.1615272\r\n668,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,0,0,0,0,0,0,1,1.9453307,1.9708646,23.3267095,68.0914861,68.3342359,63.9406305,27.3018913,13.4999769,17.566768,64.42132,35.1850765,42.5517804,27.6425558,22.504538,50.7683038,3.4405196,30.2578643,20.1298847,1.9645336,1.9995971,23.550257,68.050458,68.1784207,63.4869079,27.6128808,14.6178373,17.440174,64.6645938,35.3892912,42.3769307,28.3835195,23.2415982,51.2937755,3.7534431,30.450469,19.8688247,2.0488796,2.051231,23.6832378,68.1917912,68.6275715,62.5414032,27.2946026,14.4236059,18.474518,64.1569161,35.6991314,43.5172594,28.5819586,23.1644697,52.1345339,3.7961808,31.4426989\r\n669,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.9045381,5.0323744,43.5702874,61.5604204,64.733422,58.4588251,18.5935504,10.9070435,16.2007794,61.4957685,29.206405,51.0151727,50.8828219,44.5433275,61.9371586,2.0739696,41.0938399,33.4791905,5.1129149,5.2806793,43.550461,62.6377518,64.3470036,58.418781,18.2743419,10.9092015,16.0479831,60.9025869,28.6362557,52.1655189,51.5809663,44.8848776,62.7169556,2.0175945,41.066426,35.2823912,5.3336442,5.4503321,43.2020598,63.4489059,64.6648516,58.9222596,17.842578,10.5808104,16.6047063,59.7393909,29.1454361,52.8666213,51.1976896,44.3658341,63.0309427,2.0022326,41.8015316\r\n670,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.9610211,1.997253,20.9077763,61.8297381,64.4806215,52.7521951,30.854393,4.4643657,12.9657305,69.9180656,40.72955,38.3789336,25.635673,20.0416061,45.0638532,3.4855788,40.5670231,14.9831128,1.8651004,1.8937729,21.08828,61.8113073,65.8656091,52.7008358,29.8274746,4.9545414,13.29195,69.9712008,39.7665212,39.4907186,25.8376267,19.9581352,45.2205861,3.6037274,39.3367628,14.4443947,1.9017863,1.9303348,22.4984497,62.3439807,66.3754984,52.4528696,29.4250648,5.2773157,14.0108407,69.798548,39.349691,39.7931767,26.8135289,20.8346799,45.3458989,3.4278062,40.109356\r\n671,0,0,0,0,0,0,0,0,1,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,1.5636349,1.6615185,17.8151864,61.0929552,63.9482656,58.9442117,26.9515976,6.7792498,14.0470517,64.8940643,37.6835545,39.2268604,22.7991985,17.7546875,51.1287627,3.2817807,35.7656172,19.9772009,1.3488999,1.4469375,17.9034987,62.7084002,64.191287,58.8887676,26.818415,6.9621547,14.7750956,65.0192171,37.5382888,39.9316841,22.6792155,17.6577392,50.8130161,3.3860434,35.149568,20.8235755,1.229522,1.3164183,17.1280364,63.6943474,65.1008477,59.091943,27.2374853,6.5072552,14.6496395,64.8856628,37.7806119,40.4992794,22.0892056,16.9071788,50.9930356,3.5507915,35.1721644\r\n672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3442213,1.3514638,15.5299099,64.3602455,66.562087,60.5037416,24.568115,11.337603,17.0653122,65.2393688,36.0478459,41.6866702,20.6210376,16.0955783,57.9492679,3.8686983,32.4975726,20.1704478,1.3409242,1.3481667,14.9680016,64.6254708,66.3688028,61.0300475,25.0932662,11.6693399,16.2857098,64.9621819,35.5441369,40.8484406,19.6466816,15.2909152,57.4607887,3.7005293,31.9766345,19.1004506,1.3208204,1.328059,14.8109981,65.7515564,67.2582074,61.1460241,24.5680751,12.0555085,16.5856871,65.1024765,35.3037993,41.2744704,19.379252,15.0951232,56.7110414,3.4923171,32.4897103\r\n673,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.3289372,4.3642098,41.5037053,62.7491106,64.6258786,59.106171,19.3393177,11.472668,17.1146986,59.1688655,28.3764602,51.8310168,48.8315193,43.104278,64.1132496,2.9649463,41.8970191,38.7978156,4.3017167,4.3697251,39.3123398,62.2580997,64.4168325,59.5603146,18.3657754,11.0429993,16.9604015,59.6954365,27.7417844,50.9197939,47.0620093,41.2198514,63.6552154,3.0517672,42.2054532,37.715806,4.2090574,4.2467182,38.0828979,62.2981784,64.8108267,58.5187052,18.4002448,11.4633381,16.2342671,60.6705452,28.7528974,52.0028495,46.5164633,40.2079404,63.597592,2.9102311,42.1003392\r\n674,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.6265048,3.6361334,32.7345678,61.3193936,62.2775465,58.0695989,18.3402038,12.2425559,17.2263991,59.5373548,26.7464228,47.7348005,40.2384769,33.9965455,63.5214684,2.4783067,40.6182719,36.9619086,3.472876,3.4797055,31.7997559,62.7197067,62.3620303,57.3603022,19.1088204,11.5329395,16.5089234,60.0151629,27.72118,47.2848739,38.9562599,32.6563192,63.3255572,2.5745208,40.8599249,35.7931043,3.2192953,3.2494386,31.7400484,62.4034112,61.7507582,56.35257,20.3068165,11.318401,15.9489857,59.5931582,28.7292354,46.7296523,38.6571117,32.5566156,62.8878543,2.3572487,40.5227549\r\n675,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0.8837044,0.9038145,12.4783346,69.398786,72.3923793,59.1947235,25.7267184,28.0948886,20.3262014,69.7154685,38.6366189,45.6207702,16.0295492,12.3054079,69.3984026,3.4150771,36.4320444,11.1412741,0.875064,0.9114604,12.5198962,70.1439714,72.7375888,58.9260846,25.906116,28.6696455,20.9831122,69.8895623,39.0321112,44.4152651,16.2335142,12.3166707,70.1749416,3.4348202,36.0614259,11.1208289,0.9234206,0.9451938,12.7991257,70.751829,73.5612435,59.3190487,25.3316666,28.700386,21.9045681,69.9246413,38.3392245,44.851546,16.5649162,12.6063479,70.1756064,3.395115,35.9961013\r\n676,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.1509074,4.223112,44.6997308,62.4804879,63.5786421,55.4217873,19.4839684,11.376805,16.6918849,60.7376531,30.2711144,50.4746242,51.2261025,45.7350798,64.846895,2.9740039,42.1849266,39.361024,4.2876302,4.3399604,44.0126657,62.5349328,63.618231,57.5299036,18.9420004,11.9561961,17.1902482,60.338481,29.6991536,51.4015527,50.6613421,45.0652231,65.253818,2.7718663,42.7623512,39.8364012,4.2845941,4.3218347,42.577863,63.8731404,65.2500559,58.8515433,19.1570747,11.7867948,16.8395564,59.5853599,28.6944334,52.2986046,49.6818901,44.1060064,65.0068801,3.1196965,42.5136468\r\n677,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9343339,1.8719973,19.9154685,70.8044031,71.416561,67.7977348,27.406894,8.8303132,17.635796,66.7070345,39.1328503,38.6016351,24.5300734,19.6851483,47.2652511,5.5128026,31.4672392,16.4326583,1.9198921,1.8997029,20.0459958,72.2250787,72.0851691,68.5129611,29.0190067,9.5435667,16.8451318,67.2837753,40.1286434,38.9508614,24.8220871,20.0296082,47.0171074,5.4125411,31.2312147,15.6159384,1.8521118,1.8640972,19.9534228,71.7198763,71.5057028,67.8649098,28.2487178,9.0156054,16.7550689,66.075932,39.8372664,38.9542254,24.7877013,20.0989841,47.0886772,5.3807711,31.5769733\r\n678,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8796575,0.9860064,10.8244364,77.3886225,76.698632,80.0352756,22.0697324,38.8673106,20.2785672,65.228216,37.7054707,47.2227648,15.3934253,11.6644467,72.3159071,8.0324027,35.376442,8.1533319,0.9280301,1.0341984,10.3082574,78.1377246,77.2802897,79.8267135,23.1699877,39.216252,19.5706804,64.9746052,38.4662724,49.7208576,14.7686691,11.0935219,71.1564821,8.2016675,33.2538489,8.6207823,0.9311733,1.0368948,9.9682138,76.1981992,76.5683455,78.5596984,22.8136163,37.3433121,19.3236393,65.2120515,37.3784743,49.4068948,14.4056517,10.6851318,69.6478391,8.7147198,33.5406693\r\n679,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.0808684,1.1083971,14.3361588,71.1934493,73.484091,61.206425,21.6370007,29.3086306,19.5724733,67.1661971,36.5142453,45.5171941,18.0893898,13.9467764,72.0129042,3.2327593,34.051713,11.4444336,0.9635622,1.0086072,13.8859574,71.2893213,73.2206472,60.8778957,22.3672497,28.9119882,19.2468499,67.0029339,37.4510643,45.6896568,17.4410334,13.5652413,71.6356984,3.2254146,34.0974683,11.3636285,0.8291458,0.8834345,13.149476,70.3581714,73.2146643,61.1188358,23.2605912,28.2829038,19.5632152,67.6753432,37.6570419,44.2852978,16.8370987,12.9560742,71.0413193,3.3105587,35.0979308\r\n680,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9634819,1.0271695,21.8509555,78.1092035,78.3894017,72.1287036,21.659683,60.5735802,26.1254184,64.446447,32.6204495,59.5991688,25.1867995,21.1565658,86.3230305,2.5623821,43.4361577,13.3003866,1.0170375,1.0808219,21.4289869,77.6094251,78.7587268,71.1643459,21.6910344,59.5894473,27.2537638,65.2536803,33.5819457,61.2559958,24.3954964,20.2916069,86.7033008,2.6939955,45.0684631,14.1949213,0.8923582,0.9555941,22.4412428,77.7079753,78.6633665,68.7811338,22.6985775,59.57871,26.7909346,65.9971721,33.8110849,60.2428931,24.1709214,19.7714913,86.2794227,2.892402,45.7307991\r\n681,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,0,0,0,1,0,0,0,1.2197907,1.2746919,14.8468797,74.9908897,75.2284364,72.2326907,25.0345923,24.6789408,20.1518233,66.1802708,37.3768512,48.8976402,19.2558038,14.7162394,66.6618928,4.8630439,35.7287001,14.2299196,1.2442491,1.2838891,14.8595451,74.6342969,75.571496,72.3633512,24.8944401,24.8115383,21.061282,66.7324228,37.6094376,48.4422553,19.9220399,14.9444994,67.048059,4.691065,36.4738597,15.9054455,1.1603386,1.1982154,14.9154278,74.9643,75.9275535,73.2627217,25.1410974,24.486667,20.6646727,66.3806443,36.5320542,48.3441747,19.8587792,15.0149423,67.2133803,4.5200585,36.6523833\r\n682,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,0,1,0,0,0,0,0,1.6492244,1.5797337,18.413988,64.7656399,67.2225681,55.0750556,26.7294707,7.2192176,15.0854943,67.9553436,37.3203267,40.7134433,23.5487335,17.1091712,49.1186819,3.2841581,38.6143266,12.1169547,1.5846783,1.4659614,18.9083559,65.0561867,67.1751493,55.5308545,26.5325334,7.6400777,15.9745574,67.8875663,37.7200602,40.6700658,23.6855425,17.3278844,50.045326,3.2732903,38.5678235,12.1991773,1.52649,1.4225376,18.6859851,63.0463114,65.9604041,55.1120798,26.1167916,8.2454464,15.5746645,67.584029,37.9212901,39.4840331,23.5219034,17.4280951,50.9114796,3.4162196,39.069164\r\n683,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8036745,0.8125609,17.2712186,69.6456765,68.0448932,62.9211663,22.1342418,55.9197564,28.1242496,64.0577093,35.5118825,52.1169875,21.38577,16.1384614,82.2649168,3.9892589,38.4384611,10.5455926,0.8483088,0.8567693,17.479847,68.2696502,66.7755472,62.5186518,21.5382408,55.7987399,28.4098467,64.0656172,35.4217729,48.9324114,21.1236868,15.9788057,82.5449403,3.6227504,38.5867166,11.580638,1.1052387,1.1132554,18.768988,67.7986609,70.3631411,64.6686126,20.6708242,60.2234409,27.517792,64.4362723,35.9736213,49.5537989,21.2346571,16.6825728,82.9307785,3.7524067,38.5899576\r\n684,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.2700115,1.2726487,13.1969944,76.9516997,76.1326051,71.3612031,21.5070654,25.638134,21.6717992,64.2178582,31.8329389,50.6498616,17.8879732,13.4750045,64.6955547,13.5279633,40.0638951,8.570035,1.2708878,1.2705245,12.7931286,77.7986812,76.2448167,71.6446973,21.423901,25.6018825,21.7999149,64.5603788,32.073662,51.4231867,17.4788734,13.235537,64.2990802,13.6874807,39.847202,7.5389166,1.24247,1.2459976,12.3969152,78.19314,76.575023,72.3153736,20.980956,24.3626116,21.7684969,64.46084,32.16933,51.6439864,17.0506587,12.9002183,64.5775359,14.0171693,40.177949\r\n685,1,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,0,0,0,0,0,0,4.4278238,4.4602944,36.5262741,64.5055839,67.8259444,55.4626782,21.994618,9.4653654,15.5092972,62.9998644,31.7427147,47.8434197,43.0336425,35.3907739,56.0943501,1.9878469,38.2507572,35.4701392,4.3690911,4.3659057,37.4857117,64.2081611,68.5222794,55.5483561,20.8157207,9.6300483,15.8077861,62.5264848,30.1498816,48.520681,43.6714314,36.3901296,56.9951733,1.896025,39.2937481,36.5382802,4.8553221,4.9130591,38.062592,64.4365705,67.6183179,54.944933,20.5357787,9.6212001,16.3818619,60.6942925,29.1158523,49.7973735,44.3405252,36.9986966,57.6504845,1.9978638,39.8597275\r\n686,0,1,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,0,0,0,0,0,3.1450578,3.2021643,31.1248345,74.3091167,71.9471805,64.5796689,17.5205458,14.8923772,16.9811591,60.2589602,31.2355585,54.1118793,36.432492,29.7549199,65.6412425,3.4517612,33.5364743,22.6456236,3.523907,3.5809764,32.6201363,74.538283,72.4045908,64.029963,18.4586487,14.7027667,16.7606618,62.0283104,32.9713589,54.690336,37.602971,30.8952042,66.268495,3.314024,33.6691511,25.147154,3.8372084,3.8875868,34.2368482,75.0824494,72.5425383,63.0771194,18.2433465,15.2112843,17.0311182,62.3075969,33.1012764,54.9985187,39.1423774,32.7119585,66.3608818,3.4763385,33.8272918\r\n687,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,0,0,0,0,0,1,0,2.4480213,2.4852209,22.3071421,65.5738932,68.1266557,59.6381531,24.1572612,10.5268833,17.5571543,64.4505628,36.9398729,48.9220638,27.498906,20.9912135,54.6724237,3.22963,43.2408703,19.5513225,2.261205,2.2981027,21.6906985,65.3928355,68.4469965,62.4459554,24.1788093,11.2526637,17.0519246,65.1904662,37.0591057,47.5009374,27.5323058,21.2481694,55.0059304,3.4135165,43.4891181,18.4848913,2.0140954,2.0512673,20.557388,69.8065339,71.106444,63.8925213,24.5064128,12.0471135,17.4773585,65.8324017,36.3912341,49.4635755,26.3251623,20.6246564,55.092902,3.2765666,44.6369649\r\n688,1,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,0,0,0,0,0,0,4.2708268,4.4851844,35.9247204,59.3228263,64.9201794,53.4618668,21.1423737,11.2527213,17.3883363,62.1229329,31.478351,43.5536993,44.2643287,37.5605267,63.1070564,2.5009967,39.1995963,43.3998256,3.8456019,4.0178824,34.3716019,59.3213559,64.5861391,53.7504893,20.8944001,11.7434682,17.5108445,62.3197636,30.9233667,43.6509368,42.391028,35.9383539,62.5450318,2.4650942,39.4184284,42.4386484,3.6912154,3.8440645,33.2125219,59.3403841,64.6060904,52.8891087,21.2702706,10.7438592,17.0815909,62.8407991,31.6302774,43.3293634,41.1415174,34.7235733,61.6927081,2.3724039,38.9420532\r\n689,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.4596288,0.4584343,8.3831734,78.5308946,79.7500659,71.7789484,24.5123915,25.7967149,20.5197762,65.9316011,36.0390652,54.0610156,11.5824544,8.0552843,64.8036705,9.3730341,38.3280737,7.5111917,0.5090461,0.5078721,8.6109751,78.8896766,79.6766205,72.0835499,24.2424188,25.7788654,19.0427023,64.8294886,35.5602839,53.2842179,11.9181422,8.4192375,64.7581825,9.3973313,38.1114531,6.5701395,0.5854892,0.5999153,9.1869893,78.676097,79.7441183,72.6357468,23.9345505,25.3193145,18.7376974,64.8355136,35.4364513,52.3628013,12.5389326,8.8006167,65.0233215,9.2162355,38.477997\r\n690,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.0314142,1.091012,12.8613887,71.0150054,73.2533111,58.6352285,24.462911,28.9840032,22.9980669,68.3534086,37.6872208,45.2867727,16.8267277,12.6459393,69.8451308,3.1424073,34.8096326,11.2453571,0.9107729,0.960387,12.9091443,71.3522379,73.268898,57.9807229,23.8952452,28.9472229,22.941793,67.8422261,37.0933225,45.0387943,16.4995016,12.4107872,69.717765,3.0072872,34.6707931,10.1904817,0.8904323,0.9276669,12.2352714,71.2890491,73.3958682,59.1051835,24.6764428,29.2186281,22.8064715,68.1492446,37.6522524,45.0496263,15.7584692,11.8862206,69.3312883,3.0918332,35.0169159\r\n691,0,0,0,1,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,0,0,0,1.6794962,1.6656934,18.9447561,68.5684485,66.6753198,66.3008199,26.6618299,19.4935448,14.7046866,65.6195052,40.5670784,42.484397,23.3462082,18.3692937,62.3289162,5.8954071,32.9335649,21.8153477,1.6386005,1.624518,17.9002912,66.9612164,65.1881454,66.1675766,26.5346376,17.999052,13.9162547,65.3764751,38.5727028,42.8813347,22.8695867,17.6020605,61.4294697,5.7022496,33.2372401,22.4263413,1.5563284,1.54223,17.4870072,69.0314937,67.2015593,68.5486587,26.7202654,16.5614581,13.0401479,66.236462,39.4182949,43.6970068,21.5688207,16.7972674,60.9371556,5.6370938,33.3491901\r\n692,1,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,0,0,0,0,0,0,1.0483845,1.0888768,10.8842281,55.6451649,59.0883958,52.7390999,33.4335449,5.6950365,13.8001647,72.2068396,45.6480895,35.8972442,15.1597771,10.4639009,37.3242207,4.3709899,39.190681,6.2126832,1.1730638,1.2121343,10.3244973,55.1980988,58.4350313,54.4619525,32.7870631,6.0819203,14.6114816,71.9700312,45.8489223,32.7558391,15.1409818,10.309242,36.616974,4.0466762,38.8956757,6.3183689,1.1404588,1.1795284,10.3264135,54.2740511,60.3155516,55.4603489,32.4378385,6.1199274,14.3920194,70.4846968,45.2495317,33.0931317,15.0626294,9.9946697,36.5843124,4.6575682,38.1286683\r\n693,0,0,0,0,0,1,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,0,1.1984738,1.2307811,17.3881702,67.3889487,69.5508507,62.8244899,27.1330009,11.6858372,14.5301283,68.3042825,41.9931835,48.1585274,21.3542267,16.7399096,56.9830748,4.68269,35.9559874,19.2259307,1.1718208,1.2096509,16.7288763,66.7842174,68.8846577,64.3002505,26.7942932,12.0910952,15.2709207,68.4401219,41.9510245,47.6144043,21.0039565,16.3506294,56.4482974,4.9352643,35.7194088,18.7579654,1.1507165,1.207843,16.2166637,66.8075594,69.0035151,64.8676939,26.7707688,11.5409747,15.0030455,68.02106,42.5024068,46.9241007,20.1247227,15.6137084,55.9148322,4.874717,35.0971955\r\n694,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.5879311,3.6261336,30.2103474,65.6101899,62.2024115,62.3445321,25.1729643,4.0952452,14.2100952,62.2207782,33.3431149,42.930253,35.8891534,29.8305086,45.8015054,3.1192225,31.5101589,27.3586201,3.6469542,3.6670937,30.1631447,65.7553042,63.8371698,62.1867699,22.5648655,4.7073535,14.5873513,60.3657977,30.9420771,44.1614474,36.6555195,30.8218279,46.7429429,2.9188306,31.4256733,27.457608,3.8294064,3.8721795,31.8403277,65.6434201,64.1208322,61.5174575,22.2234774,4.8733867,15.9693967,60.4660309,31.0708356,43.8538213,38.510689,32.6744269,47.4614426,2.9018574,32.9843463\r\n695,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,1,0,0,0,0,0,0,0,0,1.1506322,1.1952112,16.6492233,71.5253259,74.6660579,63.803439,16.8359019,64.2583766,29.045563,67.0180951,32.0181527,49.0300842,20.0704953,16.0704855,84.7752751,3.6707843,33.754132,10.9052825,1.0191901,1.0638697,16.6946505,71.454913,74.5416831,63.5347451,16.9062296,66.1816134,29.1677802,66.1923276,32.1957481,48.7005406,20.0422233,16.2828074,85.1571047,3.995174,34.3910361,11.1814157,0.9463631,0.9463631,17.0202326,72.4428165,74.5748269,65.2206482,17.6955415,66.9638228,29.2214791,66.6662097,32.2631955,49.3884551,20.126531,15.9558477,85.9267588,4.0636415,33.3837945\r\n696,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,0,0,0,0,0,0,1,1.5426964,1.541409,21.8732414,68.2822833,70.14298,61.0197729,27.8241943,15.2789704,17.5364589,69.4628682,41.05841,39.989869,27.5729724,22.0971758,51.5234063,3.9762584,31.5067608,19.5652174,1.4499351,1.4826944,21.2180521,67.8031228,69.7584802,60.4053015,27.6786861,14.9550443,17.0994694,68.9550515,40.413126,39.695669,27.1680567,21.3259927,51.1951596,3.9254573,31.4806669,21.2499869,1.3021662,1.3266862,20.2697063,67.6942175,69.8531192,60.8008296,26.5536493,16.2267834,17.7383872,68.9353675,40.061609,38.560723,26.38602,20.5692293,51.2616901,3.9182762,30.2537188\r\n697,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0875688,1.1400365,10.2373723,58.3288302,60.180418,53.6783254,36.946235,6.1667406,15.6203599,72.1328878,45.9525136,33.0658759,15.2477949,9.4028289,38.7679346,4.5148691,42.2490643,8.0921439,1.0396385,1.090574,8.6875164,61.0457087,62.3310422,54.6777591,37.8592614,5.9934537,14.7467405,71.9772782,45.4506996,35.1014644,14.7849982,8.8525468,38.4063252,4.6268067,42.4291475,6.1766019,1.2087932,1.192426,8.7898524,60.4463782,62.3813314,54.6754336,36.5953941,6.6882527,16.4348005,71.198767,44.2105187,33.6161168,15.0505183,9.3942964,37.6683865,4.3192866,40.9478242\r\n698,0,0,0,0,0,0,0,0,1,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,3.5894403,3.680539,35.3867317,66.3653509,67.5573391,57.5119105,25.7063615,7.9552401,15.9751485,61.4853999,32.3811137,49.3971024,41.8397389,35.3715599,53.9214798,2.472341,34.5598,26.5405679,3.5383212,3.5929425,35.4910127,65.1560528,67.2242085,57.0940589,24.1941347,7.9141147,16.3832175,62.5111073,33.1588402,49.1366437,42.2705222,35.7593,54.0194292,2.5570072,34.7141602,27.6276973,3.6538478,3.7211192,36.7662441,65.5936306,66.9307685,57.8331106,22.3907111,7.5722297,16.0377029,61.8835908,32.1779267,49.6859167,43.2626251,36.8163933,54.4708606,2.5301208,36.3294363\r\n699,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9917988,1.0639375,15.0471457,63.1783577,66.9199328,52.5554135,27.3273335,16.2694706,16.2704301,67.4427227,38.2335285,37.4507421,19.0962419,14.4951388,56.2633475,3.9882151,34.1735867,11.3126034,1.0226312,1.0614803,14.3214827,63.2892019,66.7414873,52.1823095,28.3924408,15.8550022,15.4849914,67.5818141,38.4791283,36.9254294,18.5537794,13.8107507,56.7535772,3.7907507,36.1591307,11.5988877,0.8205181,0.859909,13.3385584,62.7631334,66.2773026,53.3500406,28.1686036,16.1668103,15.0449559,67.7642276,38.3765008,38.066384,18.0625869,13.1763236,56.7641544,3.8692973,36.8436371\r\n700,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9556925,1.9556925,22.9915508,69.6082424,71.5529945,67.6014803,18.0274525,29.3785015,21.9435027,65.8092617,27.1029388,49.2897373,26.372093,22.6511628,72.0098039,3.9831303,37.2568093,26.8442623,1.7146557,1.7146557,22.2990894,69.690222,70.739844,69.1182237,18.8948084,27.4721651,21.4958312,66.5521698,28.3382911,46.9671423,25.5082285,22.1200387,72.2108495,3.5819431,36.3168724,26.5909091,1.6307009,1.6307009,22.3218064,71.4349574,72.5019558,70.0700899,18.6644908,27.4559117,21.7963704,66.3654668,28.815899,47.3281898,25.483559,22.1953578,72.1993834,3.6102868,35.5769231\r\n701,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9650801,1.0532347,12.2703208,62.8310113,66.7412923,52.8382514,29.1507751,17.742029,17.0799801,69.824685,41.7474603,36.0360921,16.320369,12.3599585,52.7489519,3.734945,36.8505892,8.6087921,1.0509884,1.1205184,12.0000766,63.8542685,66.9706931,54.06544,29.2984504,18.1285316,17.9751071,69.9204552,41.6717699,35.9106565,16.4142585,12.2988153,52.418655,3.8415181,36.2814305,9.0081249,1.1101618,1.1838129,12.5006717,64.1241548,68.5260568,54.1741169,29.5267773,17.7193321,18.448699,70.144128,41.1911505,35.4674581,16.908314,12.8103229,52.8121432,4.059268,36.110898\r\n702,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.6988728,2.7999617,32.2094642,81.4018703,78.8531714,76.6718295,12.1905523,58.6851824,28.7279194,57.6556365,21.3429266,66.2587074,38.3799251,32.3172747,88.1522188,3.9910278,35.7192264,27.5355081,2.5278278,2.6325706,30.6731672,80.9506079,76.8525891,75.1229967,11.7888121,60.8960292,28.4603697,58.1951541,21.7044827,64.9063944,37.2001301,31.3399486,88.4838566,3.9335685,35.6894185,26.9716173,2.3467691,2.4208173,29.8816247,80.6866749,76.255371,74.662636,11.4688414,61.793513,28.1202835,57.6066374,21.1299573,63.1665684,36.2326312,30.3992947,88.0665171,4.0631677,35.9055805\r\n703,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,0,0,0,0,1,0,0,1.0770804,1.1192843,13.5910716,76.4415777,77.9413224,70.8119572,21.8319111,66.2277059,29.3526176,67.0167839,34.732298,49.737058,16.963921,13.1122623,86.3748341,6.1335676,31.0628354,13.1478316,1.0087966,1.0585144,14.2410512,76.2686708,78.6897929,71.1872976,21.5906496,66.0874339,29.836648,67.5760815,34.4687734,48.6890104,17.7875576,13.8189085,86.3625414,6.5639499,30.9239767,12.2824599,1.0356833,1.0901886,14.537647,76.3019442,78.9657827,70.5712474,21.038943,66.1521001,29.446959,66.7450579,34.3901102,48.2640551,17.8445768,13.9831276,86.6562043,6.1903715,31.8872758\r\n704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6470535,1.7065585,20.5829938,66.2890256,67.2749535,63.4986206,22.3732526,13.6908955,18.4114933,62.060234,32.2664232,45.8543303,25.8191954,21.0411554,61.4872026,3.0231269,32.2663659,26.955394,1.5879013,1.6488268,19.7546787,65.4940247,65.9601134,63.0706811,23.5624698,14.049678,18.2922235,62.5787695,33.5518021,45.7394313,24.8964907,20.2930868,61.3054149,3.1980216,32.0143747,26.5171339,1.6000236,1.6391869,19.1204561,65.5372307,65.5830785,62.5942821,24.1185653,14.5816379,18.9939645,62.9549193,33.655402,46.3577569,24.4412591,19.7361749,61.4206213,3.3864543,32.5544489\r\n705,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,0,0,0,0,0,1,0,2.0911368,2.0677365,31.0350579,67.288038,70.542051,53.91693,19.6035822,10.1912334,20.1026084,66.4361525,33.6312204,50.7455576,36.0070829,31.3934906,60.43645,3.5753006,43.5622454,21.7922157,1.9713255,1.956455,30.3625582,66.5264885,68.4980668,55.8303371,19.8582819,9.9941791,19.4829645,66.2377573,33.4552131,49.6734543,35.4815676,30.792066,59.6071655,3.1979584,42.6347523,21.0781609,2.1352008,2.1301318,31.093472,66.4391537,68.0523887,54.4043581,19.999074,8.3192386,19.0917277,66.0182016,32.7267089,49.1838114,35.6100811,31.0085975,58.9491903,2.9937037,44.1461399\r\n706,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,1,0,0,0,0,0,0,1.0078866,0.9886314,13.2639448,63.7674737,68.2773052,57.2509696,27.5874264,14.5842414,19.5528948,72.2938262,40.5377009,40.5265257,16.698622,12.0965164,57.1261153,3.6234254,35.5092448,8.0696126,1.0181635,0.999295,12.6444363,63.5510546,67.9790678,56.8759545,27.0779418,13.8819316,19.6631875,71.384456,40.5405677,39.1691347,16.3690494,11.6698012,55.7175472,3.5079223,35.4635999,7.0312434,1.0694552,1.0605676,12.5781919,63.1109357,67.6654118,56.3546142,27.3741079,13.2653253,19.0614634,71.3287672,41.447247,37.4674385,16.3532714,11.5752199,56.2217007,3.4014702,35.8068882\r\n707,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,0,0,0,1,0,0,0,1.0779985,1.1373774,14.7684621,75.6351169,77.6958407,68.498483,23.0502924,25.7881674,20.6207789,67.0809375,36.6405009,49.2972087,17.897291,14.0669475,66.7962068,4.5804099,33.3821901,14.0425687,1.1557924,1.1953037,13.8779729,76.4567329,77.8664113,68.3556045,22.8958257,26.5254959,20.5083813,67.6109383,36.9949955,49.6647258,17.7696683,13.4454475,66.463224,4.3985333,33.3097195,11.9280456,1.1651037,1.192426,13.553922,76.3331924,77.6005567,68.8652116,22.6524892,26.9074207,21.2685127,67.1266205,37.2351869,48.9838255,17.5364187,12.9955966,66.8733636,4.4521976,33.3039982\r\n708,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,0,0,0,0,0,1,0,2.3073361,2.3110766,20.2768273,67.2251643,67.4471921,52.5538246,24.549372,7.8394531,18.6937297,67.5306095,38.0439403,42.4217869,26.3760824,20.9817683,53.4487024,3.1275872,45.7122022,20.0534865,2.248578,2.2620048,20.5282892,67.34687,67.533059,50.5966438,23.8101969,7.457086,18.2503181,68.1257845,37.40693,41.9053682,26.6761082,21.233462,54.5268418,2.8972154,44.8619504,20.054912,2.0773494,2.0773494,21.0021541,67.2894846,69.5986924,54.0149851,22.7532455,7.2948739,19.5207826,69.3074664,37.934984,41.8654196,26.504227,21.0356741,54.6743888,3.4610392,45.0781186\r\n709,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.4560023,4.4680497,40.6505129,63.8802389,63.6602975,62.5975781,21.7341231,7.478477,15.4817791,57.5691391,31.1212703,47.7662801,48.5358051,42.0549417,53.8420611,2.5747102,33.6933359,45.383274,4.2938676,4.3856648,41.6694367,62.2399073,63.1630841,61.4850466,21.7688523,7.2309251,13.976005,57.6404631,30.7566989,47.9951503,49.1826489,42.685,53.7923111,2.6289024,33.8743532,46.3926456,3.936378,3.996994,40.7976461,61.825729,62.3229227,59.7440342,22.0702967,6.7500716,13.340569,56.8848938,30.6255099,47.399385,48.1173452,41.6592641,54.7827416,2.9043034,34.978799\r\n710,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,0,0,0,1,0,0,0,1.0259826,0.9818381,12.4887281,73.870718,73.4013584,74.4465719,26.3451457,23.023462,19.171849,68.3235311,34.1257574,43.2463182,16.9353846,12.5024798,64.4790624,3.8664383,32.7913249,9.3309523,1.2905182,1.2624461,12.571806,73.5922214,73.5922879,73.6870675,26.6753177,22.5783806,18.6372314,67.1380753,34.2113742,43.9308557,17.3432946,12.6949159,64.3608746,4.0259761,33.1250567,8.9928634,1.3676756,1.3434196,13.3492686,73.0495725,72.523042,73.5024757,27.3128037,22.3793645,19.0516285,66.5692984,34.0193298,43.3047751,17.9916395,13.1471871,64.4985482,4.2680168,33.6774406\r\n711,0,0,0,0,0,1,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,0,1.0795377,1.1264486,15.7794059,67.3125004,68.5978145,64.4927404,26.4654815,11.5474302,14.2819205,67.6710211,42.4255216,46.8193693,19.5913869,15.1464277,55.5389075,4.9246873,35.4757979,17.7927891,1.043895,1.0767034,14.9753844,67.4413014,67.6242861,64.0085412,26.3967522,11.0202542,13.7372143,67.3613634,43.0563814,45.3874157,19.0534127,14.6390907,55.1482062,4.8962989,35.2664651,17.1646661,1.0528269,1.0751157,14.0756782,67.8289363,67.7730596,64.0637306,26.3472631,10.7324642,13.6596787,67.9094664,43.3569507,44.4306262,18.1515661,13.8661836,54.1520819,4.8666266,35.462293\r\n712,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.1057356,1.1403069,17.8154522,78.6713759,77.0713187,74.1438295,22.1288912,33.4272001,20.3791056,62.8443207,31.4494664,55.7371872,21.8775117,17.6159201,71.3507918,13.2307063,39.8981662,11.0304265,1.2042073,1.2223914,18.3868268,78.4266754,77.3255118,74.1312569,22.0584543,33.6522784,20.3467277,63.2718525,31.3877032,55.8167389,22.2650424,18.1271117,71.485189,12.8438478,39.8973178,10.2380986,1.241448,1.2749884,18.622605,78.3672468,77.4228456,74.3874933,22.705901,34.0113863,20.3215314,64.3543504,32.3295468,55.2539395,22.3985481,18.5147945,71.362502,13.1093002,39.7705347\r\n713,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.3365359,3.4375394,38.0266031,71.7567484,71.6161246,71.0778414,14.9720644,27.6005986,20.3176832,64.3553189,24.1015665,56.2466257,42.6654355,38.7212191,75.1422799,2.7377257,38.1203008,32.566586,2.9139547,3.0103287,36.1844015,71.9365848,71.1351953,70.7022689,14.5384728,30.0193756,19.8515965,65.4973558,23.8151035,56.2608301,40.4719725,36.5841285,74.9802372,2.6792453,37.7828054,31.495098,3.0832178,3.1010462,36.5391409,70.6787931,70.3090774,70.6275767,14.2068556,32.3754101,20.3244075,66.7759674,23.7273966,56.384189,40.8502756,36.9145294,75.1827782,3.07393,38.9143731\r\n714,0,0,0,0,1,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,0,0,0.8603227,0.8466764,11.3156991,71.7849452,72.9363627,79.5603973,24.2626676,40.7847226,20.188957,63.3957792,34.1189707,48.9872372,15.5484247,12.6896149,75.3478524,5.0892857,33.8668374,11.7924528,0.9595414,0.9730476,11.4009712,71.7259005,72.9370217,77.1610905,23.7495283,39.783826,19.8496025,62.9337143,33.9455921,47.4147893,15.6664743,12.4350837,75.0899281,4.9175501,33.6501901,11.6987179,0.925391,0.928017,11.4879331,71.9421375,73.946864,77.2607525,24.0641888,38.7677696,19.9720572,63.8401308,34.8367205,46.8691837,15.2575588,12.1780515,74.173913,4.7008547,34.1566265\r\n715,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,0,0,0,1,0,0,0,1.362879,1.4030843,17.4883412,73.1065606,74.3615735,66.1929759,21.1049899,26.7440513,21.5744176,65.4030971,34.4434609,48.9440513,21.3742609,17.1893485,69.3889342,4.6211754,32.5067376,12.7084915,1.3242757,1.3197319,17.165174,72.7901531,74.0062753,67.0994173,21.6496581,27.5646683,21.2779197,66.5036161,34.4170147,49.779293,20.8030578,16.5269801,69.2619487,4.7891091,33.1724103,13.0868052,1.2648819,1.2633039,17.3607902,73.353832,74.9218177,67.5726928,22.3318542,26.730298,21.696628,67.0202476,35.0862176,48.2410963,20.6699599,16.4183284,68.6021638,4.8442831,34.0643675\r\n716,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,0,0,0,0,0,1,0,2.3856465,2.437796,23.0150606,67.7815613,68.8902732,56.3872175,26.8395095,8.8064569,19.4344985,65.0429533,33.9221364,42.8580604,27.8572201,22.2629073,53.9173939,3.0452506,43.131925,18.5975043,2.5565338,2.6106173,23.6509047,69.3340636,70.266688,58.3616183,25.4820931,8.3864669,18.3106537,64.4423763,33.1047435,45.4412567,28.6596117,22.9366645,54.3976655,2.8026722,42.6664245,19.7222566,2.7601487,2.8150811,24.008529,67.65994,69.6395404,55.287971,26.0682295,7.9171043,16.8692081,65.9829522,32.9728747,45.9870662,29.1671905,23.4748205,55.3824486,2.7559717,43.3472074\r\n717,0,0,0,0,0,0,0,1,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,3.1127307,3.1656945,34.5528618,73.5072063,72.2855735,68.7532951,18.0922621,55.567702,23.870769,59.4356763,28.398231,57.1258419,40.6036566,34.8841443,83.8510435,4.4831515,37.3390054,28.9230146,2.9766916,3.019939,33.9655715,73.8511152,72.875673,69.1222561,18.9012393,55.622519,23.8306405,59.2280325,27.7125413,57.4749421,39.6784667,33.9734738,83.8393812,4.5027067,36.9994802,28.2491268,2.947444,2.9711124,33.1282583,74.084833,72.9290275,69.1794957,19.0016818,54.7561732,22.873721,59.1037749,28.2528049,56.7561957,38.7391612,33.2288214,83.9573172,4.484458,36.8694032\r\n718,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,0,1,0,0,0,0,0,1.6138279,1.6600749,21.9156168,67.9799962,69.9141753,50.2132052,24.7194206,11.876675,17.7690619,68.5821448,38.2170799,45.6492357,26.0030145,21.65379,60.0093303,3.5985935,37.8269498,14.4659944,1.4371458,1.521635,21.7088999,67.2775161,69.2622857,50.0142718,24.7750534,11.7601614,18.2142395,69.0207824,38.5554592,44.9981569,25.4750516,20.9226559,59.4582437,3.7609595,37.9841907,13.5221526,1.4656015,1.5554958,21.5257345,66.213964,68.353429,50.4903428,24.64768,11.576923,17.5658336,68.6803535,38.8844301,43.6067152,25.3488316,20.8255187,58.9022984,3.7475408,38.2587706\r\n719,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6535209,1.5695786,16.753809,77.6651748,77.1074203,64.8213984,22.5211375,57.4380344,29.4520179,61.1566419,34.7419555,56.0608148,20.0030386,15.3654018,82.7836754,3.4747981,36.0989384,17.8789141,1.7470781,1.6647509,17.0656124,79.1131695,77.428374,66.306276,22.8569166,56.0349462,28.1440838,61.8392996,35.6646048,55.4997506,20.094615,15.5551226,82.7156433,3.9346197,36.5210872,17.959478,1.6669943,1.6057524,16.9466694,78.9675007,77.4790026,66.8946845,22.1916364,57.1209472,28.4303058,61.3687503,33.9574358,53.7366186,20.3650831,15.8525701,82.9642043,4.1108576,36.8881728\r\n720,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.3841511,1.4230187,14.1541556,66.5116567,69.328582,62.8038778,24.4590879,25.9700965,20.4211281,67.2979257,34.9533797,44.7811046,18.5124254,13.0410963,66.8228547,2.8683889,35.7045396,11.8913702,1.3292988,1.3398113,14.7661938,66.5594953,69.0761825,62.8402963,24.0845231,25.2309492,20.4288423,67.7232415,35.1857622,43.9332436,18.8601487,13.5065865,66.6473682,3.0630832,34.7132406,13.0040191,1.3208904,1.3261714,14.9118003,67.1492859,69.1368627,63.5408688,23.6886533,24.9835732,20.2832597,68.1035036,35.3714564,44.0259511,19.2972628,13.976203,66.9651207,3.3013499,35.5129501\r\n721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.6356822,1.6572922,17.9183708,65.3935792,67.3179471,56.3224461,28.4788784,10.629026,18.3150998,67.1892684,40.03476,42.3147435,23.2433722,18.3884078,49.4515188,4.4329053,35.0567005,18.0779252,1.5494597,1.5772218,17.92157,64.7645514,67.3557185,55.6552771,28.3934461,10.7824807,18.136338,67.4361471,40.7466326,41.3360697,23.3595585,18.3120588,49.7341557,4.2955591,35.015512,17.7791619,1.4628715,1.4871455,18.2025178,65.1115831,67.8989155,55.9746091,27.7792725,10.2461963,18.1996557,67.0850038,39.935548,41.5759546,23.2865858,18.4716686,49.6277638,3.9687298,35.0879759\r\n722,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.913317,3.95916,40.1045666,61.5108966,62.2000592,60.0715838,21.9872547,6.1116396,13.0460907,58.3773911,30.4568631,46.4016906,47.6772101,40.9734809,54.8455019,3.138811,34.4291617,45.9347813,3.6608025,3.6830264,38.7192078,60.0324151,61.0111282,59.2571602,22.321525,5.9364139,13.9612261,58.6755765,30.8724239,44.3474035,45.8769327,39.5852278,54.3271966,3.2749324,33.9329683,45.1449525,3.6835289,3.7687268,38.4646774,59.7152625,61.2380365,58.4535355,23.2399656,7.418642,14.7291449,60.5614719,32.0077215,43.3987421,44.9700546,38.6796363,53.4304356,3.2016261,34.2302703\r\n723,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.8655277,3.9423274,37.6007112,81.2750819,76.969811,82.4230856,17.3125981,43.0431603,20.7840874,59.7169534,26.8242567,63.6009922,42.3588545,36.4554571,80.1036388,5.7972774,35.341222,16.6460573,4.0192239,4.0841168,37.9610743,81.1890067,77.1681027,81.8117689,16.6848227,42.4300566,21.1232606,58.721112,26.0108253,63.2258565,43.5913814,37.6929282,80.9492628,5.666822,35.6567206,17.798109,4.0100812,4.0457651,39.0090453,82.3962149,77.1685447,81.6761538,16.4419809,42.010694,21.70838,58.5744393,25.9884025,63.8397763,45.2828436,39.1395024,81.7775777,5.4556681,35.4558498\r\n724,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.8231418,2.9114077,36.5692405,69.3105064,69.0512643,63.3139076,19.4417959,17.5034738,19.9991612,60.1897729,28.6740058,53.374327,41.9881464,36.502584,66.2653956,2.5443347,35.3147957,33.2041516,2.7282825,2.8400291,36.248972,70.0136829,69.943359,63.1230892,19.1655361,17.5151647,20.0196996,59.5061465,28.3621051,53.8472456,41.7745372,36.1059365,66.7313987,2.366818,35.4338718,33.2727463,2.7034217,2.8168419,35.80995,69.3642969,68.9494883,62.3415724,18.9155606,16.5167528,19.3371866,59.1076479,28.3673155,52.721771,41.5523913,36.0182791,66.6304051,2.363784,35.3316483\r\n725,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,0,0,0,0,1,0,0,0.9999407,1.0357158,14.8212623,76.4345041,77.9059365,70.4343328,21.3703113,67.2651848,28.8996027,67.0515215,35.2929509,48.5155788,17.7971924,13.9510411,86.7285881,6.1888985,31.6296495,11.8371952,1.0855678,1.1165334,15.2861221,76.5564506,78.0044132,69.8609499,21.8782264,67.2087577,28.9569706,67.099466,35.1137164,48.4448699,18.2227011,14.349951,86.5453673,6.0381468,31.433482,9.6805112,1.0705073,1.137903,15.0614486,75.3063687,78.2009404,69.5655131,22.7486482,66.6368073,28.8999645,67.2212484,35.870485,48.1989849,18.0907579,14.3827923,86.1595578,5.9622294,30.9477615\r\n726,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1120604,1.1330486,12.2265593,58.3528977,61.4753946,59.8425748,35.8102543,3.0755047,14.1780582,67.9533769,45.6472274,34.9624926,15.2377852,10.8400357,30.1056908,4.798045,35.9340189,7.7777663,1.1382246,1.1761832,12.3826113,60.7047851,61.9682247,61.7126304,36.5069348,3.4750738,14.5338849,66.3394966,44.5831363,36.1021932,14.7983996,10.7928137,31.3234871,4.9761455,35.1641617,7.9861056,1.3056994,1.3433116,12.3144419,60.592641,62.2719113,61.8463428,37.6096728,3.3396009,14.6673583,66.8978127,45.7373681,35.0674993,14.3732927,10.4965228,29.8611593,5.1828086,34.7081897\r\n727,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.4134144,1.3873738,19.9085504,62.6874691,65.7640168,52.3960657,28.0626685,7.6239008,16.8444643,67.457849,40.8456974,44.2602033,24.2136623,20.0781149,52.2164082,4.1115447,40.0432849,13.5937272,1.4437333,1.3700493,19.7459603,63.6189178,66.7175488,52.532637,28.1520886,7.6383908,18.0265305,67.444833,40.38544,45.537443,23.7408997,19.6880935,51.4125353,4.2342206,39.6150344,15.3480745,1.4529162,1.3783632,19.7583719,61.5468133,64.9482509,52.0243198,28.4567828,6.0776166,16.749101,68.5624389,41.3175884,42.6388867,24.100761,19.9865244,49.9320402,4.1128468,39.0819848\r\n728,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,1,0,0,0,0,0,0,0,0,1.4493453,1.4730704,14.4868985,75.8954457,74.7783149,70.4700171,21.914343,61.0562788,24.244858,68.4629651,34.086088,49.0509201,17.6577706,13.1848347,83.753034,5.249674,36.2305041,10.8777256,1.2165417,1.2820034,14.1658783,75.8237023,74.5170469,70.196477,21.9337633,62.0996149,25.0164782,67.5127088,34.1550164,48.1298786,17.530492,12.9799695,84.1959618,4.8038378,36.0093124,10.8777256,1.1738572,1.2387873,13.4519189,74.5073785,73.97951,69.7319016,22.271089,62.1308975,23.9441916,67.8212394,33.3704158,46.1920298,17.1798189,12.6645108,83.9703535,4.5564622,35.0996433\r\n729,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,0,1,0,0,0,0,0,1.5987858,1.4965455,18.8721233,63.6213769,66.7749015,56.1781055,26.2211782,8.282866,15.1517744,67.9698159,37.8147298,39.8599526,24.0763528,18.0104549,50.7025858,3.3090898,39.6680607,15.0557046,1.6566928,1.5454954,19.0818437,63.9774986,67.0070964,55.8671189,27.1044968,8.7166101,16.0558756,68.416723,38.4039009,41.2149299,24.079132,18.047027,49.9331754,3.4619852,40.6761346,16.840744,1.6947395,1.582926,18.9605398,61.9421587,65.4428247,53.7051628,28.0591339,8.2362208,15.2922776,69.2062208,39.126003,41.3084002,24.1148142,18.3302528,49.9152546,3.4510625,39.591696\r\n730,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5094391,1.5094391,11.3722741,57.1724227,59.8539907,56.1616619,33.7943511,7.5630032,17.8891042,69.990041,43.7152494,34.2360606,15.4794826,10.6896492,37.2824097,4.7317232,41.4223425,6.6762867,1.501089,1.501089,10.1414379,54.3312244,57.8214334,56.0831565,32.9055984,6.2245445,15.984758,69.1023253,43.7822708,34.0120712,15.4915452,10.2034053,36.5026086,4.9162469,43.1446051,7.4324291,1.5081395,1.5081395,10.6573423,52.2084173,56.1075632,55.5871465,31.3621037,6.3085921,16.1005566,68.5553366,43.7486226,33.1775444,15.2758892,10.3793329,36.5037655,5.1610592,42.5074544\r\n731,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.2635698,5.3371597,48.3854952,68.1627068,67.478898,58.7831181,20.3805336,12.9443837,18.3695146,56.9510666,28.6491812,51.5518415,54.6265764,49.1994375,60.8284258,2.2816745,39.709206,37.1795131,5.0902265,5.1327228,49.39512,68.1101387,67.7897492,57.2677313,20.6261975,12.7773263,17.4775093,57.3688775,29.3424499,51.6850095,55.5850273,49.9141303,60.8981129,2.4257602,39.4733477,36.5211228,5.2179538,5.301272,50.2517412,67.3814287,66.8377979,58.1441171,19.9313859,12.2738937,16.7401578,57.8126172,29.2015749,51.6626532,56.2063978,50.3645458,61.4530955,2.1948417,39.3832159\r\n732,0,0,1,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,0,0,0,0,1.2839147,1.3325618,14.9551651,76.582491,76.0899214,73.4316896,19.5656726,52.9207169,25.8565882,61.8026065,32.7676181,53.526022,19.8013878,15.43771,81.1378986,5.9128353,36.1938783,13.0748446,1.2075421,1.2695557,14.5628691,76.5056002,76.0927092,73.9899884,20.0378505,52.3087627,25.8300966,62.219677,33.171511,53.2705337,19.0609555,14.8587545,80.5301827,5.9767042,35.9925658,12.8925201,1.1980596,1.2712441,13.7114333,76.1584261,75.6956528,72.8220168,19.88863,51.1105154,25.9635919,62.1140103,33.6962558,52.8983735,18.7483348,14.40907,79.9785685,5.9566661,36.1269595\r\n733,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.3482466,1.332553,15.6821317,68.2162223,69.2883888,63.3590705,23.9599919,24.5956163,19.2733122,67.6195024,35.5844223,44.5684542,20.1177609,14.785612,67.7023665,3.4611048,34.7716973,12.9629554,1.3069315,1.3069315,16.0417308,68.4612176,69.0263772,63.6054179,24.7155361,25.1598356,18.6461962,68.270512,36.4997433,44.2411977,19.9932951,14.8691072,67.8472552,3.573047,34.7915808,14.1584158,1.2117139,1.2117139,16.1526793,69.2984643,69.2080404,63.7778842,24.9548462,25.7468163,18.9161339,68.6196989,37.1254373,43.8235863,19.7564679,14.8639772,68.0690374,3.6950729,34.7090787\r\n734,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,0,0,0,1,0,0,0,1.3304129,1.3631575,14.9519948,73.4622195,75.7023392,68.3489662,23.6092667,24.5834258,20.2451993,67.5177894,36.2256861,47.8880104,18.3282277,14.4388788,66.5413036,4.7886617,32.6007002,18.4612018,1.2633115,1.2990706,14.6363291,73.437228,75.1264352,68.4515843,23.3332392,24.5961127,21.493255,67.7146313,36.2605978,47.9066111,18.0014166,14.0987311,66.780595,4.6467246,32.522469,17.0472331,1.0122373,1.0553408,15.2581567,74.4309099,76.7883992,68.1322309,22.5609037,26.3732523,21.1633325,67.1011463,36.0769331,48.9876003,17.9996752,14.1950849,66.6685265,4.6712583,32.8791821\r\n735,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1131472,1.1947375,15.3255656,59.9742289,65.1560891,61.9687084,28.3826263,10.6051575,15.2300518,65.9557264,39.5880003,40.1335203,19.9477753,16.1572926,50.5513567,2.9685195,35.7779241,14.0306194,1.4056334,1.4855918,17.4257901,59.5112177,64.0883131,59.5265012,28.2464205,9.9674555,15.3452607,65.555812,39.9609291,39.1329088,21.2272735,17.4230139,49.5246165,2.7638239,36.4729898,16.6643079,1.5295538,1.6437621,17.6233718,59.6156454,63.7030934,60.0386912,28.52612,9.821748,17.1046717,66.4898652,41.0686224,40.6814165,20.7560182,16.7226518,49.2179175,2.6821083,35.5768376\r\n736,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,0,0,1,0,0,0,0,1.7870939,1.8465842,17.6655628,72.8012029,71.8031877,63.6783608,28.4176731,15.2406788,17.0986743,66.331657,41.844659,51.2760539,22.79414,16.5524235,56.4755404,4.1486277,38.2548426,13.621991,1.9657387,2.035661,19.5604422,72.0821013,71.2957682,63.3397789,27.7274865,15.0296452,16.7016891,66.028817,41.1642453,50.9260902,24.5379968,18.2275392,56.1756665,3.9672035,37.932119,15.8612467,2.3160583,2.4041642,20.9106987,71.9947785,71.0821136,64.1626285,28.0390936,15.2233529,16.2210083,65.1976094,39.9612428,51.4705732,26.0902439,19.5830445,56.4530553,4.1101083,38.0249082\r\n737,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.2272918,4.2609886,40.7046514,81.3961473,77.1099257,81.0170242,16.1582055,42.9561686,21.4008836,58.9347885,25.6045023,62.9574506,46.5313976,40.7011522,82.4247748,5.4913191,35.3222261,20.1863577,4.2076396,4.2187248,41.3962503,79.9433113,75.8923092,81.1247625,15.4768345,43.8218426,22.0929138,58.3459658,24.5785063,63.1666174,47.4228591,41.4965798,82.5684441,5.4963056,36.4768656,21.1922851,4.5042247,4.5151673,42.0034382,79.1336337,75.5115867,81.0701865,15.1791421,45.8655198,22.4901249,58.3837548,24.576789,62.7199368,48.0977214,42.3294475,83.2903098,5.3258032,36.753609\r\n738,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,1,0,0,0,0,0,0,1.2706522,1.2884016,12.6234244,65.6455245,67.5681511,57.8866522,29.1050779,11.7249458,18.9926537,69.617308,40.6215603,38.3073504,16.610361,12.0683202,51.9913938,3.2474986,36.5612834,6.5495208,1.1654552,1.1832425,12.9530935,66.9192292,70.0764951,58.838192,29.4778385,13.4553868,20.0403739,70.0226376,40.3039462,39.5733431,16.9558704,12.316113,52.6635129,3.3731656,37.4503882,6.2101911,1.058844,1.0649445,12.2210974,66.9922997,70.2164914,56.6725344,28.8035592,13.6760742,19.1047152,69.2530027,39.5436304,41.4539813,16.6731326,12.0642989,52.6453671,3.5174847,37.4586228\r\n739,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,0,0,0,0,0,0,1,1.3470437,1.3455757,18.2211187,67.2273787,66.3441123,60.0586835,30.4520646,12.5598452,15.9576998,70.4745148,42.2281499,38.9438885,21.8153735,17.7736823,48.7216211,4.6736806,30.1350113,14.462794,1.3333293,1.3444098,17.7528838,67.039523,66.6306383,60.7550993,30.6899384,12.4090825,16.0423092,70.0066971,42.0077227,38.168698,21.3456405,17.2355939,48.9121743,4.8039951,29.6030445,14.4531062,1.4456534,1.447464,17.887439,67.4784011,68.0847818,61.1247926,31.2051547,12.7374078,15.582507,69.5309431,42.5790523,38.1516924,21.5094749,17.2444338,48.6235606,4.811366,29.8027301\r\n740,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,1,0,0,0,0,0,0,0,1.6465669,1.7028194,20.1097848,67.5810426,68.3089093,64.6305531,26.5924144,10.8467503,15.5254937,68.2394647,38.7392591,43.2798037,25.1266195,20.3782846,51.4485629,5.1955428,35.811262,19.3107811,1.527997,1.5889664,20.278336,67.6823188,67.8178387,64.9205703,26.4118078,11.4712554,15.1807007,68.6887099,38.6487391,43.3908705,25.1687001,20.3807854,50.9031664,5.2273132,35.5060371,21.0835364,1.598398,1.6487707,20.3428699,68.4872763,68.3982391,64.7098751,26.3850869,11.7752577,14.4506041,68.9693479,37.99114,42.9950191,25.5230469,20.6194864,51.194918,5.3809085,35.0784537\r\n741,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,0,0,0,0,0,0,1,1.6175781,1.6173103,21.7380045,67.0486007,68.3525486,60.750019,28.9524956,14.9587706,17.1244418,68.2774024,42.4536364,39.3489952,26.755661,21.9742982,49.1693433,4.1742357,31.8841442,19.2568026,1.5393354,1.5390691,22.5476534,67.4425924,69.1950067,60.4438473,28.4383989,14.6865291,17.6829736,69.4606769,42.0930719,39.9406064,27.6076574,22.6414165,49.8930721,4.1917301,32.6442365,19.7517248,1.5245256,1.5242567,22.1774164,67.9356103,69.9417535,60.9235909,28.2226311,15.3775972,17.8408058,69.278913,41.7381534,40.0892326,27.8302753,22.5999257,51.1785372,3.8613193,31.7718111\r\n742,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.0411508,1.0565638,14.6965229,75.7361452,75.3609921,72.5347174,22.2399096,26.7269632,19.8032218,65.1540482,34.6925775,48.8802257,18.7924558,14.7719358,64.6042114,14.3881395,39.7664981,9.8949854,0.9773622,0.9824333,14.9856083,75.8826712,75.5604932,72.7328332,22.3178018,26.987405,19.7149849,65.0603204,34.5752882,49.8571403,19.2953946,15.2005052,64.5612271,14.3069507,40.4233536,8.9241972,1.0532346,1.0612693,15.0214932,77.2765486,76.6822992,73.5773769,22.569864,27.7796871,20.094938,64.7950378,34.6885596,51.0484099,19.0567084,15.0403024,64.2692605,14.2359622,40.9010286\r\n743,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.0879886,1.1336476,12.5708293,78.1542614,77.0581292,71.9999215,23.0974155,28.0126175,20.70047,64.9119141,31.8346828,50.4032539,16.1487539,12.4226714,65.4664119,14.5621907,38.7595657,8.4196819,1.1399576,1.2122285,12.6906102,78.1900238,76.979265,72.4104615,23.3783809,27.1760739,20.6755508,64.8061261,31.8841414,50.2918361,16.1225845,12.4035765,65.5286499,14.7671988,39.5862601,8.2151814,1.0739053,1.1368824,12.5916901,78.0722006,76.6477136,72.4046117,22.574585,27.0239185,21.1576983,65.2912428,32.5270977,50.6273708,16.2007753,12.4378392,65.1669173,14.6214264,39.3309378\r\n744,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,0,0,0,1,0,0,0,1.1519382,1.13846,13.0531362,76.1439364,76.2590317,70.3449996,24.1615266,26.1080685,21.8777679,67.0535668,37.0748574,46.1387588,17.0637596,12.6307001,67.155195,4.2212888,34.3283829,10.0593226,1.0829586,1.0556774,13.1027631,76.1987637,75.810579,69.2837034,24.3071332,26.5825677,22.6031045,66.5781687,36.6181425,46.0064061,16.8725465,12.4977729,67.3661917,4.2360544,33.6108268,9.4663088,0.95412,0.9416521,12.9743074,76.1665923,76.257246,70.1202424,24.5103777,26.8650257,23.1796113,66.4216142,35.8289955,46.1241591,16.1944869,12.148882,67.9942795,4.2439886,33.8204431\r\n745,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,1,0,0,0,0,0,0,0,2.3804533,2.4078977,27.1820528,71.048661,71.3633173,68.8246416,26.1404456,14.4646148,14.8947738,66.7682284,32.1877804,52.0325641,32.600809,26.9825288,59.4099323,4.5087107,34.858857,18.5089007,2.4856738,2.5365531,28.6573463,71.0472044,71.303816,69.1763145,26.339026,14.7484686,15.1602018,65.7634102,31.268258,52.5005941,34.1013555,28.5611159,60.2841321,4.1780261,35.155162,18.5500315,2.4968752,2.5629557,29.4867309,70.4538845,70.4929443,69.0482895,26.2754695,14.5227532,15.1134266,64.6637286,30.8044166,51.6549867,35.4635676,29.8550226,60.3320792,3.8807334,35.0363989\r\n746,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7397565,0.7535631,12.968718,63.1083677,66.0722891,53.5543032,27.748215,15.6035841,14.3279597,67.8758867,39.3316506,39.1677782,17.6945399,12.7170843,55.9940947,3.7336396,36.3917082,10.4659841,0.7633542,0.7892121,12.3286167,64.2059615,67.5644883,53.8550017,27.3411796,16.4487936,15.2393072,66.9287098,39.2082243,39.3931276,17.2433046,12.4487787,56.9251146,3.765007,36.5668739,9.3440966,0.8871309,0.8929981,12.8937965,65.5847343,68.0823391,54.4399246,27.5547744,17.1838923,16.2349325,68.0089907,39.7536353,41.0281128,17.8896307,13.0954892,57.3224036,3.8553617,37.8587884\r\n747,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3459289,1.3700137,20.8028807,77.551135,75.1472911,74.8641044,15.7231583,62.5370105,27.6281916,60.8244574,25.5312145,53.562594,23.4130114,19.259404,85.8284725,4.7419136,34.4677603,15.5198648,1.3271855,1.3332505,19.7783864,77.6419904,76.2597856,75.286181,16.0875301,62.6639707,28.8760844,60.9351922,24.8216374,54.5368749,21.7999158,18.1764403,85.6588456,4.5032468,34.5537006,15.2388658,1.2010116,1.2071959,18.6261944,78.8072089,77.0378396,76.2867755,16.3951779,62.7752702,28.5162557,61.3182382,25.2538037,54.2200659,21.1847357,17.4497936,85.2280019,4.5417348,32.9631635\r\n748,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.5223864,4.6168963,42.5028709,79.4218012,75.9921885,80.1565924,11.451132,53.2308092,24.893191,57.6568254,20.7402293,64.3746013,47.5501994,42.0201126,85.0743993,5.0087507,37.2754831,26.4333295,4.2756883,4.3433737,41.7053433,80.443804,76.6706272,80.9372822,11.4489842,55.1518294,25.2317946,57.4101086,20.8190442,64.2343573,46.0251835,40.5633755,84.9408418,5.2884492,38.0000513,26.6823306,4.154518,4.2358834,40.1484579,81.252949,77.4815536,80.7656123,11.7340096,56.5339904,26.9013591,57.6847781,21.3231319,65.1225391,44.8959083,39.4881738,85.3632311,5.3859582,38.3136894\r\n749,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3031695,1.3115639,11.5555718,77.7711045,76.1512559,80.8024259,23.2231353,10.120005,15.2940959,68.5063493,38.8051601,48.1354187,15.9557118,11.1501079,47.3519288,9.8033741,33.1270908,6.4553763,1.4904296,1.50653,11.4168504,77.3952245,76.2567008,81.1979682,23.6015924,10.7539736,14.6776829,69.3990291,38.6539808,47.3054621,16.2364188,11.5384407,47.3185452,9.5967561,33.635394,6.1027772,1.5634624,1.5330419,12.0325476,76.8834039,75.5178376,82.4033344,23.088772,9.7736832,14.555228,68.9770307,37.7811488,48.5072222,16.6095484,11.9128867,48.0906362,8.7759009,34.1277705\r\n750,0,0,0,0,0,0,1,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,1.1409392,1.2111514,9.5210874,60.8220632,63.7787061,58.1162802,28.5821979,9.8768102,15.9418183,68.3626585,41.5910214,38.5593407,12.9127282,8.590836,48.4741976,4.6299458,39.1881906,7.5967564,1.0025341,1.0852399,9.9544922,59.583637,62.673241,56.9119574,28.32274,9.1505616,15.632435,69.1595847,41.3550794,39.8566208,12.8014449,8.8403015,48.2541948,4.6726887,40.2692303,7.3276599,0.9766656,1.0645947,9.592152,61.685578,62.7555964,57.7654414,28.3853865,8.9137953,14.8503049,69.6711023,41.5295267,39.2343101,13.1500522,8.8711523,48.2550082,4.8954852,41.7786444\r\n751,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.288181,3.3006309,33.3225864,65.7356275,65.9585895,61.2004355,21.0049244,13.2229755,17.6163814,58.9568581,31.8657035,45.5999496,39.3714207,33.6976964,61.9970532,2.398009,35.1346992,36.9512854,3.2470443,3.2598449,32.175831,66.4211919,65.4913014,61.6875909,22.3363018,13.5143741,16.2123585,59.1943399,32.2629597,47.7796145,38.0393339,32.3837357,61.4928619,2.4701759,34.8478367,36.1580209,3.097299,3.0579707,31.0682073,66.8954774,65.6841516,63.6273093,21.9612665,12.8323806,15.2556382,59.0667732,31.0881727,48.3549844,35.9821869,30.7423411,61.0405553,2.4044315,34.758254\r\n752,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2.0072756,2.055721,22.3097315,62.3204784,67.6978293,52.1356262,28.2866579,5.7792106,13.8931584,69.7618487,38.6997011,39.3199633,26.8182926,20.4741764,46.3854204,3.6174195,38.6864859,17.7272175,1.9526978,2.0306719,22.6484854,62.1312923,67.2695408,52.9044503,28.6810629,6.4458786,15.9458787,69.2409495,39.1513317,40.6217619,27.7263421,21.1998079,46.6798098,3.8460535,38.6075823,15.9442464,2.1008982,2.1880744,23.0829924,61.9994235,66.7260099,52.5045572,31.0270078,6.056034,14.8657782,68.8350615,39.2727192,40.9321722,28.4467038,21.8802694,45.8813475,3.8944247,38.4808838\r\n753,1,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,0,0,0,0,0,0,1.6057412,1.5607209,9.4988384,55.7578841,60.4124694,54.1947673,31.7511555,5.8287485,15.1637962,70.7850753,43.0457391,37.3851499,15.1379306,9.9821496,41.3282547,3.4958806,43.0203531,11.6214018,1.5937945,1.5074322,9.5629576,54.3070659,58.8984881,53.3997227,32.0001379,5.8501218,15.1532356,70.3031144,42.9897398,36.3758323,14.7977928,9.7120826,40.2601479,3.4899512,42.5138023,10.8464633,1.4321452,1.4029562,9.7014137,55.2613721,58.2254375,53.2787871,32.8228681,6.3062143,14.0117327,71.1198186,44.4311634,36.584577,14.5301585,9.614243,40.3690039,3.5809802,42.1595267\r\n754,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,1,0,0,0,0,0,0,1.4741706,1.4765501,16.0664224,65.7603283,66.6523248,60.4417498,29.4555747,9.4576892,16.4487229,70.8252144,42.9194726,41.5043848,21.1345369,15.6124381,54.2974268,3.2864694,31.9776051,11.6666953,1.6258398,1.6203332,15.8877365,64.8416362,66.5978279,61.6207795,29.801932,9.2865678,16.125612,71.1871493,43.0460906,42.1574099,21.1512925,15.4113993,54.3547206,3.2521752,31.9141133,12.7427427,1.6734403,1.6678187,16.3972511,65.197633,66.4323045,61.8585928,29.7407506,9.5974144,17.4507208,70.598807,41.693471,43.8443582,21.8209494,15.954545,54.2088192,3.3321498,31.3996972\r\n755,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,0,0,0,1,0,0,0,1.3806473,1.3956455,14.6920125,74.0690873,73.8549313,70.9454307,24.8472689,22.975648,18.6270425,66.0846913,33.3286221,45.8010662,18.7986449,13.545835,64.620453,4.8574881,32.6328729,9.3156799,1.5300774,1.5645098,14.5455164,73.0287817,72.6588162,70.0173234,24.6962427,22.6326869,18.6748218,66.6544208,35.124656,46.2781169,19.0109874,13.6943592,64.7279368,5.0463369,33.1787252,10.5776478,1.3967297,1.4209319,14.5828443,74.0713411,73.1495456,70.84771,25.2675751,22.956285,18.8619059,66.3689552,35.8110078,47.373518,19.1336711,13.8909248,64.8479784,5.0698713,33.9272262\r\n756,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,1,0,0,0,0,0,0,1.1809223,1.2233003,14.6065177,65.3628745,65.9076158,57.5103531,29.583545,10.744783,15.2817407,71.4159025,40.3251288,36.6216284,19.4657997,14.43121,53.9431785,3.2467593,37.309226,8.0204778,1.1446173,1.1630132,14.9327768,65.955385,65.3007681,58.6387092,29.799369,10.5211052,14.8495054,70.9302214,41.0214474,38.3905889,19.1767472,14.3776824,53.7347043,2.9553744,37.4180452,9.2982138,1.2301444,1.248885,14.3557853,64.7083885,64.1866544,58.0815514,30.235281,10.875476,15.5834252,71.460191,42.7022974,38.3645542,18.8195536,13.8513475,52.3918546,3.1275664,36.0880514\r\n757,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,0,0,0,1,0,0,0,1.1727902,1.2281393,15.705292,74.9239342,77.2332687,71.4978766,25.6304829,24.4177871,19.5535106,67.8826961,35.1828692,50.0225045,20.2564663,15.3951715,66.8938155,3.9353193,36.8435599,14.1600237,1.2632414,1.3188578,16.4836736,74.509153,76.2254967,71.8679296,25.427329,24.3658743,19.8373868,67.9722793,35.55027,50.0485786,20.8624059,15.979809,67.2290954,4.0350227,35.9275334,15.2860832,1.1898435,1.2485414,16.6585957,75.2025023,76.0956906,71.6651409,25.91621,24.0198757,19.2717028,68.2723689,35.8089893,51.2961692,20.5423337,16.140535,67.3259877,4.2106093,34.7332773\r\n758,0,0,0,1,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,0,0,0,1.5078946,1.545597,12.005826,69.5805564,71.3236895,69.5931839,29.6037429,7.0245523,12.5413523,65.14098,42.5172307,35.1682715,15.8937966,11.4578899,40.3837773,6.1832997,35.8149402,9.5864394,1.466409,1.5042368,11.679817,69.6872515,71.2529556,69.2786977,29.3426715,6.4697608,12.2466115,66.6238498,43.4699896,35.1569256,15.9411729,11.4426132,39.6418919,6.6531553,35.6802672,8.7548351,1.4666204,1.5046453,11.4013575,67.1248139,67.5361786,68.2865071,30.4927225,4.5821571,12.7021296,68.3729488,44.941554,33.8440212,16.1533089,11.6234155,37.6906467,6.4949452,34.4767921\r\n759,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6510564,1.6478584,23.7061149,78.6240378,74.9930611,75.4534886,14.9794495,60.3534185,25.683456,59.5474955,25.0935047,57.5401143,29.0487049,23.9070304,86.340504,4.3240407,33.9311913,23.5975696,1.6085984,1.6053579,23.4836787,77.4287066,73.393782,75.7257131,15.1566686,59.8562363,24.7432238,60.0435317,25.3409711,58.420575,28.1703404,23.2603989,86.5943503,4.7798092,34.1490217,20.3680229,1.4880677,1.5013303,22.5979465,77.0615602,72.2111031,76.8765629,15.4527268,61.2056577,24.8944971,60.7093122,25.8369071,58.387249,27.2612698,22.5405463,86.4798903,4.8098053,34.4943828\r\n760,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.0432893,1.0805236,13.84499,77.1171445,76.2714946,72.5397022,22.5498433,24.7192353,21.3177886,65.9568672,33.1030996,46.8447857,17.9143984,13.8518994,64.091292,14.39697,38.473647,9.8142165,1.0240126,1.0603118,14.3432133,75.7904073,75.3079426,72.9617131,22.2184413,25.7432286,21.199666,65.7047774,33.4958759,47.127383,18.0136535,14.0546077,63.9102483,14.7111678,38.8414443,10.2245381,1.0575504,1.0857063,14.5848233,75.3677359,75.0282749,73.2434274,22.2396512,25.8788617,20.2698233,65.5171855,34.3412668,47.5877592,18.3683333,14.4307802,64.4045079,14.688284,39.8529801\r\n761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9395557,0.9802697,10.9354183,79.4074468,78.5095608,76.1902115,26.136003,25.6358618,17.030558,63.6007426,34.99044,49.943438,14.7038585,10.1506211,62.4355895,8.5660798,37.0979107,4.9132986,0.9590611,1.0307569,11.4411313,80.2594543,79.2700948,77.3729504,26.7428967,24.9856536,16.8412315,63.2285425,33.6967756,50.3506863,14.7750416,10.4123946,62.7823414,8.5535268,37.5000088,4.6627021,0.9506226,1.0060243,11.7804344,80.6834978,79.7163077,77.0946564,26.1900222,25.1600781,15.6542884,62.0846141,31.9688264,51.6380266,14.8453168,10.3395984,63.2904979,8.4339406,37.1023547\r\n762,0,0,0,1,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,0,0,0,1.5924605,1.5920504,20.51146,69.1879267,67.5678219,68.8215069,23.3991786,28.2433384,15.9128767,63.6919433,39.3847436,45.4884372,25.4915474,21.1418937,67.5591602,4.8202258,33.4965821,22.1437521,1.4548211,1.4544066,20.9723593,69.4601022,67.3863288,68.6724646,24.2174997,26.6860549,16.8526438,64.1412193,40.2074715,43.8246573,25.3654867,21.2138986,66.6978238,4.8243372,32.9593304,22.2730301,1.6157402,1.6241777,20.8411098,69.9891187,68.0858161,66.966283,24.1822123,24.8594951,15.3155941,63.7081295,40.5665903,44.7840933,25.119797,20.810823,66.2925691,4.9344991,32.4418648\r\n763,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.5374935,3.5675483,39.3419621,72.8788043,72.1507544,74.6584711,11.6089602,28.8765395,21.0407539,63.9660913,22.8647318,57.2828803,44.3014307,39.9603731,74.1476606,2.588929,33.6972344,27.5656325,3.3844359,3.4154918,38.377953,73.2282905,72.8256569,74.2673305,11.927514,29.5280857,21.8169186,63.1746298,22.9214442,58.9746737,43.5869565,39.5289855,73.2839314,2.3507463,33.5526316,27.5485437,3.840418,3.8936335,39.7019086,74.5638602,73.1656619,75.202131,12.1063921,31.4908612,21.8409324,63.596793,23.0068752,59.3360472,44.8534668,40.6361687,74.2517268,2.5423729,36.002886\r\n764,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.1613937,1.1965342,14.2582009,70.6726959,70.8691996,62.2391208,26.4819565,26.194911,19.7128148,67.9151086,37.8870136,44.4918056,18.7018898,13.6548357,68.8930514,3.450902,34.3015676,12.7289167,1.2320276,1.2674455,13.5471296,70.2786134,71.1717306,62.1114575,26.5473179,26.649385,19.3620247,68.4640489,37.9562091,44.8252132,18.3333281,13.3225739,68.4835706,3.4000891,34.8169966,13.2540915,1.1621487,1.1725936,12.7950853,71.7634497,72.7712501,62.126226,26.8634425,26.4784267,19.3223769,67.2770545,38.0298139,45.8304548,18.338135,13.3237099,68.3108259,3.4408387,34.8591546\r\n765,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.5844997,2.4984733,23.2981678,59.2117961,64.9149794,51.9621421,23.7170578,16.7857308,19.3450464,64.2381482,33.3105982,44.497808,31.0639293,23.4992794,60.7858185,2.7434515,39.2371951,31.2366924,2.4752601,2.3983133,22.4636009,58.2162433,62.3511997,51.8027959,24.5481919,17.060215,19.4777598,63.4277355,33.873806,41.1033964,30.4358704,23.2715536,59.803408,2.992329,39.2082359,29.6511577,2.3471159,2.2687582,23.0024236,58.2038576,61.8376121,51.8209152,25.3173585,17.271709,19.2951466,63.5272551,34.4620964,40.4571052,30.3580487,23.4526914,60.285412,3.1510428,38.490755\r\n766,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,1,0,0,0,0,0,0,0,1.8758986,1.9353295,23.922117,69.0597258,67.6666796,64.674867,26.8380955,12.2329227,15.0871831,66.702564,35.8141329,44.5856819,29.2789482,24.4077606,55.6079097,4.9245885,35.6663685,23.6067353,1.6796742,1.7065245,24.1126385,68.1743365,67.7463036,64.8891168,26.6873311,11.8577291,14.9380611,66.1071955,35.7484866,44.1197329,28.9064842,24.1121651,55.5271786,4.8948433,35.2446521,22.5182978,1.7577585,1.7851891,24.3170903,68.2969088,68.0424029,65.0071182,26.8529953,11.9337097,14.352846,66.4662358,36.164988,44.6476283,29.1603623,24.2284411,55.7373212,5.0416954,34.850839\r\n767,1,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,0,0,0,0,0,0,5.1826472,5.3352993,38.4514372,58.0516615,62.5630279,51.5383637,20.8821036,12.0409335,17.3415167,61.3429041,30.7049912,44.9090351,47.349266,39.8501945,62.1603201,2.3277347,41.6722383,46.5855629,5.0509819,5.2120211,37.8669632,58.8760702,63.1485975,51.6676304,21.1785813,12.6888756,18.7341916,61.2690732,31.6297645,44.7590726,46.6917962,39.2168655,62.6857271,2.1934397,41.7412357,46.8351183,4.6540407,4.7971425,36.6389399,59.375593,64.0247574,51.958652,20.6462768,11.9279433,18.5281514,61.7548564,30.9189032,44.2440361,44.9393925,38.0454757,63.3300365,2.3626876,40.4232005\r\n768,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,1,0,0,0,0,0,0,1.2308259,1.3241142,12.609942,66.9161352,69.5163783,58.2554977,27.9979329,10.5840096,18.4786959,71.079943,38.8904918,38.0459506,18.4171454,12.9422866,54.0525306,3.0205158,36.4241265,8.4775057,1.2725134,1.3847182,13.3458715,67.3060278,70.310104,58.1601837,27.905741,9.3919699,17.3448286,71.0087449,38.9009489,37.2461622,19.0503304,13.4884719,54.6112149,2.904962,36.7113793,7.2881331,1.3228508,1.4344976,13.5900686,67.576518,70.2061563,57.5595257,28.7700338,9.613341,16.9679433,71.1139351,39.473058,38.2185013,19.0916052,13.5884063,54.6778306,3.0819286,37.1372825\r\n769,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.9179729,5.0336688,40.4762013,62.018601,65.3768418,54.3029988,22.1099833,17.6121777,17.9992466,60.6545374,31.5293154,49.5321301,47.9968956,41.1984489,64.8207059,3.1176116,41.9920293,38.5698156,4.7609726,4.805314,40.1314733,63.7236139,67.0702797,56.6508174,21.8995619,17.9515397,17.7846465,60.7166404,31.3398081,49.8139132,47.6046462,40.6855286,65.9497001,3.4129374,41.8086344,36.9574476,4.7108069,4.7787547,38.2841038,62.1557078,66.0881696,56.384442,21.6357075,18.4281926,18.0539848,60.9625341,31.1523939,49.8922037,46.3582095,39.1715781,66.1853612,3.3003062,40.5024462\r\n770,0,0,1,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,0,0,0,0,1.2365736,1.2448577,9.740756,77.0423592,76.9609139,72.7747433,23.7138107,22.5914447,19.9580005,64.2595684,37.2676322,50.0178946,13.8017074,9.0889389,57.014315,7.0746906,39.6780786,6.4363817,1.227669,1.265468,9.7825737,76.8898122,76.8540645,73.2941677,23.9867739,22.443521,20.1701471,64.025983,36.9711764,49.2142207,13.6088793,9.1006689,56.413273,7.1021081,39.8457316,6.7835366,1.2369494,1.2697281,10.0830198,77.0541316,76.6869021,73.3525678,23.1703037,21.9542006,20.618681,64.1490104,36.3988177,49.1361513,13.7821151,9.2782991,56.7183799,6.9836913,39.7171047\r\n771,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8650707,0.8650707,14.5580075,70.314421,69.898357,73.7058399,19.2612283,10.8595539,21.00151,69.828743,30.9784915,41.6691146,17.9501699,14.5526614,57.382134,3.9441748,39.6052632,18,0.8826484,0.8826484,13.7203118,70.2646384,70.5203558,72.4371387,20.328545,9.6974922,21.4355669,71.5824754,31.6640214,39.8879835,17.3098751,13.7911464,55.1234568,3.9251208,41.6442049,16.3793103,0.8836099,0.8836099,13.3528607,68.3633584,69.8272315,72.6128432,22.1342979,9.1718322,20.4880498,71.5730461,34.1213969,38.7556835,17.2902494,13.8888889,53.198032,3.6658654,42.9503916\r\n772,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6260319,0.6822505,13.4627486,62.9660156,63.7650977,56.2425742,34.8839531,5.770753,15.2594242,66.4702869,44.4246988,32.0861087,16.4038902,11.4794698,40.5177115,4.6403625,37.1074833,11.5819447,0.5854048,0.6607091,12.1895305,63.3784911,65.2234755,55.889325,32.8017021,5.1253597,15.6268461,64.6377977,44.6557725,32.9188194,16.1878011,11.1516068,40.0939539,4.6638743,39.1486274,11.0119315,0.5708778,0.6467534,12.5014945,65.2504231,65.6931937,57.2624187,31.665984,5.3471022,17.1993993,65.0329304,43.2350566,33.1397653,16.3975502,11.2151304,38.7360394,4.6069408,41.9056128\r\n773,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.4703792,2.4400265,26.1259545,61.5814847,62.7213185,58.431471,26.1802609,12.3501521,13.8313298,63.9953546,38.0523801,44.1666925,32.0351814,26.5348136,58.410453,2.5649117,33.6722366,38.5333661,1.9087959,1.8636263,24.9349348,59.2172303,61.3394701,57.2331802,27.917153,10.0405526,13.7061756,65.8219041,39.0356748,43.8686986,31.746332,26.3004098,57.3943667,2.32341,34.4806124,36.1190164,1.8510682,1.8052781,24.7209712,59.1741573,60.5507899,57.5299359,28.2238984,8.8518836,14.4522041,66.182284,39.4524834,41.1452164,31.1240766,25.8003439,56.7227213,2.1630052,35.9627548\r\n774,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5452772,0.5353909,7.7532287,79.0327966,79.7944862,80.640836,21.9176267,46.0686764,23.4284655,63.1383227,32.2405882,48.8011375,11.813339,7.8133371,73.1173886,6.5407743,34.813597,5.8917235,0.4841272,0.474177,7.2873267,79.5321392,80.163046,80.8815898,21.7206313,44.2286686,23.4889362,63.0832118,32.8413594,48.9998234,10.9946296,7.2311867,72.4649864,5.9326682,34.325843,4.8657751,0.6957146,0.6857146,7.0776747,78.5086374,79.4419538,79.4004918,22.7344362,42.3645624,23.6278362,63.5825931,33.7513583,48.0591268,11.0417863,7.1351101,71.9402186,6.024428,34.5464768\r\n775,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0021412,0.9601971,13.0225895,80.0062851,78.1330809,82.8567657,22.3039499,47.1271185,22.2502531,65.6842796,33.890978,54.5118323,18.3780094,14.5221733,76.3562169,7.043715,34.5083955,11.0655647,0.9465806,0.9042935,13.4964488,79.7437029,76.6958006,82.4551303,23.3095615,45.4630719,20.9719069,64.9071397,34.5269298,54.8812527,18.6685888,14.5106641,76.0264721,7.2332105,36.2414106,10.5574235,0.9240722,0.8867852,13.6107752,78.729723,75.3309483,80.2207559,24.6992635,44.7592804,20.6264627,65.8822384,36.0592764,54.0621838,17.7912251,13.6420188,75.4254715,7.0857566,36.3676869\r\n776,0,1,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,0,0,0,0,0,2.7997046,2.8119072,28.4900526,73.0661883,69.6779002,65.7480566,20.395368,15.3512332,16.674663,61.0684832,33.701204,53.4850811,33.5447213,27.0422871,65.4421352,3.3510511,32.7754925,20.94123,2.7449663,2.7901169,28.8208157,73.6291933,70.6998819,64.5351672,19.7752709,14.5469022,15.924192,61.190055,33.1467117,53.8331879,33.7927409,27.4356699,64.9486914,3.2215031,32.2461206,20.6300896,3.0169728,3.0628042,30.0794651,73.1871856,70.5360401,64.4222328,19.1009807,14.1459962,16.3817965,60.5625958,32.0347853,53.6395469,34.9751609,28.3561865,65.3285553,3.3184549,33.1120657\r\n777,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6477971,1.5525181,25.657549,77.636522,76.0855334,68.3302735,24.804935,59.7452661,26.8180126,66.6898885,36.0171285,53.1900908,29.2318592,24.7627977,85.5911069,2.9829489,39.8957839,20.3989641,1.3772809,1.3452883,25.3543151,77.7178113,77.4176223,67.0930695,23.4481005,60.1707873,24.9339666,64.6448174,34.8728727,55.6844746,28.7279146,24.3264313,85.5579765,3.054412,39.0115572,19.621604,1.2456331,1.1979888,25.2153328,77.1999263,77.3410026,69.7835473,22.9237552,62.3343487,25.5526117,63.9806994,33.8263789,54.6935392,27.9406194,23.7152286,85.7489997,3.1053196,38.6099529\r\n778,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,1,0,0,0,0,0,0,1.1731257,1.1800199,11.9186341,67.6162779,68.9850453,59.8630919,26.5045347,11.1749645,19.6003492,69.5248826,39.6500161,40.5493124,15.9041087,11.0358733,53.1830174,2.9356745,34.9578174,6.3934489,1.1845411,1.2020788,11.9655447,66.5418729,67.8828528,58.6764162,26.8441494,10.6653757,18.3791536,68.2278004,40.3858745,39.4552386,16.0720976,11.1296899,52.4712528,3.3118823,35.1550561,4.8333382,1.2036048,1.2212104,12.4651395,67.0054502,68.0377505,59.1430378,27.3254761,11.701053,18.7157968,68.6775707,39.7863889,39.7735345,16.3931409,11.8798961,51.9238055,3.2019677,35.8883787\r\n779,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8336299,1.8690019,25.6158036,77.7846048,75.1147919,73.4020002,12.9995987,63.0936744,27.3547952,57.6435941,21.8597999,58.6996342,31.6807536,26.100905,87.0611088,4.1042257,34.4075037,25.7592275,1.8648285,1.8824459,24.6223337,78.0608026,75.6569964,73.8552362,13.9607191,62.0819307,26.7812713,58.3337521,22.5540389,58.4808565,30.5041957,25.0515039,86.5631819,4.2519983,34.0554172,23.9331137,1.7065992,1.7350803,24.1369103,78.6162639,75.087953,75.5046248,14.3351613,61.0675375,25.7208933,58.8066895,23.6967334,57.5834423,29.6035333,24.2586891,86.4501241,4.3272626,34.2599478\r\n780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0806281,2.1066314,24.4318578,65.4907247,66.2459948,55.602626,27.965017,10.9170198,15.8239575,68.6550459,41.2500596,44.7945466,29.9624437,24.2844894,53.6778067,3.4350218,36.2180261,17.5079289,2.194223,2.2204575,24.8190978,65.4948681,66.2068218,55.9426269,28.5263498,11.2730007,15.4635794,69.6922949,41.6913462,44.9341796,30.4256184,24.7479346,53.1863494,3.4989458,35.1786978,17.9116188,2.2876444,2.3477538,25.3600461,66.103464,66.9497029,56.1410235,28.0445924,12.2251002,15.2587781,69.4617307,39.9395255,44.6072313,31.5501143,25.5315337,53.8124862,3.3453854,35.3698735\r\n781,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,0,0,1,0,0,0,0,1.1276513,1.1540833,15.015331,73.4812084,75.1419814,59.8389422,25.0119947,22.5452462,20.2558393,65.481041,40.1153081,51.6102079,19.9910647,14.7460138,64.9032808,4.5042295,41.3832698,11.5659715,1.1172916,1.1571797,14.8281349,73.0867217,74.9768264,60.2724875,24.9163543,21.8073295,19.2737288,65.1147858,40.3325535,51.0943744,19.8909141,14.6309318,64.2282411,4.433468,42.0970543,12.0641957,1.1698376,1.2038999,14.6259446,72.5858509,74.5238529,60.1000613,25.0725015,21.6968377,19.0675581,64.8202785,40.3396154,50.3287967,19.8945747,14.5544809,64.1643192,4.5171634,42.0102764\r\n782,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3000148,1.318616,13.1494864,58.961279,63.3036778,52.4790571,30.999639,11.44798,21.4231202,69.074664,39.6963692,39.0199227,18.4527455,12.9139158,51.8651913,4.352041,43.4124041,12.9432624,1.19707,1.2158918,12.2483269,60.632508,64.3496547,53.3042184,30.9436062,11.4743427,22.0861448,68.6107673,39.9395278,40.1726529,18.0084684,12.0157344,51.1000175,4.6762757,43.7249825,12.5441696,1.0614969,1.0809559,12.0879764,59.2442658,62.8524003,50.5539843,33.2083508,10.125006,20.7338935,69.9683826,41.9880373,40.1885361,17.6894048,11.9286056,49.7924116,4.1751697,43.5915598\r\n783,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.6574693,1.6747869,14.6710438,61.0009401,66.0357645,51.3287661,30.0137954,4.55886,17.8859893,68.7578903,41.8622361,37.1962091,20.7847406,15.1847868,43.0510985,3.8777788,39.6370048,12.3949684,1.6298157,1.6464419,14.8275992,61.8121348,66.739168,53.2449269,29.305795,4.4708873,18.4084826,69.2365079,42.4629573,37.4879243,20.6200333,15.4798436,43.5065619,3.7892648,39.5351183,13.4615557,1.7277015,1.787356,16.1680098,63.2039479,66.6982725,53.9339926,29.1883335,5.2420753,18.8307055,70.7571766,43.278973,37.4306199,21.2791351,15.7357306,43.783775,3.5666817,39.5858247\r\n784,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,0,0,1,0,0,0,0,1.1607075,1.1597884,13.6765669,70.3997633,71.6024126,60.8110669,29.5222532,14.0576951,15.3872087,65.8731552,41.5021974,48.5936644,18.3099567,12.9389559,55.809267,4.3733449,40.6008897,8.4488812,1.1967997,1.2098262,13.8123978,70.5382577,71.6615268,60.3690257,30.1801582,13.9002273,14.4479486,66.063968,41.5888654,48.1411666,18.2994247,12.9000357,55.8411069,4.4443216,40.4433293,7.9876523,1.3170899,1.324131,13.6960236,69.7090926,71.6938448,60.4981648,30.5848306,14.3540272,14.932019,66.4899838,41.8996649,47.961458,18.3373622,12.8922394,55.601437,4.4658861,40.5533303\r\n785,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,1,0,0,0,0,0,0,1.5142536,1.554939,16.751877,66.785917,69.3639319,56.9003719,24.4969463,15.2888011,18.2443639,68.6014269,37.5093427,45.1908214,21.5453176,17.2578506,62.4760312,3.2445084,35.9305875,16.388309,1.404023,1.4557064,16.6985239,66.7617889,68.9404068,56.9513105,24.8858388,14.9335561,18.3068804,68.8814297,37.3427302,44.4016503,21.1837284,17.1215374,62.729361,3.4842598,35.2464267,15.631929,1.404724,1.4263441,16.4601887,66.090277,69.721151,56.3861513,23.4006631,15.0288276,17.9134145,67.5695168,36.9849915,44.614779,20.820406,16.733726,62.8356777,3.3458963,36.1181703\r\n786,0,0,1,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,0,0,0,0,1.9003425,1.9273837,23.1811263,78.3013981,76.9028239,73.9034562,16.4644823,59.9191948,26.8000535,59.8238105,27.8649151,58.8439922,29.4392927,24.0701268,85.4686545,5.1647024,36.9994468,19.7789212,1.872773,1.9083131,22.3006488,77.5943314,76.7847308,74.1891348,16.9269459,60.0069725,26.6096114,59.758966,28.0330546,58.0851437,28.4228638,23.2523267,85.1972219,5.3068534,36.4558321,18.9929797,1.9456152,1.9715374,21.6911532,77.4737998,76.4284281,74.3936128,16.9570757,59.4695598,26.1203412,59.5796776,27.9757417,57.8670908,27.6425097,22.5429928,84.9609226,5.3150555,36.542034\r\n787,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9108546,0.9804064,7.9947284,77.3265905,77.4721729,75.1717972,23.2872184,26.8366456,19.6390672,66.1347294,35.8227172,50.0626049,11.9104631,8.3219438,62.3299293,8.9140751,38.5065292,2.7251198,0.939693,1.009721,8.0772193,76.2254498,77.1598304,75.1678464,23.1503859,26.3654086,18.7396764,66.574301,35.871262,50.5156342,12.1458243,8.4830711,62.3580029,8.8034211,39.5731195,2.4418616,0.9646149,1.0359755,7.9115171,77.239161,77.57647,74.6260645,22.4328648,26.6373041,17.7911606,65.816498,35.7293897,50.8551732,11.9115066,8.3008879,62.2280682,9.4218077,38.6249035\r\n788,0,0,1,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,0,0,0,0,1.3015135,1.3397966,12.6967734,78.5355941,78.1450903,73.0349948,20.8365372,46.7500175,23.6646961,63.3711155,34.8259753,53.6257322,16.9746885,12.56348,75.3837766,6.0148538,37.6095089,11.3431996,1.3643839,1.3923582,12.8264127,78.3330774,77.9347016,74.0448128,20.7907087,45.8921708,24.0799257,63.3195057,34.8945831,54.0678661,16.9039034,12.4522289,74.7128719,6.19933,37.3422437,10.8178635,1.3434019,1.3614471,12.2697995,78.6398306,78.1218311,74.5425095,20.8296501,46.2530044,24.3692095,63.2065623,34.6762598,52.7284201,16.3866199,12.0025011,73.9768701,6.3154181,37.1712871\r\n789,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7448126,1.7735893,13.7283144,53.7143534,60.2376747,54.2834197,28.9315628,5.3729213,14.5649165,68.5718218,42.5570494,37.1557981,20.3098641,14.2311611,43.9661121,3.5355272,43.0471915,13.8834939,1.5109086,1.5397842,13.3345257,53.9537806,59.4248307,55.1195985,29.9288831,5.7707227,14.1402019,68.8772502,43.5651976,37.5826161,20.2467332,14.208245,43.9661011,3.4934551,44.6616273,13.8736086,1.6067126,1.6352164,13.4200877,55.7136371,59.6460906,55.5669541,31.015159,5.4566773,13.8689098,68.3488169,43.2414997,38.3491212,20.4708882,14.3956862,42.9630026,3.9538338,46.1128167\r\n790,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,0,0,0,0,0,1,0,2.4222168,2.4222168,21.7800614,65.6883377,66.7012812,60.425438,27.1056407,7.9012952,19.0559711,64.1960701,32.9702223,42.3035929,26.7937334,20.3662108,52.2889055,3.2418023,44.4189451,21.5150863,2.272819,2.272819,23.1408641,67.2958701,67.0579137,60.0749671,25.6564957,8.0558043,18.0687269,65.672738,33.8069968,44.5563695,27.5176962,21.2116084,52.4301703,2.8200672,43.6596682,18.9440641,2.3479875,2.311653,22.5996268,68.5310366,68.9646026,56.8337683,25.1239555,7.984937,20.9576975,66.2977407,33.33458,45.0229906,27.6272711,21.3439713,53.099907,2.8937543,43.967496\r\n791,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,0,0,0,0,0,1,0,1.8231549,1.8815376,20.3861022,59.857482,71.2364588,58.3348017,25.2290022,6.3553876,19.0758027,68.1862956,41.0603829,40.0347677,27.1641921,21.819299,54.4289179,3.0312524,40.8611836,18.5714792,1.8029195,1.8608227,20.193661,61.6400603,71.2650167,57.4306714,23.7557244,6.5569176,17.8671712,67.0347386,39.4321227,42.7204196,27.3360263,22.0234825,54.6376378,2.9349801,41.4218098,19.942243,1.52146,1.6006189,20.8695672,63.0672614,71.8163202,55.2763689,22.6662255,7.1838622,18.4513852,65.929034,37.7465956,44.6675563,27.7880682,22.075885,56.0282005,2.6735169,42.746793\r\n792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.7158211,2.7937402,32.7599811,81.6769084,77.2084466,82.9714185,15.4710948,56.9125747,24.2813083,60.9373601,25.334041,59.5414181,36.6090006,32.0757474,84.5067937,6.3479804,35.2474975,23.4099348,2.5710465,2.6362743,32.0871337,81.3730325,77.0464086,82.6817147,15.3188091,56.9877332,23.3995578,60.7318098,25.3456376,60.1829345,36.1144769,31.5414909,84.4633558,6.55967,35.7371817,23.1407679,2.3760741,2.4509383,31.708681,81.5570626,77.1832971,83.4153372,15.3216257,58.0255358,23.0238912,60.4535971,25.3047095,60.7160735,35.6407238,30.9754836,84.4505285,6.4178458,35.9833781\r\n793,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,0,0,0,0,0,0,1,1.9795452,2.0183711,23.3935378,67.1834606,66.3933619,64.1377517,29.7505253,16.1752212,18.0141325,66.5479418,38.2525237,42.7174888,27.1824286,22.3130428,53.3885119,3.7327367,29.8350712,17.9119054,1.8308197,1.8131633,22.742262,67.471885,66.6185608,64.0855417,29.5945608,16.3596462,16.615465,65.9723815,39.0814348,42.6995533,27.3591175,22.3766865,53.3385969,3.5811505,29.4064193,15.557766,1.8063646,1.7890652,22.761901,68.8555416,67.184765,64.2500434,28.8775387,15.7448235,16.8958744,66.381725,38.2872488,44.5539213,26.8224207,22.0864709,53.9196267,3.4212184,29.4311194\r\n794,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,0,0,1,0,0,0,0,1.1358007,1.1391751,12.7719281,72.4847621,72.7166977,59.9184597,26.4364754,20.1281535,17.9129212,64.3916713,41.8083698,48.5251339,17.8380864,13.0779286,62.7167268,4.7167802,39.9869145,11.7250431,1.0511745,1.0687057,12.8848288,72.0876429,72.9966331,60.4402481,26.1037164,20.0099603,17.9018371,64.5568816,41.2440475,48.3375711,17.8005832,13.0545776,62.4433945,4.4631839,40.1299347,11.6561604,1.0337494,1.0515556,12.7635838,71.7768221,72.929616,59.5192159,26.3838218,19.9209256,17.1847109,64.8028959,41.3008366,48.9388441,17.55955,13.0077622,61.6767832,4.2864609,40.6925024\r\n795,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,0,0,0,0,0,1,0,2.1015503,2.1015503,21.8653816,63.4979897,68.2914139,55.6848385,20.1785963,6.7573105,18.445524,67.7119504,36.5699085,40.8368204,27.1994872,21.5217247,53.4676079,3.301274,42.7731214,19.9232016,2.1437671,2.1437671,22.3141253,62.1107299,66.2581302,56.3493698,20.3888707,7.0384112,17.7107384,67.7200427,36.8973644,42.2308862,27.8235643,21.5446184,53.2446624,3.695906,41.4782439,21.1339432,2.1630229,2.1999698,21.9472062,62.6655211,65.9220587,57.4701001,21.3114006,7.6367714,18.1791462,66.5442075,38.0532153,43.3802281,27.1520062,20.9074351,53.4427486,4.0043723,42.3623226\r\n796,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,0,0,0,1,0,0,0,1.0058043,1.0637112,13.3473143,74.3680011,74.5005821,70.8688069,23.6074763,25.0188586,21.3142237,67.6242739,36.8970931,44.5717962,16.3958368,12.6041814,66.5998023,4.4178832,34.3334772,8.4966125,1.017704,1.0766779,13.2062951,75.25171,74.9351872,71.1351456,23.8914845,26.0899311,21.3516218,67.688991,37.2570628,44.9463858,16.4243091,12.6378581,66.7543597,4.5580496,35.2595732,9.22464,0.9824792,1.0472581,13.0923595,75.7027567,74.9731404,70.9018077,24.8597151,25.2677912,21.7670574,67.1380601,37.0936067,44.7775499,15.9040024,12.3234959,66.5643479,4.3029825,35.6564199\r\n797,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0755058,1.0934547,10.1268491,64.14405,66.9777785,60.8385145,28.8113785,6.0472569,16.4769144,68.0459635,41.0363892,38.6889228,14.4211525,9.9302185,41.880975,4.7083525,36.3741474,10.8932633,1.1876218,1.2375423,10.6732597,63.5454176,66.575276,59.5195601,29.1683407,6.0102984,16.6070667,67.3541245,41.6700094,37.700091,14.7888599,10.3888754,41.6447132,4.7879611,36.1837665,10.3697987,1.2809214,1.3536342,9.6694857,63.1276576,66.7946456,60.3030575,29.4990146,6.3189992,16.3498928,66.94267,41.7961447,36.8866303,14.6833135,9.9278658,40.6409213,4.6811856,36.1736628\r\n798,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,0,1,0,0,0,0,0,1.2921215,1.3015075,17.1043257,63.0172532,67.1208499,49.9715129,27.6111405,12.6420338,18.8643624,67.5996179,40.2546155,39.220907,21.283661,17.2984826,56.4927916,4.3857262,36.9710135,14.5457319,1.248735,1.2751489,16.5027087,63.7178919,67.7226218,50.1726395,26.2854366,12.2577619,18.4959429,68.3691174,39.2405108,40.0499217,21.1649458,16.8082297,57.1059766,4.3647489,36.4148116,14.7973198,1.3513518,1.3218353,16.9725757,63.9779076,66.815458,50.6370161,26.5850532,11.9019376,17.6707558,68.045403,39.1295105,41.099332,21.4598151,17.0411509,57.3866288,4.4909473,36.3942877\r\n799,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.1242564,4.3163655,35.6112119,83.3207336,80.0137086,79.0462265,15.6663715,48.8281492,24.0862366,54.4792876,21.3547573,66.6639285,44.3943117,37.2026247,81.4240185,4.0073649,32.8969358,22.2479104,4.6061756,4.7747648,36.9537685,83.058499,79.6457242,79.5757317,14.4405504,49.8815344,25.127296,54.5222972,21.5379764,66.143253,45.7738854,38.5060603,82.5385567,3.9872203,33.5261727,23.1838469,4.7676432,4.937159,38.2776082,83.1429849,78.9694296,79.8954397,13.9835222,50.992389,25.103763,53.2496141,20.7333672,65.6928222,46.6097043,39.5036667,82.8048499,3.8933872,33.7875456\r\n800,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,0,0,0,1,0,0,0,0.9391028,0.917025,12.9839938,71.7035284,74.1784604,67.634137,25.3238293,24.4806103,20.7730652,66.8525559,36.1716768,44.5574379,16.4010345,11.9686378,65.5197797,4.1973922,34.5343813,9.1924712,0.9478077,0.8997865,12.5529805,71.0381023,74.6325596,67.8932655,24.4610975,24.690675,20.575231,66.9890303,36.866961,44.5233234,15.8549672,11.8207096,65.8368156,4.4825632,34.245446,8.3627285,1.0176772,0.9703295,11.898122,69.6985638,72.9121099,67.3647252,24.0819782,24.2910485,20.3395584,67.2101053,37.2386907,44.2755778,15.8460677,11.7923343,66.178591,4.4490069,33.9934418\r\n801,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,0,0,0,1,0,0,0,1.4607001,1.4237103,13.9785186,74.7232281,74.4909428,73.2068186,26.4629464,22.0514453,18.6541548,65.9715625,32.9714647,44.3087797,18.229444,13.379346,63.926246,4.2378133,33.2839782,9.9920239,1.3586628,1.3180311,14.0403384,74.3345735,73.7805144,72.0529582,24.6890551,21.6545088,18.6597809,66.1231877,32.5820244,44.7685229,18.1902666,13.2153177,64.1336115,4.3708799,33.2354295,8.7842419,1.358855,1.3180798,14.309562,74.5678278,73.650784,71.8222627,25.1289052,21.7581152,18.6494537,66.3940534,33.1306391,45.332845,18.6845526,13.3625579,64.0438839,4.5783552,32.892436\r\n802,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,0,1,0,0,0,0,0,1.4308606,1.4352309,15.4262641,63.3194333,67.9190187,51.3473137,30.376872,7.8127614,14.2504161,70.1299262,39.1804426,36.0452529,20.4123991,15.7054145,49.694104,3.3982994,37.9363775,10.4309664,1.5166145,1.5209589,16.3410661,62.8461668,68.5182379,52.2543951,30.9398162,8.0529045,13.8876654,70.4734664,39.6427116,36.1239533,21.2363596,16.0954831,49.5823161,3.0502492,39.1508042,8.5673492,1.4951443,1.4593263,16.9570119,62.7914144,67.2424931,51.8453824,31.47633,7.0001839,12.8837799,69.7708607,39.5668615,36.6242097,21.6562119,16.2806375,48.4746949,2.8865669,38.0602062\r\n803,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,0,0,1,0,0,0,0,1.3584886,1.3761216,12.5050245,69.1025954,70.5411336,60.2044982,31.0735204,15.5898946,16.0499043,68.7636574,42.6370492,45.7904746,17.4198219,12.0288313,55.4149635,4.6327897,40.6857642,9.9434945,1.3912832,1.4008127,12.261679,69.4482231,71.0649104,60.2425429,31.8092695,16.2959837,16.1525044,68.0338676,41.9868342,45.7065009,17.1753391,11.6645253,55.3611337,4.5455051,40.397772,9.8798922,1.4532934,1.4601105,12.2376056,69.6702613,71.6628929,61.1140276,31.3895222,15.850159,15.979271,67.3883194,41.7389494,46.0325869,17.1643791,11.5323762,55.4132899,4.6908735,40.9991227\r\n804,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9778007,2.0536496,15.3759662,58.7891509,63.4505669,54.5285072,29.0450944,10.2152969,14.6969486,66.380664,38.4813511,39.3636786,21.6681644,16.1748312,53.8790205,4.3486207,39.7642877,19.683908,1.9142441,1.9842271,15.3146386,57.984069,62.5306914,54.3321897,28.6828174,10.5967824,15.8847547,66.1663577,37.661857,37.1439384,20.9445384,15.8997146,53.6473833,4.6125827,38.0150097,19.6048632,1.5681255,1.6577204,14.363433,58.9808266,63.45228,52.6910621,29.5189556,10.0179356,17.3768348,67.2983685,38.2849171,38.2329459,20.73659,14.9780451,53.2097329,4.7308413,39.6875298\r\n805,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.2951018,2.353653,28.4432714,65.9517247,68.5280954,73.047295,18.1582038,27.6577808,22.0900765,62.4760145,24.781699,45.2220799,31.7332201,27.3152082,73.8677536,3.5961872,37.1198569,27.9264214,2.4324453,2.4714642,27.0172306,65.066796,66.1307448,74.2943091,19.1709619,27.3728549,21.9890517,62.8013635,25.5491413,46.0754406,29.9561404,25.745614,73.1308411,3.5267857,36.4220183,27.2887324,2.0067411,2.0632383,24.8230008,65.7823124,68.301286,72.3079643,17.5794719,27.5446496,22.0863173,63.1968049,24.9881044,46.6009912,28.1834372,24.2653606,72.0170455,3.6784741,36.440678\r\n806,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.133124,1.1479684,13.0839939,78.8315987,77.157257,72.1485393,23.0013039,26.1099516,20.7105102,65.1435793,32.9739548,48.1670464,16.3958556,12.4317163,64.1357167,14.3370959,37.8862938,9.6867271,1.1575646,1.1769515,13.21267,77.6893989,76.2395977,72.0518349,22.9056724,25.3957236,20.4003388,65.6619066,33.0600011,47.3784787,17.0178647,12.8593394,64.4446015,14.3830822,37.849239,9.8997502,1.0870537,1.1119632,13.515661,76.8922048,75.7247418,72.1675094,22.8462701,25.2784595,20.665993,65.9736705,33.0358419,46.7061483,17.4215298,13.3053413,64.1031086,14.2330713,38.2938746\r\n807,0,0,1,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,0,0,0,0,1.0581521,1.0793921,9.2584776,77.3245753,75.6097622,72.9135017,24.1836097,25.7527256,20.8667203,66.5839571,39.0940124,49.4745721,13.7273884,9.2880082,59.179604,6.9447921,38.4605095,5.5686506,1.0945684,1.1058504,9.4276205,76.7649887,75.956774,73.4436681,24.1615032,24.3109463,20.1228274,66.3045755,39.4148998,48.9336153,13.5794989,9.2076339,58.4459078,7.1207099,38.6836245,5.5555556,1.0432636,1.0562165,9.3118906,76.937596,76.7658583,73.7092495,23.8787841,24.7405528,20.0680393,66.0885135,39.4871857,49.545866,13.4851343,9.0459789,58.0162356,6.9400539,38.7283088\r\n808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0835296,1.1288605,12.4921532,82.6407456,81.1901197,77.9769486,24.3740096,24.7137543,16.2080166,63.1010459,31.9780734,56.5613068,15.9166614,11.7166635,65.2398419,8.7450625,37.1054414,5.2875725,1.0513126,1.1053083,13.2705636,82.3275866,80.9535153,78.8669201,25.0285552,24.5680647,16.4798207,63.6221924,32.6832131,55.9744182,16.5414789,12.3420958,65.1443131,8.6774111,37.0048634,5.6481513,1.0643889,1.1083302,13.1310564,82.3695029,81.135521,78.208192,25.0475951,24.6793197,17.3827104,63.100051,32.9920999,55.5223165,16.9185825,12.5214703,65.4449354,8.7639341,36.2343935\r\n809,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.246293,1.2663629,18.242168,77.4795215,76.4988195,73.2042121,23.5467574,34.8566106,18.0309479,65.2255055,31.4481271,53.0279471,22.677559,18.5457753,71.9382732,12.8147238,39.118959,9.9524565,1.3933645,1.4008466,18.222034,77.0220025,75.5547149,73.1610319,23.9112271,36.4861433,18.1482466,65.2079304,31.312109,52.8893955,22.5294559,18.4587554,72.6123002,12.9117546,38.7386146,9.8993403,1.2560671,1.2741173,18.4311542,77.3551774,75.0135776,73.0837367,23.9062742,38.7379616,17.9385062,64.637733,31.4144189,53.2028623,22.7285012,18.4910992,73.6132464,13.2324771,38.8484137\r\n810,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,1,0,0,0,0,0,0,0,0,1.4108953,1.4542201,13.0748047,69.4225314,71.7334844,66.3289879,20.2371844,60.89921,27.8405455,67.544153,34.9961216,43.5883925,16.9045135,13.3372789,84.5092227,4.5710557,32.6686828,12.1513582,1.344249,1.3882424,13.3457926,70.5010636,72.2256557,67.3297116,20.8231272,61.7133153,28.0362378,69.0381546,35.9677529,43.5486161,17.1768305,13.3507599,84.0395288,4.5398127,33.7644077,12.8459546,1.2102904,1.2418204,12.7283445,68.8515297,69.7313546,66.1647168,22.3715759,60.1451332,27.7114923,69.8239859,36.4752174,42.3191106,16.0884144,12.4121953,83.4829366,4.1316714,32.3828552\r\n811,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,0,0,0,1,0,0,0,1.3959523,1.4357226,16.9900183,73.887992,75.601572,65.9061984,20.2939015,23.6305297,21.3385919,65.0644182,34.0006728,49.7740968,21.5907049,17.3068845,69.8420299,4.0670412,31.9894844,14.5743978,1.321818,1.3797115,17.5374013,73.546907,74.3013194,65.3232248,20.7391722,23.7871819,20.2737793,65.0788208,34.5427199,49.7224972,22.1260442,17.881817,69.5293183,4.1579436,32.3639932,13.7146628,1.3034072,1.3637883,17.2473866,73.5807625,74.5522027,66.1483747,21.0117689,25.3839671,21.3148364,65.3230825,35.2900717,49.1348342,21.4572875,17.3710987,69.2395829,4.2701305,32.3145206\r\n812,0,1,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,0,0,0,0,0,1.6107764,1.6022678,11.7970103,64.1685884,62.7896367,61.2590851,28.8554193,5.1986952,12.2197111,68.0180526,40.595043,39.6481385,16.5194256,10.7478519,42.4095634,5.234049,38.0023613,7.0717552,1.4495397,1.4413415,11.3646054,64.4293612,62.9043125,61.594227,28.7730812,5.1771351,12.0625127,69.189299,41.2277315,38.9921026,15.6293008,10.120792,41.5077858,5.1500621,38.1010312,6.9176999,1.2298468,1.221877,11.2524548,64.510108,63.0279005,61.9650865,28.711428,5.4834959,11.9381285,68.6675728,40.5633571,38.8201201,15.0834632,9.8925394,41.1694453,4.9548392,38.4729504\r\n813,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3794286,1.4400069,12.9799455,64.0789393,66.4341465,61.7597502,32.9779369,3.3099045,13.1689863,66.5315376,43.0369957,32.3924914,18.2676485,13.0732229,29.8882962,4.4494144,31.8438393,13.3861304,1.3229426,1.3853332,12.2130062,62.7596213,67.0013823,60.2940154,33.4222648,3.2252155,12.9328661,66.7704637,43.0840766,32.5946266,17.5556361,12.5185131,29.9140045,4.4463296,31.4379948,13.3906609,1.3441039,1.3546152,13.0476223,61.7745589,64.7876119,60.0109323,32.5336314,2.0322386,11.5350282,67.260136,42.8938562,31.8398279,17.4471659,12.7441926,29.1088095,4.2228922,31.2030352\r\n814,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,1,0,0,0,0,0,0,1.311998,1.3212745,14.8061689,64.6988995,64.3185566,58.1243944,29.9368295,10.7316482,15.0495448,70.7407803,42.6005545,38.6834153,19.4771998,14.3671344,53.0177857,3.2290934,35.7563121,10.8996269,1.1168423,1.1331289,15.6869051,65.3132088,67.1067988,58.3952496,30.732026,10.7500364,14.1661766,71.5667351,42.1997598,39.4531401,19.3295066,14.5402277,53.2862841,2.9960355,35.1688255,9.8958124,1.2262158,1.2423159,15.8183653,65.2386745,65.7844069,57.8961872,30.7373047,10.0387191,14.9243242,71.0824706,42.2987633,39.5321965,19.7916773,14.8295497,53.9121793,3.0058975,34.2482255\r\n815,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,0,0,0,1,0,0,0,0.9381285,0.9261796,11.2547034,72.5278962,72.215814,70.3693171,25.9685828,23.6338532,18.8107985,69.4454048,36.524335,41.8833083,15.5984327,11.368853,65.2141856,4.0986048,32.7817577,8.0836869,1.0029089,0.9992714,12.0156602,72.6057296,73.1452113,71.1467069,26.0975146,23.6789321,19.5520364,69.4923748,35.6909839,42.4793989,15.9733595,11.9358236,65.1131797,4.2586423,32.9061635,8.5400778,0.9801608,0.952788,12.2947963,72.7712659,72.959198,72.8852724,25.9542175,22.503867,19.0671322,68.6291166,34.9480867,42.489601,16.5347509,12.3097277,64.7308187,3.8621155,33.2413904\r\n816,0,0,0,0,0,0,0,0,1,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,1.1984774,1.2202165,12.0922329,61.1865242,61.4279944,58.9728337,31.2288715,5.0949385,14.6340343,66.9413948,43.5934527,35.8907166,17.970726,11.8200948,33.5827515,4.8243603,36.5420075,9.4643094,1.1064095,1.1284272,11.7936639,61.5482442,61.546889,59.1213107,31.4466878,4.3305028,13.6176029,67.1175694,44.6899575,35.639187,17.8329233,11.7260497,33.2191613,4.555649,36.5420008,8.7686731,1.2021152,1.2041192,11.9903919,60.6220041,61.5198622,56.7860964,31.0833067,4.3203,13.7267329,68.1223299,44.4728817,34.7319671,17.4586405,11.7734453,33.1432435,4.5861227,36.2663119\r\n817,0,0,0,0,0,1,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,0,2.4900024,2.5383363,25.9003422,68.3128664,68.3015448,64.4595412,22.8380826,14.7719782,15.0055168,64.8375377,36.4012768,51.0808879,31.3706248,25.8619128,63.3060529,3.6662504,36.4074807,28.3251237,2.4722499,2.5259155,25.641238,67.5448082,67.9663641,64.2572726,22.5603793,14.566401,14.4667681,64.7694257,36.6980742,50.1943999,30.548895,25.2327061,62.6878441,3.8563301,36.2389923,27.627925,2.2643542,2.3237979,24.6587236,67.2424337,68.3135599,64.2127485,22.427204,14.5133342,15.4375202,64.6978174,36.8236432,49.5855771,29.4568,24.1808099,62.4349142,3.7330533,36.0640669\r\n818,0,0,1,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,0,0,0,0,2.7250629,2.794631,29.6420158,80.8485403,79.1619832,73.5677148,14.3131769,61.2227168,27.5862904,57.8059098,26.6030926,62.1915518,35.279357,29.356633,87.467738,4.8335619,38.9013363,23.5710779,2.5925588,2.6809411,28.6823165,80.3119124,78.4956311,73.2605993,14.7278453,61.3878617,27.549276,58.1995743,27.1242591,62.2739336,34.4863776,28.6800746,87.0060897,4.9283438,38.345986,22.9504001,2.389586,2.455687,27.15923,79.7151186,78.3751975,73.4117425,14.756073,61.7787364,27.698642,58.1545118,27.3076412,62.0240823,33.0498319,27.2266139,86.6496973,4.970485,38.0505506\r\n819,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.5484176,3.6554541,37.8352047,60.2471203,61.5709893,59.0138431,23.5736979,7.2242588,14.503261,61.2037474,32.8646486,43.3967147,43.6816763,37.2802041,52.8851037,3.5603663,33.7932976,45.1900148,3.4061028,3.5220145,36.6462716,60.166571,60.9640716,59.4190577,23.6541096,6.962449,15.5811335,61.9712014,34.4588045,42.5224391,43.0656015,36.6518128,51.8454155,3.5988976,32.9725496,44.9636341,3.2316241,3.2619335,34.8135468,61.6004307,61.7456103,60.9116521,24.9214148,7.082477,16.6541409,63.4921804,35.8248706,41.8282539,41.0145801,35.0235463,51.5084757,3.486239,31.5218049\r\n820,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,0,1,0,0,0,0,0,1.7850487,1.7894361,17.1292336,63.6127042,65.8545837,54.8184005,29.8101323,6.6269575,16.4451231,65.4232335,38.3917718,41.6035373,24.1250261,17.8483062,48.6505827,3.0421576,37.5359164,10.3307104,1.7812239,1.792886,18.5533504,65.1484744,66.9857003,54.0148229,27.8528086,7.2135924,15.3838491,65.8218826,37.8237519,42.7685954,24.9527509,18.681548,49.1058743,2.9997778,37.3113525,10.548078,2.0633556,2.0845303,19.5722143,64.4718908,66.4320539,54.556507,28.4004624,7.4225174,14.264928,67.1646741,39.8787951,41.5569699,25.0568111,19.0082913,49.3781152,3.1396852,38.7415633\r\n821,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0110544,2.0110544,21.1655643,71.4213254,70.6882045,68.4978216,18.6189041,23.8042985,22.5483013,66.8043326,29.1265651,49.0905831,24.6383799,21.0703954,72.0966084,3.4090909,37.1338912,26.9047619,2.0193633,2.0193633,19.7011101,71.6977038,70.3336654,71.1857169,18.5890313,23.3882222,23.2609489,67.8492119,29.3258299,48.6339415,23.3300589,19.5972495,69.4385593,3.7055838,37.1710526,29.7619048,2.018445,2.018445,20.9162555,72.3583575,71.283051,72.4984151,18.8270118,21.5149039,22.4347517,66.7007963,29.3331025,47.7216609,23.9656912,19.9293643,68.7705818,4.0526316,37.0967742\r\n822,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.840887,0.840887,14.1670686,71.9086598,73.2418725,74.1593745,18.4820291,8.400259,18.7083708,71.1421221,31.4790364,40.0903181,16.8533035,13.7178052,53.2806804,3.5035629,44.1176471,11.7142857,0.8804249,0.9882997,13.6007862,71.5343597,72.3552936,75.3114868,19.8432421,9.5939861,19.0857159,70.8598172,32.1120597,39.1226097,16.7413214,13.3818589,51.8270402,3.6396181,44.895288,9.0062112,1.1452807,1.2530393,15.6998659,70.0232592,71.3403863,74.3283524,21.2822391,10.0200716,17.3411679,70.3790242,32.5827065,42.865995,18.2174888,14.5179372,51.0962241,3.7634409,45.9493671\r\n823,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,0,0,1,0,0,0,0,1.0685968,1.0898968,11.6581008,71.5712887,72.1954145,62.0520736,29.0051484,16.4446148,18.2195261,66.7972303,43.7071848,45.1396504,16.2422193,11.2801334,56.5195758,4.7152623,41.4483044,7.4478357,1.1477627,1.1374561,11.4794276,71.8710641,72.5495301,62.3971466,28.9546228,16.1543785,18.4858661,67.001811,43.2940184,45.8021688,16.2937384,11.1532883,56.7788146,4.7395415,41.2485375,7.740386,1.1189708,1.1105722,11.6988236,71.9370822,72.3974653,61.870966,28.8324872,16.5775277,18.3233516,66.8269912,43.3997715,45.6479517,16.8074802,11.3191646,56.1622281,4.6803335,41.2023821\r\n824,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,1,0,0,0,0,0,0,0,1.520137,1.5737632,18.6396434,67.4216093,67.7440668,61.7949918,25.432242,12.3406095,15.4966273,69.106698,37.5236195,43.8238806,22.122627,17.8894257,52.4796627,5.4064411,35.2950539,19.9086058,1.5160997,1.6006259,19.1852762,66.5721355,67.5430433,61.3543732,25.5878665,11.85489,15.2468215,68.7288739,37.5233731,43.5891722,22.4520906,18.1837995,52.2586951,5.2612099,34.818989,19.3813033,1.4445855,1.5219498,19.2926925,66.6419599,67.9858826,61.6522379,26.2221175,12.1088914,15.3019305,69.26316,38.0308183,43.256862,22.4204119,18.0145011,52.9095435,5.2696427,34.5856907\r\n825,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,1,0,0,0,0,0,0,0.9289943,0.9649397,14.6914583,67.726127,70.7903647,58.3227598,26.6346089,15.6572591,19.7314832,69.0043245,40.0232105,42.5660547,17.8211971,13.4481346,58.5630052,3.5462329,35.7031085,11.9564907,1.1542994,1.1542994,14.3294327,67.2398775,70.6413813,57.8833719,27.7955766,15.3374087,19.5733835,69.2635666,40.4688452,41.7631688,17.5415793,13.1053527,57.8260943,3.5902167,36.1979364,11.5269427,1.234791,1.234791,13.6826074,67.0672917,69.8791295,58.9677875,28.5780622,13.4711786,19.4635748,69.7813239,41.1334437,41.9045575,17.0929351,12.9142627,57.3301239,3.6460159,35.2832879\r\n826,0,0,0,1,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,0,0,0,1.8177841,1.9000527,12.4555742,67.3201724,67.8425738,67.7713542,28.4268456,4.5348006,12.9621781,69.3493129,45.4120828,36.2508165,18.1885428,12.3426576,34.5978106,8.6071335,33.2446622,10.4562738,1.6824303,1.803017,11.5819944,66.5028006,66.1006558,67.4090102,28.1055822,4.2953494,12.1149547,69.4848747,44.7385174,35.5026565,16.7881402,11.1304526,33.9727663,9.4629013,33.6845444,9.6590909,1.6317877,1.7239882,11.6808604,65.5071487,64.7398858,65.2470398,28.3235768,4.6513855,11.7086958,68.7298738,44.9302639,35.7299169,16.2803537,11.0963291,33.9270443,9.2948144,32.6912567\r\n827,0,0,0,0,0,0,0,0,1,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,2.6489578,2.7115705,32.015501,61.3203871,64.3442927,55.247295,22.6709615,10.7040319,17.8599447,62.7141633,33.3016979,45.8713864,38.8624534,33.7178593,58.9301455,2.5199593,37.9628745,35.6158699,2.5032089,2.5723148,31.2106243,61.7955266,64.5769252,55.3175215,21.7862752,11.6528499,16.9210894,60.583187,32.5935749,45.7485149,37.1556769,32.2123304,58.9353417,2.6992932,37.1743268,34.4235481,2.1394808,2.2433453,29.4632129,62.189895,63.6155212,54.540727,21.8934841,11.5436042,16.8158839,60.5526478,31.7967872,43.9450511,35.1565157,30.3932129,58.2685452,2.463972,37.0230955\r\n828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8019424,0.8019424,12.7798214,77.8107428,77.3914362,77.9288661,20.0300144,56.6084238,24.2136359,59.0576557,30.7479084,55.8953217,15.5213311,12.7725191,81.7584014,5.624704,32.2438983,10.7747994,0.8164257,0.8384619,12.2299991,77.2274494,76.4852232,77.6616667,21.0319695,57.0488935,24.1459049,59.8815728,31.453519,55.7237379,15.2101241,12.0582644,81.1675601,5.571634,32.2822881,10.8478581,0.6769035,0.6996825,12.0443241,77.5012557,74.7432697,78.2504989,21.1334482,55.2462908,22.9830688,59.612585,32.0862437,55.1260518,14.6957756,11.4082414,80.9054079,5.5167241,31.2234129\r\n829,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.519528,0.594981,11.0718763,74.9164948,71.6680908,75.15548,20.4164852,47.8070574,21.5269471,61.2010829,33.0175757,50.8368828,13.6631477,10.187196,78.6387936,4.690088,32.6743921,12.212629,0.5791931,0.5542304,10.6197344,74.7820139,72.0921317,75.0138039,19.8219819,47.9613192,23.039449,61.7600354,31.9297988,52.1715299,13.3422906,9.7059104,79.021467,5.0436384,32.2842255,11.8768175,0.5539417,0.503665,11.4980863,76.4244471,74.0823786,76.1737905,20.0456016,45.6992349,22.0097109,61.6795605,32.5204924,51.8751771,13.2774968,10.0865683,78.496033,5.3884274,32.7356264\r\n830,0,1,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,0,0,0,0,0,1.5785179,1.5515211,11.6437161,62.9086817,62.1319102,58.6732684,28.6508663,5.4651611,11.1984063,67.7119582,40.1954126,39.811896,16.6878975,11.1652839,42.0795825,5.2618718,35.9059297,7.3433374,1.4584755,1.4494199,11.5483692,63.9207224,63.2845737,59.8177537,29.1314279,5.3915023,11.6715777,69.0087549,40.6850089,41.5169284,16.5260085,10.8640963,42.8920965,5.3259442,36.4655404,7.3895658,1.5441264,1.5352081,11.8342647,62.1742324,60.9548711,60.2743042,29.0379591,4.9930111,11.0416109,68.680375,41.2824916,38.7780769,16.8302769,10.8143481,42.3455913,5.0978506,37.4936514\r\n831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4515359,1.5141125,21.9033308,72.5037347,72.2439236,67.9575086,27.0668943,11.1138638,17.6656568,65.4964582,38.3784861,45.8014274,27.248658,22.0295466,55.0115204,4.395084,32.1828913,11.6704355,1.4101136,1.4718054,21.7672909,72.5104899,70.8505777,68.817338,27.8860002,11.7599326,17.7772584,65.6539124,39.2558006,45.6891462,26.4036433,21.6401947,55.9731947,4.4815236,31.4304371,12.9914905,1.4361632,1.470804,21.8886916,71.7074505,70.4127462,69.6417322,28.5249484,11.3696503,17.0325625,65.6503277,40.07862,45.1189292,27.0300653,21.9951792,55.490691,4.7570482,30.4558866\r\n832,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3187186,1.3494081,12.0495059,59.2422402,65.6412819,56.3798673,31.224677,9.8327096,16.1110667,68.9991097,43.012462,38.3849708,16.6976836,11.7379896,45.5422745,5.3581448,44.263415,12.2222331,1.1689775,1.1372516,10.9477972,57.7460498,63.3151014,55.7489076,31.9378522,10.6627951,15.3867262,69.0370756,42.8446343,37.1176844,15.8201781,11.0157904,45.8759577,5.6556152,43.886422,11.2831908,1.2845957,1.3176645,12.2893415,58.9330262,63.8378675,55.6210834,33.0891761,11.0718437,16.4080846,69.0097941,42.3799057,36.5881714,15.9756966,11.1865666,46.2557128,5.1904359,44.6564616\r\n833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.7339218,1.8155045,20.2898982,64.8519585,66.0273416,56.9713228,28.8714662,10.4047399,17.6469025,66.7843339,38.9182826,40.1052623,26.589269,21.0062603,48.6855609,4.2683964,35.6423669,20.0135902,1.7736131,1.8004673,20.8292583,64.5501529,66.1277759,56.4497566,29.1035624,9.9365962,17.4231139,67.1442742,38.9043766,40.0234651,26.902276,21.3922653,48.5397665,4.1345176,36.0819324,18.8642623,1.7752751,1.8085702,21.1720143,64.5510123,65.8927022,56.6298637,28.79059,9.7011627,17.4402569,67.4943847,39.0590687,39.8550274,26.9790745,21.5816168,48.6280209,4.0204793,36.3684351\r\n834,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8277733,1.8788626,23.7289577,66.8059887,68.4858187,57.3487204,28.0485885,9.8774253,16.4765177,64.9055233,35.6658297,42.7410586,29.2484403,23.5996976,50.6416728,3.2239734,35.9911623,21.6111069,1.7602493,1.8313859,24.6237464,65.6935065,66.7407243,56.6717901,28.3336154,9.8169192,16.2850003,65.9955225,36.6012317,41.4536777,30.1972577,24.4711519,50.7220961,3.3267969,36.4647594,21.4761447,1.8419646,1.9229831,24.6585476,66.6195944,67.2384369,57.5079534,27.6498065,9.6077814,16.1002156,65.5546969,35.9977578,42.0190842,30.4938315,24.7459707,51.4671528,3.4215247,36.1488928\r\n835,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,1,0,0,0,0,0,0,0,0,1.0354313,1.0354313,16.2314423,72.9337452,74.4152843,66.0857987,17.7907964,65.8801087,28.3486499,66.7458414,31.6939686,47.2218164,19.7368533,15.6277757,86.3265257,4.1393464,33.2184525,12.6104353,0.9182349,0.9182349,16.7364643,74.4666204,74.8755435,67.1204854,17.0261381,66.7001676,29.6320227,66.557119,30.5748821,46.5615892,19.2493863,15.5179286,86.7499186,3.9263657,33.0110073,14.0088291,0.8818701,0.8818701,17.586202,75.4826566,75.9239225,67.1475641,18.271862,67.4522197,31.8235779,67.0322115,30.8781984,47.9758067,20.1162202,16.3295337,86.8490027,3.9382672,32.4090236\r\n836,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,0,1,0,0,0,0,0,1.2249898,1.2571134,15.475618,62.6202055,67.5432276,53.0172361,27.1259324,8.7767268,16.4545514,68.4047603,40.4120364,40.9010777,19.5361455,15.0384374,49.801078,3.6071201,37.8729689,12.0687991,1.2042879,1.2539579,15.6151838,62.9828813,67.2268368,53.0969946,26.8660615,8.7750057,16.1714985,68.4566972,40.2216677,39.449358,19.821372,15.0528386,49.5808297,3.7468803,38.4611241,12.4189943,1.4180052,1.4380679,16.3291071,63.3353031,67.2556973,53.9181177,28.0302723,8.8748967,16.5119161,68.4028483,40.9945463,38.9594752,20.7456742,15.6591888,49.5643115,3.7693403,38.3266571\r\n837,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0714684,2.2581622,27.0033598,73.9337113,72.193444,71.2648158,19.5124269,18.5666138,18.3055883,64.4948117,27.2792018,54.8444758,31.5063649,27.4752475,66.6046165,2.8040787,31.1773256,14,2.1917984,2.3627357,28.1705487,73.3380589,75.109856,71.5070883,17.3773492,21.0709124,18.8093802,64.6667232,26.1268681,54.6055665,32.2485877,28.1100075,66.623553,2.6075202,31.8049491,14.3518519,2.3423464,2.4831574,29.4294382,72.9707801,74.5924178,71.4065607,16.5361897,22.3368701,18.8766534,64.6331038,25.1891109,53.3789388,33.7180386,29.212414,66.872177,2.5753624,32.8717201\r\n838,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4007769,1.4865612,18.8969511,79.1942041,78.203934,76.7855499,23.5696659,28.0589726,17.410911,63.4551424,32.9712876,60.5495539,24.1322595,19.2549417,69.5319563,8.0410252,37.2991339,10.5858736,1.6436707,1.7392455,19.617853,80.2219795,78.3984241,77.4057048,23.0557916,28.6417746,17.4016231,63.1316682,32.3324113,62.0914396,25.6458155,20.3645271,69.8516593,7.9326263,37.0977308,11.8817761,1.6546709,1.7327628,20.4469138,80.993537,79.9274809,78.5384545,21.8051096,29.2606358,17.2886762,63.3737658,30.5319148,62.9835446,26.4148375,20.9785374,71.2026209,7.6716619,36.233149\r\n839,0,0,0,1,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,0,0,0,4.2698131,4.4547498,40.374731,71.1425403,71.3683615,70.9127348,18.6267612,36.4008989,17.4878145,59.9768237,31.8681164,52.6426625,46.4085209,39.9974785,75.8404321,4.4009797,36.2288163,33.1642004,3.6367199,3.8060076,40.2887893,71.0049199,70.8701299,69.8623705,18.8864314,35.0359072,16.9975139,60.4044844,31.9688023,52.2226706,45.7691601,39.859756,75.5385774,4.5911636,35.8213494,31.6968472,3.5537782,3.6256185,38.8614293,70.9077798,70.8813424,68.8915692,17.8193847,34.7397147,17.5809912,59.8037091,31.8392058,52.3395322,44.6301037,38.8171278,75.3998183,4.2110873,36.1375374\r\n840,0,0,1,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,0,0,0,0,3.8374886,3.9540382,37.4612504,80.751856,79.0406441,74.8044697,12.7103486,63.3814151,27.9088648,56.1229692,23.4616338,66.1272133,44.1550749,37.409555,88.3294763,4.5056844,40.4934484,25.7237616,3.7736486,3.888068,37.117499,80.7049932,78.7717798,74.9107399,12.5306104,63.8387533,28.3771333,56.0383511,23.2314051,65.6024272,43.8468301,37.172247,88.3575914,4.3525584,40.2695365,25.7419044,3.6268639,3.7502673,36.5936779,80.9794003,78.6019868,74.9608146,12.1785422,63.8022131,28.7001405,55.9000379,23.3114325,65.4242223,43.4172535,36.7776276,88.2752565,4.3984702,40.1065235\r\n841,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.4597508,2.5302129,31.0340454,67.958996,68.9531066,61.5162099,21.5064398,16.0111028,19.7010416,61.777045,30.8865364,49.5012979,35.6497775,30.7551064,64.2167346,3.366149,34.5761682,31.3146676,2.2356014,2.2753296,29.6993632,68.0925677,69.4112449,60.9041963,21.926364,16.0413528,19.7204707,62.2782116,31.491744,49.4468838,34.354973,29.6127938,64.2822409,3.3202026,34.7762777,30.5538106,2.0694303,2.086381,28.2046051,67.8972978,68.7175143,61.2801665,21.4029879,15.837405,18.9796175,61.6044326,30.627804,48.2041117,32.9863541,28.1510537,63.944127,3.3715391,34.2894843\r\n842,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.3534418,5.4286098,43.3184612,64.5650662,65.6466132,58.5900395,17.6368273,10.5990302,17.0182875,59.3577999,28.3779575,52.5750047,50.9547714,44.3221721,63.2995527,1.8943056,42.0765621,37.8618355,5.5729619,5.6156932,42.8830242,65.2154377,66.5973673,58.4445454,17.4058679,10.5728063,18.2542316,59.7425187,27.1199949,52.7074762,50.7598362,44.2539708,63.3273018,1.7706403,43.2472889,39.1904488,5.5127202,5.5583798,42.374586,65.9125168,67.023764,59.09982,17.8977478,10.4796182,19.1925741,58.3362444,26.6986929,54.5269751,50.4969691,43.8564395,64.0391329,1.9822969,43.0458857\r\n843,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0218421,1.0128952,11.0718229,65.8203121,67.8899031,62.1687588,28.6493253,6.9670988,16.9626143,67.6246905,39.3394817,40.3558269,15.2747686,10.7766765,43.199045,4.2262826,35.0002597,9.8198338,1.0872347,1.0781458,10.4031675,65.2282047,68.1248339,60.7712464,29.5597953,5.8962712,16.4623722,67.9341339,40.3653401,38.3215538,15.1004084,10.4443593,42.7449094,4.2453372,35.6892326,9.7240871,1.1718903,1.1827145,10.5682069,64.7332351,68.1666958,60.9101929,29.6644396,6.0646076,16.9493764,68.3234201,41.1570724,39.0030115,14.9999359,10.4157349,42.2240405,4.7156815,36.0354158\r\n844,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,1,0,0,0,0,0,0,0,0,1.0425427,1.051329,14.1503081,71.9681127,74.6085518,67.1763063,19.2688494,64.2307963,29.2293016,68.2651997,31.780276,45.2022617,18.3847812,14.4135244,84.2921526,4.5581351,34.0700448,11.1961885,1.0198513,1.0284486,14.9191033,73.7828167,75.7849464,68.8850865,19.0442659,64.3444093,30.1044295,69.0717741,32.768962,45.7500453,18.7720725,14.8474941,85.0098832,4.5125121,33.7309662,10.4686617,0.9665222,0.9684646,15.876196,74.6059321,76.4448991,69.5657427,19.3598337,63.5462788,29.1315011,68.9611976,32.6518005,45.8136656,19.2948815,15.5560048,85.4828165,4.7705963,33.6780072\r\n845,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,0,1,0,0,0,0,0,1.2088034,1.2616818,15.4566312,63.044029,65.4966948,50.8567221,29.3079097,11.0933133,16.5310376,70.1243768,41.3005066,37.6390716,19.137715,14.4706644,55.0764779,3.1146283,36.6649964,11.823545,1.2272713,1.269739,14.8503804,62.6366689,65.1203294,51.2053565,28.4073785,11.4538382,16.6101527,69.6883201,40.8925428,37.7429238,18.4465246,13.8045262,54.5836,3.0975229,37.60651,11.6493847,1.2769088,1.3199981,14.6459907,62.869725,65.1541587,50.998718,27.745049,11.2978855,17.1963465,69.5426099,40.9722287,38.5592092,18.0603306,13.7902775,54.2874028,3.139734,37.0844118\r\n846,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,1,0,0,0,0,0,0,0,1.2606471,1.2933042,18.7285902,68.3840174,69.5025183,61.5279082,26.5985849,11.5429277,15.4718601,66.7435519,39.1328622,42.6028094,22.6079355,18.232199,51.814877,5.4475083,34.6473909,17.1899551,1.1457758,1.1784749,18.6627013,68.3281863,69.8106295,61.8362628,27.2478484,11.9998553,15.2130118,66.2229242,38.7977642,42.3269903,22.5369953,18.097736,52.3034922,5.2647262,35.1550134,17.0436156,1.2070593,1.231551,18.2806436,68.828063,69.9036831,62.8641674,27.1425933,11.6854678,15.2769419,66.6824918,38.4950312,42.4351304,22.4373818,17.9479725,52.0003938,5.2232899,34.7920821\r\n847,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6611868,1.632195,12.1118602,76.9516607,74.03057,81.9496346,23.5574388,8.5649363,14.2144814,68.9615192,37.9846092,47.1561531,16.8305084,12.102055,47.543756,8.2526422,35.1311927,7.1157428,1.620438,1.5484256,12.1388914,76.5099841,74.2373142,79.7969762,24.7521911,8.5461657,13.5113718,68.256843,38.180563,44.8630083,16.7852153,12.027558,46.6867207,8.08009,34.5070406,7.0255346,1.7853722,1.7150766,12.2213392,76.3743578,74.9838034,80.4160688,25.1740861,7.6392851,12.7167614,67.4857439,38.3002308,44.8612639,16.7748951,11.8831319,46.3475128,8.8142272,34.7080611\r\n848,0,0,0,0,0,0,1,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,2.7999199,2.9698972,28.0382843,64.1108344,65.3513232,59.4605777,21.2068809,20.2496121,18.2602071,61.5907462,32.5027532,46.3557521,34.5286335,28.3308324,66.4140095,3.4071568,37.0945033,36.6008364,2.8261121,2.9887081,26.9728891,65.2612442,67.1705007,60.0099699,20.9517462,19.8123689,18.9896131,61.8789576,31.8229147,48.5145323,34.0982665,27.4616585,66.291763,3.5136929,36.442512,37.0424602,2.6027069,2.7227369,25.9623113,65.0284184,67.497587,59.3784577,20.5800424,19.4561277,19.1393277,61.219824,31.9303498,48.6033155,33.3291377,26.7475654,66.4920941,3.4316128,36.2928633\r\n849,0,0,1,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,0,0,0,0,2.8835142,3.0403403,28.034196,81.6604929,80.2048348,76.0907465,16.629084,60.6990192,27.1144074,57.1567718,26.984008,64.1300784,33.7433824,27.3568131,86.2367778,5.0055774,36.6946084,15.4974527,3.1175779,3.2942608,29.8603701,81.4599134,80.0559422,75.8040126,16.0649411,59.5975192,27.0187735,56.365777,26.2194956,64.0015051,35.897251,29.4625592,86.4630872,5.1229821,36.5017529,16.600026,3.3068259,3.4796345,30.9329325,81.2985807,80.0017823,75.8864008,15.6160377,59.9163843,27.0750209,55.9675233,25.6518556,64.4440468,37.3661149,30.7437402,86.6426907,5.2132051,36.7942322\r\n850,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3149842,1.2840429,14.227205,65.6386981,67.4443367,56.3345708,29.8662391,14.7628361,17.8564161,69.8431286,41.905908,37.7553597,19.0719997,14.5003472,51.2640523,3.9592165,36.2443659,14.6595962,1.3808192,1.349201,14.7412596,66.7345609,68.3278485,56.4191997,29.4511656,14.5611916,18.05099,69.610197,42.2453287,38.838266,19.8324417,14.9454138,51.3148246,3.8828946,36.6831721,14.6246997,1.4629091,1.4234465,14.8525079,65.9325284,68.601134,56.2035326,29.0538611,13.9712689,18.0892028,69.5111162,42.1444728,38.6342201,20.3072382,15.1694694,51.2628729,3.824911,36.263227\r\n851,0,0,0,0,0,0,1,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,0.8081237,0.8315893,10.612076,63.5504278,65.1394084,58.7020016,29.7817453,10.9666105,16.4145799,69.6059941,41.8805213,38.6403331,13.7979793,8.8857943,44.8430189,4.6188547,41.4104149,3.6277625,0.7576976,0.7905844,10.1759598,64.5870886,66.0839143,58.5148741,30.5088156,10.1799849,16.2723363,70.3450362,42.4504006,39.4044114,13.4039964,8.6496386,45.2482874,4.7134326,38.5899229,3.8819912,0.7144691,0.7290114,9.5149699,64.2261096,66.145451,59.4072659,31.0506721,9.4652873,16.2132772,70.1905577,42.2136774,38.7715716,12.8012673,8.3504296,44.3364872,4.5549797,38.1970508\r\n852,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,1,0,0,0,0,0,0,1.1148456,1.0843987,12.3580058,66.6231602,70.4035757,56.3893758,28.9362768,14.0897068,19.8159125,68.421958,38.3432449,40.8317961,16.6344049,11.909379,53.6117573,3.4708487,38.6585345,8.8785102,1.1706817,1.1494773,12.1284857,66.8749119,69.9778183,55.6405881,30.4528071,14.7741971,19.3890411,68.666947,37.8249252,42.2848049,16.6023962,11.8588523,53.9500207,3.3478613,37.3338757,8.5760601,1.022506,0.9835932,11.9999838,68.6931943,71.6290461,56.0503515,30.2933005,14.9325367,19.1726911,69.6488831,37.5507098,43.9373218,16.2795167,11.6336642,53.5214073,3.1998437,36.6390039\r\n853,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.4585384,1.4330282,16.7462643,60.8329384,65.1402864,49.3035001,27.6640619,7.1867729,16.3158173,65.591925,42.3997957,40.9285016,21.4595725,16.8475341,50.1128286,3.9178222,40.1489371,16.9856541,1.2774801,1.2527044,16.6416633,60.5229889,64.6295402,48.7940576,27.3801946,6.3757665,16.7587397,66.0598934,41.3736294,39.7841932,21.1146496,16.3704655,49.6471699,3.4216607,39.0659641,15.9910126,1.277123,1.2527946,16.145469,59.9329105,64.964684,48.3831113,29.2575809,5.9368369,17.1522636,66.6481039,43.634997,39.0305315,20.8380037,16.0763881,48.7628536,3.3662,38.1337921\r\n854,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.2747477,1.2956158,13.8480819,70.4336974,72.0295058,61.8310571,27.7373433,26.0068494,19.4907273,68.0068872,38.7084077,45.49266,19.368064,14.1130667,67.7171623,3.5503664,34.7917501,12.3061899,1.2956715,1.3058279,14.4399889,71.2509497,72.7286984,62.1785272,27.9774906,24.7369266,19.5882248,68.6053637,38.110325,45.6023315,19.5656706,14.4446659,67.289616,3.6204639,35.5377207,11.3549636,1.2574126,1.2574126,15.0084902,71.2309967,72.8139103,61.5118916,27.2913539,24.3097353,18.6427519,68.1658204,37.8627043,45.2326372,19.7267936,15.0042166,67.1833754,3.534146,36.1744688\r\n855,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.9756204,1.9862431,22.861649,64.4170053,67.1714211,56.5191433,29.9987534,12.14988,16.239033,69.7203193,40.7921275,40.5203038,27.9509677,22.9572867,53.2494284,3.9343088,35.7193875,18.119834,1.918111,1.9286603,23.0750507,64.5524429,66.5386705,55.7086573,30.9973779,11.7422848,16.1882191,69.9058819,40.437436,40.9807819,28.0466564,23.0227538,53.3610178,3.7454432,35.9093782,17.3610748,2.0750784,2.0750794,23.6759015,65.3392416,66.6310615,53.8185249,30.1569933,10.6246264,15.3144657,69.9162289,39.7824936,41.4371313,28.5532972,23.2693072,53.4945138,3.8904806,35.1948827\r\n856,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.128915,1.217035,12.2801563,59.3662781,64.1587754,53.0939421,32.2118657,9.6273299,19.5229629,68.6714773,41.1526779,40.2332123,17.4995138,11.8020043,48.4105461,4.1986039,43.3189885,10.4167085,1.180725,1.2099268,11.5544238,57.2521643,62.0198145,53.1281063,32.8292435,9.0822092,18.2526646,68.7879373,42.5703814,39.0971141,17.0399195,11.5371262,46.472581,4.5266036,43.0736117,11.2167681,1.2123977,1.2415995,11.7621333,55.8809596,62.7800388,53.2721402,32.0950161,10.1542898,17.3729606,68.5545193,44.1054653,37.8980727,17.1024492,11.5371248,45.338961,5.0051624,42.2077816\r\n857,0,0,0,0,0,1,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,0,0.9366036,0.9634939,11.3816173,64.9815966,67.1223468,62.875523,27.5476793,8.8228947,13.0716994,69.0419247,43.9444295,44.3619593,16.076795,11.5370251,49.7155385,4.7473701,35.9898812,10.8032146,0.8903318,0.9286783,10.9800157,65.3179956,65.9340248,61.7412835,28.3688612,8.6513894,13.1604124,69.2128768,44.7641635,43.326493,15.5742861,11.142326,48.6817733,4.7430061,36.0037246,10.7259406,0.8636663,0.8994167,10.4029053,64.0151943,65.3396225,61.1524748,29.1773279,8.036153,12.881193,69.9798184,45.1883315,42.227978,14.6274933,10.5660642,47.7110589,4.9357363,35.7026738\r\n858,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.5874278,4.6024218,43.4708985,78.5534881,75.2077995,79.7038219,13.8118607,46.253988,22.7241845,58.9970181,23.8676045,62.9773172,49.6503006,43.9795554,84.1070849,5.1455442,36.6222324,22.9737994,4.4914941,4.5279023,43.3952855,77.1579426,74.5754793,78.7800488,13.3811634,47.5841161,22.8432708,58.9474785,23.223718,62.4714097,49.874919,43.9955116,84.0217129,5.053723,36.9385508,23.786174,4.5775894,4.6077995,43.7037129,77.1918235,74.7333993,79.0569135,12.9861472,49.5279457,22.7560754,59.4256936,23.3254096,63.7875274,49.6667656,44.0015504,84.2342414,5.0091927,36.8740268\r\n859,1,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,0,0,0,0,0,0,1.4909559,1.4620845,11.6296141,55.0104335,56.0525512,52.711509,32.1159415,6.5494595,13.8920935,70.0928865,43.4082728,35.074984,15.4298028,10.606118,39.5138921,3.8137166,41.2448886,12.7974819,1.4183891,1.3894668,11.6580998,55.590712,58.1171282,53.4505017,29.6848283,6.1989944,13.2894348,70.0607357,42.1587416,35.0090599,14.8296241,10.6810651,40.099885,3.6204001,40.4297461,10.542175,1.3385952,1.3091283,11.9562486,56.3766836,59.6515545,54.5099614,29.1456703,5.5572208,11.8176769,69.4481873,42.6327228,33.7998044,14.6796761,10.2409228,39.4092871,3.8130464,41.2054021\r\n860,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4529077,1.4664167,21.713868,78.1167149,72.4749723,75.3551362,15.101603,62.0113695,25.1359373,61.1414833,25.1764686,56.7328276,26.1338814,21.4886702,86.4423109,4.9398978,34.9128138,19.5070337,1.4830846,1.4968493,21.217762,78.2239186,72.8331393,74.1064864,15.2270259,61.9501586,26.3497666,60.6753173,25.6718739,55.2591415,24.9347305,20.3841867,86.2695294,4.9120829,34.8449545,17.872639,1.403015,1.428937,21.0589294,77.7954382,72.7435973,75.2734858,14.7412924,63.2183538,27.2101684,60.4779458,25.9545174,53.8515489,23.9471701,19.6592655,86.0441763,4.8412418,35.0799905\r\n861,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,0,0,0,0,0,0,1,1.6948664,1.7804839,23.5337782,67.5179132,67.6715998,62.0191653,29.4023014,16.4741182,16.277135,67.3100703,38.7581353,44.011069,27.5563164,23.0256948,52.6716633,3.5364879,32.0019734,18.775069,1.8776044,1.963565,24.0894103,65.6976063,66.3253157,61.852973,29.8535577,15.6777175,16.6930464,67.3624699,40.2171087,41.8112459,27.9159546,23.2807403,52.1918085,3.6417075,31.4008603,17.0020018,1.9399579,2.0298864,23.2916367,66.0717563,66.483516,61.8239174,29.2907114,16.0295123,17.5429967,67.0261765,38.7780231,42.6818151,27.0411193,22.5055927,52.3317859,3.630856,31.7553401\r\n862,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.51864,1.6084873,14.5349096,59.6296223,64.6251873,53.9474928,28.468461,10.2151583,17.8421907,67.6182616,36.2048107,39.9016611,19.9707707,14.3567327,53.7531098,4.5621519,40.2106842,16.6666392,1.3597759,1.3780307,14.5322542,59.2982013,64.0822085,54.6389768,29.4574976,10.4139877,20.5576548,68.7070462,36.6356915,39.2431931,19.7571266,14.247643,53.268403,4.3140884,42.3125135,15.3978999,1.3640925,1.3824176,13.7365742,58.0264031,63.0960349,53.3381493,30.1811387,10.6655093,20.8901088,68.6276382,38.6455279,37.4458018,18.9757362,13.5879339,53.1746221,4.4799544,43.7896175\r\n863,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.8383781,2.7987799,28.9804937,62.7403573,61.9568272,56.9401084,24.8389666,11.847172,13.8579295,62.5599858,33.4741478,45.3648911,34.9337754,29.4341722,60.381821,2.5290987,34.4403781,36.4608724,2.8986096,2.8590729,28.4308033,61.6142415,61.5786446,58.1848016,25.3545238,11.903672,13.1380447,61.9191252,34.2615343,44.8632323,34.0146309,28.7512355,59.6086156,2.4213447,33.6953378,38.4521527,2.763362,2.7332245,27.5130384,62.1117071,61.7867937,58.2929193,26.2465556,12.2810871,13.7793608,62.1887125,36.2328062,44.6959823,33.2848297,27.8681498,59.1996184,2.729581,33.5525118\r\n864,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,0,0,0,0,0,0,1,1.3351252,1.3678417,20.1631234,68.9432383,68.3147122,60.8987932,27.2774783,12.5879552,17.7600239,67.4038121,41.0208819,44.4646417,24.3192593,20.3227923,48.5467637,4.5895441,30.6316159,14.5270107,1.4392291,1.5085175,20.3023278,68.2066896,67.5096683,60.4174274,27.7735804,12.5198201,17.6584383,67.8200156,40.6039715,42.9650958,23.990181,20.2430871,48.4436595,4.6571325,31.5968642,14.6420914,1.2684514,1.3452649,19.2981406,67.8778937,68.0087014,60.0989864,27.9721295,12.6968531,17.3975634,68.6179633,41.5654921,41.9747803,23.1844224,19.2737989,48.4930544,4.567411,31.015055\r\n865,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.6288743,4.6398026,42.4663764,65.7934679,65.7120537,61.0339217,18.6913597,10.6216037,18.2790298,58.8141156,28.6541921,48.506475,48.4111386,42.5849692,57.9631871,2.6089277,38.7810158,32.0309276,4.8117597,4.7967498,43.5909067,66.5732139,65.7923551,59.6321271,19.3986017,12.0544662,18.5722372,58.2906804,28.5780121,48.9377159,49.0926339,43.5696946,58.484865,2.4338716,38.8297201,32.3835364,5.0967215,5.0495046,45.0971789,65.6268437,66.7780721,59.4841501,19.873675,12.7111139,18.8982783,58.8383326,28.1176912,49.208979,50.5135904,44.816057,59.0219779,2.6112084,39.7584587\r\n866,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,0,0,0,0,0,1,0,1.8417823,1.9081933,27.5113007,63.5821916,72.8763635,58.1614918,22.4348813,10.1906106,21.2437251,67.6699232,34.7733645,45.2395113,31.7065091,26.87577,58.5864505,2.1045907,45.3904036,14.0884141,1.7608823,1.8261582,25.6254858,61.7934939,71.5047929,59.0616266,22.8525563,9.4924807,21.3099808,68.2907642,36.5418524,44.0228735,30.6929972,25.6216523,57.3103605,2.6046684,43.904915,16.298417,1.7306864,1.7484257,23.3398432,62.5064642,71.5861461,58.9975181,23.8032929,9.0402652,21.6400336,68.6386101,38.1110435,42.6353585,28.692116,23.5644791,57.2079945,2.3881251,44.3855659\r\n867,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,0,0,0,0,0,0,1,1.3105236,1.3882712,20.6776188,67.4660904,68.8992807,60.3980575,28.3856542,12.3116965,17.2833291,67.6405073,41.9904749,41.5220926,23.5217276,19.6286835,48.782991,4.3974952,31.5745545,15.043889,1.3488252,1.4233787,20.4317813,67.6108286,69.5381775,60.7837624,27.7969151,13.7726669,17.4885683,67.0808456,40.8962465,41.0443856,23.1221307,19.003364,49.181738,4.3917639,31.3119516,13.341359,1.4949113,1.5530545,20.0009807,66.5033326,69.1462097,61.018648,28.2908815,13.823879,15.0770164,67.4438842,41.1751874,41.1504094,22.9968574,18.7862775,49.2203334,4.3119773,31.1237709\r\n868,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7967911,0.9140752,12.7746852,67.3895029,66.5795023,55.8475396,30.8949083,4.8831945,18.9124314,66.96823,42.2713822,36.8877241,16.9874848,11.8119526,37.9964838,4.4782613,42.6937122,8.27819,1.0369446,1.1542288,11.1928589,67.5108304,67.2864537,55.3895261,29.7512608,4.586936,19.9206174,67.3731015,43.2609345,36.4448363,16.6119749,11.6159055,36.6228254,4.4704881,41.4439155,6.73765,1.1443103,1.2666648,10.7827914,66.648149,66.2351588,54.4098669,29.8424452,4.7646518,18.3233753,66.9517602,43.4140004,37.4886246,16.7686114,11.4824025,36.3595222,4.1816554,40.4236574\r\n869,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.9269844,5.1282597,38.9596014,82.9153922,78.7355471,79.5528861,13.1217362,51.6565001,24.726375,51.5580535,19.7832623,65.6177015,46.9446738,39.5953832,83.7865563,3.980172,33.5674271,27.640546,4.6729181,4.908926,38.5392442,82.3280127,79.0971192,79.2125281,13.0273383,51.9373457,24.6564328,50.253998,19.800744,65.5099021,46.3191848,38.9013785,84.4208391,4.0513285,34.2283894,29.1025594,4.5965071,4.8425785,37.8012347,81.4103586,77.5496028,79.012302,13.0029501,52.4357328,24.8099792,49.7434065,19.2138886,65.6544429,45.9732465,38.6027364,85.3408851,4.0146007,34.1065411\r\n870,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1357756,1.2743059,16.3030783,57.1693061,62.827024,58.766053,28.9674007,9.6940437,13.1152536,66.9454706,39.3336169,38.9236839,20.7955035,16.5900575,50.1719813,2.6961331,36.1758129,17.1794623,1.0466204,1.1229514,15.0535889,57.4407237,61.6430135,59.0091059,29.3478837,10.4588421,14.287501,66.3919104,39.217569,37.6224899,20.1301443,16.1248763,49.7159911,2.8698651,35.4978707,15.6084656,1.1449615,1.2391805,15.2240679,58.8512069,62.8835968,60.7098398,29.0385996,10.1022698,13.9543264,65.6138535,38.8524094,39.6861545,19.9757069,16.2489229,50.0734679,2.8764738,34.6290192\r\n871,1,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,0,0,0,0,0,0,1.4064436,1.4175046,13.2239861,58.8769237,62.0105372,55.2559203,29.4863028,10.4548046,20.0063119,66.9825098,41.8735257,35.6079499,20.4701218,14.9234846,48.6166004,3.9231744,38.6967558,19.1602972,1.0652401,1.0764945,13.2314306,59.6752447,63.9630574,55.2329496,31.0382701,10.7606701,20.2191555,68.2299697,43.7532471,35.6133308,20.0375414,14.6978751,47.8803891,3.8438883,39.4769427,17.9533907,0.9583859,0.9697207,12.2718086,59.136368,63.1289677,52.8799669,31.9133516,10.7188142,20.7235067,69.5207392,43.8421946,34.2834059,18.4751405,13.2121203,46.43009,3.7751367,38.131062\r\n872,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.3184538,2.3438979,30.9177113,63.7052854,62.9931561,63.3357915,27.0095053,7.1420632,15.3734267,61.9989977,35.8995608,42.4702488,36.9995548,31.7103918,50.7106818,2.9808909,30.3912154,39.4845759,2.3565744,2.3390678,29.611361,63.1752815,61.8318193,63.2486006,27.7571035,6.4368978,15.3058027,62.4289481,36.5707111,41.7258094,36.5012575,31.0939109,51.0646385,3.0140964,30.5510261,38.0166947,2.6373111,2.5711273,29.3827156,63.2820305,62.2758112,63.5915559,27.800649,6.2587474,14.7308517,63.0585131,35.9384542,41.8480205,36.0082315,30.9356566,50.4345106,2.9117995,31.6002132\r\n873,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.4780354,4.672835,36.3060723,81.3883346,77.7122988,80.143402,12.1567643,53.449681,24.1590294,48.4968402,18.5192973,64.1641863,45.0500706,37.381981,86.0239937,3.999416,34.6395965,30.466101,4.4322141,4.61952,36.7080355,81.5700252,78.5711986,79.9609031,12.3211438,55.1865196,25.0507429,49.3350886,19.2596173,64.2545145,44.5523063,36.9313341,85.9520959,4.2100587,34.4076759,30.3480409,4.0675665,4.267639,35.3681338,80.8897849,78.7758105,78.9153377,11.7870974,55.7659069,25.0920204,50.0203591,18.9154781,64.0420335,43.3293878,35.798999,86.1986731,4.3854342,34.1918418\r\n874,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2836748,1.341246,13.9895548,64.6254793,68.8659922,55.896929,29.3415606,16.4761662,17.6990775,70.6748056,41.2344893,34.0054554,17.918401,13.5490612,52.7330961,4.3776517,34.3184643,9.1346242,1.2871501,1.3579161,14.5791784,64.6897272,67.9560507,55.5652924,29.5304816,15.7518429,17.1492719,69.9352861,42.3624184,34.6659204,19.1231407,14.4470557,52.9000352,4.5356213,35.6946276,9.5611465,1.1892526,1.2622994,14.9806932,64.6356602,67.5510265,55.0240725,29.0185749,15.4095046,16.7227556,69.7818047,42.3875537,34.06374,19.4496933,14.6859924,52.8759895,4.0074015,35.2914094\r\n875,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,0,0,0,0,0,0,1,1.5480742,1.5817456,21.3922632,67.8673734,66.8235273,64.033984,30.4777927,13.1363323,15.977994,64.2898375,35.9857652,40.8495958,25.9382788,20.7248406,49.3856274,3.1865023,30.8078279,16.9476055,1.6806994,1.7123422,21.8231964,69.2823921,68.7226114,64.0231323,28.6680437,13.087415,17.1070902,63.7709561,35.3054421,42.0488302,26.578202,21.0369087,50.0300284,3.3489445,30.5588564,19.2022614,1.583246,1.608787,22.7018165,68.7509116,69.0873618,63.9107283,27.6843767,13.337104,17.9207693,63.1628554,35.5038386,42.1367119,26.7380648,21.6045911,49.9076625,3.2710287,30.3832562\r\n876,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0.8475582,0.872187,13.1358411,70.2641599,72.9713294,59.858003,23.8964922,26.5491658,20.3081796,67.9193009,37.3566728,45.5433706,16.5539882,12.6324105,69.8838626,3.4281109,36.2789461,10.9437509,0.759114,0.7929137,13.0669441,69.5972467,73.4669627,59.7606099,24.6967913,26.8148082,20.1601526,69.0438474,38.1577884,45.0488422,16.5621057,12.7974874,69.0768827,3.348808,36.3894712,10.4491922,0.747316,0.7538997,12.9645167,68.9307882,71.9964619,58.8484377,25.2471122,27.5668043,20.0784185,69.917604,37.8416523,45.5625871,16.0886928,12.4527034,69.4662299,3.3311771,36.9001112\r\n877,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,0,0,1,0,0,0,0,1.0249813,1.0384017,12.6319566,71.7891821,72.7056393,59.4514262,26.4884146,19.9808332,17.0759185,64.9744218,41.4971479,48.2765489,17.6790485,12.8874612,61.8165539,4.3590268,40.4999581,10.8394702,0.9703854,0.9884743,12.8981229,71.0066248,72.0438822,58.9544682,26.5864404,19.4803121,16.821017,64.4614166,41.5962761,48.2248483,17.5325559,13.0459565,61.0648927,4.2912824,40.6926102,9.7082956,1.0269492,1.0355461,13.0962762,71.4487461,72.6711737,59.9093595,27.0463197,19.0007897,18.0247279,65.087139,41.7968848,48.592325,17.308162,13.0085724,61.0064312,4.2002642,40.9717759\r\n878,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.8623992,1.9531064,17.0803468,62.1070133,63.4967585,51.7645563,28.3596833,5.1739335,17.5886757,68.3646426,43.1089013,35.9665623,21.0939091,16.0212072,43.9669243,3.6372333,41.3034597,14.430906,1.917412,1.9541535,18.1648751,63.3891914,63.8865647,51.5897644,27.7119093,5.1446087,16.3552986,68.1724265,42.7868555,38.0387247,21.7743579,16.5014278,43.9950243,3.7208187,42.1717252,14.8068797,1.9504955,1.9871239,18.253423,62.4524399,63.8471613,48.6488885,28.4529392,5.7052161,16.2329674,69.102578,41.988696,36.5748374,21.9008155,16.6896856,44.0523027,3.9563122,41.3219144\r\n879,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6010658,1.6312348,22.9043138,66.3021939,67.9313028,62.707335,20.7013029,15.5125342,18.7960197,62.006137,29.8814998,45.4265182,27.5476212,22.9055575,62.311634,2.9233107,32.6335647,28.0763028,1.5770778,1.6220212,21.4386842,65.6885387,67.0821931,62.8426511,20.9529789,14.9825312,18.5469926,60.986928,29.7600819,44.9267012,26.7428849,22.0425751,62.0551297,2.8924348,32.2863718,28.4392483,1.5964397,1.6382517,20.6065066,66.6666234,67.2704813,63.5685187,21.0893811,14.1281631,18.6259925,61.0091632,30.4861117,45.7197973,26.0824207,21.2733527,61.9173042,2.8146012,31.7491154\r\n880,0,0,0,0,0,0,1,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,3.2605366,3.3926223,31.185468,65.5524423,66.2045174,59.3116686,21.9013964,19.9289393,18.1613899,61.4290544,32.1511369,46.1346586,38.2586586,31.3429378,67.4212171,3.0159286,38.9527601,37.9201506,3.0426519,3.1972753,30.1974022,64.4615629,65.9137153,59.0778441,22.0237698,20.5169384,18.0507737,61.3949992,32.1257345,45.345244,36.6013038,30.1772389,66.8240011,2.9281577,38.6352535,36.4177892,2.84509,2.9866173,28.9844835,64.6623745,66.1275952,59.474438,22.050046,20.4946575,18.7637787,61.6275358,32.278842,46.3589205,35.5536375,29.3802134,66.1167123,3.3207058,37.6210747\r\n881,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,0,0,0,0,0,0,1,1.7487663,1.7487663,18.1736129,63.6336585,67.8739137,58.0622275,27.77429,12.6687883,14.5170719,66.8578024,41.4395593,38.8378592,22.5063791,18.3800649,49.2618196,4.4974351,31.1360898,15.5035228,1.7078653,1.7078653,16.6904859,64.588352,68.1416953,58.0065403,27.7667744,13.108723,15.1476896,67.0738795,40.6533895,39.0925856,21.9183549,17.7989031,48.9146333,4.3063596,30.7549112,16.0056431,1.7786571,1.7786571,16.6448023,65.5987062,68.974472,59.9527408,27.4682379,13.0541729,15.0356203,66.6506826,40.9816742,38.3107104,21.9461637,17.850779,48.5676449,4.1528446,29.4658125\r\n882,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2635228,1.2933874,12.4291181,57.6985742,63.2842997,54.4204944,31.8985741,10.2502305,17.7944699,68.7170448,43.9063941,40.3286751,17.3822471,11.9844417,45.1899895,5.2443209,42.1091313,10.1532911,1.2189878,1.2488346,11.4985924,57.6393686,63.136872,55.778613,32.3469253,8.6731446,17.6479476,69.7395473,44.0455955,38.9680714,16.3867564,11.3200231,45.7855263,5.1690908,44.2918656,9.4758141,1.360473,1.3911813,11.694812,58.6098465,64.4629028,54.7766348,31.2922064,9.2574808,16.0780065,69.8864468,43.1049435,38.4477186,16.4104457,11.5039021,46.1854322,5.1377589,43.55068\r\n883,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5107494,0.5107494,8.6305542,78.7957672,80.0234631,74.5848546,24.8060106,26.052159,21.8772326,64.5953229,36.0168384,54.060447,12.0605619,8.4406509,64.6925951,9.4538577,39.2286223,9.1611319,0.5274766,0.5174274,8.8157755,79.4286422,80.2218932,73.7038105,24.7922673,25.7573084,22.5098754,64.393834,36.5035874,53.6100281,12.2342199,8.5217649,65.1890248,9.2013342,38.6455506,8.4801579,0.5514614,0.5502461,8.8081824,80.3674635,81.6468953,74.808036,24.7150117,26.1928897,22.5645472,65.3819503,35.68488,53.3780174,11.8114045,8.2793227,64.7429652,9.2003886,37.8991062\r\n884,0,0,0,0,1,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,0,0,0.7962486,0.8031214,9.9336375,73.3576884,75.9229867,75.861431,24.3517303,37.6239993,20.2490496,64.4725441,35.254909,42.291148,14.0607735,10.4143646,73.2235702,4.1146425,36.2958716,10.3040541,0.7126546,0.7195919,9.7853731,74.0648125,75.9858201,76.6423151,23.8380226,35.1030345,20.6279907,65.350981,34.7809693,43.0866629,13.7959866,10.0613155,72.0801859,4.0216771,37.1247113,11.6554054,0.6741643,0.6811561,9.304228,73.6810072,74.5476028,77.393699,24.386426,35.6487413,21.0134624,65.7198499,33.6945083,42.5004027,13.2716049,9.7362514,71.9375736,3.8439306,36.6860465\r\n885,0,0,0,0,0,0,0,0,1,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,3.8239594,3.9331321,38.0491382,66.0919272,67.0938419,58.4420644,21.2683486,7.4353429,15.848959,61.2902034,31.1424588,50.845806,44.23276,37.7992937,55.5517373,2.3840897,36.0963064,30.191588,3.9085633,4.0055516,38.3890824,66.3853606,66.8427073,58.3998231,21.0286028,8.099459,17.0432354,61.3337724,30.9109625,51.8535108,45.2867467,38.7174134,56.1664368,2.3345004,36.977567,30.8012876,4.100547,4.2013069,39.7824207,65.9316209,66.2887943,58.2048013,20.9988929,8.1897879,17.0895314,60.9667419,30.5362991,51.665022,46.288238,39.6712095,56.3589983,2.3041951,36.8938459\r\n886,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,0,0,0,0,1,0,0,0.8509812,0.9084132,14.8942839,76.9561679,75.4171581,73.8029713,22.5521829,67.9939996,27.4419736,68.4884397,34.1371132,47.9989357,17.6730318,13.2768798,87.2686977,4.9270785,34.6657474,7.8063581,0.8634032,0.9200713,14.9658226,77.3588211,75.8815943,73.9991491,23.2238649,67.4285168,27.3133543,67.8860026,34.3624219,48.0389127,17.699158,13.152571,86.9391234,4.6998002,34.4480133,7.2420951,0.9316559,0.9877379,15.2694131,76.4741553,76.0882337,73.4264811,23.134042,66.4231188,26.3686204,67.2687716,34.5065502,48.3531891,17.8950718,13.3439691,86.5570888,4.9536314,34.4747656\r\n887,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.094263,1.1800461,9.7635148,74.5799236,75.1845547,77.5452867,23.3719039,27.4536447,17.519712,66.3852963,35.7601725,46.6696305,13.1803017,9.4415514,62.0988437,8.3050626,35.5224801,4.8323424,1.4355889,1.5223216,9.7379582,73.9296506,73.9573601,76.4426984,24.2500704,24.5143375,15.5439196,65.7635219,35.7996633,45.398228,13.6429204,9.6487038,59.8747873,8.2019502,35.5940384,5.3971432,1.4431794,1.5237279,9.1849335,74.0209522,73.5299218,77.1062519,23.6003994,23.0059447,15.1832798,66.2819757,36.0231423,45.2002245,13.7288079,9.3704638,58.2154241,8.9170171,37.2150402\r\n888,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5082385,1.4668208,15.0052171,58.0024026,56.4104904,59.992865,33.5021812,3.9225446,10.7025535,68.990651,45.0602961,33.1304153,19.2550968,13.4640885,35.7135366,4.8372269,34.8934245,19.6307185,1.4025166,1.4347301,14.079136,60.0905126,57.6811913,63.3926347,34.1044902,4.1319156,12.3891719,69.5438311,44.747247,33.0720104,18.1757364,13.0157968,34.7375337,5.0595015,36.0475595,18.0109702,1.3790312,1.4407635,14.5135469,59.605215,58.1722588,61.7759353,34.522331,4.1011187,13.522419,68.7429087,45.4706405,33.1376866,17.6077247,12.5083802,33.6322576,5.3461031,36.0237612\r\n889,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.58308,1.5699118,11.1860634,56.5293696,54.2050397,53.8155381,34.6617102,1.9710463,9.2133815,71.5493598,49.8680706,27.9052856,16.1458122,11.3729047,26.8514625,5.378099,29.1003486,11.2805016,1.6200106,1.6200106,11.1763719,54.8065844,52.3722481,52.1854252,35.3131757,2.0879303,10.0411842,71.4403379,50.538638,25.4478897,16.0076478,11.3160168,24.6544973,5.2775156,28.3946646,9.939771,1.8103519,1.8103519,11.0627529,53.1432449,53.4565019,53.467571,35.1739376,1.8165941,10.5356886,70.9156969,49.4568314,25.6163319,16.0250488,10.8602517,24.580241,5.2765422,28.8019345\r\n890,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0.9573786,0.9908013,12.9881205,77.392243,74.7740638,73.2077194,24.248232,27.9195191,20.5729962,65.9363161,33.490227,49.7917847,16.0350067,12.4424291,64.2320643,14.5899658,39.9377086,7.6829412,0.9865577,1.0292713,12.8600868,77.4112814,75.086708,73.0138059,24.6064751,27.6817392,20.4112841,65.9556978,33.8180576,49.3967314,15.9916063,12.3205151,63.9980708,14.7042735,39.2034466,8.021187,0.9612595,0.9762444,12.9387511,77.4009372,74.8761979,72.9564791,24.504288,27.8637581,20.0164572,65.6175119,33.8280338,49.2642172,15.9707772,12.2268668,63.8098596,14.1610824,38.0348003\r\n891,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,0,0,0,0,0,0,1,1.4133058,1.4697241,18.1312283,65.1636471,66.3830999,62.3327828,28.9434267,14.6940534,17.9120508,67.3690899,41.9413446,37.3453879,22.9120722,18.1430402,48.5792591,4.4946248,29.2939088,13.6803841,1.5787415,1.6341592,18.5985402,66.6503829,67.4660321,63.286929,29.20533,14.7234346,18.3958689,67.1752548,42.2156434,36.7222183,23.7259536,18.7156826,48.4985408,4.3834328,30.0175879,15.9598107,1.6275198,1.7091531,19.1925815,66.0191195,67.0972558,63.6830031,29.1004295,13.9285581,18.1633094,67.1830692,42.66062,36.386995,24.0419997,18.9218064,48.0109942,4.3586538,30.9832875\r\n892,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.7772122,4.9722747,40.8637829,63.7595218,64.7230773,51.6109528,21.5685796,14.976932,19.328626,59.670922,30.0604492,49.1302866,49.0450766,41.8688521,64.4394185,2.7927693,44.3560198,37.8988659,4.6164538,4.8061549,41.1388463,62.6694539,63.4325097,52.3114166,22.2744794,16.5051878,18.2267264,60.2937492,29.6020461,48.1774958,48.8859233,41.9993543,64.5992924,2.7294647,43.8309165,37.9839157,4.8036933,4.9513882,41.1301285,61.8395388,64.0470281,53.5544156,21.9577642,16.7411202,17.8940782,59.8416915,30.474603,49.9419688,48.7210268,41.8949889,64.6515028,2.8366913,42.5476123\r\n893,0,0,0,0,0,1,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,0,0.6945216,0.7436852,9.703578,63.7870606,64.9277616,62.1683581,30.2391804,8.136112,12.27664,71.0862247,45.166761,39.3019233,13.5075526,9.5642295,44.9101423,5.4137934,37.82584,9.7408839,0.6578498,0.7117695,9.521393,63.6011661,65.032665,62.9082209,30.482939,7.5283116,12.6456999,71.2223016,45.7794488,39.3524464,13.504356,9.521504,44.1372844,5.4596066,38.2457748,9.9595561,0.6626257,0.7048744,8.9619785,64.5003905,65.9395288,63.1677514,30.1246252,7.6288246,12.8268179,70.8884954,44.4539723,40.5533241,12.9779082,9.0696666,43.4585717,5.4923418,38.9108033\r\n894,0,0,0,0,1,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,0,0,3.9215164,4.1165519,40.6149315,79.4614362,72.0641571,78.7728014,11.6353354,51.8799417,24.2391793,57.5943065,20.7974537,63.4544814,47.25039,41.400156,86.3389121,3.7103891,38.1087662,32.3053589,3.8270474,4.0347308,40.3646278,78.7889987,72.5413595,78.7947633,11.6870133,53.3563072,26.5578249,58.3375051,22.1075115,63.815321,47.3104221,41.4456481,86.18,3.7826421,39.4528152,32.5592885,3.7286788,3.8794282,38.5854817,78.6924621,73.1918533,79.3458768,12.002991,53.5660787,26.7141509,58.1170286,22.6908109,63.4942598,45.3201048,39.4795957,86.2945178,3.5672966,40.0080257\r\n895,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7406769,1.8243513,23.9644993,73.3677024,72.6544574,66.0305585,26.4537891,12.2506605,17.1962783,65.2928723,33.7031982,47.5883779,29.4539312,24.2877686,51.1414936,3.8333771,30.2982018,20.0210642,1.7526745,1.8358114,23.520467,74.3513697,73.6407103,67.1794587,26.3848456,11.5144611,18.7335525,64.5320412,32.9154034,47.5621492,28.9454988,23.9745229,51.3032708,3.3520951,31.0442283,20.5213891,1.8504353,1.9218339,23.7348325,74.2322254,72.219458,67.2679951,26.2866444,11.2921204,17.9349231,64.1380034,32.4793327,47.6153235,29.1586673,23.9274369,50.8301336,3.6879165,30.5349979\r\n896,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9192324,0.8771093,16.5347081,71.3334946,72.2586461,62.2205796,23.1819573,52.9900171,27.2676509,65.0059702,34.224051,48.8904456,19.0327954,14.5755637,83.7054185,3.4135811,37.7822602,10.4838684,0.8352564,0.8352564,15.8594057,72.0094948,71.5462418,62.7206204,23.0855885,54.9146012,26.6496057,64.6057082,34.4320798,50.7721106,19.5389779,14.7322151,83.4153111,3.2316881,38.7170597,10.7768822,0.8551711,0.8551711,15.8639557,69.8975457,69.4387567,62.581836,22.0286065,53.8450047,28.2640648,64.8128615,35.0140574,50.6439445,19.9320589,14.8935738,82.1603297,3.5398687,38.0839539\r\n897,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,0,0,0,0,0,0,1,1.5315642,1.5616063,19.9477839,68.1148166,69.3329166,62.2269028,29.0156054,15.511927,18.1083263,68.7876628,39.3662415,38.6639417,25.4013629,20.2438269,50.0320806,3.9855227,31.5297343,17.5381405,1.6928848,1.7220603,19.8296398,68.1313841,68.9325375,62.3583309,29.2787812,15.0702616,17.9557325,67.8659041,38.5367627,39.5492121,25.7816657,20.3095782,50.0783828,3.7553925,31.9258604,17.8427679,1.5701427,1.5707487,20.1946879,68.2176495,68.3101324,63.0879212,30.0471715,15.3571828,17.6188023,67.7518656,38.8189283,38.8096905,25.8451441,20.5366755,49.8449792,3.8134578,31.6928196\r\n898,0,0,0,0,0,0,0,1,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,1.5030301,1.5235481,10.7419007,69.3569653,69.9031663,68.7412203,28.4488372,17.4340612,16.1643134,66.0211225,39.998584,40.4124775,14.5673981,10.0230158,52.154987,7.2584148,39.6767824,6.1481481,1.5753681,1.5965024,11.0522888,67.7444157,68.579869,69.0576755,29.2849069,17.0971759,16.8678624,66.1046118,40.8771264,38.8907811,14.6059923,10.1446967,51.0782069,7.319749,41.449338,6.4984567,1.4281852,1.4100488,11.1274041,67.5974492,68.2696412,69.561324,29.9726786,16.1047387,17.2615276,66.1247775,42.1717731,37.6505468,14.7973892,10.359377,50.0255106,7.6855319,41.7929163\r\n899,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,0,0,0,0,1,0,0,0.8180414,0.8551683,13.8983613,77.5141651,76.3621384,71.4891128,21.6697249,67.0348678,26.5500168,67.8532481,33.5828394,48.7004731,17.112533,13.0605515,87.6021303,5.1737819,34.6393588,8.3962771,0.921782,0.9509579,14.4395301,76.9468036,75.6753791,71.8781507,22.2887698,67.9588742,26.6957284,67.9073433,33.2604008,48.7581505,17.5740197,13.5351721,88.0693838,5.445829,35.1715515,8.7165285,0.9113243,0.9508359,15.0807417,77.1930147,76.4984381,73.4541933,22.7299041,69.0835869,27.6609594,68.3007186,33.5728046,48.935766,17.6595597,13.4363416,87.6596303,5.2786528,35.882111\r\n900,0,0,0,0,0,0,0,0,1,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,3.4133944,3.4697379,35.9970737,63.1010726,64.7646134,53.9864177,22.1262791,9.7840171,16.804187,60.5185581,34.042097,49.3673545,43.1924971,37.6873992,60.9151306,2.2060626,38.1013905,37.8952273,3.1497552,3.1916235,34.7488146,60.8542555,63.6679055,53.8256167,22.7743185,9.7572567,17.254274,62.0903782,34.2288214,46.6826409,42.3549193,36.7492523,60.1272818,2.3610674,38.0117705,38.3315943,3.1221035,3.163314,33.5879553,61.4795653,64.4590465,53.8036719,22.9810113,10.5254027,17.8173197,62.4730772,34.1262046,46.7987315,40.9851536,35.3266554,59.7588148,2.6287612,38.3504788\r\n901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.1596329,1.1541461,16.4029634,78.7629213,74.8850454,73.5665041,22.1659989,26.5575471,20.1969054,65.0161341,33.709638,51.4183837,19.8476049,15.8595641,64.9634583,14.0097653,41.6098389,9.1977295,1.1349969,1.1427119,16.938805,78.0508576,74.3676098,73.3828677,22.3641933,25.6265521,20.7031504,65.2171417,33.4486695,49.8890947,19.9300246,16.2025132,64.4298786,13.8247173,40.911796,9.6996811,1.17436,1.1820163,16.5287114,78.6946144,74.947205,73.7246135,22.49886,26.1057856,20.6674228,65.7425249,33.4399276,49.7451861,19.7493307,15.9963174,64.5687204,13.9733299,39.9793716\r\n902,0,0,0,1,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,0,0,0,1.7885205,1.7927565,20.4185965,70.9496679,68.5846613,67.2552394,24.8327347,23.9117052,14.4448665,63.0586042,39.6648187,45.2797398,25.3546689,20.5169406,65.5437588,5.0550604,32.870202,21.6164944,1.5815289,1.6327759,19.4911607,70.8781211,68.0423849,67.6108038,25.3949563,21.8264193,14.1288015,63.8415694,39.5157856,43.9357473,24.5131169,19.5584513,64.7446967,5.3479015,33.5156927,22.0879099,1.5030359,1.5535418,18.9549681,69.2999731,66.6324817,66.8544438,25.5431643,20.7561547,14.3716388,65.2375352,40.2717371,42.4890481,24.1585272,18.8848927,63.6447656,5.7161427,33.2930387\r\n903,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,0,0,1,0,0,0,0,1.0014214,1.0135472,13.0402812,72.0022218,73.3680376,59.6977616,27.6640658,18.6215916,18.2626077,65.5147368,41.753599,49.4813564,17.0849375,12.92533,60.7221137,4.4102585,40.6614744,9.7905293,0.9873192,1.0148731,12.7753774,72.1333421,73.1342182,59.5452305,28.1272248,18.2976871,18.7452931,66.1932381,42.0048921,49.3767362,16.817386,12.8295949,60.5826609,4.4062317,41.0374083,9.086843,1.0810678,1.0840515,12.5793603,72.4367975,73.6068955,59.8845992,28.7876294,18.3022618,18.9113261,66.2196028,43.1361978,49.5390253,16.7705387,12.5871513,60.2948047,4.4986529,41.1038156\r\n904,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8514173,1.8775966,22.5750648,66.2544398,69.1577666,58.368423,30.3042143,9.4553967,15.8910915,64.7816969,35.5518283,42.4396216,27.568901,21.9823777,49.3406689,3.3550199,33.8474428,19.7383187,1.8841318,1.9283495,22.4652671,66.6676291,69.1416548,57.9140897,28.9052857,9.6318413,16.576681,64.5336904,35.7524797,42.0505298,27.8921848,22.2077337,49.6446787,3.3149657,34.1396106,18.9419731,1.8566648,1.9014043,23.0778328,65.8401696,68.0868314,57.7616465,27.9895671,9.2645733,16.1872182,64.034946,35.4700595,42.3925943,28.2615684,22.6947711,50.0736858,3.314173,35.6739703\r\n905,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6275852,1.6275852,19.9300572,69.6938157,72.2503412,65.8660819,25.1080242,9.078068,17.4783887,67.9019484,40.8289909,36.0390052,24.4714131,19.4973332,47.3455456,5.2559562,30.5284651,16.3360302,1.7463981,1.7192033,20.2488883,69.6473194,72.0423511,67.8607158,26.1834837,9.4581453,18.3826776,68.1286939,41.0645326,37.5765613,24.4257257,19.5492692,47.4285774,5.3140524,30.4306068,17.12572,1.6651984,1.6706557,19.3658127,70.3517396,72.8540731,68.8314348,25.7250096,9.6128781,18.8427115,67.022741,39.2873524,38.1322452,24.1147776,19.4436291,47.3881355,5.5527443,31.9178909\r\n906,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,1,0,0,0,0,0,0,0,1.8176843,1.873428,23.1166138,69.59521,69.2707239,66.1142249,25.7694437,13.2767669,16.3558921,66.0984249,36.1241833,45.3613383,28.3395742,23.5377786,55.7826771,5.0547284,35.9042619,21.044159,1.8085641,1.8685379,23.3327488,68.8939887,68.4895925,65.5182793,25.7498153,13.4888239,15.1086668,66.0817883,35.8892286,45.156823,28.4750082,23.6092608,55.8492533,5.0557569,35.7274751,22.8042491,1.8046933,1.8696796,23.39069,68.4110469,67.7205251,64.8965759,26.5591354,13.0110024,15.0402885,66.905163,36.1857237,44.2339342,28.6568276,23.8450205,55.532499,5.0150395,36.0228391\r\n907,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.9016264,3.0047865,34.6391458,69.9181717,71.3474074,61.8443635,19.5955399,13.6797795,17.9228009,59.7976934,29.3648134,52.9372446,40.122904,34.2193409,61.9526349,2.7867853,31.8953735,25.0611598,2.9701953,3.0753567,35.9659776,70.2742096,71.4501289,62.0213906,18.9711376,14.5752584,17.8874448,58.9520741,27.7074082,53.1719988,41.09052,35.2968413,62.4091873,2.7389601,32.4469009,25.7079155,2.9019993,3.0269132,36.8686669,70.4711322,71.8066259,61.5289125,18.4102436,15.2193586,18.3534993,58.0782776,26.363183,53.5578808,42.1332116,36.2701388,62.5576704,2.7850442,32.8522989\r\n908,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.5235309,1.5297533,19.2369878,65.7157948,68.2129129,55.3172942,28.0882552,9.9775321,15.8378751,69.927722,41.4563474,39.2101993,23.660441,19.4013641,49.0692788,3.754576,34.3931954,14.3659917,1.4073074,1.4172096,18.9303627,66.7536076,69.625629,55.1881728,28.7738451,10.1616315,16.744311,69.627647,42.1142309,39.7894549,23.581769,19.1412386,48.2662892,3.8826123,34.4863247,13.7398492,1.3595709,1.3508904,18.833613,67.1517568,70.082437,55.8695582,28.8924224,10.4711283,16.7214262,69.164397,42.0844457,39.210326,23.2227172,18.96113,48.6944374,3.7894101,34.2780215\r\n909,0,0,0,0,0,1,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,0,1.4122204,1.479739,18.0444456,66.1092633,67.8877778,60.2681875,27.0315351,12.0984274,14.7476022,67.9964554,41.7733203,46.7725004,22.9483413,18.1853727,58.4129774,4.6979471,36.3370747,20.7574101,1.4039694,1.4618228,17.7366872,66.7587353,68.782843,61.5977461,26.7504203,11.8568881,14.761897,68.0755792,41.9769402,47.3363533,22.4869785,17.5515031,58.0604829,4.7915686,36.8008459,20.1115761,1.2453968,1.3016109,17.4953467,67.1896131,69.5510331,62.3438998,27.3113481,11.9271538,14.3900241,68.3696978,42.18345,46.6798207,21.8137248,17.0371641,57.6909364,4.6989637,36.1214535\r\n910,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,0,0,0,0,1,0,0,1.0340063,1.0910087,14.7667325,75.7686769,78.0429858,70.9841235,22.5952115,67.4441431,29.9262313,67.0739659,35.4086413,47.85734,17.8696076,14.1443719,85.9506732,5.9012988,31.0370379,8.0517411,1.0569052,1.0697824,15.0691846,77.5297016,77.6333197,71.7285775,21.9557628,67.5776978,29.2210476,67.6770114,35.6996882,47.9657183,17.9985859,14.2707481,85.9773394,5.5027655,31.1565778,8.8957437,1.1429578,1.13736,15.5695919,76.5135959,75.986682,71.2223845,22.7556999,67.8387974,28.5108539,67.2770804,36.56478,47.5590081,17.9853898,14.2773409,85.8062085,4.9496948,31.9154193\r\n911,0,0,0,0,0,1,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,0,0.8676503,0.8995371,9.4301612,64.3006121,66.4404611,63.8789655,30.3906007,5.7154088,11.7300636,70.8338695,46.6089169,39.8096182,12.7901045,8.8459069,36.3898924,6.0472155,36.1457215,6.9499907,0.8754359,0.9203255,9.2347806,64.4802721,66.1081245,63.5801158,30.3724147,5.9729466,11.6562002,70.9579959,45.9821442,38.8341404,12.7430755,8.9697339,36.0418905,6.1116311,35.8223342,6.8698251,0.8874637,0.9214898,9.6745147,63.7602972,65.9045472,63.0313601,30.2018837,5.5882742,11.445736,70.7413802,45.8104254,39.3589178,12.8704302,9.2026566,35.8903853,6.128228,34.8971561\r\n912,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4684912,1.4277899,16.9603292,79.3717101,77.4444431,68.7484555,23.4222914,59.3408931,28.480496,61.4186797,33.4114236,53.7361787,20.4535916,16.1977646,83.6022458,4.2365911,39.374355,15.704586,1.3341235,1.2930615,17.4569662,79.4734449,77.9618902,69.4156779,23.4331117,59.9267769,27.6127497,64.228994,34.6128583,55.1028114,21.7942264,17.6980498,82.8744257,4.703012,40.7451228,15.3706572,1.0451884,1.0657504,18.591379,77.2326512,75.7397018,71.1279552,24.7641715,58.0360035,25.4326948,64.0724358,34.7785587,52.6416813,22.6890052,18.2615827,83.1706233,4.8479863,41.4184097\r\n913,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.2410004,3.2566826,33.4186449,68.3050885,70.9172854,61.6948878,25.9334717,8.7388633,15.5654338,61.7934167,36.3327771,43.657248,39.6508451,32.3611392,51.4471338,2.6303071,36.0883455,23.2469649,3.4755886,3.5268642,35.1409874,68.3047243,71.3304873,62.2945134,24.8439373,8.2818583,15.2875092,61.4907406,35.3505532,44.4670288,40.9439721,34.2021398,52.9797898,2.5049628,35.9382727,23.346108,3.7283272,3.778709,36.8274901,68.0017291,71.2367939,63.137678,24.8601883,8.3857407,15.5420658,61.5279367,34.3584518,45.0401314,42.4544785,35.6410779,53.9111015,2.8375641,36.3292869\r\n914,1,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,0,0,0,0,0,0,2.1141706,2.1563569,24.286318,55.6278962,59.1336676,52.5208733,25.7681281,10.4896609,15.9400144,64.8223851,35.0153294,44.5937142,30.9269157,25.3036254,58.324825,2.9995427,36.5332014,31.473495,1.6823991,1.723234,23.2077436,55.5502609,60.3751646,52.7491446,25.2010378,10.7128366,17.1237569,64.0921606,34.3354239,44.769183,29.4673961,24.0008968,58.7922473,3.1143515,36.717541,31.0922578,1.7855672,1.8276895,22.2066597,56.3098994,61.8967427,52.9870578,25.6760136,10.8828694,17.2398454,64.6260876,35.562589,45.2035175,28.4668685,22.9768494,58.3368848,3.1264774,36.4157807\r\n915,0,0,0,0,0,1,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,0,0.9367522,0.9355019,8.4104522,63.9302273,66.0735047,64.9165137,29.0437679,5.7864398,11.8899817,70.0313937,46.2920454,39.3691046,11.9601604,7.9911821,39.3633897,5.2264522,38.0127127,7.1773238,0.8276682,0.8413994,8.3735539,64.8646154,66.6741104,65.6158105,29.0456052,5.585597,11.9240801,70.1683539,46.5066235,40.1877548,11.8645365,7.9574614,39.3402588,5.3446383,37.818693,7.4726601,0.8274151,0.844535,8.5804593,64.7472201,66.6165424,64.7624059,29.5082828,5.3266527,12.0106441,70.488365,46.3390933,39.7837026,11.902975,7.95284,38.9280097,5.3488713,36.6406207\r\n916,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,1,0,0,0,0,0,0,0,1.9722249,1.9727034,22.4042036,69.8515627,69.8962451,64.6455002,26.7220238,11.6114656,15.7117197,66.6433503,36.701695,45.4451372,27.6215869,22.4392186,52.3633273,5.0864486,35.9573692,18.8998004,2.0289233,2.0273503,22.6084489,70.0975156,70.3873505,65.0362814,26.1743843,11.7402843,15.0655876,66.2669544,36.1743594,46.4332953,27.8233886,22.6554309,53.4944136,4.9722501,35.4259301,18.2651136,1.9068143,1.8932461,22.0942482,70.7144232,70.8123394,65.2507725,26.2365659,12.5869504,15.5037823,67.0108217,36.4837446,46.287587,27.3094583,22.2484832,53.9050173,5.0232207,35.3882737\r\n917,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8553884,1.9780908,20.8545799,75.6134538,73.7037582,66.7715368,22.9037215,56.93594,26.1577781,61.2297932,34.3951323,49.3067314,26.3318189,21.6056851,85.1614194,3.4175805,40.5018211,13.7764107,1.737483,1.8900476,20.5781378,74.9551313,74.7262167,67.2694289,24.0114252,57.5560237,26.4132863,62.6897351,34.6908337,50.276597,26.0203628,21.3374911,84.5352718,3.6511322,42.3247778,12.6454208,1.7920164,1.9180687,19.8950466,76.0748109,75.906151,70.6829288,23.129495,59.6713011,26.1801696,61.1059135,32.1145715,52.1208458,26.0969386,20.6659796,84.6350659,3.6544962,41.5659046\r\n918,0,1,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,0,0,0,0,0,1.2879765,1.3670796,18.4211385,68.4541592,69.2953704,62.9369018,26.1137371,13.8324248,13.8406632,66.9643246,38.2433611,49.7086274,22.8682103,18.3276704,61.3657635,4.320229,31.6846603,19.0941272,1.4486385,1.5279689,17.3401817,70.2890512,70.0910928,63.5127291,24.9943694,12.7717074,14.5256425,65.621064,38.8153193,50.3251853,22.3750714,17.589122,60.9827589,4.1075928,32.2211227,19.9646576,1.354838,1.4451807,15.9379749,71.9324546,71.0131943,66.2861569,24.0851557,13.1065442,14.5043972,64.4775499,39.8267565,50.5999639,21.6689216,16.9920632,60.4675325,4.2847564,33.1805607\r\n919,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.0072291,1.0324728,12.9212711,70.4528724,73.0027901,58.7275911,25.6418045,28.7804065,22.5854699,69.8294107,38.6405698,45.0858638,16.9004841,12.8391939,69.8511219,3.427106,35.9270903,11.120682,0.990342,1.0464725,12.2446154,69.538647,72.4230505,58.5012622,25.2015824,29.5625972,23.2118555,68.9789032,38.6265451,44.4749043,16.4308176,12.2788892,70.0806342,3.3574196,35.2952793,10.8423002,1.0020041,1.052332,12.736811,69.0980252,72.0743221,57.3547058,25.2467687,28.9179601,22.4588164,68.842303,38.3186764,44.2728844,16.5546092,12.4276292,70.3281024,3.2763429,35.1874135\r\n920,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1.3275507,1.3192051,16.6482775,77.157444,75.5655918,74.6555494,24.8262037,27.969868,19.0869537,63.1411918,30.3932922,53.2388121,21.3028849,16.7227326,67.9692718,12.5476535,39.2522069,11.1230178,1.3021348,1.2853282,16.5590875,76.8564733,75.2664345,74.1029422,23.2415102,29.1467367,18.9446525,62.6794647,30.0231223,54.31165,21.2803276,16.7012632,68.6010722,12.5723681,39.5605864,10.41811,1.2396048,1.2227616,17.3310623,77.9642242,76.2791063,75.0088969,22.0482697,30.5888262,19.4376078,62.2027953,29.9764022,55.0792266,21.7043713,17.1281864,69.6714695,13.2640898,39.8643272\r\n921,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.3769683,1.3867524,18.5352438,67.7318078,70.4976916,55.5240179,28.2887503,10.166608,17.0240277,68.7035162,41.2681438,39.858937,23.0433276,18.7512337,48.6828225,4.0234452,34.4848245,15.3781526,1.3837348,1.3729918,18.3286772,66.8696591,69.6444656,55.3634614,28.6757914,10.9215492,17.7041778,68.9000915,41.3192616,39.4170021,22.9218054,18.5855071,48.9481461,4.1310264,35.1430375,15.9013273,1.4271646,1.4254464,17.8564717,66.5996244,69.3763573,55.891993,29.1141987,10.4338557,17.7644494,67.5253007,40.464849,40.1724215,22.7578113,18.2008068,49.0761347,4.1954777,33.9711652\r\n922,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,0,0,0,0,0,1,0,1.7295975,1.8221114,26.5179188,65.8233434,72.4217739,53.2373014,21.5775679,9.1298063,20.8794715,67.0766471,33.1865064,47.6378898,31.6017502,25.9541223,58.130129,2.8600133,41.9456339,24.301664,1.8749534,1.9692855,26.2784954,63.0810388,69.483876,50.4945449,22.9623355,9.1143292,20.1965131,68.3621247,34.7237235,46.657037,32.5518683,26.6797702,57.9084578,3.1698006,41.5307824,22.4323839,1.8898278,1.9881725,27.476955,61.4414976,69.4174464,52.2310011,23.5076501,9.8948698,21.7325849,69.7097823,34.988742,45.6015503,32.2224003,26.7264207,59.1884285,3.3193449,42.7350928\r\n923,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8306192,1.9137906,25.3524618,66.4746214,67.7403303,58.1709606,26.9744657,9.9686788,16.1400956,65.2041858,35.4468758,42.0855052,30.6502467,25.0589166,52.0729358,3.2767002,36.8805382,23.4008688,1.8571422,1.9434096,24.7126252,67.3263184,68.1482195,57.4490951,27.2786154,9.9267067,16.9027206,65.4569104,35.851077,42.9571078,30.6495034,25.0711267,52.6576157,3.4423856,36.35288,23.5577048,1.8222002,1.8853748,24.9779422,67.374512,68.2073835,57.7620447,27.9544422,10.0220973,17.1936119,66.0500001,36.0832793,43.4067923,30.9046802,25.536084,52.8661924,3.5847254,37.0784866\r\n924,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,0,0,0,0,0,1,0,2.2551572,2.4128494,25.2688185,67.7562917,72.0379039,57.8730767,23.7194346,8.3970842,16.3476692,62.9986327,32.6894369,48.503904,29.9546624,24.3720084,58.1725406,2.9260956,45.0751752,18.983983,2.0918732,2.1546579,25.2572046,66.8135693,72.4234947,58.144812,21.4810939,8.3148735,17.0970028,64.2586355,33.0815944,49.0792974,29.8156177,24.3569959,56.9003501,3.1008538,43.8842436,18.3938098,2.0197021,2.0822366,25.0928688,65.2428731,71.5471195,58.8277041,22.5366071,8.7200988,17.4725548,66.0062203,33.4925102,47.2389694,28.9742308,23.5338286,58.5452756,2.9458373,44.0944806\r\n925,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.2070412,1.2510611,13.0634373,65.2433045,68.9675545,54.6115714,29.4859592,17.7916956,17.9274696,71.0542648,41.4894987,34.677922,17.4310292,13.0772435,52.7087198,3.9764796,36.0042784,7.9130547,1.162694,1.2259689,13.2116859,65.5134814,68.5932184,56.4553893,28.9981082,17.5921956,17.9873449,70.2913877,40.9198255,35.2332675,17.3100722,12.9942542,52.2869245,4.1119734,34.6649107,7.4262891,1.2346277,1.3043154,13.1845268,65.9959692,69.6155359,56.8597903,29.181913,17.0846591,17.8895671,70.8824546,42.3480533,35.5979978,17.1744794,12.8156893,52.565098,4.2106625,34.092813\r\n926,0,0,0,0,0,1,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,0,2.8908909,2.9503134,29.7045724,69.6939773,70.3715283,64.955713,21.422842,16.2618469,14.9987469,63.8846748,34.73901,52.4758553,36.4509266,30.2411115,65.0631938,3.3425815,36.7485836,30.2710508,2.8641798,2.928688,28.7369843,69.5651405,69.7755564,64.5226744,21.7348589,16.0393768,15.0613457,64.6358781,35.0724089,51.595464,35.6886982,29.5650292,64.6575735,3.4276474,36.7503977,29.869507,2.7792383,2.8313916,28.2178364,69.6526806,69.3944404,64.5683851,21.8461271,16.1462684,14.9323728,64.734669,34.5786882,51.1064972,34.9939904,28.9864365,64.664138,3.5554178,36.8275265\r\n927,0,0,0,0,1,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,0,0,0.8310754,0.8036481,12.8907542,74.931625,73.9123861,78.2838934,21.240325,40.7657736,19.8287054,63.6663712,33.2232919,48.6850421,17.0724638,14,76.6646116,4.73462,37.6322751,13.4812287,0.7593479,0.7319356,12.1102176,73.9694308,73.8695119,78.5604729,21.893415,40.1516906,20.3499456,63.5477959,33.1854003,49.1174068,16.180758,13.148688,75.8736971,4.846478,36.2158648,12.5429553,0.7932824,0.779409,11.8101961,71.4719797,71.8874642,78.8554725,22.6733609,39.5293393,20.1787415,63.7260259,33.3723067,48.6625001,16.183432,13.1656805,75.33867,5.1274272,35.6481481\r\n928,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0960344,1.1765763,12.5607296,64.7840722,66.9961269,59.6225849,25.4390147,9.6857909,16.7729894,65.247106,37.4566758,41.170306,16.8191384,12.8313871,51.8538445,3.4594565,32.3823597,13.7533796,1.1245855,1.2108999,12.2863286,65.8761051,68.2349639,59.8958048,25.5867287,9.6452892,16.6620887,65.7063981,38.3768681,41.0926533,16.237299,12.344994,51.0905647,3.602956,32.385779,13.7856975,1.0935184,1.1814026,12.2598786,65.3549521,67.5894709,59.2183994,25.8711128,8.6325079,15.9228616,66.5582189,38.9818937,40.4522049,16.2533496,12.2073643,49.7338477,3.7847209,32.4132351\r\n929,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7425569,0.8773864,8.1832508,74.2833333,75.883547,77.3871227,25.4661262,19.2422376,18.8147181,63.1038152,35.4009095,45.6457653,12.9421746,8.4503136,53.4130973,8.0289848,31.9332782,5.1886792,0.6991939,0.8438547,8.3120499,75.2864088,76.0881826,77.7248281,26.2519197,20.3491518,19.4384673,63.1979586,35.8587128,46.3363867,12.9851615,8.5331042,53.6621644,8.3430913,31.5573986,5.8544304,0.9140682,1.1162247,7.7170446,74.0356233,74.34058,76.0526322,25.8114117,22.5408459,19.5502094,63.4395512,36.4080029,44.9427235,12.682218,7.9008739,53.128824,8.4435107,32.0118528\r\n930,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,0,1,0,0,0,0,0,2.1992224,2.2700377,23.8353066,62.9288089,65.2361972,53.0097236,28.4024777,7.9977869,11.9384576,68.6809122,39.9177588,41.58263,28.147335,22.2170968,51.3365675,2.8070593,36.3719008,14.9261649,2.1165077,2.1878601,24.2431715,63.1082014,66.0128488,52.2603996,28.5891156,8.2900199,12.4551413,69.7225595,39.7966353,42.1980163,28.3695877,22.510429,51.3684029,2.8297007,37.0508227,15.1603402,2.3471527,2.4131579,25.3654704,63.8900003,66.4431751,54.7584232,29.3944404,7.897443,12.9170185,68.976295,39.330759,43.0591197,29.377668,23.4814296,51.493126,2.9479756,37.5555233\r\n931,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7023956,1.7379873,13.7315695,61.4738797,64.2076482,57.9530225,30.5273326,5.3949398,13.120474,68.0401937,41.8428645,36.1637664,17.8157842,12.7417741,40.4380243,4.1624635,46.0754173,12.5002542,1.5809929,1.5900259,13.2694614,61.0495681,64.8224153,57.7930462,29.9605138,4.9374797,13.8619796,67.4374101,41.8270618,36.6308689,17.7468928,12.5356541,40.2000879,4.0231939,45.6181071,11.8752862,1.4906996,1.4998429,12.8567466,59.4275508,63.2595337,57.8902398,31.2252057,4.6744587,13.8756794,67.1217035,44.2398297,34.7672344,17.2854045,12.2090909,38.6392195,4.0638195,43.8553223\r\n932,0,0,0,1,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,0,0,0,1.0118887,1.0784416,12.3924971,68.9672572,70.7469334,70.3554325,29.8264385,6.8826506,13.7577548,64.1479547,40.8919696,37.6797824,16.4795312,12.0504131,43.1144844,6.7079103,35.8377128,10.6115184,1.043418,1.0877281,12.5220572,69.0554338,70.6403914,70.8436074,31.0829875,7.2125122,13.6829788,63.5955151,41.6648239,35.057522,16.2317341,12.0861031,41.6913296,6.3485161,37.6809422,11.7753389,1.3174533,1.3537695,12.2282085,68.8508874,70.9927516,69.7365107,29.9034981,6.630958,12.7721658,64.1912908,41.6433791,34.6040426,16.1030206,11.8211746,41.5322404,6.4153158,37.5848315\r\n933,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,0,0,1,0,0,0,0,1.3153098,1.3363034,13.8586624,71.5178152,71.6327557,61.2638161,28.3249683,15.3209627,17.3876307,66.2211011,42.0488094,48.9565938,18.3867205,13.0520179,56.2087193,4.5424849,40.9629423,9.9299853,1.2462293,1.253873,13.8068143,71.1764934,71.3219607,60.2560885,28.2130945,15.0480734,17.1179119,65.5856748,41.7769182,48.6404266,18.1835681,13.0813625,56.2594536,4.6271986,41.0525276,9.620333,1.2074203,1.2154627,13.3461213,71.877378,71.9639802,60.4399147,27.9845076,14.592627,16.5194165,65.1267698,41.5654603,48.1769449,17.8532658,12.8026581,56.1525886,4.5328083,40.9615161\r\n934,0,0,0,1,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,0,0,0,1.3379095,1.4215927,13.3760634,69.5837708,68.7544505,69.9769058,25.7408421,9.645796,14.2163268,64.5467943,41.2148148,39.197897,18.6238558,12.7310655,51.9971835,6.1127345,35.039377,13.6363636,1.4461678,1.5030766,13.9357939,65.974181,65.7211203,70.0424422,27.176368,8.1130746,14.3741999,66.2687904,43.0895891,37.6265401,18.1109893,12.635052,50.0241146,6.790531,34.8630661,13.7345679,1.3811534,1.4609006,14.0563171,64.6681362,66.3739088,70.0909636,27.2905563,8.7435193,14.7721822,68.6814104,44.2122387,36.5824822,17.7484057,12.4946949,47.8400092,6.7744696,33.8736402\r\n935,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,1,0,0,0,0,0,0,0,0,1.1089609,1.0973253,16.4541786,71.6230633,73.2097838,65.6424581,22.4359757,60.894861,29.620379,68.1893026,34.825728,43.7178938,20.4349809,16.1359309,84.5716619,4.7550324,34.3418171,12.0628274,1.094638,1.0566633,16.9514639,71.3480136,72.6554732,66.0818264,22.456422,61.8863609,29.5163039,68.2914119,35.0603804,43.6763558,20.3939316,16.248487,84.5243287,4.9955877,33.5598466,10.5171217,1.2135912,1.1750627,16.2608666,71.3867539,72.8884354,64.7269258,21.9836811,59.9254493,28.2486146,68.1453229,34.2988165,43.419514,20.1391946,16.0734465,83.7306708,4.8331525,33.2772827\r\n936,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,1,0,0,0,0,0,0,0,0,1.1738467,1.1738467,16.304383,74.0058047,73.7557324,69.0453437,20.669313,63.5524174,28.1253665,68.9645235,31.2937668,51.091636,19.9327245,15.5471096,84.3855858,3.9925126,33.7188371,7.0148291,1.3225831,1.3479108,16.6296646,74.097514,74.0687413,69.2102595,20.553278,62.7426645,27.5748215,67.7508693,30.5047579,50.8119506,20.2244831,15.5376027,84.690907,4.0668472,34.006873,7.5442515,1.3582729,1.3985341,16.5006962,73.6369731,74.4710908,68.4710451,20.3314177,61.5979811,25.522598,66.3183205,29.267538,51.2095492,20.8120241,15.9081546,84.5498914,3.8288284,34.2892759\r\n937,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,1,0,0,0,0,0,0,0,0,1.44726,1.4841989,12.7177748,69.0916513,70.9232298,66.1709433,20.228534,62.1205962,26.782887,65.6257109,34.5203181,43.7555318,16.7007922,13.1848372,84.8892519,5.2027385,33.429977,12.0089255,1.4729131,1.5098819,12.7192467,68.6460716,71.57868,64.919096,20.4632644,62.0907951,26.2872316,65.3192153,34.0605161,43.025832,17.1236283,13.1137552,85.2553408,4.9102235,34.1452257,11.7022671,1.5580559,1.5946794,13.0674975,68.6327183,71.9443011,65.41605,20.403116,61.8013369,27.1035955,66.6536211,34.5719704,43.4788051,17.4169692,13.5645201,84.5294221,4.6170003,33.0967335\r\n938,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.2221918,5.3403924,40.9836191,66.652065,68.2262374,54.0888817,22.1399891,13.1576502,20.073221,60.3179237,29.5684611,52.1177935,48.9075518,41.5788385,60.1535013,2.8960453,41.5618412,34.2235577,5.0460324,5.2055687,41.0654046,66.9281912,68.2522291,54.9708999,21.2724271,14.6943719,21.0138893,59.8525591,29.5240831,51.4899435,48.7884141,41.4047531,60.7077487,2.9074104,40.4263519,34.1536219,5.1851158,5.3646543,41.039211,66.4084475,67.9068715,54.7736041,20.47369,15.0606633,20.3692557,59.3921237,29.0246442,51.7567419,48.6963863,41.3366418,60.8098412,2.8171545,42.1306971\r\n939,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.0440694,1.0605848,15.1828659,72.329617,72.6576322,61.1457491,22.0021672,31.3679519,21.2189167,67.3317428,37.4047141,46.3831121,18.4729618,14.5275208,73.0490412,3.4717056,34.0525688,13.0390108,0.9567582,1.0045617,14.7242867,71.9840769,73.5334153,61.415819,22.6573982,30.7993704,21.1910831,67.2611625,38.1055484,44.9153686,18.5281768,14.6066063,72.6105862,3.1398553,32.7690506,11.620482,1.0006447,1.0282059,14.6703922,70.9393914,72.5789224,60.7421135,22.0756479,29.8888297,20.0129607,67.2436299,37.0219687,44.4654925,18.2241875,14.2947096,72.6089383,3.10756,33.7692097\r\n940,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,1,0,0,0,0,0,0,0,1.4644154,1.5464123,17.6952108,69.1751652,69.6860772,61.2636904,25.1620695,11.7639094,16.9327238,68.5340844,37.1579337,42.8484604,22.7898869,17.8549782,53.5023255,5.3843764,34.7116572,16.4580769,1.4183812,1.5131834,18.1565679,69.2920388,69.8015704,61.9066199,25.3432,11.0730896,16.4582256,68.3233964,37.1608992,43.2957834,22.7702384,17.982924,53.5657878,5.2570267,34.8736701,16.7713609,1.4283387,1.5051657,18.233931,68.9659862,69.2415495,61.6702472,25.6476722,11.7674487,16.4568747,67.9466972,37.5199859,42.5951125,22.6739706,17.998768,52.9219021,5.3988014,34.7606472\r\n941,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,0,1,0,0,0,0,0,1.2048647,1.2131841,15.696574,64.3964703,66.1847349,50.398829,28.4068563,11.1172217,16.7622068,70.3930578,40.1410191,40.080341,20.163992,15.2796791,57.0682082,3.8802471,35.8204385,13.6229504,1.2704133,1.2990151,15.5520302,64.4009667,66.1648701,50.9800461,28.0168886,10.4548066,15.7946011,70.4749334,40.7538967,39.955808,20.2162342,14.9234018,56.1683353,3.5436004,36.6775648,14.923267,1.3074674,1.320979,15.7013517,63.3887941,65.515491,51.0862619,29.2576849,10.5104873,15.5779054,69.6059885,41.4712463,39.4472186,19.8515696,14.9151641,55.8845637,3.2389743,36.7714845\r\n942,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1.1057615,1.1381594,17.8839434,73.9117372,75.0906237,58.1823274,19.9789459,31.2152038,23.308619,66.2296082,33.2570916,49.4696369,21.4078682,17.3853973,73.7222843,2.7345271,34.8823715,14.4176358,1.1537433,1.2010347,17.5048034,73.5155452,74.6171539,58.5335824,19.9114311,30.7118809,23.2502892,65.4548051,32.8562019,48.6882093,21.5247158,17.2474264,73.9009944,2.5725673,34.9941237,15.8309561,1.2334571,1.2637496,17.6420324,72.0027412,73.252769,58.4929424,20.5716934,30.4569046,22.846168,65.8133354,33.8758616,47.8895304,21.3519563,17.1351995,73.6796688,2.6973394,34.8056498\r\n943,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8308208,0.8857901,9.7703269,78.8266014,78.0214387,76.3169918,25.2539191,25.9394952,19.0449106,63.3858305,35.3776068,50.8697491,14.0137811,9.5177674,62.563445,8.8309355,37.4437631,5.4721077,0.82256,0.8891193,9.9460838,78.7370941,77.4516808,76.7692513,26.6415117,26.4526568,18.3406035,64.6336699,35.9343162,49.3862758,14.2477835,9.575215,62.5088385,8.9041137,37.3903435,5.8282268,0.8830538,0.9536708,10.5827784,78.8062602,77.5303853,76.6897145,26.6357843,25.7535068,17.3643455,64.5201322,35.4086858,48.2204614,14.4975502,9.9616095,62.4300668,8.6571861,37.6255399\r\n944,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.4141842,1.3383012,19.1506009,61.5339608,65.3723291,50.0625798,27.9621858,5.863513,16.6579721,68.5442539,42.2136736,42.9683532,23.4630762,19.5267666,49.5389462,3.9973017,40.1183753,14.4097222,1.3303029,1.2530123,18.1161187,61.6200907,65.4143648,51.0373204,28.1359115,5.9891359,16.3701389,67.0550832,40.7467866,41.2799824,23.2531748,18.8067196,49.6930876,4.2185464,41.0511051,15.5109489,1.3824076,1.3480022,19.2500487,61.5485891,64.9225472,50.301366,28.9372396,6.2182557,15.3480677,69.2075293,41.3555435,40.9419592,23.8816435,19.277955,49.5867679,4.0875255,41.9309361\r\n945,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.55633,2.5486139,31.5281264,71.5131346,71.1525485,69.6484118,13.4994498,33.0390592,19.6376184,64.5775542,22.0017755,50.5647317,36.6042345,31.6368078,76.8995633,2.8797997,39.7133221,32.3446328,2.7742696,2.7311661,32.1658812,69.4990017,69.1049475,71.6437885,15.1385515,33.4404945,18.6281703,62.6352312,23.0126607,47.197756,36.5622424,31.2860676,77.5176678,2.9040404,39.0222985,34.5170455,2.6777698,2.6329815,31.5185895,67.6374351,67.643263,72.7634329,16.0583439,30.4751662,20.1091801,61.5113437,23.7131637,44.898901,36.3443596,31.0856658,77.7318641,2.7510917,38.9194139\r\n946,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,0,1,0,0,0,0,0,1.3606354,1.3736239,14.3025524,66.5903017,70.2849825,55.1295545,26.647848,9.8450677,17.0690252,66.7578925,38.2628205,42.3740077,19.5358138,14.3606644,54.4035756,2.5326832,36.3654138,10.8814755,1.3961874,1.3737606,13.2875733,66.2134649,70.1827393,54.4249503,26.3775333,9.5270774,16.5862873,67.1430546,38.5687521,42.5233897,19.0091525,13.8208786,54.5330704,2.5790263,36.4467561,10.2240362,1.44554,1.4318431,12.6201185,66.5278339,70.3120479,55.1746818,25.8767855,9.3349378,16.4710556,67.7481433,37.7602074,42.5011579,18.4185387,13.2736989,54.0829911,2.7135369,36.7480062\r\n947,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6098672,0.6329834,11.2590146,76.9099491,73.8798915,78.7462619,20.9185766,52.4033219,21.9818832,58.8288025,31.8857266,53.9954333,14.2750879,10.9367578,80.8537042,5.2141233,32.4649484,10.751275,0.6501017,0.7219755,11.6944465,76.0978017,73.4731931,77.9228833,20.8747027,51.3095556,20.350931,60.0679421,32.2559967,53.7220795,14.4575706,11.1310464,80.3956957,5.2398514,33.7165859,11.5691316,0.6219622,0.696,11.2530303,75.718242,73.0479836,76.607572,21.8540393,49.3660437,20.9340844,60.0366845,33.0117439,51.2895969,14.0864092,10.7688587,79.2027284,4.900928,32.9439076\r\n948,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0.8329691,0.8702874,11.8969999,71.3977022,73.373867,59.7894828,24.8052661,29.8266536,22.0695259,67.9654476,38.2678973,45.7934153,15.3375994,11.5708242,69.4221027,3.2056518,34.7871989,7.7464478,0.8210787,0.8618288,11.8391716,71.8797174,74.3078561,60.9582543,24.0046721,29.9066385,21.373079,67.391965,37.6427334,46.001821,15.2783299,11.4259767,69.5665917,3.0704467,34.29353,7.5638221,0.8223474,0.8767428,12.2370605,71.3857267,72.9202887,62.0926455,25.4151704,28.6633745,20.5959858,68.1646107,38.031171,45.4088352,15.3454407,11.5714851,69.1131325,3.1224583,34.3436485\r\n949,0,0,0,0,1,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,0,0,1.1493124,1.2530015,8.8159446,73.8647944,71.8922473,76.4204489,22.2209211,19.0180469,18.3513027,65.2652298,34.9526842,42.0208183,12.8521127,8.556338,54.8735119,4.5888399,40.2021773,9.8,1.0611979,1.1425781,8.334276,73.6204438,72.1566862,77.3575685,22.2309596,16.9734793,18.1158172,64.7259795,34.8031895,42.0827648,12.8321678,8.5664336,56.0192024,5.2919708,38.7957317,8.2692308,1.0856475,1.1658271,9.5901703,73.3827325,72.691086,76.897323,22.430662,15.2173807,17.8158962,63.9168823,36.855948,42.3207929,14.083045,9.6539792,55.0475494,5.6596972,38.155922\r\n950,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.1831678,3.2657621,37.185176,69.8737607,68.6415212,64.4849835,17.5088913,16.9958778,19.3938793,59.7451651,28.0516315,52.3315613,43.0805986,37.7248243,66.2573429,2.8640369,35.8914489,32.8253649,3.1283081,3.2126115,37.1316647,69.9383878,69.0664799,64.0460028,18.1869389,17.5516256,19.6116192,60.1079421,28.0440369,52.5061363,43.2342097,37.6374891,66.2495324,2.8558212,35.8859773,33.2764667,3.0497648,3.1404349,36.7726777,70.3856736,68.8023525,63.8802915,18.670846,16.9520705,19.1573631,60.7405421,27.8238182,52.5491228,42.9283563,37.4356139,66.7800073,2.8609624,36.5463002\r\n951,0,0,0,0,0,1,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,0,3.2827976,3.3716222,31.5250551,67.8187249,70.0953369,63.9656326,20.2493334,16.3059157,14.2278869,63.2008654,34.5467442,52.6036315,38.1186856,32.1345764,65.2794658,3.3996609,37.2066934,31.8371734,3.1805484,3.2524601,31.0324336,67.9826268,70.0832079,64.4831979,20.888995,16.1307613,14.2419904,63.5268346,34.6318077,52.1514826,37.79978,31.6829566,65.0724644,3.4309941,37.5919424,31.0548757,3.063751,3.1315805,30.2913762,68.7624492,70.1341733,65.0439796,21.1614746,16.1915344,14.2083075,63.7589669,34.7561905,52.7000123,37.0409333,30.8077775,65.0340703,3.5037057,37.3390936\r\n952,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,0,0,1,0,0,0,0,1.352435,1.373644,13.5509378,70.5877964,70.8974595,60.9448741,28.6430617,15.3222472,17.1239635,66.0247118,41.0194351,48.2208042,18.2425074,12.6376602,55.0779178,4.2945695,40.372269,11.0659121,1.3748688,1.4034284,13.6369589,71.4314689,71.8360294,61.2727328,28.3251784,15.3517152,17.3145177,65.4690007,41.3817096,49.2871336,18.3899292,12.8262874,55.8434436,4.2883769,40.6770686,11.4703081,1.3888361,1.4145863,13.9515012,71.5521884,71.8323138,60.9197453,28.4768041,15.4041838,17.2282474,65.8448508,41.930541,49.1039529,18.6084419,13.1009347,56.2348717,4.463692,40.8530163\r\n953,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.5120204,2.52873,25.5248844,67.7596385,68.7964439,57.5048579,28.1043909,12.3713392,16.6123544,67.8609958,37.9636518,45.8146843,32.3773822,26.1021586,54.7853233,3.2204968,35.435039,17.5857946,2.6452599,2.6546603,25.3652402,68.4627174,69.7166278,59.4896255,27.988457,13.5339307,16.0662119,66.6452973,35.6431838,46.0455895,32.8540564,26.4769384,55.5190765,2.9897669,35.0220133,18.0335498,2.7539612,2.7752997,25.9179123,68.2281899,70.6105505,60.224524,28.1118823,13.7462477,15.7374501,65.402734,34.7958746,45.4650215,33.8895702,27.290555,56.1825204,2.7738527,33.5936164\r\n954,0,0,0,0,0,0,0,0,1,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,1.2555955,1.2909559,12.5111744,56.3108176,56.5771328,52.9155276,29.9205963,2.2449656,11.2036651,68.5777589,46.4679596,29.0113325,16.1896225,11.574241,27.8368654,4.8474272,37.7380863,6.1666416,1.351178,1.3480754,11.8917866,56.4882479,56.2247482,52.8045732,30.0954873,2.345424,11.1714298,68.7051827,47.2791146,30.1409751,16.1991812,11.4167355,27.7711265,4.8017042,36.7931329,6.4999753,1.3807921,1.3775338,11.691902,54.9709969,55.4579418,51.8695867,28.9433009,2.2104354,11.7126703,68.3682621,46.2475213,28.9771275,16.6290593,11.706102,27.6342632,4.758972,37.0980574\r\n955,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,1,0,0,0,0,0,0,1.4748005,1.5281378,15.8199784,65.5277493,69.5528262,56.5247676,23.3003466,14.3973717,18.074079,67.7241392,36.7864181,43.4680356,20.6170203,16.2748805,62.5084576,3.2435121,36.4646667,16.406224,1.3915137,1.4424247,15.9274076,64.7277429,67.7520873,55.5378004,23.6567368,14.0597716,18.6725937,68.3937796,37.7106645,41.744396,19.8445389,15.8376346,61.5921186,3.3274646,35.9442398,15.7316791,1.6335175,1.7044274,15.8096994,65.35429,68.096444,56.2490204,23.4671793,14.0523534,18.7859147,67.635186,37.3671473,41.7858924,20.0108562,15.8457027,61.2836047,3.3668155,36.0844196\r\n956,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,1,0,0,0,0,0,0,0,1.5914234,1.6714617,18.4985259,67.9288454,67.7633824,61.8549384,25.0080238,11.378135,15.3201239,67.5976263,38.1737165,41.4768203,22.4465172,18.1035852,51.982338,4.9648316,33.9676656,17.2301798,1.4683026,1.5574501,18.2908691,67.0977156,67.2391856,61.0213574,25.0051526,12.1875223,15.3829407,67.6932569,38.1830258,40.9775532,21.9328004,17.7753239,51.7967193,5.140834,33.9330255,17.2437764,1.5190261,1.5983912,17.7844087,66.9002799,67.3237479,60.4098096,25.1998641,12.5838023,14.8619283,67.5798852,37.7309349,40.8388965,21.8816236,17.4999947,51.8102059,5.204028,34.1234909\r\n957,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1.4374622,1.4460224,15.8504568,62.2468373,65.569355,51.2245909,28.1173001,7.036089,17.9671667,67.2050414,42.948816,41.1096311,21.042571,16.4574243,49.5415726,3.9319674,39.6941991,15.0246453,1.3469477,1.3554338,15.9262456,62.0983371,65.6278015,50.7175941,28.3434344,6.8897199,16.9601408,67.2097624,42.8314295,41.8542132,20.7409396,16.1438664,50.454827,3.2891188,40.0797971,13.6138749,1.399727,1.3824915,16.5215178,60.8509598,65.0966819,50.7076961,27.6952013,7.5304153,16.9849245,66.2967123,41.8763507,41.5569299,21.083017,16.4101207,51.0620159,3.66332,41.0630874\r\n958,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.4175635,1.4484319,18.1039988,65.5031798,68.1700303,55.4663101,27.5857353,10.0819417,18.0999806,67.8748533,40.4103467,40.537115,23.2366067,18.3378914,49.7967987,3.784865,35.6822117,17.4388445,1.3700636,1.375695,18.549756,64.7467523,67.9416506,55.1853965,27.8751613,10.3858614,18.4969673,68.0653482,40.2384055,40.447059,22.9306157,18.243344,49.8057509,3.9007641,36.0872025,16.7312274,1.3124249,1.3180869,18.2832624,64.8872504,68.3804788,55.1851555,27.5638689,10.5282587,18.3498264,68.5567064,40.0351802,39.692521,22.5891928,17.8893796,49.4968364,3.7695498,36.1865869\r\n959,0,0,0,1,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,0,0,0,1.7028135,1.7191221,12.7078131,65.8895562,65.6494073,68.2324707,29.1896212,4.2986135,13.2995697,70.2436101,47.2502417,33.8359048,18.1990372,13.0139837,34.866001,7.7901572,32.5005518,6.7838397,1.6415572,1.6948216,12.9359478,65.258881,65.9027309,67.5806158,29.5331721,4.3972092,12.4753338,70.4256791,47.2346427,33.7189033,18.5651737,13.4897555,34.2252053,8.0038049,33.7946373,7.0890461,1.6168438,1.6696667,12.9703256,66.0688368,65.8195345,67.1585772,29.5918167,4.0439684,12.5148659,70.3519669,46.4305561,33.5728515,18.4829563,13.1869817,34.3620315,8.0338615,33.7480682\r\n960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1.8659751,1.8793793,19.8816663,65.4028291,66.956467,57.6044142,26.4475213,9.202557,16.3544572,66.9052973,39.2725595,37.4059317,24.9243021,19.9027671,50.0756867,3.6350161,35.7878827,19.4408453,1.9355372,1.9644581,20.0283125,65.4370475,67.1917393,57.1700756,26.6926916,9.8183384,16.6564748,66.4710236,39.4134516,37.7018552,25.5169865,20.1696369,49.4642293,3.9530644,35.718987,20.2702805,1.8768826,1.9141397,19.9270799,65.7075859,67.1240077,57.5493911,26.9583338,9.75089,16.3048341,66.2846905,39.3585794,38.5644283,25.6429491,20.3511479,49.2014672,3.9230678,35.7022118\r\n961,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,0,0,1,0,0,0,0,1.0365517,1.0854026,11.8965228,71.2621718,72.800645,59.0744153,29.51031,17.6932091,18.2893802,67.0050785,41.8356933,47.560687,16.4209515,11.7711121,58.7039037,4.585173,39.688913,9.6612734,1.0797135,1.1109004,11.5765356,70.7320653,72.0091761,58.9621366,29.3656093,17.1833129,17.9144764,66.6224071,41.5959578,47.2670648,16.1587418,11.3972865,58.3566748,4.7183774,39.7924382,10.064818,1.113103,1.1378619,11.7822638,71.2014705,71.6834741,59.1032855,29.237686,16.926633,17.8397313,66.2479399,41.9711067,47.006159,16.3646745,11.5221171,58.1111631,4.7387397,39.4270151\r\n962,0,0,0,0,0,1,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,0,0.6874005,0.7363182,9.019517,65.3111374,65.6348847,63.3098574,29.7414246,7.5246968,12.5116635,70.6052274,44.3229079,40.5992498,13.1230393,9.1070889,42.8816571,5.2805047,40.1080266,8.7266749,0.7160261,0.7403778,8.736559,64.1632626,65.7681139,63.5311062,30.0801762,6.9018183,12.816341,70.4213371,44.7672232,39.7128517,13.1195956,8.9841483,41.7798903,5.1995261,40.6230608,8.342668,0.7304018,0.7483826,8.6767386,63.8329829,65.7674633,63.5497746,30.2018766,5.7782042,12.1237898,70.2282043,45.1754196,39.7365258,13.0210572,8.9397206,40.9181162,5.3702861,40.1726782\r\n963,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4374267,1.4463667,18.8479692,73.086584,73.5296716,67.9322042,25.767582,10.5594924,17.3480384,69.4591414,38.7957921,42.4388568,23.4257321,19.1621998,47.6807405,5.1129786,30.519225,14.9707981,1.6420957,1.6073336,19.3667233,72.0861315,72.7119154,66.7126759,26.7548389,9.5945349,15.9412854,69.7896539,40.6008411,41.8110873,23.9855412,19.4234577,47.4439451,5.0487113,29.1775325,15.1598317,1.6936414,1.701843,20.3845155,73.7146432,74.1479934,67.7622884,26.2526808,9.7615121,16.9600147,69.7110371,39.4778469,41.3081392,25.2408386,20.2904103,47.5360651,4.9448164,29.8344648\r\n964,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.5259355,1.5508554,19.302157,65.3763144,65.8120251,62.2345907,24.0044208,13.8947268,18.9100044,63.1254614,34.4494299,46.3947465,24.65413,19.8548204,61.2302305,3.5425462,33.1836027,25.2136707,1.5466625,1.5722234,18.6103795,65.2061437,65.7052912,61.3865004,25.4664563,12.7297803,18.8608929,63.6465322,35.758033,45.9887139,23.8951144,19.0897877,60.2105453,3.8163101,33.1791252,24.6327177,1.471907,1.4864706,18.4859191,65.2299662,66.9057343,61.7333152,25.1641965,12.750511,18.8901796,64.7752594,36.5862837,45.3342719,23.3298027,18.7114389,59.8004426,3.7717068,33.3395019\r\n965,0,0,0,0,0,0,1,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,2.4711584,2.5848626,24.9422209,65.168463,67.5923876,58.8955916,21.0495258,19.0244712,19.8508143,61.6746074,32.302563,48.8300257,32.2902781,25.7668944,66.2276996,3.3614389,36.4709488,35.161796,2.3499836,2.4862251,25.0476577,65.02937,66.830872,58.5922686,21.3981401,18.6505507,19.0059519,62.5530187,33.4454463,47.9022613,32.0945698,25.594617,65.5888202,3.0941868,36.687132,33.7433133,2.2683438,2.383394,24.0328322,64.0748761,66.1605951,60.0076722,21.8280038,18.2377766,19.6103891,62.2029882,33.7648517,47.9780091,31.41676,24.8564484,65.0437902,3.3752278,36.975982\r\n966,0,0,0,0,0,0,0,0,1,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,4.2800149,4.3442654,40.8606627,64.1882032,63.2297981,54.5184628,21.1988922,10.6081903,15.5863585,57.1739563,30.6066096,48.7015389,47.7505288,42.0245559,61.7323587,2.2183449,40.2664295,37.023232,4.1486737,4.21308,40.8389156,63.9374138,64.0291905,54.8505814,21.1778194,10.4146465,16.0410249,57.6689563,31.181523,48.1310853,47.4103851,41.9306123,61.9029377,2.0468488,40.1146353,37.5105538,3.96593,4.0038218,40.0773263,63.4111378,63.9053524,53.6115037,21.2079216,9.3545162,15.9402807,57.6691214,31.513008,48.7284733,46.6984547,41.0485409,61.8305795,1.9767902,39.4969174\r\n967,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.4712192,3.6200038,39.2933841,71.3310562,69.1963904,73.6500719,13.1086668,23.3425337,20.8040143,60.6668029,21.4112364,55.9189822,43.5645126,38.3696142,71.7654535,2.8416598,37.9043601,25.8663366,3.4545521,3.519308,39.9927256,70.964785,69.7737741,73.5268115,12.554302,24.0332047,21.3016797,60.7457571,21.0208463,56.1501178,43.9219586,38.7645667,72.061075,2.747599,36.7924528,26.5903308,3.6309747,3.7004548,39.8454563,72.5383351,70.0900379,74.3096104,12.6846801,28.0831975,22.2471935,60.6610335,22.1694942,55.3333558,44.3106184,38.8703356,73.4406372,2.9384302,36.341853\r\n968,0,1,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,0,0,0,0,0,4.7496743,4.971224,40.1725591,71.6578956,71.0272384,64.3156918,17.8298948,17.7727252,19.7429386,61.9046369,30.9600054,58.1154896,47.4359971,39.6982941,68.565753,3.1541465,36.6618161,34.7309254,4.4433124,4.605102,39.1343308,71.7134786,70.8895779,64.3385792,17.7444263,17.9004907,19.5849329,61.6239513,30.697359,58.0860559,46.602672,39.0627697,68.8373856,3.3009298,35.6403174,34.8697827,4.5602204,4.7028291,38.5436887,71.3586307,70.6778135,65.5917535,17.1674678,18.8307044,18.6126849,60.9589446,30.9801928,58.0317349,46.3830757,38.8359085,69.3651236,3.1632167,35.3353069\r\n969,0,0,0,0,0,0,0,1,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,1.7277398,1.7359929,23.5032211,71.5129718,69.2911717,66.8769839,20.1412836,54.0753642,23.5067788,59.7633516,29.9723303,50.7636835,29.6419672,24.5562067,83.0360603,5.0832734,34.7705203,25.2917327,1.668392,1.6792582,22.6935775,70.658615,68.1476128,65.81813,19.6526599,53.1314128,23.7070939,60.2310066,30.0322237,50.2787916,28.7983596,23.8580158,82.6882708,5.1652162,34.4864686,25.1506471,1.5146796,1.5171301,21.5631809,70.9257757,68.1082857,66.1198137,19.4730595,52.7100647,23.189619,59.4814599,29.9807513,49.6898518,27.4883591,22.7167355,82.1033619,5.069722,34.7530406\r\n970,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.6982818,1.7480374,23.7273578,75.3313839,76.1955243,70.5511882,26.2812889,10.7735375,20.8407603,66.9730471,35.1561564,47.6644319,28.2260643,23.3939375,55.8804638,4.3391768,30.8125466,16.8394031,1.4594579,1.5034027,23.0667216,74.1352086,74.6365844,70.5404339,26.5224081,10.9890799,20.0736625,67.3976276,36.7702,47.2887903,27.5503428,22.7616737,55.6158623,4.1935215,31.1407624,14.1796003,1.4424844,1.4873727,22.2796263,75.0100286,74.3494899,69.80232,26.0950471,10.5251283,18.9748871,66.0019946,36.7510642,46.8163783,27.3450478,22.4802496,55.487305,4.1390789,30.92426\r\n971,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.2688328,5.2826648,42.7033261,65.5433814,67.1637929,58.3512922,17.365346,10.018586,18.7126939,58.4698778,26.6843203,53.9419387,50.737219,44.3693355,63.9243611,2.1937291,43.4081532,38.8289358,5.1471783,5.1671024,43.5961965,64.708238,65.3330842,57.3216554,16.9930276,9.8310303,18.5338927,57.887726,27.0676865,52.9798361,51.5062245,44.8061173,64.236477,2.0800374,43.5543159,40.253956,4.9153012,4.8904534,44.4667849,64.4158437,65.3123394,56.7382938,17.0586334,10.7818774,18.8601047,58.1682711,28.3274573,52.2345514,51.7653192,45.5351056,65.117917,2.3398155,44.1689041\r\n972,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.7472315,1.780881,17.4626873,63.3471722,63.5692836,57.7992638,27.4189878,14.9222397,19.7933399,65.3038525,36.5378282,43.7267714,26.0017918,19.3811045,58.422058,4.0897479,45.7452184,24.613389,2.0320168,2.0657016,17.9085521,63.044314,63.9716702,57.1289499,27.7003055,14.9601557,18.885551,64.8086513,37.0625211,43.2891469,25.3378606,19.4361043,57.4035535,3.8498348,43.7699671,22.9658853,1.9710923,1.9786203,17.6417523,62.012094,63.0649719,55.5696503,28.899641,12.9300492,18.5799814,65.9132695,40.0154074,39.494106,25.3057875,19.1419312,56.3144517,3.8928859,44.4639358\r\n973,0,0,0,0,1,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,0,0,4.3663128,4.4853497,37.9808622,81.9433634,78.7660932,78.9759258,16.9042472,43.335501,20.3179539,58.218288,24.5259429,64.4824728,44.9489051,38.7883212,82.9614914,3.6578083,37.8268991,22.0425139,4.3633317,4.4919542,40.3535475,81.735814,78.5968103,79.5632792,16.3046741,45.6250406,21.0513838,57.7486523,24.5707082,65.4632125,47.2497874,41.1539552,82.8643365,3.6250722,38.5479951,23.3362522,4.4488786,4.5732786,41.7186634,81.4861489,77.6850947,79.3207991,15.4697736,45.6383574,21.0885557,57.3948029,24.0903991,65.8511884,48.319209,42.019774,82.9828199,3.3920323,39.1949153\r\n974,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,0,1,0,0,0,0,0,1.4282696,1.4650572,14.6449169,62.4966035,66.2839496,51.5042667,28.0174689,9.5936763,16.3076251,68.2927896,40.7870828,39.1514159,19.1651296,14.4707764,50.5122931,3.7064899,38.1618054,13.0117001,1.3816578,1.4282254,14.992249,62.8146484,67.1860792,52.3843467,27.9854979,9.7679187,16.3538785,67.7916332,40.4500149,40.0854018,19.427896,14.7368786,49.7320287,3.6509743,37.7577936,13.3108196,1.2600111,1.2919491,15.4456125,63.0556309,66.8419856,53.2915129,27.7405371,8.6781713,16.2891499,68.3510011,41.72382,40.7548619,19.1781927,14.8342765,49.7481145,3.7615057,37.946451\r\n975,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,0,0,0,1,0,0,0,1.0562756,1.0892987,15.1665982,74.8522082,76.4003263,72.8154107,24.8257115,25.0222753,21.0533585,67.1047136,35.5162162,48.2510108,19.960571,15.2777981,67.6463729,4.3465595,37.0848986,14.1333589,1.0973959,1.0993513,15.579922,75.2434561,76.6391372,72.645849,25.3253391,26.0467863,21.2087304,67.3373672,36.3622829,49.3642618,20.0349738,15.505281,67.6405001,4.4546077,36.8634046,13.1235769,1.0517974,1.0716735,15.8176991,74.9625659,77.1753147,72.0716034,25.5953094,24.8455467,20.043684,68.1616011,36.1511135,50.4766537,19.9552787,15.2541734,66.9879751,4.4106302,37.0442283\r\n976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7271283,0.6475738,10.129468,78.7120706,77.1264085,77.4032662,21.8248911,45.786083,22.7952276,62.4706076,31.75817,51.365537,12.8756426,9.300522,76.9492473,6.0113544,32.5998017,8.1602374,0.6619611,0.5835296,10.0254494,78.6421495,77.7026359,78.0145084,22.018711,45.2349791,22.0417352,62.197949,30.9292528,51.9065593,13.1377509,9.4132696,76.2655016,6.141695,32.8746243,7.1637448,0.6185206,0.5871037,10.2823545,79.5478915,78.1707226,78.5997303,22.3918791,46.6025731,23.1383265,62.4054457,30.9332491,52.8177814,12.6211092,9.3574764,75.8753905,6.0305374,33.384784\r\n977,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1.080603,1.1592114,22.6016238,74.9970549,76.5117821,72.0151422,19.0349822,61.416305,26.4314779,61.353646,30.4422862,56.1710196,25.6174847,21.4277886,86.8226888,3.0893419,38.2790803,15.3274427,0.9334389,0.9812259,22.3331212,78.7621741,78.7861102,72.2276443,20.3401223,62.5099812,26.4914106,62.0056557,32.1441305,59.501799,25.1828471,21.394113,86.5232852,3.0779372,40.7584056,14.558787,1.069882,1.117362,21.973703,78.2494762,78.4436499,72.4089776,21.161233,60.9451126,26.802731,63.7331067,32.5226225,58.3580514,24.7679174,20.8218716,86.2290032,2.7356899,41.8365873\r\n978,0,0,0,0,0,1,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,0,0.8398473,0.8650491,8.7019058,63.669595,66.686698,63.8541056,29.9839382,5.515593,12.5244435,71.0735878,47.543795,39.8280955,11.8839234,8.2293102,37.0691931,5.7508609,35.946386,7.5307259,0.8167177,0.853258,8.83263,64.3056377,67.4159255,63.2480046,30.027019,5.8605393,12.3541646,70.9063228,47.22013,40.0004858,12.2683395,8.485654,36.9153866,5.9428626,36.155697,7.32322,0.8765282,0.9030971,9.2345795,64.3005188,67.3718659,63.3851726,30.3514787,5.8454162,11.9169556,70.9548433,46.8266671,39.501044,12.5538074,8.7807007,36.3509164,5.8850467,36.0543283\r\n979,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0102727,0.9933143,15.6783613,78.9791393,75.9836479,77.7706477,17.9320012,59.3768202,24.146252,60.0904223,28.0728797,56.416666,19.0989024,15.8021973,84.4108402,5.3467678,31.7086169,14.9717571,1.031436,1.0002898,15.4312127,77.0626024,74.9908229,76.3549406,17.9132292,60.0505103,24.4715356,60.0850129,28.3397825,55.5823649,18.4529174,15.4035881,83.3333372,5.7358261,32.5549446,14.8255871,0.9426594,0.9319252,15.7990776,76.4789109,74.4011834,75.8134516,18.6512802,59.6275693,23.3788638,61.0928342,29.730859,54.9503054,18.6084188,15.3259429,82.9262521,6.2028251,31.4163452\r\n980,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.5741583,3.6918896,39.1434603,74.4376253,73.5955631,71.4670822,14.4146367,28.7431599,21.0353908,63.384089,22.8547503,59.4947197,43.8729477,40.0820024,74.5104061,2.2822392,39.1081871,30.461165,3.4460367,3.5523057,40.2761117,73.4284808,73.4327144,70.3955365,14.6620728,28.5105912,20.7209636,63.0098735,23.5748161,58.3140856,44.0620493,40.2116358,74.9655223,2.5646298,40.1041667,31.097561,3.690697,3.7961041,39.5281132,72.4276542,71.5656356,70.6504442,14.493491,27.6579385,20.1799976,62.8777247,24.2477629,56.3391476,44.0957291,39.9126575,75.3943034,2.7835027,39.1272189\r\n981,0,0,0,0,0,0,0,0,1,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,1.4552497,1.5024142,18.9310419,61.6314357,64.6592838,56.8730981,27.9560478,8.3416221,15.5077584,66.1864585,37.4173607,39.3682721,24.0018426,19.1291723,53.7037325,3.3658522,34.7490723,23.3888039,1.5819246,1.6298891,18.5635645,61.0952096,64.8275604,56.9402879,27.9905517,7.965397,15.1597687,66.0559985,38.005565,38.2511586,23.7555423,19.0331518,52.8227436,3.6010602,34.8432332,21.7811635,1.6154531,1.6806003,17.7948836,61.2474843,64.9123447,57.7207323,27.7893616,7.6619939,15.1497243,65.4963595,37.3556724,38.6373683,23.4121665,18.616319,52.1050926,3.5196982,35.0453955\r\n982,0,0,0,0,0,0,0,1,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,3.449415,3.4901003,35.6950866,73.3248347,72.7962908,68.4166211,16.9180529,56.7809388,24.5295583,58.6521425,26.9161378,57.9709369,42.5805564,36.1790749,83.9712004,4.626545,37.0218186,28.7796347,3.1831578,3.2183671,34.8834975,74.1389415,73.6322814,69.2010973,17.2160303,56.7873014,24.8322523,59.0402354,27.2207209,58.113327,41.6305726,35.5070389,83.9962998,4.5245291,37.2574184,28.5856167,3.1575176,3.1938222,34.3911095,74.3937342,73.3642825,68.7386448,17.8867148,56.1917141,24.2241351,59.258615,28.0272642,58.436086,40.943911,34.9324835,83.9305419,4.535105,37.3320548\r\n983,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,0,0,0,1,0,0,0,1.2081839,1.2596974,17.5758961,75.5849244,76.2160942,71.4963139,25.6887058,24.4062421,19.4928494,68.4522492,36.3890868,52.2683344,21.0670202,16.6510898,67.377243,4.0310036,33.9849803,12.8475977,1.4770464,1.5272462,18.2307136,75.4560697,75.6169197,72.1357263,25.0199398,23.6614087,18.9470502,68.182512,36.4342833,52.7917361,21.9677855,17.2328656,67.5471585,3.9609104,33.5214706,15.2616642,1.4454384,1.5054522,19.0019487,75.4932621,75.5687667,72.3683987,24.3822411,22.9909693,18.4711055,67.9702221,35.5858356,52.2836221,22.98539,18.1281002,68.2103738,3.9914317,33.3390889\r\n984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1868528,1.1647064,18.4895353,79.3417549,77.3015349,75.3079639,16.7664874,61.79815,27.2661344,61.1454246,26.0650027,55.0769633,20.7116318,16.9683143,85.5170631,4.566515,32.3679615,13.9398998,1.2498092,1.2466041,18.0151439,78.7845547,76.7520497,77.2960479,17.6062761,60.8670455,26.4717362,60.7109622,27.0404377,54.8841779,20.3796297,16.6666535,84.6139954,5.019078,32.2760053,14.4463693,1.0830449,1.0797235,16.8519013,78.7510394,76.4328833,78.8973184,18.2191799,61.3119588,25.3200029,60.7052287,27.7238254,54.9160984,19.6505581,16.3718678,84.4907075,5.4166781,32.4124965\r\n985,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,1,0,0,0,0,0,0,0,1.5930724,1.5708083,18.9138991,69.3747633,70.1503275,64.4028409,27.3593723,12.5267896,16.2884426,66.6670164,37.0890015,42.6366534,23.0981487,18.5784593,51.212108,5.3004875,34.5868206,15.0340381,1.4545222,1.4275901,18.8868834,69.6176642,70.4184277,64.9009706,27.649563,11.9729808,16.49429,67.2058815,37.0732736,42.0238566,22.9216306,18.3924293,51.4899773,5.330181,34.2701899,14.7664968,1.4201879,1.435314,18.7196972,69.5228817,70.2414195,64.1719147,27.1201651,12.441815,17.1550138,67.9701999,36.9096392,41.9530496,22.5340608,18.0761239,51.1926631,5.478102,33.5947067\r\n986,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,0,0,0,1,0,0,0,2.2529224,2.2613058,22.5626842,75.0762081,73.4842067,72.2866421,23.0280661,25.3702346,19.3462648,66.0740234,32.7054665,51.6000166,27.7783656,22.0405375,69.2762045,3.5864368,33.0614524,18.9913555,2.5753667,2.5852521,23.6732964,75.4269369,73.8290761,73.0901796,22.3987958,25.8836883,19.2039447,64.9939496,31.0556693,52.3718936,29.6629661,23.4621965,69.8560451,3.5133744,32.7311654,20.9214543,2.7401095,2.7280772,25.6076458,75.0012456,73.4682064,71.726476,22.3903547,26.3541368,19.2178921,64.0502495,30.4527407,52.7458674,31.6986476,25.3975641,69.7779849,3.5577018,32.1006087\r\n987,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.1884053,3.2545596,33.7775016,81.5444129,77.4513821,80.5953509,19.4990269,41.805956,22.0632598,61.4609312,26.664047,63.3609509,38.6486053,32.5035213,78.2512303,5.4479588,34.7388936,13.29016,3.2688833,3.3446588,35.3118532,81.6333354,77.7101886,81.4354656,18.8542403,42.1816912,21.964855,59.5960964,26.0138247,62.923528,39.8939176,33.8547499,78.846135,5.6246382,34.368083,13.7552846,3.6808738,3.7614294,35.8247504,80.8806784,77.6467415,81.4777252,18.3801787,42.6693919,21.2563432,59.0954154,26.2674103,63.8481137,40.8441902,34.7662694,79.2216367,5.5467177,35.4526022\r\n988,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.3512792,1.3957532,17.4571839,80.3104839,74.2546473,82.2452598,17.4086223,53.1673785,22.0347073,63.6448919,28.7498862,52.8999222,21.4663251,17.8854066,82.5381325,6.8328736,32.8447974,15.1376108,1.3814281,1.4030787,16.4299567,79.2757582,73.1938448,83.3196193,17.6157494,51.9659943,22.1255351,63.7979628,30.0588927,52.7942034,20.3335254,16.7305447,82.1046565,6.9583507,32.3927674,14.8426786,1.3144281,1.282365,15.4769984,79.0469254,73.6579226,82.9288975,18.164204,51.2638367,21.8320417,64.4889083,31.6119957,52.3010508,19.3429759,15.8048232,81.7760902,7.2773508,33.0542799\r\n989,0,0,0,0,1,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,0,0,1.0769851,1.018642,7.873489,76.9397187,73.7797315,78.9918835,25.5154752,28.4016398,19.1434413,66.4199597,39.6840669,40.9927808,11.2523249,7.4085555,63.5259357,5.9909326,37.1698113,8.8014981,1.1391709,1.0698468,7.5285642,77.0557847,73.4882047,79.0046237,24.2311191,25.5376349,18.6664918,66.2628961,38.2921622,39.0839386,11.3271605,7.0061728,61.8223383,6.2217924,39.612015,9.7701149,1.1355855,1.0939932,8.1874119,76.0872805,74.0762348,79.2209814,24.689047,24.1841949,17.5537403,67.5479638,37.0285678,37.643817,11.9936709,7.7531646,59.6579477,6.1258278,40.391909\r\n990,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,0,0,0,0,0,1,0,2.5871073,2.7757859,22.3080414,62.5025611,67.2923971,58.6212142,26.7959289,8.9518932,19.5634084,65.2904582,31.2359801,39.9554981,27.6792881,20.5076518,53.2407382,3.8586549,44.1653387,19.3037486,2.578885,2.6154346,22.5814711,63.1078612,65.8117496,60.7083656,26.7755426,9.559116,19.967853,63.2597536,30.5608335,40.8062259,27.482408,20.4456495,51.4717973,4.0711463,44.0157656,19.2072585,2.4208192,2.4567644,21.8312753,65.1104672,65.0458431,60.8855444,27.4475454,7.5029587,19.0161514,63.3269836,31.5016947,41.3109089,26.8320691,20.4961782,53.1752729,3.6793193,44.0151363\r\n991,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.8910552,1.9164359,14.5415963,68.5072209,73.6642385,70.7780073,24.3747949,8.1774469,13.2863624,63.9189844,34.1744291,44.0674193,18.3311432,15.1773982,42.9886686,4.6787709,41.0427807,16.7910448,1.4858321,1.5108009,15.9257449,67.6507185,71.9915538,71.8851467,24.1814103,4.3135731,11.9251662,65.0060708,34.9087513,43.2752752,19.4948187,15.9974093,42.8671329,3.8987688,39.1927083,13.5036496,1.4253579,1.4498978,15.6517432,65.4170979,72.6320894,70.3206559,23.9966382,4.4768961,12.8010502,65.2438561,37.001331,40.6163723,19.5292621,15.4580153,43.4336525,4.4666667,36.509901\r\n992,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.4773123,1.4526396,15.6599223,60.1461768,66.7031226,68.6158107,19.5468093,17.6146794,18.4074572,67.9895908,34.0020727,42.6666022,19.3357161,15.2757233,62.9211906,4.5202023,37.6657819,15.6084656,1.7943968,1.8672645,14.6138715,60.772575,65.3968512,69.3093542,20.6441967,17.2113406,17.800834,68.6666957,32.8459036,42.6054345,19.3844384,14.8764295,62.7934041,4.8730727,36.2483806,16.4921466,1.7019348,1.6289252,14.418055,61.3810827,65.7164896,69.4948165,21.012924,16.7257575,20.0193139,68.6469114,33.1026263,41.3830467,18.8341338,14.2897047,61.2662876,4.6069606,35.6829325\r\n993,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,0,0,0,1,0,0,0,1.1565059,1.1713504,16.5535128,73.2682432,74.2815445,67.2751383,22.3964053,27.8659791,22.1166212,66.9398643,34.8056763,46.5241027,20.080599,15.7885867,68.6118313,4.7765801,33.5842523,13.6963433,1.1686556,1.1988851,16.6398945,73.3482122,74.3235171,67.927899,22.5921564,28.3347577,21.6869587,66.8506682,34.7219814,45.4235559,20.4079117,15.9744887,68.8874271,4.8250907,35.3159511,13.0650141,1.2822984,1.298782,16.4513291,73.7966489,74.9299997,68.112083,22.55745,27.5980866,21.654561,67.1089535,34.9535071,45.9185405,19.7200601,15.6114716,68.7670161,5.0104713,34.6865646\r\n994,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,0,0,0,0,0,1,0,2.5256648,2.562319,21.9303532,62.2690279,65.4310035,57.5457791,23.2984264,8.0709895,16.9301378,65.1644664,37.209684,45.0416093,27.36774,20.7117761,52.8205238,3.1674837,44.6678006,20.9374709,2.6488973,2.686432,21.7568609,64.1634662,67.6298704,58.5893567,22.5872164,8.8469418,16.5843404,64.2381454,36.7451663,46.5348119,27.0205348,20.1352865,54.8256717,3.4183189,44.0602708,20.1863844,2.411289,2.449079,22.4292298,64.6615735,67.691566,59.160009,23.4938431,11.7055865,18.1901114,63.8319267,36.7320076,50.5410242,27.6198612,21.1684933,54.4972232,3.3720571,43.2795611\r\n995,0,0,1,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,0,0,0,0,3.4579769,3.6069556,32.1348671,81.2336042,79.9202547,75.9484806,15.130632,60.8595618,27.3611475,55.7068578,24.919865,64.420355,38.4861922,31.8412006,86.6188301,5.1894333,37.5887677,18.704686,3.6554059,3.7803925,33.6152757,81.5644901,79.5830644,76.0890323,14.1502545,61.1374866,27.2540966,55.5101022,24.6307904,64.7631468,40.1587626,33.344617,86.8477383,5.2122892,38.1945806,19.5149038,3.8787799,4.0037551,35.0722333,81.7031841,79.5827486,75.8300299,13.5711808,61.3560464,27.1132859,55.2992776,24.3245132,64.5693599,41.8250755,34.9545907,87.1937924,5.1768752,38.4973973\r\n996,1,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,0,0,0,0,0,0,3.1531878,3.2280454,29.7838711,56.2379392,61.3573218,51.9644577,23.4995199,10.4860513,14.9767429,64.5853775,34.7123793,45.1169574,36.6559824,30.6633086,59.0006134,2.5434635,35.1773827,34.5540976,3.0716903,3.0716903,28.7785356,55.1054032,59.2011189,51.8942558,23.1593258,10.1438635,14.6725831,64.2821365,33.8688148,44.2848982,35.4015852,29.4578681,59.1158897,2.3463945,36.2040505,35.3551634,2.9694713,2.9499072,28.0458576,55.2282902,58.8587772,51.4172633,24.1441505,10.2411168,15.4357235,64.40968,34.2418372,44.4922885,34.5943283,28.8669699,58.7447782,2.4957007,36.5143616\r\n"
  },
  {
    "path": "HW01/covid_train.csv",
    "content": "id,AL,AZ,CA,CO,CT,FL,GA,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MO,NJ,NM,NY,NC,OH,OK,OR,PA,SC,TN,TX,VA,WA,WV,WI,cli,ili,wnohh_cmnty_cli,wbelief_masking_effective,wbelief_distancing_effective,wcovid_vaccinated_friends,wlarge_event_indoors,wothers_masked_public,wothers_distanced_public,wshop_indoors,wrestaurant_indoors,wworried_catch_covid,hh_cmnty_cli,nohh_cmnty_cli,wearing_mask_7d,public_transit,worried_finances,tested_positive,cli,ili,wnohh_cmnty_cli,wbelief_masking_effective,wbelief_distancing_effective,wcovid_vaccinated_friends,wlarge_event_indoors,wothers_masked_public,wothers_distanced_public,wshop_indoors,wrestaurant_indoors,wworried_catch_covid,hh_cmnty_cli,nohh_cmnty_cli,wearing_mask_7d,public_transit,worried_finances,tested_positive,cli,ili,wnohh_cmnty_cli,wbelief_masking_effective,wbelief_distancing_effective,wcovid_vaccinated_friends,wlarge_event_indoors,wothers_masked_public,wothers_distanced_public,wshop_indoors,wrestaurant_indoors,wworried_catch_covid,hh_cmnty_cli,nohh_cmnty_cli,wearing_mask_7d,public_transit,worried_finances,tested_positive\r\n0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5094132,1.5111687,18.5833623,67.252492,69.6544684,53.1025559,23.938506,13.6051879,20.3880006,69.7092317,36.9772704,48.7457413,23.8574045,18.7572471,63.489086,2.3967911,39.7052378,20.1492796,1.4517979,1.4604722,17.6843368,66.918635,68.8190583,51.8906692,24.3283344,13.8164488,19.0489254,68.7634822,37.683364,47.378368,22.8973749,18.0375055,63.2990505,2.7085375,39.4148163,18.876155,1.3081069,1.3662995,17.1943118,66.8159134,69.7844588,51.9826118,24.7799644,13.2712922,19.2711132,69.0501796,38.1021415,47.1302226,22.6862024,17.5832827,62.9250333,2.7044144,39.2223292,18.4907873\r\n1,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4517979,1.4604722,17.6843368,66.918635,68.8190583,51.8906692,24.3283344,13.8164488,19.0489254,68.7634822,37.683364,47.378368,22.8973749,18.0375055,63.2990505,2.7085375,39.4148163,18.876155,1.3081069,1.3662995,17.1943118,66.8159134,69.7844588,51.9826118,24.7799644,13.2712922,19.2711132,69.0501796,38.1021415,47.1302226,22.6862024,17.5832827,62.9250333,2.7044144,39.2223292,18.4907873,1.4066717,1.4885431,16.7334421,66.4901869,69.9914324,53.2732347,24.1026928,13.9832648,19.5005086,68.8471561,37.3386819,46.5984212,22.4847582,17.2195148,62.771641,2.4749729,41.2090731,16.3292532\r\n2,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3081069,1.3662995,17.1943118,66.8159134,69.7844588,51.9826118,24.7799644,13.2712922,19.2711132,69.0501796,38.1021415,47.1302226,22.6862024,17.5832827,62.9250333,2.7044144,39.2223292,18.4907873,1.4066717,1.4885431,16.7334421,66.4901869,69.9914324,53.2732347,24.1026928,13.9832648,19.5005086,68.8471561,37.3386819,46.5984212,22.4847582,17.2195148,62.771641,2.4749729,41.2090731,16.3292532,1.3810603,1.4533652,16.5802584,66.2127066,70.0198552,53.6913889,24.0708759,14.1336896,18.938706,68.6946204,37.5435369,46.8584001,22.5062611,17.1282038,62.5461163,2.5699402,39.6368156,16.5229315\r\n3,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4066717,1.4885431,16.7334421,66.4901869,69.9914324,53.2732347,24.1026928,13.9832648,19.5005086,68.8471561,37.3386819,46.5984212,22.4847582,17.2195148,62.771641,2.4749729,41.2090731,16.3292532,1.3810603,1.4533652,16.5802584,66.2127066,70.0198552,53.6913889,24.0708759,14.1336896,18.938706,68.6946204,37.5435369,46.8584001,22.5062611,17.1282038,62.5461163,2.5699402,39.6368156,16.5229315,1.3071366,1.4000208,17.2911884,66.5879075,69.9148818,52.8169902,24.2937487,13.1549321,18.6985353,69.3391911,37.7518741,44.6336521,22.3699515,17.0692625,61.5174656,2.6100856,38.9268172,15.578501\r\n4,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3810603,1.4533652,16.5802584,66.2127066,70.0198552,53.6913889,24.0708759,14.1336896,18.938706,68.6946204,37.5435369,46.8584001,22.5062611,17.1282038,62.5461163,2.5699402,39.6368156,16.5229315,1.3071366,1.4000208,17.2911884,66.5879075,69.9148818,52.8169902,24.2937487,13.1549321,18.6985353,69.3391911,37.7518741,44.6336521,22.3699515,17.0692625,61.5174656,2.6100856,38.9268172,15.578501,1.2066587,1.2734633,16.7050534,64.4784135,67.9273731,50.8512973,24.72674,13.6215668,18.0349804,69.5644346,38.3418333,44.1002994,21.4405882,16.207377,60.9336466,2.7907493,39.840306,14.1719204\r\n5,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3071366,1.4000208,17.2911884,66.5879075,69.9148818,52.8169902,24.2937487,13.1549321,18.6985353,69.3391911,37.7518741,44.6336521,22.3699515,17.0692625,61.5174656,2.6100856,38.9268172,15.578501,1.2066587,1.2734633,16.7050534,64.4784135,67.9273731,50.8512973,24.72674,13.6215668,18.0349804,69.5644346,38.3418333,44.1002994,21.4405882,16.207377,60.9336466,2.7907493,39.840306,14.1719204,1.0356174,1.1044465,16.6251359,64.0423156,68.5254656,50.6232185,23.5909405,13.8543395,18.4128161,68.3014033,37.0562747,43.0860428,20.7852758,16.217217,60.9126344,2.9170926,39.2550517,13.9259455\r\n6,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2066587,1.2734633,16.7050534,64.4784135,67.9273731,50.8512973,24.72674,13.6215668,18.0349804,69.5644346,38.3418333,44.1002994,21.4405882,16.207377,60.9336466,2.7907493,39.840306,14.1719204,1.0356174,1.1044465,16.6251359,64.0423156,68.5254656,50.6232185,23.5909405,13.8543395,18.4128161,68.3014033,37.0562747,43.0860428,20.7852758,16.217217,60.9126344,2.9170926,39.2550517,13.9259455,1.0654847,1.1373113,16.7608568,65.5451218,70.2090842,51.791807,24.6337198,14.1418037,19.9933574,69.9695938,37.4257018,43.7858238,20.6216703,15.8412583,60.2969932,2.5912699,39.0888993,14.36337\r\n7,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0356174,1.1044465,16.6251359,64.0423156,68.5254656,50.6232185,23.5909405,13.8543395,18.4128161,68.3014033,37.0562747,43.0860428,20.7852758,16.217217,60.9126344,2.9170926,39.2550517,13.9259455,1.0654847,1.1373113,16.7608568,65.5451218,70.2090842,51.791807,24.6337198,14.1418037,19.9933574,69.9695938,37.4257018,43.7858238,20.6216703,15.8412583,60.2969932,2.5912699,39.0888993,14.36337,1.1471006,1.1643572,16.4830584,65.3403774,69.7045073,52.3974901,24.5831572,13.7331203,19.6451017,69.6702184,37.1436869,43.2377694,20.2250877,15.6836065,60.6284577,2.6234658,38.3245181,15.5106489\r\n8,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0654847,1.1373113,16.7608568,65.5451218,70.2090842,51.791807,24.6337198,14.1418037,19.9933574,69.9695938,37.4257018,43.7858238,20.6216703,15.8412583,60.2969932,2.5912699,39.0888993,14.36337,1.1471006,1.1643572,16.4830584,65.3403774,69.7045073,52.3974901,24.5831572,13.7331203,19.6451017,69.6702184,37.1436869,43.2377694,20.2250877,15.6836065,60.6284577,2.6234658,38.3245181,15.5106489,1.1609655,1.1374604,15.9259227,66.3420299,69.7040558,51.8208968,25.1723213,12.7362389,19.6863061,69.8948939,36.8189359,43.0365162,19.8437536,15.1563406,60.7647994,2.893464,36.6924306,14.5280436\r\n9,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1471006,1.1643572,16.4830584,65.3403774,69.7045073,52.3974901,24.5831572,13.7331203,19.6451017,69.6702184,37.1436869,43.2377694,20.2250877,15.6836065,60.6284577,2.6234658,38.3245181,15.5106489,1.1609655,1.1374604,15.9259227,66.3420299,69.7040558,51.8208968,25.1723213,12.7362389,19.6863061,69.8948939,36.8189359,43.0365162,19.8437536,15.1563406,60.7647994,2.893464,36.6924306,14.5280436,1.1767306,1.1745292,15.9926797,65.2945199,70.1208184,52.7154651,25.001816,12.2264116,20.6291344,69.0986769,36.3941122,41.743953,19.9478202,15.5939081,60.5997237,2.7019906,38.3231913,13.6732144\r\n10,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1609655,1.1374604,15.9259227,66.3420299,69.7040558,51.8208968,25.1723213,12.7362389,19.6863061,69.8948939,36.8189359,43.0365162,19.8437536,15.1563406,60.7647994,2.893464,36.6924306,14.5280436,1.1767306,1.1745292,15.9926797,65.2945199,70.1208184,52.7154651,25.001816,12.2264116,20.6291344,69.0986769,36.3941122,41.743953,19.9478202,15.5939081,60.5997237,2.7019906,38.3231913,13.6732144,1.1898582,1.1783067,14.7328805,63.3221328,69.6688834,52.3470394,25.5994378,11.866999,22.1926927,69.4838838,36.001697,41.4588101,19.2648639,14.7755517,60.4311066,2.9246646,39.6901461,13.9998204\r\n11,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1767306,1.1745292,15.9926797,65.2945199,70.1208184,52.7154651,25.001816,12.2264116,20.6291344,69.0986769,36.3941122,41.743953,19.9478202,15.5939081,60.5997237,2.7019906,38.3231913,13.6732144,1.1898582,1.1783067,14.7328805,63.3221328,69.6688834,52.3470394,25.5994378,11.866999,22.1926927,69.4838838,36.001697,41.4588101,19.2648639,14.7755517,60.4311066,2.9246646,39.6901461,13.9998204,1.2037081,1.2177313,15.2554036,64.5164283,70.8867094,53.3099637,24.6974455,12.0321309,23.4046992,68.7549091,35.1732586,41.360142,18.9181146,14.8304591,60.4038496,2.8504834,39.8117999,13.9998329\r\n12,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1898582,1.1783067,14.7328805,63.3221328,69.6688834,52.3470394,25.5994378,11.866999,22.1926927,69.4838838,36.001697,41.4588101,19.2648639,14.7755517,60.4311066,2.9246646,39.6901461,13.9998204,1.2037081,1.2177313,15.2554036,64.5164283,70.8867094,53.3099637,24.6974455,12.0321309,23.4046992,68.7549091,35.1732586,41.360142,18.9181146,14.8304591,60.4038496,2.8504834,39.8117999,13.9998329,1.196587,1.2107438,14.4796983,65.2012431,70.2406537,54.2464333,24.4760262,10.9279785,21.6863561,69.536726,35.0822711,45.1262906,18.2025084,13.7975099,59.9417856,3.1947592,39.6815746,11.3846955\r\n13,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2037081,1.2177313,15.2554036,64.5164283,70.8867094,53.3099637,24.6974455,12.0321309,23.4046992,68.7549091,35.1732586,41.360142,18.9181146,14.8304591,60.4038496,2.8504834,39.8117999,13.9998329,1.196587,1.2107438,14.4796983,65.2012431,70.2406537,54.2464333,24.4760262,10.9279785,21.6863561,69.536726,35.0822711,45.1262906,18.2025084,13.7975099,59.9417856,3.1947592,39.6815746,11.3846955,1.1324215,1.1467812,13.6450733,63.7609181,68.4311374,54.4745729,24.1769976,11.4486788,20.4641212,68.9840446,35.3726739,44.155982,17.8589178,13.5666973,59.8011184,3.4018399,41.0749944,12.9725026\r\n14,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.196587,1.2107438,14.4796983,65.2012431,70.2406537,54.2464333,24.4760262,10.9279785,21.6863561,69.536726,35.0822711,45.1262906,18.2025084,13.7975099,59.9417856,3.1947592,39.6815746,11.3846955,1.1324215,1.1467812,13.6450733,63.7609181,68.4311374,54.4745729,24.1769976,11.4486788,20.4641212,68.9840446,35.3726739,44.155982,17.8589178,13.5666973,59.8011184,3.4018399,41.0749944,12.9725026,1.0931966,1.0586691,13.6501331,64.7986684,68.8881774,54.9334406,24.7775567,11.5355606,19.6066496,68.4297074,35.1114742,44.823841,17.7140859,13.5430975,58.4249565,3.3260501,40.582947,11.4086118\r\n15,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1324215,1.1467812,13.6450733,63.7609181,68.4311374,54.4745729,24.1769976,11.4486788,20.4641212,68.9840446,35.3726739,44.155982,17.8589178,13.5666973,59.8011184,3.4018399,41.0749944,12.9725026,1.0931966,1.0586691,13.6501331,64.7986684,68.8881774,54.9334406,24.7775567,11.5355606,19.6066496,68.4297074,35.1114742,44.823841,17.7140859,13.5430975,58.4249565,3.3260501,40.582947,11.4086118,1.2808303,1.2709033,13.4929577,63.3982654,68.6663405,55.4662286,25.6143802,12.0373736,18.8317797,68.4342022,35.429848,45.432977,17.5958364,13.3494494,58.0095422,3.3441574,39.9657088,11.4085632\r\n16,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0931966,1.0586691,13.6501331,64.7986684,68.8881774,54.9334406,24.7775567,11.5355606,19.6066496,68.4297074,35.1114742,44.823841,17.7140859,13.5430975,58.4249565,3.3260501,40.582947,11.4086118,1.2808303,1.2709033,13.4929577,63.3982654,68.6663405,55.4662286,25.6143802,12.0373736,18.8317797,68.4342022,35.429848,45.432977,17.5958364,13.3494494,58.0095422,3.3441574,39.9657088,11.4085632,1.2055382,1.1829166,13.113484,64.1660898,67.9838092,55.9533842,26.3573091,12.9153491,19.4313762,69.2297865,36.6427299,46.087425,17.1593762,12.7016078,57.9868566,3.6658707,39.4788336,11.4493643\r\n17,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2808303,1.2709033,13.4929577,63.3982654,68.6663405,55.4662286,25.6143802,12.0373736,18.8317797,68.4342022,35.429848,45.432977,17.5958364,13.3494494,58.0095422,3.3441574,39.9657088,11.4085632,1.2055382,1.1829166,13.113484,64.1660898,67.9838092,55.9533842,26.3573091,12.9153491,19.4313762,69.2297865,36.6427299,46.087425,17.1593762,12.7016078,57.9868566,3.6658707,39.4788336,11.4493643,1.1611433,1.115145,13.0275492,65.6715243,69.8366692,56.0660519,26.2111749,13.8202138,18.0295029,67.7690337,37.5409313,45.3429473,17.1187306,12.7932883,58.4720474,3.5884483,38.4648488,9.4312711\r\n18,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2055382,1.1829166,13.113484,64.1660898,67.9838092,55.9533842,26.3573091,12.9153491,19.4313762,69.2297865,36.6427299,46.087425,17.1593762,12.7016078,57.9868566,3.6658707,39.4788336,11.4493643,1.1611433,1.115145,13.0275492,65.6715243,69.8366692,56.0660519,26.2111749,13.8202138,18.0295029,67.7690337,37.5409313,45.3429473,17.1187306,12.7932883,58.4720474,3.5884483,38.4648488,9.4312711,1.1677649,1.143915,12.8030019,64.9540455,69.2803568,55.847542,27.5043222,12.919286,17.4938784,68.3047334,38.5550163,45.1295392,17.7456989,13.1228606,58.3371333,4.013552,38.8880599,9.3374655\r\n19,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1611433,1.115145,13.0275492,65.6715243,69.8366692,56.0660519,26.2111749,13.8202138,18.0295029,67.7690337,37.5409313,45.3429473,17.1187306,12.7932883,58.4720474,3.5884483,38.4648488,9.4312711,1.1677649,1.143915,12.8030019,64.9540455,69.2803568,55.847542,27.5043222,12.919286,17.4938784,68.3047334,38.5550163,45.1295392,17.7456989,13.1228606,58.3371333,4.013552,38.8880599,9.3374655,1.2038547,1.1809152,13.7340436,64.5663022,69.2311061,54.5887589,29.1981176,14.5103644,18.6629182,69.2799257,40.5941193,41.3698228,17.9282852,13.1802152,56.889853,3.63949,39.4399926,11.1795299\r\n20,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1677649,1.143915,12.8030019,64.9540455,69.2803568,55.847542,27.5043222,12.919286,17.4938784,68.3047334,38.5550163,45.1295392,17.7456989,13.1228606,58.3371333,4.013552,38.8880599,9.3374655,1.2038547,1.1809152,13.7340436,64.5663022,69.2311061,54.5887589,29.1981176,14.5103644,18.6629182,69.2799257,40.5941193,41.3698228,17.9282852,13.1802152,56.889853,3.63949,39.4399926,11.1795299,1.2900263,1.2674192,13.5531772,64.313545,68.734751,53.877929,29.0768957,13.983178,18.6296166,69.2159128,39.88038,41.3170268,17.8472623,12.9153375,56.654496,3.7338591,38.899606,10.2006547\r\n21,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2038547,1.1809152,13.7340436,64.5663022,69.2311061,54.5887589,29.1981176,14.5103644,18.6629182,69.2799257,40.5941193,41.3698228,17.9282852,13.1802152,56.889853,3.63949,39.4399926,11.1795299,1.2900263,1.2674192,13.5531772,64.313545,68.734751,53.877929,29.0768957,13.983178,18.6296166,69.2159128,39.88038,41.3170268,17.8472623,12.9153375,56.654496,3.7338591,38.899606,10.2006547,1.2665243,1.2886287,13.3842175,62.7223683,66.9528882,51.5016637,29.3446641,13.0664046,19.5819532,70.6644669,40.4933137,39.9666935,18.0717674,12.928561,57.2309488,3.7009426,38.9471913,10.8176414\r\n22,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2900263,1.2674192,13.5531772,64.313545,68.734751,53.877929,29.0768957,13.983178,18.6296166,69.2159128,39.88038,41.3170268,17.8472623,12.9153375,56.654496,3.7338591,38.899606,10.2006547,1.2665243,1.2886287,13.3842175,62.7223683,66.9528882,51.5016637,29.3446641,13.0664046,19.5819532,70.6644669,40.4933137,39.9666935,18.0717674,12.928561,57.2309488,3.7009426,38.9471913,10.8176414,0.9776017,0.9883224,13.6280241,61.7515561,65.010544,50.4338529,29.6141385,12.3562962,19.4249389,70.4469427,41.2517232,39.3354327,17.7816039,13.1227518,55.8977027,3.3991307,38.8383989,11.3108043\r\n23,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2665243,1.2886287,13.3842175,62.7223683,66.9528882,51.5016637,29.3446641,13.0664046,19.5819532,70.6644669,40.4933137,39.9666935,18.0717674,12.928561,57.2309488,3.7009426,38.9471913,10.8176414,0.9776017,0.9883224,13.6280241,61.7515561,65.010544,50.4338529,29.6141385,12.3562962,19.4249389,70.4469427,41.2517232,39.3354327,17.7816039,13.1227518,55.8977027,3.3991307,38.8383989,11.3108043,1.1646896,1.1748943,13.4607221,61.4461781,65.0833115,50.0260099,30.4927063,11.5060787,16.9170721,70.525681,40.9414402,38.4568848,18.0001469,12.9451181,55.0023057,3.2440104,38.1442036,12.1526592\r\n24,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9776017,0.9883224,13.6280241,61.7515561,65.010544,50.4338529,29.6141385,12.3562962,19.4249389,70.4469427,41.2517232,39.3354327,17.7816039,13.1227518,55.8977027,3.3991307,38.8383989,11.3108043,1.1646896,1.1748943,13.4607221,61.4461781,65.0833115,50.0260099,30.4927063,11.5060787,16.9170721,70.525681,40.9414402,38.4568848,18.0001469,12.9451181,55.0023057,3.2440104,38.1442036,12.1526592,1.255646,1.2656664,13.2417128,61.1545592,63.6710169,49.9520532,30.317869,10.9162489,17.0260585,71.3746644,40.6474166,39.096291,17.8711509,12.967912,54.9373375,3.3613194,38.081388,12.0557949\r\n25,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1646896,1.1748943,13.4607221,61.4461781,65.0833115,50.0260099,30.4927063,11.5060787,16.9170721,70.525681,40.9414402,38.4568848,18.0001469,12.9451181,55.0023057,3.2440104,38.1442036,12.1526592,1.255646,1.2656664,13.2417128,61.1545592,63.6710169,49.9520532,30.317869,10.9162489,17.0260585,71.3746644,40.6474166,39.096291,17.8711509,12.967912,54.9373375,3.3613194,38.081388,12.0557949,1.2217924,1.2119953,12.0513359,62.0040467,64.4488805,51.2451406,30.7100546,10.8821303,16.4678436,70.5476668,40.4222324,38.0647808,17.0102154,12.1322282,54.8096299,3.24468,37.2867074,11.9437633\r\n26,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.255646,1.2656664,13.2417128,61.1545592,63.6710169,49.9520532,30.317869,10.9162489,17.0260585,71.3746644,40.6474166,39.096291,17.8711509,12.967912,54.9373375,3.3613194,38.081388,12.0557949,1.2217924,1.2119953,12.0513359,62.0040467,64.4488805,51.2451406,30.7100546,10.8821303,16.4678436,70.5476668,40.4222324,38.0647808,17.0102154,12.1322282,54.8096299,3.24468,37.2867074,11.9437633,1.2452949,1.2158346,11.3537445,59.922108,64.0955444,51.7301397,30.0096133,10.3594204,17.0972905,69.3604334,40.2773229,36.9007934,17.1013199,12.3054062,55.1004235,3.0324002,37.4036666,10.7599808\r\n27,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2217924,1.2119953,12.0513359,62.0040467,64.4488805,51.2451406,30.7100546,10.8821303,16.4678436,70.5476668,40.4222324,38.0647808,17.0102154,12.1322282,54.8096299,3.24468,37.2867074,11.9437633,1.2452949,1.2158346,11.3537445,59.922108,64.0955444,51.7301397,30.0096133,10.3594204,17.0972905,69.3604334,40.2773229,36.9007934,17.1013199,12.3054062,55.1004235,3.0324002,37.4036666,10.7599808,1.1060022,1.0770435,10.9829731,60.594718,65.3793587,52.0457444,30.1679247,9.6780787,17.3014348,68.6461773,39.8540363,36.498091,16.4605822,11.8046737,54.89045,2.8566816,37.1176403,10.8055727\r\n28,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2452949,1.2158346,11.3537445,59.922108,64.0955444,51.7301397,30.0096133,10.3594204,17.0972905,69.3604334,40.2773229,36.9007934,17.1013199,12.3054062,55.1004235,3.0324002,37.4036666,10.7599808,1.1060022,1.0770435,10.9829731,60.594718,65.3793587,52.0457444,30.1679247,9.6780787,17.3014348,68.6461773,39.8540363,36.498091,16.4605822,11.8046737,54.89045,2.8566816,37.1176403,10.8055727,1.1206784,1.0921243,10.6226179,61.5450197,66.8575539,53.4924462,29.5623058,10.0643871,17.187326,67.571252,39.4453163,36.4507061,16.1936126,11.4105853,54.6010492,2.9413273,37.2807272,10.9955769\r\n29,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1060022,1.0770435,10.9829731,60.594718,65.3793587,52.0457444,30.1679247,9.6780787,17.3014348,68.6461773,39.8540363,36.498091,16.4605822,11.8046737,54.89045,2.8566816,37.1176403,10.8055727,1.1206784,1.0921243,10.6226179,61.5450197,66.8575539,53.4924462,29.5623058,10.0643871,17.187326,67.571252,39.4453163,36.4507061,16.1936126,11.4105853,54.6010492,2.9413273,37.2807272,10.9955769,1.0741935,1.0358153,11.2756383,61.8318738,67.2505889,54.7665214,29.1127737,10.7090993,17.3140607,68.2387637,40.1927677,35.949632,16.08078,11.2586596,54.8996925,3.1236862,38.0936816,11.0357378\r\n30,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1206784,1.0921243,10.6226179,61.5450197,66.8575539,53.4924462,29.5623058,10.0643871,17.187326,67.571252,39.4453163,36.4507061,16.1936126,11.4105853,54.6010492,2.9413273,37.2807272,10.9955769,1.0741935,1.0358153,11.2756383,61.8318738,67.2505889,54.7665214,29.1127737,10.7090993,17.3140607,68.2387637,40.1927677,35.949632,16.08078,11.2586596,54.8996925,3.1236862,38.0936816,11.0357378,0.9118675,0.8728773,11.7545756,62.451059,67.1899441,53.3402367,28.2877789,10.6897813,18.1960061,68.2945706,39.9457,35.9689257,15.9277697,11.453979,54.9563947,3.1607856,38.3661982,9.5791752\r\n31,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0741935,1.0358153,11.2756383,61.8318738,67.2505889,54.7665214,29.1127737,10.7090993,17.3140607,68.2387637,40.1927677,35.949632,16.08078,11.2586596,54.8996925,3.1236862,38.0936816,11.0357378,0.9118675,0.8728773,11.7545756,62.451059,67.1899441,53.3402367,28.2877789,10.6897813,18.1960061,68.2945706,39.9457,35.9689257,15.9277697,11.453979,54.9563947,3.1607856,38.3661982,9.5791752,0.8131427,0.8262678,11.8185501,61.8079256,66.8261406,52.8283406,29.0412569,10.8315688,17.9263866,68.0512306,40.4533059,36.222099,15.8103938,11.215691,54.4559314,2.8455998,37.7418188,9.0276775\r\n32,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9118675,0.8728773,11.7545756,62.451059,67.1899441,53.3402367,28.2877789,10.6897813,18.1960061,68.2945706,39.9457,35.9689257,15.9277697,11.453979,54.9563947,3.1607856,38.3661982,9.5791752,0.8131427,0.8262678,11.8185501,61.8079256,66.8261406,52.8283406,29.0412569,10.8315688,17.9263866,68.0512306,40.4533059,36.222099,15.8103938,11.215691,54.4559314,2.8455998,37.7418188,9.0276775,0.7805497,0.793858,11.9410577,61.6670111,67.3198603,52.7811851,28.1474387,10.4464518,19.5186613,69.0948166,40.5089958,36.5734332,15.9400734,11.3677934,54.1462631,2.4502179,38.042333,11.1373457\r\n33,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8131427,0.8262678,11.8185501,61.8079256,66.8261406,52.8283406,29.0412569,10.8315688,17.9263866,68.0512306,40.4533059,36.222099,15.8103938,11.215691,54.4559314,2.8455998,37.7418188,9.0276775,0.7805497,0.793858,11.9410577,61.6670111,67.3198603,52.7811851,28.1474387,10.4464518,19.5186613,69.0948166,40.5089958,36.5734332,15.9400734,11.3677934,54.1462631,2.4502179,38.042333,11.1373457,0.7849703,0.8284673,12.1168513,63.5506617,68.5434822,54.5192823,28.2176053,11.0006297,18.12963,68.5928084,39.2080253,38.3472332,16.4827041,11.4210732,54.1684211,2.6006176,37.0453354,11.3424036\r\n34,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7805497,0.793858,11.9410577,61.6670111,67.3198603,52.7811851,28.1474387,10.4464518,19.5186613,69.0948166,40.5089958,36.5734332,15.9400734,11.3677934,54.1462631,2.4502179,38.042333,11.1373457,0.7849703,0.8284673,12.1168513,63.5506617,68.5434822,54.5192823,28.2176053,11.0006297,18.12963,68.5928084,39.2080253,38.3472332,16.4827041,11.4210732,54.1684211,2.6006176,37.0453354,11.3424036,0.8908731,0.9142289,12.3954917,63.1049308,67.226589,54.0768693,28.7911667,10.6185199,17.2163908,69.9399893,40.1985691,38.4816777,16.9442027,11.7863168,53.4437509,2.5413561,36.3600709,9.7281062\r\n35,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7849703,0.8284673,12.1168513,63.5506617,68.5434822,54.5192823,28.2176053,11.0006297,18.12963,68.5928084,39.2080253,38.3472332,16.4827041,11.4210732,54.1684211,2.6006176,37.0453354,11.3424036,0.8908731,0.9142289,12.3954917,63.1049308,67.226589,54.0768693,28.7911667,10.6185199,17.2163908,69.9399893,40.1985691,38.4816777,16.9442027,11.7863168,53.4437509,2.5413561,36.3600709,9.7281062,1.0256696,1.0494355,12.9497568,62.0305437,67.676314,54.1288374,29.5976182,10.5165127,17.3612908,70.128452,40.6245626,39.5419378,17.140238,11.9435484,53.0405439,2.9464745,37.1420204,7.7827472\r\n36,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8908731,0.9142289,12.3954917,63.1049308,67.226589,54.0768693,28.7911667,10.6185199,17.2163908,69.9399893,40.1985691,38.4816777,16.9442027,11.7863168,53.4437509,2.5413561,36.3600709,9.7281062,1.0256696,1.0494355,12.9497568,62.0305437,67.676314,54.1288374,29.5976182,10.5165127,17.3612908,70.128452,40.6245626,39.5419378,17.140238,11.9435484,53.0405439,2.9464745,37.1420204,7.7827472,1.1394463,1.1635361,12.18776,62.8518231,69.0536935,55.1605054,30.2129323,10.3807492,17.716318,70.0548691,40.3804265,40.0554274,17.0882101,11.7688709,53.2458592,2.9198772,37.4418712,6.6511473\r\n37,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0256696,1.0494355,12.9497568,62.0305437,67.676314,54.1288374,29.5976182,10.5165127,17.3612908,70.128452,40.6245626,39.5419378,17.140238,11.9435484,53.0405439,2.9464745,37.1420204,7.7827472,1.1394463,1.1635361,12.18776,62.8518231,69.0536935,55.1605054,30.2129323,10.3807492,17.716318,70.0548691,40.3804265,40.0554274,17.0882101,11.7688709,53.2458592,2.9198772,37.4418712,6.6511473,1.185007,1.2091556,12.2647749,62.1100628,69.0449385,57.2284455,30.305088,11.4326746,17.6994791,69.6816747,40.9340216,39.5807721,17.3754151,11.8418276,53.2981008,3.1265051,37.9816493,6.7096662\r\n38,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1394463,1.1635361,12.18776,62.8518231,69.0536935,55.1605054,30.2129323,10.3807492,17.716318,70.0548691,40.3804265,40.0554274,17.0882101,11.7688709,53.2458592,2.9198772,37.4418712,6.6511473,1.185007,1.2091556,12.2647749,62.1100628,69.0449385,57.2284455,30.305088,11.4326746,17.6994791,69.6816747,40.9340216,39.5807721,17.3754151,11.8418276,53.2981008,3.1265051,37.9816493,6.7096662,1.2733785,1.2733785,12.1424937,62.555492,69.535179,57.4144142,29.5209152,12.216578,17.8108613,69.5982007,41.2265213,39.8878547,17.6226961,11.9321912,53.3164745,3.5877487,38.6366634,6.3377336\r\n39,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.185007,1.2091556,12.2647749,62.1100628,69.0449385,57.2284455,30.305088,11.4326746,17.6994791,69.6816747,40.9340216,39.5807721,17.3754151,11.8418276,53.2981008,3.1265051,37.9816493,6.7096662,1.2733785,1.2733785,12.1424937,62.555492,69.535179,57.4144142,29.5209152,12.216578,17.8108613,69.5982007,41.2265213,39.8878547,17.6226961,11.9321912,53.3164745,3.5877487,38.6366634,6.3377336,1.309851,1.309851,12.9961057,62.5202419,69.5237514,56.4776555,30.409564,12.2765388,16.8726945,70.0024063,41.7938513,41.0097249,17.9957279,12.3567921,52.342435,3.5959649,38.4013757,6.3978041\r\n40,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2733785,1.2733785,12.1424937,62.555492,69.535179,57.4144142,29.5209152,12.216578,17.8108613,69.5982007,41.2265213,39.8878547,17.6226961,11.9321912,53.3164745,3.5877487,38.6366634,6.3377336,1.309851,1.309851,12.9961057,62.5202419,69.5237514,56.4776555,30.409564,12.2765388,16.8726945,70.0024063,41.7938513,41.0097249,17.9957279,12.3567921,52.342435,3.5959649,38.4013757,6.3978041,1.208363,1.1979183,12.8188798,62.1802814,67.4815806,54.9678282,30.9247494,11.3162617,17.4977184,70.8404746,42.7318874,38.7894116,17.7196409,12.4776171,52.5955278,3.5614433,38.6774885,5.4498418\r\n41,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.309851,1.309851,12.9961057,62.5202419,69.5237514,56.4776555,30.409564,12.2765388,16.8726945,70.0024063,41.7938513,41.0097249,17.9957279,12.3567921,52.342435,3.5959649,38.4013757,6.3978041,1.208363,1.1979183,12.8188798,62.1802814,67.4815806,54.9678282,30.9247494,11.3162617,17.4977184,70.8404746,42.7318874,38.7894116,17.7196409,12.4776171,52.5955278,3.5614433,38.6774885,5.4498418,1.0172118,1.0277757,13.103728,61.5718723,67.2509406,53.7759756,29.8761066,12.1041223,17.3660018,70.2695162,42.5667665,38.1185976,17.8505947,12.6471112,53.1427562,3.7535317,39.624784,4.6339226\r\n42,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.208363,1.1979183,12.8188798,62.1802814,67.4815806,54.9678282,30.9247494,11.3162617,17.4977184,70.8404746,42.7318874,38.7894116,17.7196409,12.4776171,52.5955278,3.5614433,38.6774885,5.4498418,1.0172118,1.0277757,13.103728,61.5718723,67.2509406,53.7759756,29.8761066,12.1041223,17.3660018,70.2695162,42.5667665,38.1185976,17.8505947,12.6471112,53.1427562,3.7535317,39.624784,4.6339226,0.9457215,0.9770284,12.6599121,61.3586808,65.2433678,53.3537597,29.6049528,12.309151,17.8243151,70.7457602,43.0637711,37.4928938,17.6091041,12.4890174,52.2512135,3.5296752,38.3043767,6.1271596\r\n43,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0172118,1.0277757,13.103728,61.5718723,67.2509406,53.7759756,29.8761066,12.1041223,17.3660018,70.2695162,42.5667665,38.1185976,17.8505947,12.6471112,53.1427562,3.7535317,39.624784,4.6339226,0.9457215,0.9770284,12.6599121,61.3586808,65.2433678,53.3537597,29.6049528,12.309151,17.8243151,70.7457602,43.0637711,37.4928938,17.6091041,12.4890174,52.2512135,3.5296752,38.3043767,6.1271596,0.8608816,0.8920706,13.0184794,61.6819532,64.8721766,51.4794872,28.5298555,12.0659114,18.6801032,70.8988488,42.7382067,37.3567738,17.8415173,12.3895407,52.2788314,3.5416522,37.8585544,6.0971654\r\n44,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9457215,0.9770284,12.6599121,61.3586808,65.2433678,53.3537597,29.6049528,12.309151,17.8243151,70.7457602,43.0637711,37.4928938,17.6091041,12.4890174,52.2512135,3.5296752,38.3043767,6.1271596,0.8608816,0.8920706,13.0184794,61.6819532,64.8721766,51.4794872,28.5298555,12.0659114,18.6801032,70.8988488,42.7382067,37.3567738,17.8415173,12.3895407,52.2788314,3.5416522,37.8585544,6.0971654,0.8694213,0.9010471,13.0713968,61.472429,65.2337461,50.556417,29.7985872,10.2141267,17.8448709,70.8679761,43.190341,38.1625412,17.5849467,12.0320257,51.5041343,3.6332892,37.3815898,7.4738107\r\n45,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8608816,0.8920706,13.0184794,61.6819532,64.8721766,51.4794872,28.5298555,12.0659114,18.6801032,70.8988488,42.7382067,37.3567738,17.8415173,12.3895407,52.2788314,3.5416522,37.8585544,6.0971654,0.8694213,0.9010471,13.0713968,61.472429,65.2337461,50.556417,29.7985872,10.2141267,17.8448709,70.8679761,43.190341,38.1625412,17.5849467,12.0320257,51.5041343,3.6332892,37.3815898,7.4738107,1.0683884,1.0899999,13.8432811,61.4450809,64.7343653,51.5526819,29.9585782,9.2665583,17.8672303,71.73991,42.738764,37.0234791,17.8327041,12.0344207,50.8834352,3.3747192,38.046287,10.8034284\r\n46,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8694213,0.9010471,13.0713968,61.472429,65.2337461,50.556417,29.7985872,10.2141267,17.8448709,70.8679761,43.190341,38.1625412,17.5849467,12.0320257,51.5041343,3.6332892,37.3815898,7.4738107,1.0683884,1.0899999,13.8432811,61.4450809,64.7343653,51.5526819,29.9585782,9.2665583,17.8672303,71.73991,42.738764,37.0234791,17.8327041,12.0344207,50.8834352,3.3747192,38.046287,10.8034284,1.2176622,1.2398004,14.2136085,63.5652234,64.7948637,53.4314973,29.1877699,10.0911198,19.6672582,71.3720882,41.1134031,37.4743926,18.4374389,12.2997261,51.5505315,3.2581122,39.1279913,9.2959732\r\n47,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0683884,1.0899999,13.8432811,61.4450809,64.7343653,51.5526819,29.9585782,9.2665583,17.8672303,71.73991,42.738764,37.0234791,17.8327041,12.0344207,50.8834352,3.3747192,38.046287,10.8034284,1.2176622,1.2398004,14.2136085,63.5652234,64.7948637,53.4314973,29.1877699,10.0911198,19.6672582,71.3720882,41.1134031,37.4743926,18.4374389,12.2997261,51.5505315,3.2581122,39.1279913,9.2959732,1.280297,1.3025352,14.499369,63.7482423,65.858773,54.0205064,29.0427378,10.4352771,20.9056705,71.0105262,41.1500999,37.0197054,18.1798088,12.0333635,50.6789341,3.1710103,39.1631593,9.8927625\r\n48,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2176622,1.2398004,14.2136085,63.5652234,64.7948637,53.4314973,29.1877699,10.0911198,19.6672582,71.3720882,41.1134031,37.4743926,18.4374389,12.2997261,51.5505315,3.2581122,39.1279913,9.2959732,1.280297,1.3025352,14.499369,63.7482423,65.858773,54.0205064,29.0427378,10.4352771,20.9056705,71.0105262,41.1500999,37.0197054,18.1798088,12.0333635,50.6789341,3.1710103,39.1631593,9.8927625,1.6123728,1.6347097,14.3163762,65.3805845,66.5618941,54.3913412,29.2230165,9.7662065,22.9861482,72.0622306,41.5325109,37.5864307,18.1843608,11.9881505,49.8240676,2.9816754,38.2414258,10.4080717\r\n49,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.280297,1.3025352,14.499369,63.7482423,65.858773,54.0205064,29.0427378,10.4352771,20.9056705,71.0105262,41.1500999,37.0197054,18.1798088,12.0333635,50.6789341,3.1710103,39.1631593,9.8927625,1.6123728,1.6347097,14.3163762,65.3805845,66.5618941,54.3913412,29.2230165,9.7662065,22.9861482,72.0622306,41.5325109,37.5864307,18.1843608,11.9881505,49.8240676,2.9816754,38.2414258,10.4080717,1.6229988,1.6343798,14.3659755,63.515127,64.4585792,53.6751127,29.7705985,9.7177493,22.3647365,72.9475809,41.4922897,36.1156062,18.2243482,12.0444867,49.1570427,2.5787848,38.3096166,11.1403384\r\n50,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6123728,1.6347097,14.3163762,65.3805845,66.5618941,54.3913412,29.2230165,9.7662065,22.9861482,72.0622306,41.5325109,37.5864307,18.1843608,11.9881505,49.8240676,2.9816754,38.2414258,10.4080717,1.6229988,1.6343798,14.3659755,63.515127,64.4585792,53.6751127,29.7705985,9.7177493,22.3647365,72.9475809,41.4922897,36.1156062,18.2243482,12.0444867,49.1570427,2.5787848,38.3096166,11.1403384,1.7609878,1.7725917,13.9505237,62.2874692,63.8851725,52.5234492,30.3393182,9.7102361,20.9801207,73.0361342,41.3585255,34.927792,18.13039,12.1781628,47.9718413,2.6757665,38.3928074,12.1781006\r\n51,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6229988,1.6343798,14.3659755,63.515127,64.4585792,53.6751127,29.7705985,9.7177493,22.3647365,72.9475809,41.4922897,36.1156062,18.2243482,12.0444867,49.1570427,2.5787848,38.3096166,11.1403384,1.7609878,1.7725917,13.9505237,62.2874692,63.8851725,52.5234492,30.3393182,9.7102361,20.9801207,73.0361342,41.3585255,34.927792,18.13039,12.1781628,47.9718413,2.6757665,38.3928074,12.1781006,1.8743941,1.8957176,13.7890428,62.1760155,63.2738082,52.1334891,29.6212501,9.8843436,21.4534289,73.8100295,41.0490913,33.9386992,18.4879687,12.6712236,48.362221,2.1997362,38.4906397,13.5915091\r\n52,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7609878,1.7725917,13.9505237,62.2874692,63.8851725,52.5234492,30.3393182,9.7102361,20.9801207,73.0361342,41.3585255,34.927792,18.13039,12.1781628,47.9718413,2.6757665,38.3928074,12.1781006,1.8743941,1.8957176,13.7890428,62.1760155,63.2738082,52.1334891,29.6212501,9.8843436,21.4534289,73.8100295,41.0490913,33.9386992,18.4879687,12.6712236,48.362221,2.1997362,38.4906397,13.5915091,1.6553625,1.6771397,14.2490689,60.8491168,60.9844298,50.9375885,30.5529303,10.0982557,21.4436693,73.331178,41.2005796,33.0026907,18.2316448,12.9413103,47.5131622,2.3972928,36.6029348,11.199895\r\n53,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8743941,1.8957176,13.7890428,62.1760155,63.2738082,52.1334891,29.6212501,9.8843436,21.4534289,73.8100295,41.0490913,33.9386992,18.4879687,12.6712236,48.362221,2.1997362,38.4906397,13.5915091,1.6553625,1.6771397,14.2490689,60.8491168,60.9844298,50.9375885,30.5529303,10.0982557,21.4436693,73.331178,41.2005796,33.0026907,18.2316448,12.9413103,47.5131622,2.3972928,36.6029348,11.199895,1.6562362,1.6683642,12.992793,59.4575887,60.7898178,50.3184508,31.8988592,9.1923889,19.0485238,72.7739523,41.1567197,31.7556597,17.7005705,12.2226692,47.3809583,2.4987132,37.4862079,10.4298976\r\n54,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6553625,1.6771397,14.2490689,60.8491168,60.9844298,50.9375885,30.5529303,10.0982557,21.4436693,73.331178,41.2005796,33.0026907,18.2316448,12.9413103,47.5131622,2.3972928,36.6029348,11.199895,1.6562362,1.6683642,12.992793,59.4575887,60.7898178,50.3184508,31.8988592,9.1923889,19.0485238,72.7739523,41.1567197,31.7556597,17.7005705,12.2226692,47.3809583,2.4987132,37.4862079,10.4298976,1.7703219,1.8302827,12.7668018,59.851889,60.9040539,49.7812282,32.6679646,8.9244765,17.9213768,71.8761058,40.8694254,33.4585979,17.6579946,12.1738092,46.6786666,2.7244372,37.178201,10.9643581\r\n55,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6562362,1.6683642,12.992793,59.4575887,60.7898178,50.3184508,31.8988592,9.1923889,19.0485238,72.7739523,41.1567197,31.7556597,17.7005705,12.2226692,47.3809583,2.4987132,37.4862079,10.4298976,1.7703219,1.8302827,12.7668018,59.851889,60.9040539,49.7812282,32.6679646,8.9244765,17.9213768,71.8761058,40.8694254,33.4585979,17.6579946,12.1738092,46.6786666,2.7244372,37.178201,10.9643581,1.6080653,1.6667663,13.1710276,59.4896779,61.031789,50.7411857,33.1859923,8.8429816,16.8899384,70.6513835,39.6902584,33.8518478,17.8040279,12.3758715,47.0813754,2.8930007,38.4572687,10.2213452\r\n56,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7703219,1.8302827,12.7668018,59.851889,60.9040539,49.7812282,32.6679646,8.9244765,17.9213768,71.8761058,40.8694254,33.4585979,17.6579946,12.1738092,46.6786666,2.7244372,37.178201,10.9643581,1.6080653,1.6667663,13.1710276,59.4896779,61.031789,50.7411857,33.1859923,8.8429816,16.8899384,70.6513835,39.6902584,33.8518478,17.8040279,12.3758715,47.0813754,2.8930007,38.4572687,10.2213452,1.5940673,1.6403168,14.0395246,62.7450081,64.4283871,52.6176624,32.156149,9.1050716,16.821462,69.7492435,38.1847626,35.7779538,18.3811538,12.7707837,49.3064708,2.9055315,39.471439,11.5595752\r\n57,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6080653,1.6667663,13.1710276,59.4896779,61.031789,50.7411857,33.1859923,8.8429816,16.8899384,70.6513835,39.6902584,33.8518478,17.8040279,12.3758715,47.0813754,2.8930007,38.4572687,10.2213452,1.5940673,1.6403168,14.0395246,62.7450081,64.4283871,52.6176624,32.156149,9.1050716,16.821462,69.7492435,38.1847626,35.7779538,18.3811538,12.7707837,49.3064708,2.9055315,39.471439,11.5595752,1.4783826,1.5235836,14.8116499,62.8694682,64.067544,54.7385957,32.1659383,9.1026378,17.4859536,69.5332695,38.9753813,35.5847864,18.4893353,12.6858601,49.2949385,2.8903356,39.3041439,10.7504361\r\n58,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5940673,1.6403168,14.0395246,62.7450081,64.4283871,52.6176624,32.156149,9.1050716,16.821462,69.7492435,38.1847626,35.7779538,18.3811538,12.7707837,49.3064708,2.9055315,39.471439,11.5595752,1.4783826,1.5235836,14.8116499,62.8694682,64.067544,54.7385957,32.1659383,9.1026378,17.4859536,69.5332695,38.9753813,35.5847864,18.4893353,12.6858601,49.2949385,2.8903356,39.3041439,10.7504361,1.4840445,1.5562416,14.9444157,63.7858369,64.7053592,54.8946359,31.5482721,9.9116974,17.2393701,69.2213752,38.0571686,37.4422489,17.964069,12.2211882,48.956318,2.9970928,40.128154,8.4621231\r\n59,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4783826,1.5235836,14.8116499,62.8694682,64.067544,54.7385957,32.1659383,9.1026378,17.4859536,69.5332695,38.9753813,35.5847864,18.4893353,12.6858601,49.2949385,2.8903356,39.3041439,10.7504361,1.4840445,1.5562416,14.9444157,63.7858369,64.7053592,54.8946359,31.5482721,9.9116974,17.2393701,69.2213752,38.0571686,37.4422489,17.964069,12.2211882,48.956318,2.9970928,40.128154,8.4621231,1.4669073,1.5380568,13.9464737,65.6547774,67.688241,55.633129,31.3030029,9.4858757,17.0039813,68.5109579,37.1190059,39.2015772,17.830557,11.9260545,49.1158278,2.9580832,41.0102424,8.7945297\r\n60,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4840445,1.5562416,14.9444157,63.7858369,64.7053592,54.8946359,31.5482721,9.9116974,17.2393701,69.2213752,38.0571686,37.4422489,17.964069,12.2211882,48.956318,2.9970928,40.128154,8.4621231,1.4669073,1.5380568,13.9464737,65.6547774,67.688241,55.633129,31.3030029,9.4858757,17.0039813,68.5109579,37.1190059,39.2015772,17.830557,11.9260545,49.1158278,2.9580832,41.0102424,8.7945297,1.4803814,1.5596622,14.050846,65.4459502,67.8871654,57.0174786,30.1239343,9.4732044,16.9384116,68.706257,37.3795363,41.4968044,17.7754294,12.0610489,49.3871574,3.3236857,39.778685,9.1554394\r\n61,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4669073,1.5380568,13.9464737,65.6547774,67.688241,55.633129,31.3030029,9.4858757,17.0039813,68.5109579,37.1190059,39.2015772,17.830557,11.9260545,49.1158278,2.9580832,41.0102424,8.7945297,1.4803814,1.5596622,14.050846,65.4459502,67.8871654,57.0174786,30.1239343,9.4732044,16.9384116,68.706257,37.3795363,41.4968044,17.7754294,12.0610489,49.3871574,3.3236857,39.778685,9.1554394,1.3560806,1.3918521,14.2244176,64.8231313,68.1389483,57.2863892,29.3462554,8.8562677,16.0766951,70.4566251,37.5252132,38.3903528,17.792237,12.2600261,49.852124,3.198577,39.5572312,9.2281096\r\n62,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4803814,1.5596622,14.050846,65.4459502,67.8871654,57.0174786,30.1239343,9.4732044,16.9384116,68.706257,37.3795363,41.4968044,17.7754294,12.0610489,49.3871574,3.3236857,39.778685,9.1554394,1.3560806,1.3918521,14.2244176,64.8231313,68.1389483,57.2863892,29.3462554,8.8562677,16.0766951,70.4566251,37.5252132,38.3903528,17.792237,12.2600261,49.852124,3.198577,39.5572312,9.2281096,1.3006293,1.3377629,14.0435975,64.0203482,69.3386491,57.2521304,29.0983023,8.8319629,17.0627396,70.4502316,36.7707911,37.4070208,18.179973,12.6161936,49.0853429,3.0505123,39.191033,9.8251859\r\n63,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3560806,1.3918521,14.2244176,64.8231313,68.1389483,57.2863892,29.3462554,8.8562677,16.0766951,70.4566251,37.5252132,38.3903528,17.792237,12.2600261,49.852124,3.198577,39.5572312,9.2281096,1.3006293,1.3377629,14.0435975,64.0203482,69.3386491,57.2521304,29.0983023,8.8319629,17.0627396,70.4502316,36.7707911,37.4070208,18.179973,12.6161936,49.0853429,3.0505123,39.191033,9.8251859,1.3065222,1.3443075,13.7834589,62.9247014,67.761191,55.2347768,30.1490732,8.6968747,17.327426,70.7745436,37.7007575,35.3547107,17.846684,12.4508052,48.4275737,3.137467,38.3056155,7.3332193\r\n64,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3006293,1.3377629,14.0435975,64.0203482,69.3386491,57.2521304,29.0983023,8.8319629,17.0627396,70.4502316,36.7707911,37.4070208,18.179973,12.6161936,49.0853429,3.0505123,39.191033,9.8251859,1.3065222,1.3443075,13.7834589,62.9247014,67.761191,55.2347768,30.1490732,8.6968747,17.327426,70.7745436,37.7007575,35.3547107,17.846684,12.4508052,48.4275737,3.137467,38.3056155,7.3332193,1.3008718,1.3390655,13.7248583,63.870376,68.3329412,54.9209773,29.9677248,8.2901384,17.3905858,70.2660543,36.80478,37.4321469,18.2526256,13.0950401,48.340982,2.9604451,38.3921038,7.7100966\r\n65,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3065222,1.3443075,13.7834589,62.9247014,67.761191,55.2347768,30.1490732,8.6968747,17.327426,70.7745436,37.7007575,35.3547107,17.846684,12.4508052,48.4275737,3.137467,38.3056155,7.3332193,1.3008718,1.3390655,13.7248583,63.870376,68.3329412,54.9209773,29.9677248,8.2901384,17.3905858,70.2660543,36.80478,37.4321469,18.2526256,13.0950401,48.340982,2.9604451,38.3921038,7.7100966,1.2844486,1.2844486,13.8481404,64.1727785,68.5138564,55.9617863,29.9505416,7.4517605,19.1069818,70.4101792,37.3538077,37.36948,18.8038678,13.7055757,48.9724541,3.059045,38.4077197,8.6044471\r\n66,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3008718,1.3390655,13.7248583,63.870376,68.3329412,54.9209773,29.9677248,8.2901384,17.3905858,70.2660543,36.80478,37.4321469,18.2526256,13.0950401,48.340982,2.9604451,38.3921038,7.7100966,1.2844486,1.2844486,13.8481404,64.1727785,68.5138564,55.9617863,29.9505416,7.4517605,19.1069818,70.4101792,37.3538077,37.36948,18.8038678,13.7055757,48.9724541,3.059045,38.4077197,8.6044471,1.1838401,1.1932688,13.2421148,65.408149,69.4950463,56.6901326,30.4381343,7.7262082,20.327691,70.4792117,38.5638891,37.389364,18.4212054,13.4088107,49.3973834,2.8943871,37.9593765,7.9708143\r\n67,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2844486,1.2844486,13.8481404,64.1727785,68.5138564,55.9617863,29.9505416,7.4517605,19.1069818,70.4101792,37.3538077,37.36948,18.8038678,13.7055757,48.9724541,3.059045,38.4077197,8.6044471,1.1838401,1.1932688,13.2421148,65.408149,69.4950463,56.6901326,30.4381343,7.7262082,20.327691,70.4792117,38.5638891,37.389364,18.4212054,13.4088107,49.3973834,2.8943871,37.9593765,7.9708143,1.062672,1.0721814,13.6102511,65.2018409,69.6915068,56.4419335,30.1360333,8.0442956,20.3411465,71.3146927,38.5272761,35.3914486,18.6556492,13.4694846,49.6841057,2.8179164,37.2392188,8.2497649\r\n68,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1838401,1.1932688,13.2421148,65.408149,69.4950463,56.6901326,30.4381343,7.7262082,20.327691,70.4792117,38.5638891,37.389364,18.4212054,13.4088107,49.3973834,2.8943871,37.9593765,7.9708143,1.062672,1.0721814,13.6102511,65.2018409,69.6915068,56.4419335,30.1360333,8.0442956,20.3411465,71.3146927,38.5272761,35.3914486,18.6556492,13.4694846,49.6841057,2.8179164,37.2392188,8.2497649,1.0709505,1.0803566,13.7406518,64.6992724,68.1688095,55.9761935,30.2371585,8.1623948,21.1673313,70.0624817,38.3835235,38.2643901,18.9180669,13.6340416,50.5985255,3.1328828,37.6083307,7.551926\r\n69,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.062672,1.0721814,13.6102511,65.2018409,69.6915068,56.4419335,30.1360333,8.0442956,20.3411465,71.3146927,38.5272761,35.3914486,18.6556492,13.4694846,49.6841057,2.8179164,37.2392188,8.2497649,1.0709505,1.0803566,13.7406518,64.6992724,68.1688095,55.9761935,30.2371585,8.1623948,21.1673313,70.0624817,38.3835235,38.2643901,18.9180669,13.6340416,50.5985255,3.1328828,37.6083307,7.551926,1.1830085,1.1923833,13.9839684,63.2561664,67.0613956,55.4525912,32.3973102,8.3031511,19.9349043,71.3469099,40.1681771,37.3931085,18.7839998,13.622835,51.2657879,3.4841417,37.0153521,8.4539388\r\n70,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0709505,1.0803566,13.7406518,64.6992724,68.1688095,55.9761935,30.2371585,8.1623948,21.1673313,70.0624817,38.3835235,38.2643901,18.9180669,13.6340416,50.5985255,3.1328828,37.6083307,7.551926,1.1830085,1.1923833,13.9839684,63.2561664,67.0613956,55.4525912,32.3973102,8.3031511,19.9349043,71.3469099,40.1681771,37.3931085,18.7839998,13.622835,51.2657879,3.4841417,37.0153521,8.4539388,1.1368964,1.1742537,13.8301502,63.9837087,67.1584837,55.2971709,31.3836448,8.1570896,20.1608214,71.3123365,39.575176,38.8449568,19.006369,13.8655292,50.413267,3.7365496,37.4737304,8.3331825\r\n71,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1830085,1.1923833,13.9839684,63.2561664,67.0613956,55.4525912,32.3973102,8.3031511,19.9349043,71.3469099,40.1681771,37.3931085,18.7839998,13.622835,51.2657879,3.4841417,37.0153521,8.4539388,1.1368964,1.1742537,13.8301502,63.9837087,67.1584837,55.2971709,31.3836448,8.1570896,20.1608214,71.3123365,39.575176,38.8449568,19.006369,13.8655292,50.413267,3.7365496,37.4737304,8.3331825,1.2587572,1.3208563,13.562043,63.4476698,67.2915726,55.0366931,32.3947788,8.438212,20.0424651,72.2342382,39.6657715,38.484701,19.0150424,13.712046,50.688325,3.6215849,37.6494266,8.8941452\r\n72,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1368964,1.1742537,13.8301502,63.9837087,67.1584837,55.2971709,31.3836448,8.1570896,20.1608214,71.3123365,39.575176,38.8449568,19.006369,13.8655292,50.413267,3.7365496,37.4737304,8.3331825,1.2587572,1.3208563,13.562043,63.4476698,67.2915726,55.0366931,32.3947788,8.438212,20.0424651,72.2342382,39.6657715,38.484701,19.0150424,13.712046,50.688325,3.6215849,37.6494266,8.8941452,1.0658434,1.1278817,12.8908559,63.7940933,67.1703198,54.7905958,32.3916722,8.7489923,18.5699463,72.1493224,39.487235,40.143596,18.4555779,12.9872694,50.5801427,3.7141781,37.0393604,7.7829565\r\n73,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2587572,1.3208563,13.562043,63.4476698,67.2915726,55.0366931,32.3947788,8.438212,20.0424651,72.2342382,39.6657715,38.484701,19.0150424,13.712046,50.688325,3.6215849,37.6494266,8.8941452,1.0658434,1.1278817,12.8908559,63.7940933,67.1703198,54.7905958,32.3916722,8.7489923,18.5699463,72.1493224,39.487235,40.143596,18.4555779,12.9872694,50.5801427,3.7141781,37.0393604,7.7829565,1.2384852,1.2929319,14.2187068,60.5765309,64.9555085,54.3599943,32.0113185,9.3146266,17.6055642,71.6497433,39.0120665,40.0934996,19.1393418,13.859525,50.6862164,3.8543496,37.5283818,8.254643\r\n74,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0658434,1.1278817,12.8908559,63.7940933,67.1703198,54.7905958,32.3916722,8.7489923,18.5699463,72.1493224,39.487235,40.143596,18.4555779,12.9872694,50.5801427,3.7141781,37.0393604,7.7829565,1.2384852,1.2929319,14.2187068,60.5765309,64.9555085,54.3599943,32.0113185,9.3146266,17.6055642,71.6497433,39.0120665,40.0934996,19.1393418,13.859525,50.6862164,3.8543496,37.5283818,8.254643,1.4802888,1.5423318,14.4893072,58.2273914,61.7500016,52.2069301,32.3226561,9.1707068,17.1045789,70.5535885,39.7657737,40.1454715,18.9928317,14.0337268,49.8680398,3.9677513,39.8616414,9.7284452\r\n75,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2384852,1.2929319,14.2187068,60.5765309,64.9555085,54.3599943,32.0113185,9.3146266,17.6055642,71.6497433,39.0120665,40.0934996,19.1393418,13.859525,50.6862164,3.8543496,37.5283818,8.254643,1.4802888,1.5423318,14.4893072,58.2273914,61.7500016,52.2069301,32.3226561,9.1707068,17.1045789,70.5535885,39.7657737,40.1454715,18.9928317,14.0337268,49.8680398,3.9677513,39.8616414,9.7284452,1.573469,1.6359354,13.8990326,57.9267095,62.5963675,52.5393908,32.644178,10.1587642,17.2786109,71.4849356,40.2787021,39.5476127,18.8723754,13.8774091,48.9879686,4.2624672,39.9896548,10.9812314\r\n76,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4802888,1.5423318,14.4893072,58.2273914,61.7500016,52.2069301,32.3226561,9.1707068,17.1045789,70.5535885,39.7657737,40.1454715,18.9928317,14.0337268,49.8680398,3.9677513,39.8616414,9.7284452,1.573469,1.6359354,13.8990326,57.9267095,62.5963675,52.5393908,32.644178,10.1587642,17.2786109,71.4849356,40.2787021,39.5476127,18.8723754,13.8774091,48.9879686,4.2624672,39.9896548,10.9812314,1.5787676,1.6423229,13.8006236,57.9495389,62.3353821,52.645923,30.2550631,10.7255648,18.5210003,70.315194,38.4639191,41.1739869,19.5875197,13.8815916,49.1815215,3.593514,41.1616313,11.9512428\r\n77,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.573469,1.6359354,13.8990326,57.9267095,62.5963675,52.5393908,32.644178,10.1587642,17.2786109,71.4849356,40.2787021,39.5476127,18.8723754,13.8774091,48.9879686,4.2624672,39.9896548,10.9812314,1.5787676,1.6423229,13.8006236,57.9495389,62.3353821,52.645923,30.2550631,10.7255648,18.5210003,70.315194,38.4639191,41.1739869,19.5875197,13.8815916,49.1815215,3.593514,41.1616313,11.9512428,1.682632,1.7330948,14.3289006,56.6173968,62.2283791,52.4938403,30.7477011,9.9144265,17.4345087,69.8935105,39.0291028,40.4947621,19.7237487,13.9948577,49.4496594,3.4685642,41.0215558,11.868591\r\n78,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5787676,1.6423229,13.8006236,57.9495389,62.3353821,52.645923,30.2550631,10.7255648,18.5210003,70.315194,38.4639191,41.1739869,19.5875197,13.8815916,49.1815215,3.593514,41.1616313,11.9512428,1.682632,1.7330948,14.3289006,56.6173968,62.2283791,52.4938403,30.7477011,9.9144265,17.4345087,69.8935105,39.0291028,40.4947621,19.7237487,13.9948577,49.4496594,3.4685642,41.0215558,11.868591,1.6027024,1.6291588,14.0696895,57.8878076,62.6303578,54.4732519,29.3785273,11.3655034,18.074745,69.1606105,38.0725689,41.2446658,20.2217306,14.0146188,49.7690511,3.6110109,40.2932671,11.6120294\r\n79,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.682632,1.7330948,14.3289006,56.6173968,62.2283791,52.4938403,30.7477011,9.9144265,17.4345087,69.8935105,39.0291028,40.4947621,19.7237487,13.9948577,49.4496594,3.4685642,41.0215558,11.868591,1.6027024,1.6291588,14.0696895,57.8878076,62.6303578,54.4732519,29.3785273,11.3655034,18.074745,69.1606105,38.0725689,41.2446658,20.2217306,14.0146188,49.7690511,3.6110109,40.2932671,11.6120294,1.6738829,1.7224509,15.1333686,56.3159187,62.3285686,53.8692647,29.3697227,11.0011097,18.1857898,69.7698077,38.3312564,37.9717215,20.8534859,14.6334315,49.7481422,3.4370909,38.8673805,11.8938525\r\n80,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6027024,1.6291588,14.0696895,57.8878076,62.6303578,54.4732519,29.3785273,11.3655034,18.074745,69.1606105,38.0725689,41.2446658,20.2217306,14.0146188,49.7690511,3.6110109,40.2932671,11.6120294,1.6738829,1.7224509,15.1333686,56.3159187,62.3285686,53.8692647,29.3697227,11.0011097,18.1857898,69.7698077,38.3312564,37.9717215,20.8534859,14.6334315,49.7481422,3.4370909,38.8673805,11.8938525,1.6795531,1.7260206,15.3757821,57.475998,63.5544133,53.6071727,28.6018719,10.7894602,17.4937582,71.1760162,38.5228418,39.2893053,21.7020975,15.2442985,50.0239912,3.2050416,39.1661023,12.7913207\r\n81,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6738829,1.7224509,15.1333686,56.3159187,62.3285686,53.8692647,29.3697227,11.0011097,18.1857898,69.7698077,38.3312564,37.9717215,20.8534859,14.6334315,49.7481422,3.4370909,38.8673805,11.8938525,1.6795531,1.7260206,15.3757821,57.475998,63.5544133,53.6071727,28.6018719,10.7894602,17.4937582,71.1760162,38.5228418,39.2893053,21.7020975,15.2442985,50.0239912,3.2050416,39.1661023,12.7913207,1.5448945,1.5831777,16.0972779,61.3268341,67.4602794,54.4332119,27.6824523,11.0675483,18.3225493,72.1708821,38.4008073,41.32191,22.7212146,16.1626145,50.5641072,2.8687602,37.8657546,12.1293878\r\n82,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6795531,1.7260206,15.3757821,57.475998,63.5544133,53.6071727,28.6018719,10.7894602,17.4937582,71.1760162,38.5228418,39.2893053,21.7020975,15.2442985,50.0239912,3.2050416,39.1661023,12.7913207,1.5448945,1.5831777,16.0972779,61.3268341,67.4602794,54.4332119,27.6824523,11.0675483,18.3225493,72.1708821,38.4008073,41.32191,22.7212146,16.1626145,50.5641072,2.8687602,37.8657546,12.1293878,1.7586288,1.8123647,18.5016634,62.7848966,67.1206541,55.00311,28.086899,11.0115115,19.7819688,70.4078286,36.1710919,42.4440873,24.2807313,17.3431503,51.276255,2.6276079,38.3037819,13.1585293\r\n83,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5448945,1.5831777,16.0972779,61.3268341,67.4602794,54.4332119,27.6824523,11.0675483,18.3225493,72.1708821,38.4008073,41.32191,22.7212146,16.1626145,50.5641072,2.8687602,37.8657546,12.1293878,1.7586288,1.8123647,18.5016634,62.7848966,67.1206541,55.00311,28.086899,11.0115115,19.7819688,70.4078286,36.1710919,42.4440873,24.2807313,17.3431503,51.276255,2.6276079,38.3037819,13.1585293,1.8438274,1.8953164,19.6075391,65.1322852,68.6981857,55.9106433,28.9507646,11.1300674,18.5207088,69.2407624,35.5072111,44.45759,24.7321271,18.0187748,51.4931393,2.8507961,38.098067,14.0556691\r\n84,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7586288,1.8123647,18.5016634,62.7848966,67.1206541,55.00311,28.086899,11.0115115,19.7819688,70.4078286,36.1710919,42.4440873,24.2807313,17.3431503,51.276255,2.6276079,38.3037819,13.1585293,1.8438274,1.8953164,19.6075391,65.1322852,68.6981857,55.9106433,28.9507646,11.1300674,18.5207088,69.2407624,35.5072111,44.45759,24.7321271,18.0187748,51.4931393,2.8507961,38.098067,14.0556691,2.1821405,2.2294115,20.1000409,65.4020035,69.1942177,57.0795617,27.9611239,11.4422246,18.3906103,68.2058862,34.0885968,45.8604852,26.4775671,19.0905384,51.4842112,2.5932486,37.475206,16.2451219\r\n85,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8438274,1.8953164,19.6075391,65.1322852,68.6981857,55.9106433,28.9507646,11.1300674,18.5207088,69.2407624,35.5072111,44.45759,24.7321271,18.0187748,51.4931393,2.8507961,38.098067,14.0556691,2.1821405,2.2294115,20.1000409,65.4020035,69.1942177,57.0795617,27.9611239,11.4422246,18.3906103,68.2058862,34.0885968,45.8604852,26.4775671,19.0905384,51.4842112,2.5932486,37.475206,16.2451219,2.7208826,2.7758709,22.553408,62.7826365,67.7572425,54.2895057,29.0800113,9.9508964,18.1959816,67.469261,33.9013755,44.8260828,27.9261156,21.3757386,51.1303939,2.9275427,37.8188847,18.3393931\r\n86,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1821405,2.2294115,20.1000409,65.4020035,69.1942177,57.0795617,27.9611239,11.4422246,18.3906103,68.2058862,34.0885968,45.8604852,26.4775671,19.0905384,51.4842112,2.5932486,37.475206,16.2451219,2.7208826,2.7758709,22.553408,62.7826365,67.7572425,54.2895057,29.0800113,9.9508964,18.1959816,67.469261,33.9013755,44.8260828,27.9261156,21.3757386,51.1303939,2.9275427,37.8188847,18.3393931,3.2698579,3.3103932,23.4979557,63.5604441,67.864996,54.1266205,28.6936912,10.6486588,18.3142875,65.7378005,32.6259372,46.8693066,30.3380418,23.2068933,51.3213831,2.638498,37.7585311,22.7684634\r\n87,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7208826,2.7758709,22.553408,62.7826365,67.7572425,54.2895057,29.0800113,9.9508964,18.1959816,67.469261,33.9013755,44.8260828,27.9261156,21.3757386,51.1303939,2.9275427,37.8188847,18.3393931,3.2698579,3.3103932,23.4979557,63.5604441,67.864996,54.1266205,28.6936912,10.6486588,18.3142875,65.7378005,32.6259372,46.8693066,30.3380418,23.2068933,51.3213831,2.638498,37.7585311,22.7684634,3.7399893,3.7587485,25.1812822,64.7353105,67.9655049,54.9530253,28.2028727,10.0217979,18.8175752,63.6447951,32.056258,46.7276298,32.6772836,25.318369,52.0045924,2.6527408,36.7898953,25.7778624\r\n88,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5453219,1.5937354,14.6220932,71.7104877,70.6878732,58.0557094,22.9749739,12.9539351,18.3374427,66.5214553,38.8681165,44.4587018,19.3593147,14.7920389,59.2843745,5.3601566,33.9670158,13.1302521,1.5624522,1.5884067,14.5190057,73.4351033,72.400185,59.0668461,23.0109589,13.8473822,19.141285,66.5517046,38.2247264,44.9088349,19.285011,14.6258955,59.1056235,5.1988898,33.9868899,13.0387931,1.4976634,1.528001,13.8784812,73.0515112,73.474407,59.6962888,23.4005728,14.0421539,19.3092846,67.5968049,38.8920576,46.0034351,18.9144476,14.3444904,58.7376923,5.2230174,34.5996911,12.1923937\r\n89,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5624522,1.5884067,14.5190057,73.4351033,72.400185,59.0668461,23.0109589,13.8473822,19.141285,66.5517046,38.2247264,44.9088349,19.285011,14.6258955,59.1056235,5.1988898,33.9868899,13.0387931,1.4976634,1.528001,13.8784812,73.0515112,73.474407,59.6962888,23.4005728,14.0421539,19.3092846,67.5968049,38.8920576,46.0034351,18.9144476,14.3444904,58.7376923,5.2230174,34.5996911,12.1923937,1.4954759,1.5258162,14.355468,71.4574184,72.9197711,59.0429404,23.7743213,14.0122118,19.9397386,67.9752788,39.0719236,45.7180287,19.2256345,14.6592966,58.9621219,5.3863375,34.1462316,11.9985934\r\n90,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.4976634,1.528001,13.8784812,73.0515112,73.474407,59.6962888,23.4005728,14.0421539,19.3092846,67.5968049,38.8920576,46.0034351,18.9144476,14.3444904,58.7376923,5.2230174,34.5996911,12.1923937,1.4954759,1.5258162,14.355468,71.4574184,72.9197711,59.0429404,23.7743213,14.0122118,19.9397386,67.9752788,39.0719236,45.7180287,19.2256345,14.6592966,58.9621219,5.3863375,34.1462316,11.9985934,1.4096553,1.4217087,14.5637433,70.6264558,72.0576489,58.1283968,24.3756395,13.4468253,18.6893071,69.2180498,40.0333587,45.0595523,19.3409872,14.9926622,59.4298982,5.217865,33.2723935,10.9982829\r\n91,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.4954759,1.5258162,14.355468,71.4574184,72.9197711,59.0429404,23.7743213,14.0122118,19.9397386,67.9752788,39.0719236,45.7180287,19.2256345,14.6592966,58.9621219,5.3863375,34.1462316,11.9985934,1.4096553,1.4217087,14.5637433,70.6264558,72.0576489,58.1283968,24.3756395,13.4468253,18.6893071,69.2180498,40.0333587,45.0595523,19.3409872,14.9926622,59.4298982,5.217865,33.2723935,10.9982829,1.5092232,1.501672,14.879125,71.7325914,73.1631482,58.1520093,24.0556316,14.9480384,19.1053305,69.4927986,40.2732057,46.1890861,19.8539186,14.9486502,58.7967111,4.9764106,34.252695,10.9441224\r\n92,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.4096553,1.4217087,14.5637433,70.6264558,72.0576489,58.1283968,24.3756395,13.4468253,18.6893071,69.2180498,40.0333587,45.0595523,19.3409872,14.9926622,59.4298982,5.217865,33.2723935,10.9982829,1.5092232,1.501672,14.879125,71.7325914,73.1631482,58.1520093,24.0556316,14.9480384,19.1053305,69.4927986,40.2732057,46.1890861,19.8539186,14.9486502,58.7967111,4.9764106,34.252695,10.9441224,1.4936005,1.4858844,14.8619741,71.4409788,73.0232034,59.3744716,23.6049819,14.8467024,18.0782009,70.6784084,40.5086168,47.5909546,19.8148748,15.0872265,58.8718051,4.8640745,34.1008232,10.484818\r\n93,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5092232,1.501672,14.879125,71.7325914,73.1631482,58.1520093,24.0556316,14.9480384,19.1053305,69.4927986,40.2732057,46.1890861,19.8539186,14.9486502,58.7967111,4.9764106,34.252695,10.9441224,1.4936005,1.4858844,14.8619741,71.4409788,73.0232034,59.3744716,23.6049819,14.8467024,18.0782009,70.6784084,40.5086168,47.5909546,19.8148748,15.0872265,58.8718051,4.8640745,34.1008232,10.484818,1.2611885,1.2531987,14.8943041,73.0777705,75.3898371,60.1298285,23.4858723,15.6316077,18.4053554,71.0003574,40.8823536,49.1356285,19.6777328,15.024547,60.0714646,4.9822162,34.6155297,10.2044519\r\n94,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.4936005,1.4858844,14.8619741,71.4409788,73.0232034,59.3744716,23.6049819,14.8467024,18.0782009,70.6784084,40.5086168,47.5909546,19.8148748,15.0872265,58.8718051,4.8640745,34.1008232,10.484818,1.2611885,1.2531987,14.8943041,73.0777705,75.3898371,60.1298285,23.4858723,15.6316077,18.4053554,71.0003574,40.8823536,49.1356285,19.6777328,15.024547,60.0714646,4.9822162,34.6155297,10.2044519,1.1716595,1.1845752,14.2570493,72.550871,75.2621029,60.6981864,22.4366753,16.0579942,19.128817,70.4979493,39.9871484,50.0694496,18.6806283,14.3866196,60.0187644,4.8949224,35.0474171,8.8651169\r\n95,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.2611885,1.2531987,14.8943041,73.0777705,75.3898371,60.1298285,23.4858723,15.6316077,18.4053554,71.0003574,40.8823536,49.1356285,19.6777328,15.024547,60.0714646,4.9822162,34.6155297,10.2044519,1.1716595,1.1845752,14.2570493,72.550871,75.2621029,60.6981864,22.4366753,16.0579942,19.128817,70.4979493,39.9871484,50.0694496,18.6806283,14.3866196,60.0187644,4.8949224,35.0474171,8.8651169,1.1413927,1.1910527,14.8767554,73.5484536,75.3385246,60.6748664,22.1270021,16.4049739,18.8008472,70.1995984,39.098788,49.9217513,19.0742972,14.6713002,59.4374493,4.8982642,34.3535398,10.002897\r\n96,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1716595,1.1845752,14.2570493,72.550871,75.2621029,60.6981864,22.4366753,16.0579942,19.128817,70.4979493,39.9871484,50.0694496,18.6806283,14.3866196,60.0187644,4.8949224,35.0474171,8.8651169,1.1413927,1.1910527,14.8767554,73.5484536,75.3385246,60.6748664,22.1270021,16.4049739,18.8008472,70.1995984,39.098788,49.9217513,19.0742972,14.6713002,59.4374493,4.8982642,34.3535398,10.002897,1.0802857,1.14661,14.5031862,74.1501018,75.8941932,60.8716878,21.6603627,16.3250797,19.0106061,69.2841943,38.8681543,49.0908711,19.1017186,14.5780619,58.8044814,4.9618323,33.7286871,9.3112245\r\n97,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1413927,1.1910527,14.8767554,73.5484536,75.3385246,60.6748664,22.1270021,16.4049739,18.8008472,70.1995984,39.098788,49.9217513,19.0742972,14.6713002,59.4374493,4.8982642,34.3535398,10.002897,1.0802857,1.14661,14.5031862,74.1501018,75.8941932,60.8716878,21.6603627,16.3250797,19.0106061,69.2841943,38.8681543,49.0908711,19.1017186,14.5780619,58.8044814,4.9618323,33.7286871,9.3112245,0.9200565,0.9860426,14.4547437,75.1705377,77.062258,62.7638817,21.0626435,17.0782186,19.8412062,69.0655326,38.5006612,50.6619485,18.950583,14.4105143,58.6036575,4.9408356,33.9574395,10.1282051\r\n98,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.0802857,1.14661,14.5031862,74.1501018,75.8941932,60.8716878,21.6603627,16.3250797,19.0106061,69.2841943,38.8681543,49.0908711,19.1017186,14.5780619,58.8044814,4.9618323,33.7286871,9.3112245,0.9200565,0.9860426,14.4547437,75.1705377,77.062258,62.7638817,21.0626435,17.0782186,19.8412062,69.0655326,38.5006612,50.6619485,18.950583,14.4105143,58.6036575,4.9408356,33.9574395,10.1282051,0.9321628,1.0603546,14.1188093,73.9495399,75.8263768,62.4055114,21.548225,15.877647,19.5770192,68.5480558,38.3828991,49.5244354,18.2926483,14.2083862,58.3000617,4.7538662,33.1728321,12.0466321\r\n99,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.9200565,0.9860426,14.4547437,75.1705377,77.062258,62.7638817,21.0626435,17.0782186,19.8412062,69.0655326,38.5006612,50.6619485,18.950583,14.4105143,58.6036575,4.9408356,33.9574395,10.1282051,0.9321628,1.0603546,14.1188093,73.9495399,75.8263768,62.4055114,21.548225,15.877647,19.5770192,68.5480558,38.3828991,49.5244354,18.2926483,14.2083862,58.3000617,4.7538662,33.1728321,12.0466321,1.0319321,1.1560889,13.9188872,71.478392,75.5128619,62.5039611,22.0128398,14.871098,20.1530012,67.7751442,39.0401825,48.7346848,18.2619592,13.9629717,58.1860472,4.6091134,33.1939117,13.3018619\r\n100,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,0.9321628,1.0603546,14.1188093,73.9495399,75.8263768,62.4055114,21.548225,15.877647,19.5770192,68.5480558,38.3828991,49.5244354,18.2926483,14.2083862,58.3000617,4.7538662,33.1728321,12.0466321,1.0319321,1.1560889,13.9188872,71.478392,75.5128619,62.5039611,22.0128398,14.871098,20.1530012,67.7751442,39.0401825,48.7346848,18.2619592,13.9629717,58.1860472,4.6091134,33.1939117,13.3018619,1.1195091,1.2509067,14.4620902,70.5969886,74.1463768,61.945902,23.5697291,14.1069265,20.3286315,67.887455,39.5922688,46.7411386,18.7024526,14.1911298,56.853534,4.5416243,33.5258999,12.275861\r\n101,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.0319321,1.1560889,13.9188872,71.478392,75.5128619,62.5039611,22.0128398,14.871098,20.1530012,67.7751442,39.0401825,48.7346848,18.2619592,13.9629717,58.1860472,4.6091134,33.1939117,13.3018619,1.1195091,1.2509067,14.4620902,70.5969886,74.1463768,61.945902,23.5697291,14.1069265,20.3286315,67.887455,39.5922688,46.7411386,18.7024526,14.1911298,56.853534,4.5416243,33.5258999,12.275861,1.1849132,1.3201831,14.2176026,69.3701795,72.8699369,61.3334491,24.7594412,12.8339888,19.2502815,68.5663406,40.5812093,44.7846906,18.5424723,13.9658778,56.2510072,4.4623893,33.581321,13.1257787\r\n102,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1195091,1.2509067,14.4620902,70.5969886,74.1463768,61.945902,23.5697291,14.1069265,20.3286315,67.887455,39.5922688,46.7411386,18.7024526,14.1911298,56.853534,4.5416243,33.5258999,12.275861,1.1849132,1.3201831,14.2176026,69.3701795,72.8699369,61.3334491,24.7594412,12.8339888,19.2502815,68.5663406,40.5812093,44.7846906,18.5424723,13.9658778,56.2510072,4.4623893,33.581321,13.1257787,1.1539171,1.24708,13.8965739,70.1845558,73.7467455,60.8817019,25.509587,11.8030775,21.6574673,67.8096555,41.1799361,45.0754475,18.3768823,13.6368881,56.5384097,4.3728337,33.8018669,12.7100253\r\n103,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1849132,1.3201831,14.2176026,69.3701795,72.8699369,61.3334491,24.7594412,12.8339888,19.2502815,68.5663406,40.5812093,44.7846906,18.5424723,13.9658778,56.2510072,4.4623893,33.581321,13.1257787,1.1539171,1.24708,13.8965739,70.1845558,73.7467455,60.8817019,25.509587,11.8030775,21.6574673,67.8096555,41.1799361,45.0754475,18.3768823,13.6368881,56.5384097,4.3728337,33.8018669,12.7100253,1.1647602,1.2407773,13.8080349,70.6417906,73.6133548,60.5137799,25.5738973,11.2149988,21.1853836,68.3501155,41.3968857,45.8117941,18.3685149,13.799984,56.2526158,4.5080657,35.2268139,13.164477\r\n104,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1539171,1.24708,13.8965739,70.1845558,73.7467455,60.8817019,25.509587,11.8030775,21.6574673,67.8096555,41.1799361,45.0754475,18.3768823,13.6368881,56.5384097,4.3728337,33.8018669,12.7100253,1.1647602,1.2407773,13.8080349,70.6417906,73.6133548,60.5137799,25.5738973,11.2149988,21.1853836,68.3501155,41.3968857,45.8117941,18.3685149,13.799984,56.2526158,4.5080657,35.2268139,13.164477,1.2168458,1.2819237,13.992796,71.353156,73.7131516,60.9454734,25.5189123,11.7270077,21.9112353,68.1724628,41.1693315,44.2628324,18.6246957,14.1413186,56.3568278,4.8111207,35.8928477,12.742417\r\n105,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1647602,1.2407773,13.8080349,70.6417906,73.6133548,60.5137799,25.5738973,11.2149988,21.1853836,68.3501155,41.3968857,45.8117941,18.3685149,13.799984,56.2526158,4.5080657,35.2268139,13.164477,1.2168458,1.2819237,13.992796,71.353156,73.7131516,60.9454734,25.5189123,11.7270077,21.9112353,68.1724628,41.1693315,44.2628324,18.6246957,14.1413186,56.3568278,4.8111207,35.8928477,12.742417,1.1183123,1.1154001,13.53566,72.2914885,74.1736061,60.2532266,25.0106842,10.9591437,22.2952139,68.5433469,41.4266142,45.631019,18.9229349,13.9913902,56.4761165,4.9229591,35.8019954,11.2771203\r\n106,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.2168458,1.2819237,13.992796,71.353156,73.7131516,60.9454734,25.5189123,11.7270077,21.9112353,68.1724628,41.1693315,44.2628324,18.6246957,14.1413186,56.3568278,4.8111207,35.8928477,12.742417,1.1183123,1.1154001,13.53566,72.2914885,74.1736061,60.2532266,25.0106842,10.9591437,22.2952139,68.5433469,41.4266142,45.631019,18.9229349,13.9913902,56.4761165,4.9229591,35.8019954,11.2771203,1.064812,1.0723926,13.5701037,74.1073091,73.8612106,58.6677645,25.134472,11.1036836,21.960885,68.6176709,40.8451356,45.2041073,18.8660217,13.9825426,55.8305452,5.1419289,34.9596478,9.9743962\r\n107,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1183123,1.1154001,13.53566,72.2914885,74.1736061,60.2532266,25.0106842,10.9591437,22.2952139,68.5433469,41.4266142,45.631019,18.9229349,13.9913902,56.4761165,4.9229591,35.8019954,11.2771203,1.064812,1.0723926,13.5701037,74.1073091,73.8612106,58.6677645,25.134472,11.1036836,21.960885,68.6176709,40.8451356,45.2041073,18.8660217,13.9825426,55.8305452,5.1419289,34.9596478,9.9743962,1.1068345,1.1412829,13.5419889,74.5747806,74.4915625,59.7573007,24.1702466,11.3452986,21.4075362,68.6311606,40.3082661,45.7957679,18.741386,13.9724951,56.6451901,4.9650657,35.5399037,10.1140084\r\n108,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.064812,1.0723926,13.5701037,74.1073091,73.8612106,58.6677645,25.134472,11.1036836,21.960885,68.6176709,40.8451356,45.2041073,18.8660217,13.9825426,55.8305452,5.1419289,34.9596478,9.9743962,1.1068345,1.1412829,13.5419889,74.5747806,74.4915625,59.7573007,24.1702466,11.3452986,21.4075362,68.6311606,40.3082661,45.7957679,18.741386,13.9724951,56.6451901,4.9650657,35.5399037,10.1140084,1.1138895,1.1632793,13.9777433,74.5311269,73.9124122,59.3127599,24.1578659,11.618955,21.9695967,68.5559271,40.5462722,46.130959,18.7868842,13.9323027,56.6941906,5.239211,35.6279167,8.8651169\r\n109,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1068345,1.1412829,13.5419889,74.5747806,74.4915625,59.7573007,24.1702466,11.3452986,21.4075362,68.6311606,40.3082661,45.7957679,18.741386,13.9724951,56.6451901,4.9650657,35.5399037,10.1140084,1.1138895,1.1632793,13.9777433,74.5311269,73.9124122,59.3127599,24.1578659,11.618955,21.9695967,68.5559271,40.5462722,46.130959,18.7868842,13.9323027,56.6941906,5.239211,35.6279167,8.8651169,1.2382863,1.306416,14.4495785,72.1968529,72.6217889,59.8720053,24.2149834,11.7231457,19.3214444,69.0207394,40.7065504,44.9281093,18.6380695,14.1457816,56.2470375,5.2224866,35.6202367,9.5205308\r\n110,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.1138895,1.1632793,13.9777433,74.5311269,73.9124122,59.3127599,24.1578659,11.618955,21.9695967,68.5559271,40.5462722,46.130959,18.7868842,13.9323027,56.6941906,5.239211,35.6279167,8.8651169,1.2382863,1.306416,14.4495785,72.1968529,72.6217889,59.8720053,24.2149834,11.7231457,19.3214444,69.0207394,40.7065504,44.9281093,18.6380695,14.1457816,56.2470375,5.2224866,35.6202367,9.5205308,1.4505296,1.5212588,14.8774826,71.8186668,72.1553593,60.4155537,24.6063494,11.9962245,20.2633762,69.4803204,41.1229677,45.1036178,18.9452878,14.4391347,56.4297872,5.0569415,34.9355293,10.2751868\r\n111,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.2382863,1.306416,14.4495785,72.1968529,72.6217889,59.8720053,24.2149834,11.7231457,19.3214444,69.0207394,40.7065504,44.9281093,18.6380695,14.1457816,56.2470375,5.2224866,35.6202367,9.5205308,1.4505296,1.5212588,14.8774826,71.8186668,72.1553593,60.4155537,24.6063494,11.9962245,20.2633762,69.4803204,41.1229677,45.1036178,18.9452878,14.4391347,56.4297872,5.0569415,34.9355293,10.2751868,1.3680254,1.4319571,14.6097454,71.0998981,72.6602203,59.3191842,24.6576254,11.0697988,19.4100047,69.0677411,41.0557434,44.7988225,18.9532476,14.2547148,56.3132464,4.8818954,34.120657,10.3403141\r\n112,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.4505296,1.5212588,14.8774826,71.8186668,72.1553593,60.4155537,24.6063494,11.9962245,20.2633762,69.4803204,41.1229677,45.1036178,18.9452878,14.4391347,56.4297872,5.0569415,34.9355293,10.2751868,1.3680254,1.4319571,14.6097454,71.0998981,72.6602203,59.3191842,24.6576254,11.0697988,19.4100047,69.0677411,41.0557434,44.7988225,18.9532476,14.2547148,56.3132464,4.8818954,34.120657,10.3403141,1.470438,1.5443769,15.7086985,70.054607,72.8617349,59.6786251,25.1550917,11.1406077,18.4167041,69.3266055,40.1044236,42.823764,19.6577821,14.8888939,55.7189587,4.9932647,34.6884344,12.406015\r\n113,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.3680254,1.4319571,14.6097454,71.0998981,72.6602203,59.3191842,24.6576254,11.0697988,19.4100047,69.0677411,41.0557434,44.7988225,18.9532476,14.2547148,56.3132464,4.8818954,34.120657,10.3403141,1.470438,1.5443769,15.7086985,70.054607,72.8617349,59.6786251,25.1550917,11.1406077,18.4167041,69.3266055,40.1044236,42.823764,19.6577821,14.8888939,55.7189587,4.9932647,34.6884344,12.406015,1.409336,1.4798373,15.9255474,70.2195486,72.7402873,61.4143389,25.2319945,12.1026202,18.8375303,69.3134112,39.982572,43.0873768,19.6081858,14.8847806,56.3138056,4.9112679,36.0204233,12.7919376\r\n114,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.470438,1.5443769,15.7086985,70.054607,72.8617349,59.6786251,25.1550917,11.1406077,18.4167041,69.3266055,40.1044236,42.823764,19.6577821,14.8888939,55.7189587,4.9932647,34.6884344,12.406015,1.409336,1.4798373,15.9255474,70.2195486,72.7402873,61.4143389,25.2319945,12.1026202,18.8375303,69.3134112,39.982572,43.0873768,19.6081858,14.8847806,56.3138056,4.9112679,36.0204233,12.7919376,1.3393806,1.3811879,15.74283,68.2786644,70.424495,59.2014571,25.6363782,12.1853287,17.9105452,68.8888847,39.7505228,42.1397497,19.6705698,15.1120238,55.9888152,4.8738954,34.9061105,13.5880775\r\n115,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.409336,1.4798373,15.9255474,70.2195486,72.7402873,61.4143389,25.2319945,12.1026202,18.8375303,69.3134112,39.982572,43.0873768,19.6081858,14.8847806,56.3138056,4.9112679,36.0204233,12.7919376,1.3393806,1.3811879,15.74283,68.2786644,70.424495,59.2014571,25.6363782,12.1853287,17.9105452,68.8888847,39.7505228,42.1397497,19.6705698,15.1120238,55.9888152,4.8738954,34.9061105,13.5880775,1.3645862,1.4069218,16.1421154,70.2071197,71.6225083,59.1748214,25.7846302,12.734796,18.2393465,69.0952386,39.8498686,42.0880262,20.3205329,15.7447103,56.4395317,4.982752,33.9963632,15.3697667\r\n116,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.3393806,1.3811879,15.74283,68.2786644,70.424495,59.2014571,25.6363782,12.1853287,17.9105452,68.8888847,39.7505228,42.1397497,19.6705698,15.1120238,55.9888152,4.8738954,34.9061105,13.5880775,1.3645862,1.4069218,16.1421154,70.2071197,71.6225083,59.1748214,25.7846302,12.734796,18.2393465,69.0952386,39.8498686,42.0880262,20.3205329,15.7447103,56.4395317,4.982752,33.9963632,15.3697667,1.3728075,1.3959572,16.0553468,71.4526277,72.456799,60.0196009,25.4014055,12.4924229,19.1630114,69.1542266,38.9919554,41.6175228,20.3004711,15.6573796,56.0152397,4.9405191,33.9132286,16.3878747\r\n117,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.3645862,1.4069218,16.1421154,70.2071197,71.6225083,59.1748214,25.7846302,12.734796,18.2393465,69.0952386,39.8498686,42.0880262,20.3205329,15.7447103,56.4395317,4.982752,33.9963632,15.3697667,1.3728075,1.3959572,16.0553468,71.4526277,72.456799,60.0196009,25.4014055,12.4924229,19.1630114,69.1542266,38.9919554,41.6175228,20.3004711,15.6573796,56.0152397,4.9405191,33.9132286,16.3878747,1.2420641,1.262086,15.9967576,71.3701038,72.2133608,60.0529504,25.6545663,13.1917644,18.7112906,69.0926172,38.5019512,39.2343413,20.4197277,15.6059751,55.5026229,4.8822331,33.8825412,16.7737537\r\n118,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.3728075,1.3959572,16.0553468,71.4526277,72.456799,60.0196009,25.4014055,12.4924229,19.1630114,69.1542266,38.9919554,41.6175228,20.3004711,15.6573796,56.0152397,4.9405191,33.9132286,16.3878747,1.2420641,1.262086,15.9967576,71.3701038,72.2133608,60.0529504,25.6545663,13.1917644,18.7112906,69.0926172,38.5019512,39.2343413,20.4197277,15.6059751,55.5026229,4.8822331,33.8825412,16.7737537,1.4876275,1.5489444,16.7980663,71.7181729,71.6313248,60.9576006,25.6984109,14.0904509,19.8095814,69.1184824,38.6828686,40.3082859,21.1313702,16.2651402,55.8975687,4.8102821,34.2941629,17.3836353\r\n119,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.2420641,1.262086,15.9967576,71.3701038,72.2133608,60.0529504,25.6545663,13.1917644,18.7112906,69.0926172,38.5019512,39.2343413,20.4197277,15.6059751,55.5026229,4.8822331,33.8825412,16.7737537,1.4876275,1.5489444,16.7980663,71.7181729,71.6313248,60.9576006,25.6984109,14.0904509,19.8095814,69.1184824,38.6828686,40.3082859,21.1313702,16.2651402,55.8975687,4.8102821,34.2941629,17.3836353,1.5000475,1.5722677,16.6397383,72.1729997,71.8962574,61.6263404,25.8771967,14.1612254,19.178194,68.9444976,39.9726859,40.9920747,20.811692,16.0269282,56.2568626,4.7282668,33.32581,16.9192994\r\n120,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.4876275,1.5489444,16.7980663,71.7181729,71.6313248,60.9576006,25.6984109,14.0904509,19.8095814,69.1184824,38.6828686,40.3082859,21.1313702,16.2651402,55.8975687,4.8102821,34.2941629,17.3836353,1.5000475,1.5722677,16.6397383,72.1729997,71.8962574,61.6263404,25.8771967,14.1612254,19.178194,68.9444976,39.9726859,40.9920747,20.811692,16.0269282,56.2568626,4.7282668,33.32581,16.9192994,1.6764931,1.7495777,17.6459348,70.7622033,71.0907057,60.7484084,25.5742923,13.7730119,18.6978111,69.3631513,40.1065034,40.0328794,21.104317,16.3687124,56.0219098,4.4631943,32.5054623,18.3306409\r\n121,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5000475,1.5722677,16.6397383,72.1729997,71.8962574,61.6263404,25.8771967,14.1612254,19.178194,68.9444976,39.9726859,40.9920747,20.811692,16.0269282,56.2568626,4.7282668,33.32581,16.9192994,1.6764931,1.7495777,17.6459348,70.7622033,71.0907057,60.7484084,25.5742923,13.7730119,18.6978111,69.3631513,40.1065034,40.0328794,21.104317,16.3687124,56.0219098,4.4631943,32.5054623,18.3306409,1.7432033,1.8159477,18.0215984,72.4440376,72.4260663,62.5657312,25.1565902,13.7113338,19.3103282,69.7079363,39.9048315,41.5274792,21.5103495,16.6499923,55.658988,4.7527136,32.9675415,18.1848005\r\n122,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6764931,1.7495777,17.6459348,70.7622033,71.0907057,60.7484084,25.5742923,13.7730119,18.6978111,69.3631513,40.1065034,40.0328794,21.104317,16.3687124,56.0219098,4.4631943,32.5054623,18.3306409,1.7432033,1.8159477,18.0215984,72.4440376,72.4260663,62.5657312,25.1565902,13.7113338,19.3103282,69.7079363,39.9048315,41.5274792,21.5103495,16.6499923,55.658988,4.7527136,32.9675415,18.1848005,1.8084396,1.8646403,17.9260196,71.8367736,72.2745061,63.1404673,25.2064922,14.0200959,18.0828557,69.6645721,40.0171056,42.2816707,22.0157477,16.9237325,54.8422781,4.507138,32.5263726,17.3124501\r\n123,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7432033,1.8159477,18.0215984,72.4440376,72.4260663,62.5657312,25.1565902,13.7113338,19.3103282,69.7079363,39.9048315,41.5274792,21.5103495,16.6499923,55.658988,4.7527136,32.9675415,18.1848005,1.8084396,1.8646403,17.9260196,71.8367736,72.2745061,63.1404673,25.2064922,14.0200959,18.0828557,69.6645721,40.0171056,42.2816707,22.0157477,16.9237325,54.8422781,4.507138,32.5263726,17.3124501,1.8477933,1.9029849,17.8308429,71.2842487,71.3068933,62.5927301,25.6303318,14.7362911,17.6689428,69.8382684,40.5912688,43.7881138,22.4322365,17.1495689,55.9725954,4.6674382,32.7698602,16.1372856\r\n124,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8084396,1.8646403,17.9260196,71.8367736,72.2745061,63.1404673,25.2064922,14.0200959,18.0828557,69.6645721,40.0171056,42.2816707,22.0157477,16.9237325,54.8422781,4.507138,32.5263726,17.3124501,1.8477933,1.9029849,17.8308429,71.2842487,71.3068933,62.5927301,25.6303318,14.7362911,17.6689428,69.8382684,40.5912688,43.7881138,22.4322365,17.1495689,55.9725954,4.6674382,32.7698602,16.1372856,1.809516,1.8644955,17.7847259,71.0965763,71.1235658,62.1639116,25.1349358,14.2016855,17.4236011,68.911301,40.4489263,45.6809232,22.4180237,16.9652916,56.1536743,4.6816157,33.1588731,14.7972037\r\n125,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8477933,1.9029849,17.8308429,71.2842487,71.3068933,62.5927301,25.6303318,14.7362911,17.6689428,69.8382684,40.5912688,43.7881138,22.4322365,17.1495689,55.9725954,4.6674382,32.7698602,16.1372856,1.809516,1.8644955,17.7847259,71.0965763,71.1235658,62.1639116,25.1349358,14.2016855,17.4236011,68.911301,40.4489263,45.6809232,22.4180237,16.9652916,56.1536743,4.6816157,33.1588731,14.7972037,1.8412895,1.8767627,17.8173992,69.6802562,69.6606077,61.3850406,25.9810554,13.304531,16.3840996,68.8900518,40.6003786,44.7692695,22.0304166,16.8695497,55.1188962,4.9419862,32.4385194,15.998091\r\n126,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.809516,1.8644955,17.7847259,71.0965763,71.1235658,62.1639116,25.1349358,14.2016855,17.4236011,68.911301,40.4489263,45.6809232,22.4180237,16.9652916,56.1536743,4.6816157,33.1588731,14.7972037,1.8412895,1.8767627,17.8173992,69.6802562,69.6606077,61.3850406,25.9810554,13.304531,16.3840996,68.8900518,40.6003786,44.7692695,22.0304166,16.8695497,55.1188962,4.9419862,32.4385194,15.998091,1.7799061,1.7858036,17.9371777,70.1172047,69.2811359,61.9923045,25.4835865,13.0834093,16.4645046,68.6051122,40.288875,45.4404693,22.4044981,17.4758922,54.9687715,5.0924224,33.1093335,15.0236305\r\n127,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8412895,1.8767627,17.8173992,69.6802562,69.6606077,61.3850406,25.9810554,13.304531,16.3840996,68.8900518,40.6003786,44.7692695,22.0304166,16.8695497,55.1188962,4.9419862,32.4385194,15.998091,1.7799061,1.7858036,17.9371777,70.1172047,69.2811359,61.9923045,25.4835865,13.0834093,16.4645046,68.6051122,40.288875,45.4404693,22.4044981,17.4758922,54.9687715,5.0924224,33.1093335,15.0236305,1.6932759,1.7139951,16.9508753,72.0972767,70.9067698,61.0433675,25.4243293,12.4838611,17.3622119,68.4829807,39.5573658,46.8797359,22.8176146,17.5652475,54.7414037,5.3228453,32.8624257,14.6764833\r\n128,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7799061,1.7858036,17.9371777,70.1172047,69.2811359,61.9923045,25.4835865,13.0834093,16.4645046,68.6051122,40.288875,45.4404693,22.4044981,17.4758922,54.9687715,5.0924224,33.1093335,15.0236305,1.6932759,1.7139951,16.9508753,72.0972767,70.9067698,61.0433675,25.4243293,12.4838611,17.3622119,68.4829807,39.5573658,46.8797359,22.8176146,17.5652475,54.7414037,5.3228453,32.8624257,14.6764833,1.6264419,1.6472879,17.1200435,72.3820968,71.2606427,60.2380605,24.1353374,12.1285296,17.0133966,68.1704912,39.0544626,46.9045656,22.9417149,17.4713745,55.6400687,5.2716519,32.6551299,14.517473\r\n129,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6932759,1.7139951,16.9508753,72.0972767,70.9067698,61.0433675,25.4243293,12.4838611,17.3622119,68.4829807,39.5573658,46.8797359,22.8176146,17.5652475,54.7414037,5.3228453,32.8624257,14.6764833,1.6264419,1.6472879,17.1200435,72.3820968,71.2606427,60.2380605,24.1353374,12.1285296,17.0133966,68.1704912,39.0544626,46.9045656,22.9417149,17.4713745,55.6400687,5.2716519,32.6551299,14.517473,1.7350338,1.7560742,17.3442036,71.6702291,71.2255914,59.8381157,23.3239351,10.8963268,17.0854034,67.4214712,38.079279,46.6613888,22.8683208,17.3305393,55.7493629,5.576464,33.1524527,15.6634952\r\n130,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6264419,1.6472879,17.1200435,72.3820968,71.2606427,60.2380605,24.1353374,12.1285296,17.0133966,68.1704912,39.0544626,46.9045656,22.9417149,17.4713745,55.6400687,5.2716519,32.6551299,14.517473,1.7350338,1.7560742,17.3442036,71.6702291,71.2255914,59.8381157,23.3239351,10.8963268,17.0854034,67.4214712,38.079279,46.6613888,22.8683208,17.3305393,55.7493629,5.576464,33.1524527,15.6634952,1.7358171,1.7724182,18.914595,71.3917626,71.3252677,60.3937241,23.8473006,10.4251077,17.1670557,66.614628,37.4079749,45.1465827,23.2243318,17.9188782,54.7383678,5.5558932,34.0212978,16.8542469\r\n131,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7350338,1.7560742,17.3442036,71.6702291,71.2255914,59.8381157,23.3239351,10.8963268,17.0854034,67.4214712,38.079279,46.6613888,22.8683208,17.3305393,55.7493629,5.576464,33.1524527,15.6634952,1.7358171,1.7724182,18.914595,71.3917626,71.3252677,60.3937241,23.8473006,10.4251077,17.1670557,66.614628,37.4079749,45.1465827,23.2243318,17.9188782,54.7383678,5.5558932,34.0212978,16.8542469,1.7240947,1.7609104,20.2327121,70.8021147,70.6501946,58.7649003,23.6318387,9.9108001,16.6998775,67.0927088,37.0485575,45.5494806,23.7534088,18.7936611,54.7412416,5.4674753,34.2521162,17.8777639\r\n132,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7358171,1.7724182,18.914595,71.3917626,71.3252677,60.3937241,23.8473006,10.4251077,17.1670557,66.614628,37.4079749,45.1465827,23.2243318,17.9188782,54.7383678,5.5558932,34.0212978,16.8542469,1.7240947,1.7609104,20.2327121,70.8021147,70.6501946,58.7649003,23.6318387,9.9108001,16.6998775,67.0927088,37.0485575,45.5494806,23.7534088,18.7936611,54.7412416,5.4674753,34.2521162,17.8777639,1.578142,1.6090772,21.2100591,71.3341334,71.801438,59.4727627,23.167795,10.3243332,16.7685409,66.6313523,36.8649803,44.9839279,24.2451399,19.1261033,55.0279307,5.1583938,34.7638076,15.5255241\r\n133,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7240947,1.7609104,20.2327121,70.8021147,70.6501946,58.7649003,23.6318387,9.9108001,16.6998775,67.0927088,37.0485575,45.5494806,23.7534088,18.7936611,54.7412416,5.4674753,34.2521162,17.8777639,1.578142,1.6090772,21.2100591,71.3341334,71.801438,59.4727627,23.167795,10.3243332,16.7685409,66.6313523,36.8649803,44.9839279,24.2451399,19.1261033,55.0279307,5.1583938,34.7638076,15.5255241,1.6353327,1.6744145,21.7889873,70.55428,71.5400799,58.9173433,23.4087819,9.9120828,16.9862437,66.5742643,36.1058954,44.2737715,24.5864354,19.4759672,55.7392896,4.8832095,35.0358644,15.8002684\r\n134,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.578142,1.6090772,21.2100591,71.3341334,71.801438,59.4727627,23.167795,10.3243332,16.7685409,66.6313523,36.8649803,44.9839279,24.2451399,19.1261033,55.0279307,5.1583938,34.7638076,15.5255241,1.6353327,1.6744145,21.7889873,70.55428,71.5400799,58.9173433,23.4087819,9.9120828,16.9862437,66.5742643,36.1058954,44.2737715,24.5864354,19.4759672,55.7392896,4.8832095,35.0358644,15.8002684,1.6546183,1.7093343,23.0313139,69.4573977,70.7801203,59.8035238,24.1485221,10.2441191,17.6754672,67.0674644,36.3075638,43.6772201,24.8022426,19.9171187,55.7113389,4.6759979,35.444444,14.9401284\r\n135,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6353327,1.6744145,21.7889873,70.55428,71.5400799,58.9173433,23.4087819,9.9120828,16.9862437,66.5742643,36.1058954,44.2737715,24.5864354,19.4759672,55.7392896,4.8832095,35.0358644,15.8002684,1.6546183,1.7093343,23.0313139,69.4573977,70.7801203,59.8035238,24.1485221,10.2441191,17.6754672,67.0674644,36.3075638,43.6772201,24.8022426,19.9171187,55.7113389,4.6759979,35.444444,14.9401284,1.6936371,1.7172928,23.3440707,69.2530854,70.6483283,59.7586979,25.1593702,10.9417043,17.1944851,67.3108023,36.4248709,44.4178933,25.0035551,20.1325937,55.3901271,4.4962659,35.4962662,14.2834427\r\n136,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6546183,1.7093343,23.0313139,69.4573977,70.7801203,59.8035238,24.1485221,10.2441191,17.6754672,67.0674644,36.3075638,43.6772201,24.8022426,19.9171187,55.7113389,4.6759979,35.444444,14.9401284,1.6936371,1.7172928,23.3440707,69.2530854,70.6483283,59.7586979,25.1593702,10.9417043,17.1944851,67.3108023,36.4248709,44.4178933,25.0035551,20.1325937,55.3901271,4.4962659,35.4962662,14.2834427,1.5612738,1.5691535,23.9614769,69.9028072,71.0749275,60.0073777,26.1297105,11.4727158,18.0131355,67.7537296,37.6225128,43.9028714,25.287355,20.5134849,55.2932715,4.2580411,35.1953851,14.7386052\r\n137,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6936371,1.7172928,23.3440707,69.2530854,70.6483283,59.7586979,25.1593702,10.9417043,17.1944851,67.3108023,36.4248709,44.4178933,25.0035551,20.1325937,55.3901271,4.4962659,35.4962662,14.2834427,1.5612738,1.5691535,23.9614769,69.9028072,71.0749275,60.0073777,26.1297105,11.4727158,18.0131355,67.7537296,37.6225128,43.9028714,25.287355,20.5134849,55.2932715,4.2580411,35.1953851,14.7386052,1.3646948,1.3252464,22.8490489,70.8005848,70.9390724,59.4798841,24.8178307,11.6659121,17.7019692,67.7928394,37.0846499,44.1637428,25.3120446,20.3112489,56.0377339,4.3116969,35.1689609,13.3616073\r\n138,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5612738,1.5691535,23.9614769,69.9028072,71.0749275,60.0073777,26.1297105,11.4727158,18.0131355,67.7537296,37.6225128,43.9028714,25.287355,20.5134849,55.2932715,4.2580411,35.1953851,14.7386052,1.3646948,1.3252464,22.8490489,70.8005848,70.9390724,59.4798841,24.8178307,11.6659121,17.7019692,67.7928394,37.0846499,44.1637428,25.3120446,20.3112489,56.0377339,4.3116969,35.1689609,13.3616073,1.4800774,1.4408819,22.1986323,72.8434574,72.529585,62.5696588,25.9472992,12.1804317,18.461646,68.0502006,37.7516961,44.5888751,25.6908577,20.4084553,56.519401,4.5300396,34.69734,13.9275368\r\n139,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.3646948,1.3252464,22.8490489,70.8005848,70.9390724,59.4798841,24.8178307,11.6659121,17.7019692,67.7928394,37.0846499,44.1637428,25.3120446,20.3112489,56.0377339,4.3116969,35.1689609,13.3616073,1.4800774,1.4408819,22.1986323,72.8434574,72.529585,62.5696588,25.9472992,12.1804317,18.461646,68.0502006,37.7516961,44.5888751,25.6908577,20.4084553,56.519401,4.5300396,34.69734,13.9275368,1.5343349,1.4837439,21.2228806,74.0602509,73.2728449,62.9184802,25.9159696,12.1528811,18.6000222,68.8085499,37.7877881,46.4316222,25.5539302,20.5210202,56.9417245,4.5073203,35.1066468,15.5172414\r\n140,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.4800774,1.4408819,22.1986323,72.8434574,72.529585,62.5696588,25.9472992,12.1804317,18.461646,68.0502006,37.7516961,44.5888751,25.6908577,20.4084553,56.519401,4.5300396,34.69734,13.9275368,1.5343349,1.4837439,21.2228806,74.0602509,73.2728449,62.9184802,25.9159696,12.1528811,18.6000222,68.8085499,37.7877881,46.4316222,25.5539302,20.5210202,56.9417245,4.5073203,35.1066468,15.5172414,1.5396881,1.4804884,20.5745392,74.0075516,72.6359827,62.6785957,26.5272575,12.5332021,18.7995574,69.1061062,37.7977848,47.5371605,25.1793926,19.8949331,56.4120315,4.7615215,34.5331987,15.7342657\r\n141,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5343349,1.4837439,21.2228806,74.0602509,73.2728449,62.9184802,25.9159696,12.1528811,18.6000222,68.8085499,37.7877881,46.4316222,25.5539302,20.5210202,56.9417245,4.5073203,35.1066468,15.5172414,1.5396881,1.4804884,20.5745392,74.0075516,72.6359827,62.6785957,26.5272575,12.5332021,18.7995574,69.1061062,37.7977848,47.5371605,25.1793926,19.8949331,56.4120315,4.7615215,34.5331987,15.7342657,1.5795977,1.4889349,20.3430483,74.4152997,72.6769707,63.8738939,27.0533772,12.6062507,16.4646169,68.9472446,38.4043888,46.6691468,25.4996885,20.3173287,56.7516335,5.1594029,34.1125656,17.1456312\r\n142,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5396881,1.4804884,20.5745392,74.0075516,72.6359827,62.6785957,26.5272575,12.5332021,18.7995574,69.1061062,37.7977848,47.5371605,25.1793926,19.8949331,56.4120315,4.7615215,34.5331987,15.7342657,1.5795977,1.4889349,20.3430483,74.4152997,72.6769707,63.8738939,27.0533772,12.6062507,16.4646169,68.9472446,38.4043888,46.6691468,25.4996885,20.3173287,56.7516335,5.1594029,34.1125656,17.1456312,1.594153,1.5460953,20.7766991,74.2572149,72.9382556,64.0877846,28.0378917,12.5036762,17.7895954,68.6105428,38.4536748,47.3865574,25.5572823,20.4961683,56.5298477,5.0462325,34.6917303,17.9616215\r\n143,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5795977,1.4889349,20.3430483,74.4152997,72.6769707,63.8738939,27.0533772,12.6062507,16.4646169,68.9472446,38.4043888,46.6691468,25.4996885,20.3173287,56.7516335,5.1594029,34.1125656,17.1456312,1.594153,1.5460953,20.7766991,74.2572149,72.9382556,64.0877846,28.0378917,12.5036762,17.7895954,68.6105428,38.4536748,47.3865574,25.5572823,20.4961683,56.5298477,5.0462325,34.6917303,17.9616215,1.4708192,1.4543792,20.2650622,73.9729354,72.6353806,65.0932811,28.0200056,12.2821706,17.0597627,68.4675882,38.3367795,48.7697809,25.2023758,20.3859037,56.9701237,5.0277053,35.335484,18.168375\r\n144,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.594153,1.5460953,20.7766991,74.2572149,72.9382556,64.0877846,28.0378917,12.5036762,17.7895954,68.6105428,38.4536748,47.3865574,25.5572823,20.4961683,56.5298477,5.0462325,34.6917303,17.9616215,1.4708192,1.4543792,20.2650622,73.9729354,72.6353806,65.0932811,28.0200056,12.2821706,17.0597627,68.4675882,38.3367795,48.7697809,25.2023758,20.3859037,56.9701237,5.0277053,35.335484,18.168375,1.6606483,1.7403756,20.2191119,73.5819012,72.7001276,65.184025,28.251865,11.9848103,17.0692551,68.5033207,38.3249613,49.753038,25.2226688,20.3341049,57.0160144,4.9057999,35.303881,18.9660707\r\n145,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.4708192,1.4543792,20.2650622,73.9729354,72.6353806,65.0932811,28.0200056,12.2821706,17.0597627,68.4675882,38.3367795,48.7697809,25.2023758,20.3859037,56.9701237,5.0277053,35.335484,18.168375,1.6606483,1.7403756,20.2191119,73.5819012,72.7001276,65.184025,28.251865,11.9848103,17.0692551,68.5033207,38.3249613,49.753038,25.2226688,20.3341049,57.0160144,4.9057999,35.303881,18.9660707,1.6739579,1.7538274,19.238342,72.2461645,71.2737566,64.8967948,27.3803024,11.657868,16.8732593,68.6361137,37.5809212,49.0528534,24.4797519,19.356006,57.7316974,4.6698611,35.8822112,19.9320114\r\n146,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6606483,1.7403756,20.2191119,73.5819012,72.7001276,65.184025,28.251865,11.9848103,17.0692551,68.5033207,38.3249613,49.753038,25.2226688,20.3341049,57.0160144,4.9057999,35.303881,18.9660707,1.6739579,1.7538274,19.238342,72.2461645,71.2737566,64.8967948,27.3803024,11.657868,16.8732593,68.6361137,37.5809212,49.0528534,24.4797519,19.356006,57.7316974,4.6698611,35.8822112,19.9320114,1.8850534,1.9465612,19.2583461,71.6687528,71.0508225,65.2857107,27.1805668,12.3157897,16.1059362,68.6791795,37.2050027,48.4809413,24.0925141,18.6228682,57.2424711,4.6685546,36.7990135,21.5364482\r\n147,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6739579,1.7538274,19.238342,72.2461645,71.2737566,64.8967948,27.3803024,11.657868,16.8732593,68.6361137,37.5809212,49.0528534,24.4797519,19.356006,57.7316974,4.6698611,35.8822112,19.9320114,1.8850534,1.9465612,19.2583461,71.6687528,71.0508225,65.2857107,27.1805668,12.3157897,16.1059362,68.6791795,37.2050027,48.4809413,24.0925141,18.6228682,57.2424711,4.6685546,36.7990135,21.5364482,1.8810629,1.9263061,19.6201574,72.9066955,72.447076,66.0302923,26.8586386,12.5864245,16.0880086,68.9350696,37.0493933,48.459021,24.6555428,19.2800234,57.1191568,4.5214706,36.5371397,21.1045636\r\n148,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8850534,1.9465612,19.2583461,71.6687528,71.0508225,65.2857107,27.1805668,12.3157897,16.1059362,68.6791795,37.2050027,48.4809413,24.0925141,18.6228682,57.2424711,4.6685546,36.7990135,21.5364482,1.8810629,1.9263061,19.6201574,72.9066955,72.447076,66.0302923,26.8586386,12.5864245,16.0880086,68.9350696,37.0493933,48.459021,24.6555428,19.2800234,57.1191568,4.5214706,36.5371397,21.1045636,1.8705475,1.9158073,19.2673444,72.5059392,72.522023,66.4050897,25.9481432,11.9297226,16.7365767,68.3870897,36.6967199,48.4516179,24.0501624,18.6301979,56.6678679,4.2624204,36.4414579,19.7391456\r\n149,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8810629,1.9263061,19.6201574,72.9066955,72.447076,66.0302923,26.8586386,12.5864245,16.0880086,68.9350696,37.0493933,48.459021,24.6555428,19.2800234,57.1191568,4.5214706,36.5371397,21.1045636,1.8705475,1.9158073,19.2673444,72.5059392,72.522023,66.4050897,25.9481432,11.9297226,16.7365767,68.3870897,36.6967199,48.4516179,24.0501624,18.6301979,56.6678679,4.2624204,36.4414579,19.7391456,1.8444185,1.8797601,18.8923296,72.9485539,72.3671115,66.5784838,24.8184464,11.7906285,15.6500123,67.8935991,36.6238711,47.2755123,24.1879606,18.7410047,56.8054791,4.3939755,36.3575718,20.2580068\r\n150,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8705475,1.9158073,19.2673444,72.5059392,72.522023,66.4050897,25.9481432,11.9297226,16.7365767,68.3870897,36.6967199,48.4516179,24.0501624,18.6301979,56.6678679,4.2624204,36.4414579,19.7391456,1.8444185,1.8797601,18.8923296,72.9485539,72.3671115,66.5784838,24.8184464,11.7906285,15.6500123,67.8935991,36.6238711,47.2755123,24.1879606,18.7410047,56.8054791,4.3939755,36.3575718,20.2580068,2.0372997,2.0579391,19.025625,72.7143142,72.6319671,65.0738601,23.8734047,11.9236254,15.8035708,67.1568746,36.0391902,47.7789936,24.0845,18.6639335,57.1056997,4.0554582,35.7914752,19.1705291\r\n151,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8444185,1.8797601,18.8923296,72.9485539,72.3671115,66.5784838,24.8184464,11.7906285,15.6500123,67.8935991,36.6238711,47.2755123,24.1879606,18.7410047,56.8054791,4.3939755,36.3575718,20.2580068,2.0372997,2.0579391,19.025625,72.7143142,72.6319671,65.0738601,23.8734047,11.9236254,15.8035708,67.1568746,36.0391902,47.7789936,24.0845,18.6639335,57.1056997,4.0554582,35.7914752,19.1705291,1.9401058,1.8991776,19.1187773,73.216388,72.9188061,66.081123,23.5018721,13.0779446,16.1551841,67.3928627,36.6626939,48.6381473,23.9988596,18.6778503,57.2435643,4.1103366,35.5759787,19.194663\r\n152,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,2.0372997,2.0579391,19.025625,72.7143142,72.6319671,65.0738601,23.8734047,11.9236254,15.8035708,67.1568746,36.0391902,47.7789936,24.0845,18.6639335,57.1056997,4.0554582,35.7914752,19.1705291,1.9401058,1.8991776,19.1187773,73.216388,72.9188061,66.081123,23.5018721,13.0779446,16.1551841,67.3928627,36.6626939,48.6381473,23.9988596,18.6778503,57.2435643,4.1103366,35.5759787,19.194663,1.9615334,1.9204355,19.6354148,73.9875445,74.1777045,66.4319793,23.2726575,13.3840448,15.9356178,67.0473726,36.6972728,49.2634356,24.2211696,19.2900801,57.3023704,4.2659607,35.5759787,17.9726773\r\n153,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.9401058,1.8991776,19.1187773,73.216388,72.9188061,66.081123,23.5018721,13.0779446,16.1551841,67.3928627,36.6626939,48.6381473,23.9988596,18.6778503,57.2435643,4.1103366,35.5759787,19.194663,1.9615334,1.9204355,19.6354148,73.9875445,74.1777045,66.4319793,23.2726575,13.3840448,15.9356178,67.0473726,36.6972728,49.2634356,24.2211696,19.2900801,57.3023704,4.2659607,35.5759787,17.9726773,1.8624153,1.8529505,20.4597663,74.2956953,72.7369698,65.5675249,23.8804175,11.9625684,16.1522558,66.9853185,37.1972576,49.7299489,25.3576354,20.273774,57.8722614,4.3714547,34.1388216,16.2181701\r\n154,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.9615334,1.9204355,19.6354148,73.9875445,74.1777045,66.4319793,23.2726575,13.3840448,15.9356178,67.0473726,36.6972728,49.2634356,24.2211696,19.2900801,57.3023704,4.2659607,35.5759787,17.9726773,1.8624153,1.8529505,20.4597663,74.2956953,72.7369698,65.5675249,23.8804175,11.9625684,16.1522558,66.9853185,37.1972576,49.7299489,25.3576354,20.273774,57.8722614,4.3714547,34.1388216,16.2181701,1.7941903,1.8112314,20.5114091,74.199512,72.4869602,66.1811125,22.9814254,12.0084112,15.6577217,66.4020191,36.3471567,48.8949875,24.8428891,19.736251,58.7456297,4.2212688,33.6983556,16.7644912\r\n155,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8624153,1.8529505,20.4597663,74.2956953,72.7369698,65.5675249,23.8804175,11.9625684,16.1522558,66.9853185,37.1972576,49.7299489,25.3576354,20.273774,57.8722614,4.3714547,34.1388216,16.2181701,1.7941903,1.8112314,20.5114091,74.199512,72.4869602,66.1811125,22.9814254,12.0084112,15.6577217,66.4020191,36.3471567,48.8949875,24.8428891,19.736251,58.7456297,4.2212688,33.6983556,16.7644912,1.7071434,1.71775,20.0974921,73.2639942,71.2066772,64.7053483,22.867786,12.2882694,15.9632504,67.1784474,36.2947572,49.4631226,24.3897071,19.3812693,58.9922673,4.1923755,33.511088,16.9113823\r\n156,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7941903,1.8112314,20.5114091,74.199512,72.4869602,66.1811125,22.9814254,12.0084112,15.6577217,66.4020191,36.3471567,48.8949875,24.8428891,19.736251,58.7456297,4.2212688,33.6983556,16.7644912,1.7071434,1.71775,20.0974921,73.2639942,71.2066772,64.7053483,22.867786,12.2882694,15.9632504,67.1784474,36.2947572,49.4631226,24.3897071,19.3812693,58.9922673,4.1923755,33.511088,16.9113823,1.7765844,1.7873455,20.5947076,72.9548892,70.9319153,66.214491,22.7143423,11.6554069,16.0073965,67.1406689,35.8496914,49.4453143,24.1911955,19.2954189,59.1511355,4.1553309,32.8284388,16.5715325\r\n157,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7071434,1.71775,20.0974921,73.2639942,71.2066772,64.7053483,22.867786,12.2882694,15.9632504,67.1784474,36.2947572,49.4631226,24.3897071,19.3812693,58.9922673,4.1923755,33.511088,16.9113823,1.7765844,1.7873455,20.5947076,72.9548892,70.9319153,66.214491,22.7143423,11.6554069,16.0073965,67.1406689,35.8496914,49.4453143,24.1911955,19.2954189,59.1511355,4.1553309,32.8284388,16.5715325,1.596153,1.6068098,20.8224761,73.9085396,71.5661064,66.9496504,22.7700104,11.0147656,15.3209517,67.673439,34.454722,49.449051,24.306025,19.184144,58.9980015,4.3169014,32.7808293,16.4297697\r\n158,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7765844,1.7873455,20.5947076,72.9548892,70.9319153,66.214491,22.7143423,11.6554069,16.0073965,67.1406689,35.8496914,49.4453143,24.1911955,19.2954189,59.1511355,4.1553309,32.8284388,16.5715325,1.596153,1.6068098,20.8224761,73.9085396,71.5661064,66.9496504,22.7700104,11.0147656,15.3209517,67.673439,34.454722,49.449051,24.306025,19.184144,58.9980015,4.3169014,32.7808293,16.4297697,1.6159353,1.6201959,21.6478896,72.731494,70.0601305,66.6061928,22.6791253,9.7650454,14.2280599,67.7137708,34.6301471,47.3953739,24.7730668,19.5824948,59.31339,4.1970125,31.5544642,16.3086022\r\n159,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.596153,1.6068098,20.8224761,73.9085396,71.5661064,66.9496504,22.7700104,11.0147656,15.3209517,67.673439,34.454722,49.449051,24.306025,19.184144,58.9980015,4.3169014,32.7808293,16.4297697,1.6159353,1.6201959,21.6478896,72.731494,70.0601305,66.6061928,22.6791253,9.7650454,14.2280599,67.7137708,34.6301471,47.3953739,24.7730668,19.5824948,59.31339,4.1970125,31.5544642,16.3086022,1.6684,1.736318,21.83716,72.9002866,70.0100387,65.5757883,23.1065492,9.4085348,14.0127964,67.7355125,35.260016,48.120298,25.0617281,19.6492196,58.9824999,3.9876124,30.9871641,14.8425332\r\n160,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6159353,1.6201959,21.6478896,72.731494,70.0601305,66.6061928,22.6791253,9.7650454,14.2280599,67.7137708,34.6301471,47.3953739,24.7730668,19.5824948,59.31339,4.1970125,31.5544642,16.3086022,1.6684,1.736318,21.83716,72.9002866,70.0100387,65.5757883,23.1065492,9.4085348,14.0127964,67.7355125,35.260016,48.120298,25.0617281,19.6492196,58.9824999,3.9876124,30.9871641,14.8425332,1.6530747,1.7420093,20.6608508,72.7666982,71.0897786,65.9695923,22.2699846,10.6184906,14.0769175,66.9447542,34.9463272,47.7436338,24.0171496,19.0431291,59.0803346,3.7316061,31.2258994,14.7848924\r\n161,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6684,1.736318,21.83716,72.9002866,70.0100387,65.5757883,23.1065492,9.4085348,14.0127964,67.7355125,35.260016,48.120298,25.0617281,19.6492196,58.9824999,3.9876124,30.9871641,14.8425332,1.6530747,1.7420093,20.6608508,72.7666982,71.0897786,65.9695923,22.2699846,10.6184906,14.0769175,66.9447542,34.9463272,47.7436338,24.0171496,19.0431291,59.0803346,3.7316061,31.2258994,14.7848924,1.6585981,1.7386488,19.8976791,72.4806805,70.8638123,64.912854,22.8779838,10.8001255,15.3778052,66.8928218,35.3381674,46.9560165,23.6841216,18.8421023,58.9627691,3.7862227,31.3256078,14.0738311\r\n162,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6530747,1.7420093,20.6608508,72.7666982,71.0897786,65.9695923,22.2699846,10.6184906,14.0769175,66.9447542,34.9463272,47.7436338,24.0171496,19.0431291,59.0803346,3.7316061,31.2258994,14.7848924,1.6585981,1.7386488,19.8976791,72.4806805,70.8638123,64.912854,22.8779838,10.8001255,15.3778052,66.8928218,35.3381674,46.9560165,23.6841216,18.8421023,58.9627691,3.7862227,31.3256078,14.0738311,1.5896625,1.7407708,20.2954559,73.6761414,73.3982254,65.4861299,22.9267466,10.7718026,14.6914057,65.6612005,35.1003759,48.7052584,24.2990386,19.147364,59.5123463,3.6845737,32.5674664,13.7752965\r\n163,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.6585981,1.7386488,19.8976791,72.4806805,70.8638123,64.912854,22.8779838,10.8001255,15.3778052,66.8928218,35.3381674,46.9560165,23.6841216,18.8421023,58.9627691,3.7862227,31.3256078,14.0738311,1.5896625,1.7407708,20.2954559,73.6761414,73.3982254,65.4861299,22.9267466,10.7718026,14.6914057,65.6612005,35.1003759,48.7052584,24.2990386,19.147364,59.5123463,3.6845737,32.5674664,13.7752965,1.7196167,1.884425,19.1485509,74.4031297,72.9651671,64.1717577,23.1164896,12.6818501,14.7235113,66.0161217,36.5677552,48.9222745,23.7190233,18.3483618,59.6693553,3.7821888,33.0010085,13.3351268\r\n164,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.5896625,1.7407708,20.2954559,73.6761414,73.3982254,65.4861299,22.9267466,10.7718026,14.6914057,65.6612005,35.1003759,48.7052584,24.2990386,19.147364,59.5123463,3.6845737,32.5674664,13.7752965,1.7196167,1.884425,19.1485509,74.4031297,72.9651671,64.1717577,23.1164896,12.6818501,14.7235113,66.0161217,36.5677552,48.9222745,23.7190233,18.3483618,59.6693553,3.7821888,33.0010085,13.3351268,1.8757509,2.0549649,19.2473739,73.8328106,72.6155447,64.7970112,24.3206929,14.4709859,15.9013073,66.1704022,37.9186474,47.8156261,23.9748702,18.1478149,59.5450202,3.9439932,33.6709931,14.5324108\r\n165,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7196167,1.884425,19.1485509,74.4031297,72.9651671,64.1717577,23.1164896,12.6818501,14.7235113,66.0161217,36.5677552,48.9222745,23.7190233,18.3483618,59.6693553,3.7821888,33.0010085,13.3351268,1.8757509,2.0549649,19.2473739,73.8328106,72.6155447,64.7970112,24.3206929,14.4709859,15.9013073,66.1704022,37.9186474,47.8156261,23.9748702,18.1478149,59.5450202,3.9439932,33.6709931,14.5324108,1.8973124,2.0593139,18.2511452,74.1865539,73.4388696,63.2292062,25.2342448,15.0644085,16.3759654,66.9487077,38.4412198,48.7613791,22.9877035,17.3918823,59.2141118,4.0450868,34.1516076,12.9990813\r\n166,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8757509,2.0549649,19.2473739,73.8328106,72.6155447,64.7970112,24.3206929,14.4709859,15.9013073,66.1704022,37.9186474,47.8156261,23.9748702,18.1478149,59.5450202,3.9439932,33.6709931,14.5324108,1.8973124,2.0593139,18.2511452,74.1865539,73.4388696,63.2292062,25.2342448,15.0644085,16.3759654,66.9487077,38.4412198,48.7613791,22.9877035,17.3918823,59.2141118,4.0450868,34.1516076,12.9990813,1.7292486,1.8269041,18.1810569,73.372274,74.2974509,64.7014408,25.5270837,14.4504504,15.6592497,68.0707264,38.5308856,48.8595955,22.7116979,17.2595766,59.4313385,4.2436478,34.2325641,14.3652561\r\n167,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8973124,2.0593139,18.2511452,74.1865539,73.4388696,63.2292062,25.2342448,15.0644085,16.3759654,66.9487077,38.4412198,48.7613791,22.9877035,17.3918823,59.2141118,4.0450868,34.1516076,12.9990813,1.7292486,1.8269041,18.1810569,73.372274,74.2974509,64.7014408,25.5270837,14.4504504,15.6592497,68.0707264,38.5308856,48.8595955,22.7116979,17.2595766,59.4313385,4.2436478,34.2325641,14.3652561,1.671435,1.7639639,18.4435443,72.8820453,73.7728338,64.789164,25.2066313,13.7888829,15.4183051,68.6300351,38.316695,49.7718479,23.102412,17.3715811,60.177969,4.5084586,34.8086504,12.8944915\r\n168,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.7292486,1.8269041,18.1810569,73.372274,74.2974509,64.7014408,25.5270837,14.4504504,15.6592497,68.0707264,38.5308856,48.8595955,22.7116979,17.2595766,59.4313385,4.2436478,34.2325641,14.3652561,1.671435,1.7639639,18.4435443,72.8820453,73.7728338,64.789164,25.2066313,13.7888829,15.4183051,68.6300351,38.316695,49.7718479,23.102412,17.3715811,60.177969,4.5084586,34.8086504,12.8944915,1.794294,1.8533771,20.1252729,70.2997147,71.8544271,63.8655583,24.770215,14.9966712,13.503595,69.2111102,39.3038662,51.9831019,23.9967929,18.1022995,59.709396,4.8099799,35.1749036,12.3773462\r\n169,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.671435,1.7639639,18.4435443,72.8820453,73.7728338,64.789164,25.2066313,13.7888829,15.4183051,68.6300351,38.316695,49.7718479,23.102412,17.3715811,60.177969,4.5084586,34.8086504,12.8944915,1.794294,1.8533771,20.1252729,70.2997147,71.8544271,63.8655583,24.770215,14.9966712,13.503595,69.2111102,39.3038662,51.9831019,23.9967929,18.1022995,59.709396,4.8099799,35.1749036,12.3773462,1.820061,1.82829,19.2902272,70.5763711,70.3818341,63.8958044,24.6516885,15.2447489,13.9796944,70.2069777,39.7375883,51.8176917,23.720347,17.8251659,59.955672,4.9788038,34.970416,12.9883485\r\n170,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.794294,1.8533771,20.1252729,70.2997147,71.8544271,63.8655583,24.770215,14.9966712,13.503595,69.2111102,39.3038662,51.9831019,23.9967929,18.1022995,59.709396,4.8099799,35.1749036,12.3773462,1.820061,1.82829,19.2902272,70.5763711,70.3818341,63.8958044,24.6516885,15.2447489,13.9796944,70.2069777,39.7375883,51.8176917,23.720347,17.8251659,59.955672,4.9788038,34.970416,12.9883485,1.8493931,1.8430753,19.2060256,69.3013104,70.3110557,63.99556,25.5876115,13.7774306,13.771304,69.924551,38.5640178,51.8002921,24.1896066,18.2527101,59.9879334,4.8505995,33.9134096,13.4373493\r\n171,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.820061,1.82829,19.2902272,70.5763711,70.3818341,63.8958044,24.6516885,15.2447489,13.9796944,70.2069777,39.7375883,51.8176917,23.720347,17.8251659,59.955672,4.9788038,34.970416,12.9883485,1.8493931,1.8430753,19.2060256,69.3013104,70.3110557,63.99556,25.5876115,13.7774306,13.771304,69.924551,38.5640178,51.8002921,24.1896066,18.2527101,59.9879334,4.8505995,33.9134096,13.4373493,1.9272079,1.8935046,19.8857057,69.652197,70.5340957,63.9708881,25.0815842,13.2663252,13.3636992,68.6230075,37.1756137,52.969182,25.1902927,19.2449734,60.6438438,4.5220886,33.0935636,12.5989678\r\n172,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.8493931,1.8430753,19.2060256,69.3013104,70.3110557,63.99556,25.5876115,13.7774306,13.771304,69.924551,38.5640178,51.8002921,24.1896066,18.2527101,59.9879334,4.8505995,33.9134096,13.4373493,1.9272079,1.8935046,19.8857057,69.652197,70.5340957,63.9708881,25.0815842,13.2663252,13.3636992,68.6230075,37.1756137,52.969182,25.1902927,19.2449734,60.6438438,4.5220886,33.0935636,12.5989678,1.9970785,2.0119756,20.4056993,69.4742669,70.3922842,64.8375551,25.3440465,13.7159147,14.0533896,67.60504,36.67996,52.4636791,26.4861429,20.2343906,60.3983618,4.3456196,33.7946075,12.7846659\r\n173,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.9272079,1.8935046,19.8857057,69.652197,70.5340957,63.9708881,25.0815842,13.2663252,13.3636992,68.6230075,37.1756137,52.969182,25.1902927,19.2449734,60.6438438,4.5220886,33.0935636,12.5989678,1.9970785,2.0119756,20.4056993,69.4742669,70.3922842,64.8375551,25.3440465,13.7159147,14.0533896,67.60504,36.67996,52.4636791,26.4861429,20.2343906,60.3983618,4.3456196,33.7946075,12.7846659,2.1310832,2.1459341,22.3564516,69.4558128,69.0719958,63.2585493,24.802926,14.8315663,15.5017614,66.1598285,36.3261336,52.8961711,27.6987177,21.4427225,60.9279634,4.4485016,34.1605103,12.4833284\r\n174,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,1.9970785,2.0119756,20.4056993,69.4742669,70.3922842,64.8375551,25.3440465,13.7159147,14.0533896,67.60504,36.67996,52.4636791,26.4861429,20.2343906,60.3983618,4.3456196,33.7946075,12.7846659,2.1310832,2.1459341,22.3564516,69.4558128,69.0719958,63.2585493,24.802926,14.8315663,15.5017614,66.1598285,36.3261336,52.8961711,27.6987177,21.4427225,60.9279634,4.4485016,34.1605103,12.4833284,2.3178316,2.358341,23.8671644,69.5458003,69.5362292,62.4934396,25.716483,15.1580688,16.2198347,65.9632503,35.8708045,52.1533997,29.0473007,22.802438,60.946289,4.2644723,33.6350284,13.462889\r\n175,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.0,2.1310832,2.1459341,22.3564516,69.4558128,69.0719958,63.2585493,24.802926,14.8315663,15.5017614,66.1598285,36.3261336,52.8961711,27.6987177,21.4427225,60.9279634,4.4485016,34.1605103,12.4833284,2.3178316,2.358341,23.8671644,69.5458003,69.5362292,62.4934396,25.716483,15.1580688,16.2198347,65.9632503,35.8708045,52.1533997,29.0473007,22.802438,60.946289,4.2644723,33.6350284,13.462889,2.4995985,2.5661135,24.1882423,72.1254067,70.2735749,64.2006669,25.7798506,14.6944148,17.4327839,64.8749425,34.8845904,51.0369411,30.0804775,23.5504676,62.9609628,4.0843706,33.7485867,14.615076\r\n176,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0054706,1.0392802,12.4398161,82.4372865,82.0035926,71.5399548,18.7739326,51.8954132,28.7322256,64.2387081,32.3099432,56.6821568,15.206173,11.7344933,80.13292,6.2585323,36.8909327,6.7845163,1.0257599,1.0473969,12.2799877,82.6488193,82.7144659,71.6662209,18.7419855,51.0276831,29.0764441,64.1914656,32.4448733,57.0555691,15.1279164,11.6536788,80.0725191,6.0255206,36.6195406,6.7254353,0.9643591,0.9778431,12.1889805,82.0596371,82.6360895,71.3576585,19.2229753,50.8474727,29.0745262,64.3626362,32.6189596,56.5185079,15.129455,11.6890304,79.717067,6.1922631,36.4592987,6.3813808\r\n177,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0257599,1.0473969,12.2799877,82.6488193,82.7144659,71.6662209,18.7419855,51.0276831,29.0764441,64.1914656,32.4448733,57.0555691,15.1279164,11.6536788,80.0725191,6.0255206,36.6195406,6.7254353,0.9643591,0.9778431,12.1889805,82.0596371,82.6360895,71.3576585,19.2229753,50.8474727,29.0745262,64.3626362,32.6189596,56.5185079,15.129455,11.6890304,79.717067,6.1922631,36.4592987,6.3813808,0.9579013,0.9776188,11.9495553,81.5382251,82.498257,70.9649642,18.9911785,50.6811312,29.3469659,64.4870728,32.7838992,56.3378331,15.0229614,11.5391955,79.682753,6.2765987,36.7061133,6.5124971\r\n178,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9643591,0.9778431,12.1889805,82.0596371,82.6360895,71.3576585,19.2229753,50.8474727,29.0745262,64.3626362,32.6189596,56.5185079,15.129455,11.6890304,79.717067,6.1922631,36.4592987,6.3813808,0.9579013,0.9776188,11.9495553,81.5382251,82.498257,70.9649642,18.9911785,50.6811312,29.3469659,64.4870728,32.7838992,56.3378331,15.0229614,11.5391955,79.682753,6.2765987,36.7061133,6.5124971,0.981334,0.9917095,11.7837133,81.1384015,82.2733786,71.2444886,18.9371841,50.2072566,29.3022724,64.2503034,32.8207454,55.5479765,14.8512601,11.450476,79.3525917,6.2935309,36.9035227,6.5812867\r\n179,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9579013,0.9776188,11.9495553,81.5382251,82.498257,70.9649642,18.9911785,50.6811312,29.3469659,64.4870728,32.7838992,56.3378331,15.0229614,11.5391955,79.682753,6.2765987,36.7061133,6.5124971,0.981334,0.9917095,11.7837133,81.1384015,82.2733786,71.2444886,18.9371841,50.2072566,29.3022724,64.2503034,32.8207454,55.5479765,14.8512601,11.450476,79.3525917,6.2935309,36.9035227,6.5812867,0.9861853,0.9864678,11.7242736,81.1905384,82.3577952,71.4871341,18.4945444,50.1661198,29.470296,64.5434582,33.0841843,55.9871096,14.9237434,11.4345844,79.4133501,6.3600201,36.8639762,5.9753367\r\n180,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.981334,0.9917095,11.7837133,81.1384015,82.2733786,71.2444886,18.9371841,50.2072566,29.3022724,64.2503034,32.8207454,55.5479765,14.8512601,11.450476,79.3525917,6.2935309,36.9035227,6.5812867,0.9861853,0.9864678,11.7242736,81.1905384,82.3577952,71.4871341,18.4945444,50.1661198,29.470296,64.5434582,33.0841843,55.9871096,14.9237434,11.4345844,79.4133501,6.3600201,36.8639762,5.9753367,0.9742295,0.9745171,11.5575903,81.2161079,82.027033,71.6156602,18.9454304,50.3974088,29.315864,64.1087823,32.5664587,56.4024208,14.9022675,11.2959372,79.1796976,6.2687366,37.2091833,6.5370701\r\n181,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9861853,0.9864678,11.7242736,81.1905384,82.3577952,71.4871341,18.4945444,50.1661198,29.470296,64.5434582,33.0841843,55.9871096,14.9237434,11.4345844,79.4133501,6.3600201,36.8639762,5.9753367,0.9742295,0.9745171,11.5575903,81.2161079,82.027033,71.6156602,18.9454304,50.3974088,29.315864,64.1087823,32.5664587,56.4024208,14.9022675,11.2959372,79.1796976,6.2687366,37.2091833,6.5370701,0.9854924,0.99691,11.3925172,80.8541272,81.5797542,71.7767169,18.7762607,50.3157555,29.1392132,64.4039382,32.2675541,56.0515549,14.7010598,11.150815,79.0758135,6.2920417,37.3581506,6.307425\r\n182,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9742295,0.9745171,11.5575903,81.2161079,82.027033,71.6156602,18.9454304,50.3974088,29.315864,64.1087823,32.5664587,56.4024208,14.9022675,11.2959372,79.1796976,6.2687366,37.2091833,6.5370701,0.9854924,0.99691,11.3925172,80.8541272,81.5797542,71.7767169,18.7762607,50.3157555,29.1392132,64.4039382,32.2675541,56.0515549,14.7010598,11.150815,79.0758135,6.2920417,37.3581506,6.307425,0.9508329,0.9690376,11.3927505,80.6918288,81.0807548,71.6833635,18.7204793,50.7045524,28.8020833,64.1874942,32.1447625,55.5975636,14.5426354,11.1133093,78.8858577,6.4862408,37.6291465,5.9743587\r\n183,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9854924,0.99691,11.3925172,80.8541272,81.5797542,71.7767169,18.7762607,50.3157555,29.1392132,64.4039382,32.2675541,56.0515549,14.7010598,11.150815,79.0758135,6.2920417,37.3581506,6.307425,0.9508329,0.9690376,11.3927505,80.6918288,81.0807548,71.6833635,18.7204793,50.7045524,28.8020833,64.1874942,32.1447625,55.5975636,14.5426354,11.1133093,78.8858577,6.4862408,37.6291465,5.9743587,0.9818252,0.9989428,11.0127866,80.6409822,80.4949833,71.7327002,18.401265,50.029963,28.4667699,63.9772673,32.7989823,55.9886923,14.277705,10.7826656,78.777835,6.3789644,38.0041558,6.1895055\r\n184,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9508329,0.9690376,11.3927505,80.6918288,81.0807548,71.6833635,18.7204793,50.7045524,28.8020833,64.1874942,32.1447625,55.5975636,14.5426354,11.1133093,78.8858577,6.4862408,37.6291465,5.9743587,0.9818252,0.9989428,11.0127866,80.6409822,80.4949833,71.7327002,18.401265,50.029963,28.4667699,63.9772673,32.7989823,55.9886923,14.277705,10.7826656,78.777835,6.3789644,38.0041558,6.1895055,0.9373245,0.9565951,10.9140432,80.9250245,80.3300632,71.8583625,18.8823867,49.8135671,28.3919457,64.1387281,32.8270495,56.080898,14.094688,10.6217201,78.8566463,6.4500012,37.5272773,5.9371669\r\n185,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9818252,0.9989428,11.0127866,80.6409822,80.4949833,71.7327002,18.401265,50.029963,28.4667699,63.9772673,32.7989823,55.9886923,14.277705,10.7826656,78.777835,6.3789644,38.0041558,6.1895055,0.9373245,0.9565951,10.9140432,80.9250245,80.3300632,71.8583625,18.8823867,49.8135671,28.3919457,64.1387281,32.8270495,56.080898,14.094688,10.6217201,78.8566463,6.4500012,37.5272773,5.9371669,0.9112906,0.9361877,10.8192117,80.9368542,79.9344207,71.4688945,19.2718993,50.5132907,28.3686018,64.6564799,33.3599617,55.0824324,13.9581657,10.4808597,78.7676645,6.4998565,37.4582028,6.0022331\r\n186,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9373245,0.9565951,10.9140432,80.9250245,80.3300632,71.8583625,18.8823867,49.8135671,28.3919457,64.1387281,32.8270495,56.080898,14.094688,10.6217201,78.8566463,6.4500012,37.5272773,5.9371669,0.9112906,0.9361877,10.8192117,80.9368542,79.9344207,71.4688945,19.2718993,50.5132907,28.3686018,64.6564799,33.3599617,55.0824324,13.9581657,10.4808597,78.7676645,6.4998565,37.4582028,6.0022331,0.8544225,0.8832817,10.468643,81.4252228,80.2867602,71.397688,19.4736211,50.8614121,27.7643961,64.1927912,33.2515064,54.8547307,13.7602561,10.2985502,78.6969323,6.430572,37.6422923,6.3034794\r\n187,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9112906,0.9361877,10.8192117,80.9368542,79.9344207,71.4688945,19.2718993,50.5132907,28.3686018,64.6564799,33.3599617,55.0824324,13.9581657,10.4808597,78.7676645,6.4998565,37.4582028,6.0022331,0.8544225,0.8832817,10.468643,81.4252228,80.2867602,71.397688,19.4736211,50.8614121,27.7643961,64.1927912,33.2515064,54.8547307,13.7602561,10.2985502,78.6969323,6.430572,37.6422923,6.3034794,0.8503806,0.8940451,10.3211481,82.0409821,81.5043671,71.6567494,19.157306,51.5380093,28.7510178,64.0956363,33.4914316,54.7768417,13.7083121,10.2312567,78.4708973,6.5533221,37.6335955,5.9697309\r\n188,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.8544225,0.8832817,10.468643,81.4252228,80.2867602,71.397688,19.4736211,50.8614121,27.7643961,64.1927912,33.2515064,54.8547307,13.7602561,10.2985502,78.6969323,6.430572,37.6422923,6.3034794,0.8503806,0.8940451,10.3211481,82.0409821,81.5043671,71.6567494,19.157306,51.5380093,28.7510178,64.0956363,33.4914316,54.7768417,13.7083121,10.2312567,78.4708973,6.5533221,37.6335955,5.9697309,0.8159674,0.8498232,10.1679571,82.5712808,81.9487222,71.7285802,18.8668251,52.5922073,29.2021854,63.7766244,33.0766823,55.5636058,13.742481,10.1666497,78.2834824,6.539747,37.2580941,6.0034803\r\n189,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.8503806,0.8940451,10.3211481,82.0409821,81.5043671,71.6567494,19.157306,51.5380093,28.7510178,64.0956363,33.4914316,54.7768417,13.7083121,10.2312567,78.4708973,6.5533221,37.6335955,5.9697309,0.8159674,0.8498232,10.1679571,82.5712808,81.9487222,71.7285802,18.8668251,52.5922073,29.2021854,63.7766244,33.0766823,55.5636058,13.742481,10.1666497,78.2834824,6.539747,37.2580941,6.0034803,0.8038611,0.8386924,10.4519626,82.5074168,81.9782901,71.2818041,19.4296683,52.4443418,28.9350076,63.581039,33.1752736,55.3871368,13.8537068,10.194264,78.169183,6.4852717,36.7336945,6.284153\r\n190,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.8159674,0.8498232,10.1679571,82.5712808,81.9487222,71.7285802,18.8668251,52.5922073,29.2021854,63.7766244,33.0766823,55.5636058,13.742481,10.1666497,78.2834824,6.539747,37.2580941,6.0034803,0.8038611,0.8386924,10.4519626,82.5074168,81.9782901,71.2818041,19.4296683,52.4443418,28.9350076,63.581039,33.1752736,55.3871368,13.8537068,10.194264,78.169183,6.4852717,36.7336945,6.284153,0.7538766,0.7941568,10.6781671,82.4408528,81.9786112,71.0604036,19.339711,53.2301319,29.0328911,63.5706163,32.944886,54.9868031,13.6860684,10.2102668,78.5101571,6.3951095,36.321478,6.145769\r\n191,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.8038611,0.8386924,10.4519626,82.5074168,81.9782901,71.2818041,19.4296683,52.4443418,28.9350076,63.581039,33.1752736,55.3871368,13.8537068,10.194264,78.169183,6.4852717,36.7336945,6.284153,0.7538766,0.7941568,10.6781671,82.4408528,81.9786112,71.0604036,19.339711,53.2301319,29.0328911,63.5706163,32.944886,54.9868031,13.6860684,10.2102668,78.5101571,6.3951095,36.321478,6.145769,0.7864773,0.8304456,10.9639254,82.1594985,81.8889861,71.3694362,19.2321235,52.514979,28.6998295,63.2447364,32.7768289,54.5202386,13.860571,10.4369884,78.2945493,6.493471,36.6832719,6.1846154\r\n192,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.7538766,0.7941568,10.6781671,82.4408528,81.9786112,71.0604036,19.339711,53.2301319,29.0328911,63.5706163,32.944886,54.9868031,13.6860684,10.2102668,78.5101571,6.3951095,36.321478,6.145769,0.7864773,0.8304456,10.9639254,82.1594985,81.8889861,71.3694362,19.2321235,52.514979,28.6998295,63.2447364,32.7768289,54.5202386,13.860571,10.4369884,78.2945493,6.493471,36.6832719,6.1846154,0.8356639,0.8773155,11.1530061,82.0357998,81.971872,71.0657785,19.0989632,52.2915628,28.5336595,63.1930891,32.8895191,55.2313873,14.2734003,10.5275961,78.2504298,6.4604136,37.0915809,5.898533\r\n193,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.7864773,0.8304456,10.9639254,82.1594985,81.8889861,71.3694362,19.2321235,52.514979,28.6998295,63.2447364,32.7768289,54.5202386,13.860571,10.4369884,78.2945493,6.493471,36.6832719,6.1846154,0.8356639,0.8773155,11.1530061,82.0357998,81.971872,71.0657785,19.0989632,52.2915628,28.5336595,63.1930891,32.8895191,55.2313873,14.2734003,10.5275961,78.2504298,6.4604136,37.0915809,5.898533,0.8513306,0.8831524,11.5419823,81.7887532,81.4975576,71.5720787,19.4796625,52.5425441,28.6323524,63.6023015,33.1293481,54.4483557,14.2306874,10.5869451,78.2440082,6.4324647,36.6640311,6.1317877\r\n194,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.8356639,0.8773155,11.1530061,82.0357998,81.971872,71.0657785,19.0989632,52.2915628,28.5336595,63.1930891,32.8895191,55.2313873,14.2734003,10.5275961,78.2504298,6.4604136,37.0915809,5.898533,0.8513306,0.8831524,11.5419823,81.7887532,81.4975576,71.5720787,19.4796625,52.5425441,28.6323524,63.6023015,33.1293481,54.4483557,14.2306874,10.5869451,78.2440082,6.4324647,36.6640311,6.1317877,0.9031112,0.9221456,12.0979301,81.1984458,80.5992409,71.6276415,20.2692602,51.9933358,27.7611416,64.1567281,33.2524051,54.1603235,14.5251279,10.9192531,78.4876902,6.1424685,36.3038874,6.152461\r\n195,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.8513306,0.8831524,11.5419823,81.7887532,81.4975576,71.5720787,19.4796625,52.5425441,28.6323524,63.6023015,33.1293481,54.4483557,14.2306874,10.5869451,78.2440082,6.4324647,36.6640311,6.1317877,0.9031112,0.9221456,12.0979301,81.1984458,80.5992409,71.6276415,20.2692602,51.9933358,27.7611416,64.1567281,33.2524051,54.1603235,14.5251279,10.9192531,78.4876902,6.1424685,36.3038874,6.152461,1.004964,1.0189555,12.1456521,80.3235506,80.226537,71.1812565,20.5588222,51.957572,27.696922,64.230166,33.3266747,53.5621908,14.4869702,10.8802849,78.6817516,6.0993867,36.4774768,6.7185698\r\n196,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9031112,0.9221456,12.0979301,81.1984458,80.5992409,71.6276415,20.2692602,51.9933358,27.7611416,64.1567281,33.2524051,54.1603235,14.5251279,10.9192531,78.4876902,6.1424685,36.3038874,6.152461,1.004964,1.0189555,12.1456521,80.3235506,80.226537,71.1812565,20.5588222,51.957572,27.696922,64.230166,33.3266747,53.5621908,14.4869702,10.8802849,78.6817516,6.0993867,36.4774768,6.7185698,1.0209059,1.0359739,11.9228909,80.4733315,80.4339864,71.6273379,20.7980466,52.4176879,28.0739083,64.6735323,33.445751,52.8573507,14.3506992,10.7573676,78.811807,6.0781324,36.5604265,6.976082\r\n197,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.004964,1.0189555,12.1456521,80.3235506,80.226537,71.1812565,20.5588222,51.957572,27.696922,64.230166,33.3266747,53.5621908,14.4869702,10.8802849,78.6817516,6.0993867,36.4774768,6.7185698,1.0209059,1.0359739,11.9228909,80.4733315,80.4339864,71.6273379,20.7980466,52.4176879,28.0739083,64.6735323,33.445751,52.8573507,14.3506992,10.7573676,78.811807,6.0781324,36.5604265,6.976082,1.0135617,1.0298689,12.189899,81.1832863,81.1612174,72.1954564,21.4328824,52.0059503,28.3689983,64.6018965,33.6802344,53.406945,14.811735,11.0350729,78.6026232,6.1612021,36.5997995,6.9916435\r\n198,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0209059,1.0359739,11.9228909,80.4733315,80.4339864,71.6273379,20.7980466,52.4176879,28.0739083,64.6735323,33.445751,52.8573507,14.3506992,10.7573676,78.811807,6.0781324,36.5604265,6.976082,1.0135617,1.0298689,12.189899,81.1832863,81.1612174,72.1954564,21.4328824,52.0059503,28.3689983,64.6018965,33.6802344,53.406945,14.811735,11.0350729,78.6026232,6.1612021,36.5997995,6.9916435,0.9932892,1.0042592,11.9440312,80.8299517,80.8973022,71.9796912,21.4591222,52.5048765,28.6251717,64.7356579,33.8553518,52.8736189,14.7062709,10.863124,78.4156691,5.9630253,36.7407657,6.8787384\r\n199,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0135617,1.0298689,12.189899,81.1832863,81.1612174,72.1954564,21.4328824,52.0059503,28.3689983,64.6018965,33.6802344,53.406945,14.811735,11.0350729,78.6026232,6.1612021,36.5997995,6.9916435,0.9932892,1.0042592,11.9440312,80.8299517,80.8973022,71.9796912,21.4591222,52.5048765,28.6251717,64.7356579,33.8553518,52.8736189,14.7062709,10.863124,78.4156691,5.9630253,36.7407657,6.8787384,1.0151998,1.0248079,11.9162859,80.4596027,80.5457845,72.391196,21.7499059,52.2129208,28.7316436,64.9732392,33.6502004,52.3744616,14.7531158,10.9698467,78.5451663,6.0978155,36.2963464,7.113508\r\n200,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9932892,1.0042592,11.9440312,80.8299517,80.8973022,71.9796912,21.4591222,52.5048765,28.6251717,64.7356579,33.8553518,52.8736189,14.7062709,10.863124,78.4156691,5.9630253,36.7407657,6.8787384,1.0151998,1.0248079,11.9162859,80.4596027,80.5457845,72.391196,21.7499059,52.2129208,28.7316436,64.9732392,33.6502004,52.3744616,14.7531158,10.9698467,78.5451663,6.0978155,36.2963464,7.113508,0.9830484,1.0022855,11.7193854,80.3957355,80.8523781,72.0843455,21.8451167,51.5591864,28.9209263,64.7063217,33.5292253,53.4259429,14.8791415,11.0802175,78.5032529,6.2659417,36.3137401,7.3152709\r\n201,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0151998,1.0248079,11.9162859,80.4596027,80.5457845,72.391196,21.7499059,52.2129208,28.7316436,64.9732392,33.6502004,52.3744616,14.7531158,10.9698467,78.5451663,6.0978155,36.2963464,7.113508,0.9830484,1.0022855,11.7193854,80.3957355,80.8523781,72.0843455,21.8451167,51.5591864,28.9209263,64.7063217,33.5292253,53.4259429,14.8791415,11.0802175,78.5032529,6.2659417,36.3137401,7.3152709,0.939335,0.9522653,11.4414473,80.1260052,80.3997798,71.0506168,21.5088133,51.2897368,28.7789082,64.3118997,33.5991182,53.4538847,14.7121658,10.8240395,78.3666472,6.5029869,36.7135888,7.1706289\r\n202,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9830484,1.0022855,11.7193854,80.3957355,80.8523781,72.0843455,21.8451167,51.5591864,28.9209263,64.7063217,33.5292253,53.4259429,14.8791415,11.0802175,78.5032529,6.2659417,36.3137401,7.3152709,0.939335,0.9522653,11.4414473,80.1260052,80.3997798,71.0506168,21.5088133,51.2897368,28.7789082,64.3118997,33.5991182,53.4538847,14.7121658,10.8240395,78.3666472,6.5029869,36.7135888,7.1706289,0.9236355,0.9370258,11.4627732,80.8958347,80.9806225,71.4928697,22.1174334,50.0802352,29.0483229,64.3648062,33.8535143,53.6262883,14.777909,10.8562191,77.9741382,6.7103059,36.695298,6.8090537\r\n203,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.939335,0.9522653,11.4414473,80.1260052,80.3997798,71.0506168,21.5088133,51.2897368,28.7789082,64.3118997,33.5991182,53.4538847,14.7121658,10.8240395,78.3666472,6.5029869,36.7135888,7.1706289,0.9236355,0.9370258,11.4627732,80.8958347,80.9806225,71.4928697,22.1174334,50.0802352,29.0483229,64.3648062,33.8535143,53.6262883,14.777909,10.8562191,77.9741382,6.7103059,36.695298,6.8090537,0.9523768,0.9654376,11.2566061,80.7275893,80.6060586,71.2580395,21.7021598,49.4202512,28.6768592,63.8964995,33.2636621,53.8425747,14.7687204,10.8711597,78.0294583,6.6800007,36.9644409,6.6099886\r\n204,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9236355,0.9370258,11.4627732,80.8958347,80.9806225,71.4928697,22.1174334,50.0802352,29.0483229,64.3648062,33.8535143,53.6262883,14.777909,10.8562191,77.9741382,6.7103059,36.695298,6.8090537,0.9523768,0.9654376,11.2566061,80.7275893,80.6060586,71.2580395,21.7021598,49.4202512,28.6768592,63.8964995,33.2636621,53.8425747,14.7687204,10.8711597,78.0294583,6.6800007,36.9644409,6.6099886,1.0200663,1.0252881,11.0856083,79.969396,79.9918174,70.8558324,22.1026448,49.652694,28.1163451,64.1244711,33.139284,53.2127047,14.7716058,10.8658219,77.6089686,6.6818185,36.9932606,6.7327271\r\n205,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9523768,0.9654376,11.2566061,80.7275893,80.6060586,71.2580395,21.7021598,49.4202512,28.6768592,63.8964995,33.2636621,53.8425747,14.7687204,10.8711597,78.0294583,6.6800007,36.9644409,6.6099886,1.0200663,1.0252881,11.0856083,79.969396,79.9918174,70.8558324,22.1026448,49.652694,28.1163451,64.1244711,33.139284,53.2127047,14.7716058,10.8658219,77.6089686,6.6818185,36.9932606,6.7327271,1.033777,1.0450323,11.1703738,79.8161329,79.9368063,70.5424479,22.521697,49.0309547,28.3581294,64.4283107,33.4044161,53.5804388,14.7840445,10.9512895,77.2100662,6.7953394,36.675468,6.8919636\r\n206,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0200663,1.0252881,11.0856083,79.969396,79.9918174,70.8558324,22.1026448,49.652694,28.1163451,64.1244711,33.139284,53.2127047,14.7716058,10.8658219,77.6089686,6.6818185,36.9932606,6.7327271,1.033777,1.0450323,11.1703738,79.8161329,79.9368063,70.5424479,22.521697,49.0309547,28.3581294,64.4283107,33.4044161,53.5804388,14.7840445,10.9512895,77.2100662,6.7953394,36.675468,6.8919636,0.9917606,1.0178453,11.0607822,80.5520882,80.7284392,70.7370249,22.3167332,48.7775408,28.4363901,63.9823712,33.2226996,53.9536317,14.5828436,10.8025362,76.8053642,6.6840205,36.9248983,6.6072072\r\n207,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.033777,1.0450323,11.1703738,79.8161329,79.9368063,70.5424479,22.521697,49.0309547,28.3581294,64.4283107,33.4044161,53.5804388,14.7840445,10.9512895,77.2100662,6.7953394,36.675468,6.8919636,0.9917606,1.0178453,11.0607822,80.5520882,80.7284392,70.7370249,22.3167332,48.7775408,28.4363901,63.9823712,33.2226996,53.9536317,14.5828436,10.8025362,76.8053642,6.6840205,36.9248983,6.6072072,1.1173041,1.1312492,10.9952201,80.338449,80.4595434,70.5754153,21.8053641,48.2183486,28.3495412,63.8370502,33.0421871,53.5146028,14.6737608,10.6728831,76.5942992,6.5167944,37.1060208,6.6782119\r\n208,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9917606,1.0178453,11.0607822,80.5520882,80.7284392,70.7370249,22.3167332,48.7775408,28.4363901,63.9823712,33.2226996,53.9536317,14.5828436,10.8025362,76.8053642,6.6840205,36.9248983,6.6072072,1.1173041,1.1312492,10.9952201,80.338449,80.4595434,70.5754153,21.8053641,48.2183486,28.3495412,63.8370502,33.0421871,53.5146028,14.6737608,10.6728831,76.5942992,6.5167944,37.1060208,6.6782119,1.1953863,1.2159666,11.120994,80.7399779,80.9306693,71.5081742,21.4467057,49.0542485,28.4945195,63.721647,32.8691165,53.9393427,14.9860378,10.8820774,76.6893687,6.5278737,36.8743229,6.9435478\r\n209,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1173041,1.1312492,10.9952201,80.338449,80.4595434,70.5754153,21.8053641,48.2183486,28.3495412,63.8370502,33.0421871,53.5146028,14.6737608,10.6728831,76.5942992,6.5167944,37.1060208,6.6782119,1.1953863,1.2159666,11.120994,80.7399779,80.9306693,71.5081742,21.4467057,49.0542485,28.4945195,63.721647,32.8691165,53.9393427,14.9860378,10.8820774,76.6893687,6.5278737,36.8743229,6.9435478,1.2086176,1.2350979,11.1046769,80.6746403,80.6718383,71.566015,21.4378148,49.5180735,28.8688361,63.691217,33.2123363,54.0333997,15.1818516,10.9304616,76.7555118,6.3329061,36.663597,7.3950332\r\n210,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1953863,1.2159666,11.120994,80.7399779,80.9306693,71.5081742,21.4467057,49.0542485,28.4945195,63.721647,32.8691165,53.9393427,14.9860378,10.8820774,76.6893687,6.5278737,36.8743229,6.9435478,1.2086176,1.2350979,11.1046769,80.6746403,80.6718383,71.566015,21.4378148,49.5180735,28.8688361,63.691217,33.2123363,54.0333997,15.1818516,10.9304616,76.7555118,6.3329061,36.663597,7.3950332,1.1769892,1.2068834,11.3523924,81.0610553,81.122265,71.9022436,21.5479344,50.0019139,29.4119201,63.7977668,33.6083462,53.8420987,15.3590856,11.1374249,76.9194949,6.3590109,36.4465794,7.5416719\r\n211,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.2086176,1.2350979,11.1046769,80.6746403,80.6718383,71.566015,21.4378148,49.5180735,28.8688361,63.691217,33.2123363,54.0333997,15.1818516,10.9304616,76.7555118,6.3329061,36.663597,7.3950332,1.1769892,1.2068834,11.3523924,81.0610553,81.122265,71.9022436,21.5479344,50.0019139,29.4119201,63.7977668,33.6083462,53.8420987,15.3590856,11.1374249,76.9194949,6.3590109,36.4465794,7.5416719,1.1617591,1.1881931,11.1922333,81.7481248,81.4580916,72.5911186,20.8987013,50.043007,29.707927,63.9053023,33.843897,54.0395434,15.2056151,10.9881548,76.9884358,6.2741504,36.607311,7.4811083\r\n212,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1769892,1.2068834,11.3523924,81.0610553,81.122265,71.9022436,21.5479344,50.0019139,29.4119201,63.7977668,33.6083462,53.8420987,15.3590856,11.1374249,76.9194949,6.3590109,36.4465794,7.5416719,1.1617591,1.1881931,11.1922333,81.7481248,81.4580916,72.5911186,20.8987013,50.043007,29.707927,63.9053023,33.843897,54.0395434,15.2056151,10.9881548,76.9884358,6.2741504,36.607311,7.4811083,1.1518691,1.1725376,11.3658904,82.1241464,81.7218811,72.6687471,21.0095115,50.8511233,29.3904366,64.2421343,33.702148,53.8967116,15.3845144,11.1066752,77.2619317,6.3518219,37.5082597,7.4102175\r\n213,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1617591,1.1881931,11.1922333,81.7481248,81.4580916,72.5911186,20.8987013,50.043007,29.707927,63.9053023,33.843897,54.0395434,15.2056151,10.9881548,76.9884358,6.2741504,36.607311,7.4811083,1.1518691,1.1725376,11.3658904,82.1241464,81.7218811,72.6687471,21.0095115,50.8511233,29.3904366,64.2421343,33.702148,53.8967116,15.3845144,11.1066752,77.2619317,6.3518219,37.5082597,7.4102175,1.2043778,1.1968001,11.1779674,81.4308915,81.0998281,72.7130944,21.0009185,51.2809159,29.9022177,64.2661151,33.504251,53.4573513,15.1960502,10.9946654,77.2971174,6.3490944,37.3930951,7.8485456\r\n214,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1518691,1.1725376,11.3658904,82.1241464,81.7218811,72.6687471,21.0095115,50.8511233,29.3904366,64.2421343,33.702148,53.8967116,15.3845144,11.1066752,77.2619317,6.3518219,37.5082597,7.4102175,1.2043778,1.1968001,11.1779674,81.4308915,81.0998281,72.7130944,21.0009185,51.2809159,29.9022177,64.2661151,33.504251,53.4573513,15.1960502,10.9946654,77.2971174,6.3490944,37.3930951,7.8485456,1.1722526,1.1737955,11.2646093,81.5525503,80.9098825,72.959703,21.5825989,52.029305,29.4224632,64.6785893,34.2499598,53.1102795,15.0830117,11.0850214,77.0828978,6.4743596,37.8304645,7.6275133\r\n215,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.2043778,1.1968001,11.1779674,81.4308915,81.0998281,72.7130944,21.0009185,51.2809159,29.9022177,64.2661151,33.504251,53.4573513,15.1960502,10.9946654,77.2971174,6.3490944,37.3930951,7.8485456,1.1722526,1.1737955,11.2646093,81.5525503,80.9098825,72.959703,21.5825989,52.029305,29.4224632,64.6785893,34.2499598,53.1102795,15.0830117,11.0850214,77.0828978,6.4743596,37.8304645,7.6275133,1.1722624,1.1709392,11.2485084,81.3596026,80.6508228,72.9017581,21.908892,51.2121927,28.5023482,65.0237247,34.8694789,52.5525264,14.8037655,11.0227683,76.8700471,6.3335279,37.8112909,7.4892887\r\n216,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1722526,1.1737955,11.2646093,81.5525503,80.9098825,72.959703,21.5825989,52.029305,29.4224632,64.6785893,34.2499598,53.1102795,15.0830117,11.0850214,77.0828978,6.4743596,37.8304645,7.6275133,1.1722624,1.1709392,11.2485084,81.3596026,80.6508228,72.9017581,21.908892,51.2121927,28.5023482,65.0237247,34.8694789,52.5525264,14.8037655,11.0227683,76.8700471,6.3335279,37.8112909,7.4892887,1.1348015,1.1324688,11.3059273,81.0775778,80.4891815,72.7704922,21.3572381,50.8990805,27.6250365,64.8830245,34.5856631,52.0941999,14.4407854,10.8117207,76.991709,6.3165141,38.0668421,6.8532873\r\n217,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1722624,1.1709392,11.2485084,81.3596026,80.6508228,72.9017581,21.908892,51.2121927,28.5023482,65.0237247,34.8694789,52.5525264,14.8037655,11.0227683,76.8700471,6.3335279,37.8112909,7.4892887,1.1348015,1.1324688,11.3059273,81.0775778,80.4891815,72.7704922,21.3572381,50.8990805,27.6250365,64.8830245,34.5856631,52.0941999,14.4407854,10.8117207,76.991709,6.3165141,38.0668421,6.8532873,1.1763508,1.170303,11.3800934,80.8118689,80.4036188,73.2961973,21.3688518,50.8287587,27.6758764,65.1132366,34.8283029,53.0204787,14.3404281,10.631105,76.7289859,6.4128718,38.1867167,6.8169007\r\n218,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1348015,1.1324688,11.3059273,81.0775778,80.4891815,72.7704922,21.3572381,50.8990805,27.6250365,64.8830245,34.5856631,52.0941999,14.4407854,10.8117207,76.991709,6.3165141,38.0668421,6.8532873,1.1763508,1.170303,11.3800934,80.8118689,80.4036188,73.2961973,21.3688518,50.8287587,27.6758764,65.1132366,34.8283029,53.0204787,14.3404281,10.631105,76.7289859,6.4128718,38.1867167,6.8169007,1.1357055,1.1333086,11.4191777,80.6294219,80.0480482,73.3186087,21.1743355,50.4427658,28.0636034,65.2997405,34.5741325,53.0212961,14.1208644,10.4624972,76.969105,6.2838189,38.2726804,7.0043808\r\n219,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1763508,1.170303,11.3800934,80.8118689,80.4036188,73.2961973,21.3688518,50.8287587,27.6758764,65.1132366,34.8283029,53.0204787,14.3404281,10.631105,76.7289859,6.4128718,38.1867167,6.8169007,1.1357055,1.1333086,11.4191777,80.6294219,80.0480482,73.3186087,21.1743355,50.4427658,28.0636034,65.2997405,34.5741325,53.0212961,14.1208644,10.4624972,76.969105,6.2838189,38.2726804,7.0043808,1.1481815,1.1532881,11.2727366,80.7460635,80.1261661,73.6224084,20.9963697,49.9713768,27.8467843,64.6997346,34.9452035,53.3754638,14.0264513,10.3328977,76.9275275,6.3260381,37.942355,6.5047002\r\n220,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1357055,1.1333086,11.4191777,80.6294219,80.0480482,73.3186087,21.1743355,50.4427658,28.0636034,65.2997405,34.5741325,53.0212961,14.1208644,10.4624972,76.969105,6.2838189,38.2726804,7.0043808,1.1481815,1.1532881,11.2727366,80.7460635,80.1261661,73.6224084,20.9963697,49.9713768,27.8467843,64.6997346,34.9452035,53.3754638,14.0264513,10.3328977,76.9275275,6.3260381,37.942355,6.5047002,1.0865896,1.1146641,11.3317742,80.9857394,80.1651466,73.518346,21.0944962,49.7887696,27.0394044,64.7485813,35.1509301,53.91664,14.0729945,10.2833093,77.115694,6.3870357,38.2034752,6.4166218\r\n221,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1481815,1.1532881,11.2727366,80.7460635,80.1261661,73.6224084,20.9963697,49.9713768,27.8467843,64.6997346,34.9452035,53.3754638,14.0264513,10.3328977,76.9275275,6.3260381,37.942355,6.5047002,1.0865896,1.1146641,11.3317742,80.9857394,80.1651466,73.518346,21.0944962,49.7887696,27.0394044,64.7485813,35.1509301,53.91664,14.0729945,10.2833093,77.115694,6.3870357,38.2034752,6.4166218,1.0342657,1.0515774,11.403975,80.7182883,80.2500315,73.5894112,21.3278642,49.9823431,27.2159143,64.7469564,34.8821659,54.3075382,14.0170175,10.2329539,77.2190483,6.3133441,37.6318709,6.3244366\r\n222,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0865896,1.1146641,11.3317742,80.9857394,80.1651466,73.518346,21.0944962,49.7887696,27.0394044,64.7485813,35.1509301,53.91664,14.0729945,10.2833093,77.115694,6.3870357,38.2034752,6.4166218,1.0342657,1.0515774,11.403975,80.7182883,80.2500315,73.5894112,21.3278642,49.9823431,27.2159143,64.7469564,34.8821659,54.3075382,14.0170175,10.2329539,77.2190483,6.3133441,37.6318709,6.3244366,0.9879661,1.0041,11.0568598,81.1740366,80.2800707,74.2299452,21.0255505,50.6118274,28.2068359,64.4393569,34.3608217,54.6642407,14.027941,10.0999478,77.6308476,6.3586948,37.4031983,6.2180579\r\n223,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0342657,1.0515774,11.403975,80.7182883,80.2500315,73.5894112,21.3278642,49.9823431,27.2159143,64.7469564,34.8821659,54.3075382,14.0170175,10.2329539,77.2190483,6.3133441,37.6318709,6.3244366,0.9879661,1.0041,11.0568598,81.1740366,80.2800707,74.2299452,21.0255505,50.6118274,28.2068359,64.4393569,34.3608217,54.6642407,14.027941,10.0999478,77.6308476,6.3586948,37.4031983,6.2180579,0.9623296,0.974595,10.9820011,81.2573582,80.2251942,74.5471557,21.2827211,50.3374115,28.6787525,64.6356201,34.5611404,54.7311193,14.0012568,10.2069793,77.7336358,6.5164968,37.0070412,6.525413\r\n224,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9879661,1.0041,11.0568598,81.1740366,80.2800707,74.2299452,21.0255505,50.6118274,28.2068359,64.4393569,34.3608217,54.6642407,14.027941,10.0999478,77.6308476,6.3586948,37.4031983,6.2180579,0.9623296,0.974595,10.9820011,81.2573582,80.2251942,74.5471557,21.2827211,50.3374115,28.6787525,64.6356201,34.5611404,54.7311193,14.0012568,10.2069793,77.7336358,6.5164968,37.0070412,6.525413,0.8953163,0.9037904,10.9623541,81.1700457,80.0735108,74.3896607,20.921856,49.8216466,28.3300176,64.4686533,34.4171069,53.7045057,13.8441199,10.1938957,77.6652511,6.3698529,37.2672793,6.2894783\r\n225,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9623296,0.974595,10.9820011,81.2573582,80.2251942,74.5471557,21.2827211,50.3374115,28.6787525,64.6356201,34.5611404,54.7311193,14.0012568,10.2069793,77.7336358,6.5164968,37.0070412,6.525413,0.8953163,0.9037904,10.9623541,81.1700457,80.0735108,74.3896607,20.921856,49.8216466,28.3300176,64.4686533,34.4171069,53.7045057,13.8441199,10.1938957,77.6652511,6.3698529,37.2672793,6.2894783,0.9629239,0.9857817,11.0178576,81.154207,80.2472763,74.5180098,21.1901253,49.7411043,28.7580953,64.0211,34.2254826,53.4176314,13.9759196,10.29549,77.6590701,6.4452406,36.7311033,6.1347824\r\n226,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.8953163,0.9037904,10.9623541,81.1700457,80.0735108,74.3896607,20.921856,49.8216466,28.3300176,64.4686533,34.4171069,53.7045057,13.8441199,10.1938957,77.6652511,6.3698529,37.2672793,6.2894783,0.9629239,0.9857817,11.0178576,81.154207,80.2472763,74.5180098,21.1901253,49.7411043,28.7580953,64.0211,34.2254826,53.4176314,13.9759196,10.29549,77.6590701,6.4452406,36.7311033,6.1347824,0.9188485,0.9428912,10.9330818,81.0459286,80.0673516,73.9335118,21.3101353,49.1880439,28.7373456,64.4685665,34.2684088,52.5691026,13.783676,10.1702083,77.4099208,6.3263734,36.4499165,6.5493255\r\n227,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9629239,0.9857817,11.0178576,81.154207,80.2472763,74.5180098,21.1901253,49.7411043,28.7580953,64.0211,34.2254826,53.4176314,13.9759196,10.29549,77.6590701,6.4452406,36.7311033,6.1347824,0.9188485,0.9428912,10.9330818,81.0459286,80.0673516,73.9335118,21.3101353,49.1880439,28.7373456,64.4685665,34.2684088,52.5691026,13.783676,10.1702083,77.4099208,6.3263734,36.4499165,6.5493255,0.9144793,0.946324,10.6583902,81.1912473,80.429329,74.3343441,21.1712764,49.0735047,28.6332194,64.9729982,34.3670249,52.1228526,13.6165213,10.0609134,77.5829751,6.3611797,36.353021,6.2054525\r\n228,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9188485,0.9428912,10.9330818,81.0459286,80.0673516,73.9335118,21.3101353,49.1880439,28.7373456,64.4685665,34.2684088,52.5691026,13.783676,10.1702083,77.4099208,6.3263734,36.4499165,6.5493255,0.9144793,0.946324,10.6583902,81.1912473,80.429329,74.3343441,21.1712764,49.0735047,28.6332194,64.9729982,34.3670249,52.1228526,13.6165213,10.0609134,77.5829751,6.3611797,36.353021,6.2054525,0.9471242,0.9899433,10.677471,81.2654795,80.34942,74.3658374,20.8257238,49.1103767,29.2002847,65.2163224,34.4975849,52.1365779,13.7421481,10.0489668,77.5429099,6.4457092,36.1760857,5.6575732\r\n229,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9144793,0.946324,10.6583902,81.1912473,80.429329,74.3343441,21.1712764,49.0735047,28.6332194,64.9729982,34.3670249,52.1228526,13.6165213,10.0609134,77.5829751,6.3611797,36.353021,6.2054525,0.9471242,0.9899433,10.677471,81.2654795,80.34942,74.3658374,20.8257238,49.1103767,29.2002847,65.2163224,34.4975849,52.1365779,13.7421481,10.0489668,77.5429099,6.4457092,36.1760857,5.6575732,0.963231,1.0176744,11.0324961,80.646221,80.1234502,73.9110153,22.193704,48.2433312,28.700148,64.9230386,34.2858467,52.1278356,13.7193425,10.0364145,76.7356623,6.5853702,36.2623752,5.6308866\r\n230,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9471242,0.9899433,10.677471,81.2654795,80.34942,74.3658374,20.8257238,49.1103767,29.2002847,65.2163224,34.4975849,52.1365779,13.7421481,10.0489668,77.5429099,6.4457092,36.1760857,5.6575732,0.963231,1.0176744,11.0324961,80.646221,80.1234502,73.9110153,22.193704,48.2433312,28.700148,64.9230386,34.2858467,52.1278356,13.7193425,10.0364145,76.7356623,6.5853702,36.2623752,5.6308866,0.9379862,0.9811306,10.8709486,80.6706998,79.7087357,73.4385028,23.0951698,48.7453935,27.8902183,64.920475,33.7863792,52.1648765,13.6421747,9.8151191,76.4639224,6.5201574,36.9044059,5.4367201\r\n231,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.963231,1.0176744,11.0324961,80.646221,80.1234502,73.9110153,22.193704,48.2433312,28.700148,64.9230386,34.2858467,52.1278356,13.7193425,10.0364145,76.7356623,6.5853702,36.2623752,5.6308866,0.9379862,0.9811306,10.8709486,80.6706998,79.7087357,73.4385028,23.0951698,48.7453935,27.8902183,64.920475,33.7863792,52.1648765,13.6421747,9.8151191,76.4639224,6.5201574,36.9044059,5.4367201,0.9134585,0.9594847,10.6089425,80.9200495,79.6715335,73.0563441,23.8188075,48.8724052,27.4133908,64.9712636,33.6689575,53.0448407,13.5666164,9.5828033,76.4539191,6.61779,36.8029965,4.7845551\r\n232,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9379862,0.9811306,10.8709486,80.6706998,79.7087357,73.4385028,23.0951698,48.7453935,27.8902183,64.920475,33.7863792,52.1648765,13.6421747,9.8151191,76.4639224,6.5201574,36.9044059,5.4367201,0.9134585,0.9594847,10.6089425,80.9200495,79.6715335,73.0563441,23.8188075,48.8724052,27.4133908,64.9712636,33.6689575,53.0448407,13.5666164,9.5828033,76.4539191,6.61779,36.8029965,4.7845551,0.8400058,0.875016,10.4645508,80.824188,79.4705102,72.8570957,24.1113292,48.3859229,26.5111198,64.8297178,33.5948532,53.4776474,13.367953,9.3733238,76.189757,6.6947595,37.144494,4.4844253\r\n233,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9134585,0.9594847,10.6089425,80.9200495,79.6715335,73.0563441,23.8188075,48.8724052,27.4133908,64.9712636,33.6689575,53.0448407,13.5666164,9.5828033,76.4539191,6.61779,36.8029965,4.7845551,0.8400058,0.875016,10.4645508,80.824188,79.4705102,72.8570957,24.1113292,48.3859229,26.5111198,64.8297178,33.5948532,53.4776474,13.367953,9.3733238,76.189757,6.6947595,37.144494,4.4844253,0.84163,0.8686476,10.5581598,80.74218,79.5119354,73.3471495,23.7484907,49.0896746,26.542153,64.8696483,32.8168959,54.6705566,13.4254598,9.5643225,76.6016454,6.6855773,36.9773375,4.1824069\r\n234,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.8400058,0.875016,10.4645508,80.824188,79.4705102,72.8570957,24.1113292,48.3859229,26.5111198,64.8297178,33.5948532,53.4776474,13.367953,9.3733238,76.189757,6.6947595,37.144494,4.4844253,0.84163,0.8686476,10.5581598,80.74218,79.5119354,73.3471495,23.7484907,49.0896746,26.542153,64.8696483,32.8168959,54.6705566,13.4254598,9.5643225,76.6016454,6.6855773,36.9773375,4.1824069,0.9366899,0.9501602,11.0599723,80.9201761,79.6606152,72.8237669,23.9515437,48.7102034,26.5139381,64.6801442,32.7148514,55.2224511,13.9621845,9.9398114,76.4863933,6.672591,37.1998978,4.2758439\r\n235,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.84163,0.8686476,10.5581598,80.74218,79.5119354,73.3471495,23.7484907,49.0896746,26.542153,64.8696483,32.8168959,54.6705566,13.4254598,9.5643225,76.6016454,6.6855773,36.9773375,4.1824069,0.9366899,0.9501602,11.0599723,80.9201761,79.6606152,72.8237669,23.9515437,48.7102034,26.5139381,64.6801442,32.7148514,55.2224511,13.9621845,9.9398114,76.4863933,6.672591,37.1998978,4.2758439,0.9192591,0.9268,10.7732274,81.1034322,79.7378208,73.599187,24.0520072,47.9756286,25.6905745,64.1655028,32.2418821,55.4275813,13.7406031,9.83461,76.763532,6.5031644,37.6328528,4.5595322\r\n236,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9366899,0.9501602,11.0599723,80.9201761,79.6606152,72.8237669,23.9515437,48.7102034,26.5139381,64.6801442,32.7148514,55.2224511,13.9621845,9.9398114,76.4863933,6.672591,37.1998978,4.2758439,0.9192591,0.9268,10.7732274,81.1034322,79.7378208,73.599187,24.0520072,47.9756286,25.6905745,64.1655028,32.2418821,55.4275813,13.7406031,9.83461,76.763532,6.5031644,37.6328528,4.5595322,0.9373208,0.9370062,10.7706614,80.7229909,79.6449113,73.5556834,22.8718652,48.3994964,25.5139132,64.728966,32.1411079,55.6741603,13.8012742,9.9290736,77.1255827,6.3604724,37.8770682,4.4368185\r\n237,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9192591,0.9268,10.7732274,81.1034322,79.7378208,73.599187,24.0520072,47.9756286,25.6905745,64.1655028,32.2418821,55.4275813,13.7406031,9.83461,76.763532,6.5031644,37.6328528,4.5595322,0.9373208,0.9370062,10.7706614,80.7229909,79.6449113,73.5556834,22.8718652,48.3994964,25.5139132,64.728966,32.1411079,55.6741603,13.8012742,9.9290736,77.1255827,6.3604724,37.8770682,4.4368185,0.9513587,0.9701548,10.8595693,80.7676791,80.3042004,74.3386958,22.1887528,48.1566865,25.9595701,64.2848286,32.3468817,56.1569354,14.070361,10.1060182,77.2518677,6.2759497,37.3292567,4.5802156\r\n238,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9373208,0.9370062,10.7706614,80.7229909,79.6449113,73.5556834,22.8718652,48.3994964,25.5139132,64.728966,32.1411079,55.6741603,13.8012742,9.9290736,77.1255827,6.3604724,37.8770682,4.4368185,0.9513587,0.9701548,10.8595693,80.7676791,80.3042004,74.3386958,22.1887528,48.1566865,25.9595701,64.2848286,32.3468817,56.1569354,14.070361,10.1060182,77.2518677,6.2759497,37.3292567,4.5802156,1.0138025,1.0298951,11.129331,80.2089289,79.7484722,74.9015496,21.5907213,48.3294406,26.2284819,64.1407777,32.2964571,55.7188053,14.4925463,10.4267679,77.4949768,6.2859591,36.9044608,4.9364948\r\n239,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9513587,0.9701548,10.8595693,80.7676791,80.3042004,74.3386958,22.1887528,48.1566865,25.9595701,64.2848286,32.3468817,56.1569354,14.070361,10.1060182,77.2518677,6.2759497,37.3292567,4.5802156,1.0138025,1.0298951,11.129331,80.2089289,79.7484722,74.9015496,21.5907213,48.3294406,26.2284819,64.1407777,32.2964571,55.7188053,14.4925463,10.4267679,77.4949768,6.2859591,36.9044608,4.9364948,1.0890782,1.107923,11.5544825,79.9505046,79.7191303,75.0540149,21.764639,49.3655473,26.9007727,64.1183904,32.6218533,55.764301,14.9212614,10.8166052,77.7869058,6.4223433,36.9377763,5.0813657\r\n240,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0138025,1.0298951,11.129331,80.2089289,79.7484722,74.9015496,21.5907213,48.3294406,26.2284819,64.1407777,32.2964571,55.7188053,14.4925463,10.4267679,77.4949768,6.2859591,36.9044608,4.9364948,1.0890782,1.107923,11.5544825,79.9505046,79.7191303,75.0540149,21.764639,49.3655473,26.9007727,64.1183904,32.6218533,55.764301,14.9212614,10.8166052,77.7869058,6.4223433,36.9377763,5.0813657,1.0946756,1.1118771,11.7432324,80.7749582,80.6374826,75.7473469,21.8717397,49.6797033,27.4267546,63.3833239,32.8233266,55.5681485,15.1421032,10.8750072,77.9512848,6.3348059,37.2145769,5.4928669\r\n241,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0890782,1.107923,11.5544825,79.9505046,79.7191303,75.0540149,21.764639,49.3655473,26.9007727,64.1183904,32.6218533,55.764301,14.9212614,10.8166052,77.7869058,6.4223433,36.9377763,5.0813657,1.0946756,1.1118771,11.7432324,80.7749582,80.6374826,75.7473469,21.8717397,49.6797033,27.4267546,63.3833239,32.8233266,55.5681485,15.1421032,10.8750072,77.9512848,6.3348059,37.2145769,5.4928669,1.0162476,1.0238678,11.6710547,80.5477965,80.3502009,75.5857291,21.9325484,50.4521502,27.8103674,63.1875831,32.7153097,55.9017436,14.9452296,10.719755,78.0300444,6.1194168,36.712656,5.6425486\r\n242,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0946756,1.1118771,11.7432324,80.7749582,80.6374826,75.7473469,21.8717397,49.6797033,27.4267546,63.3833239,32.8233266,55.5681485,15.1421032,10.8750072,77.9512848,6.3348059,37.2145769,5.4928669,1.0162476,1.0238678,11.6710547,80.5477965,80.3502009,75.5857291,21.9325484,50.4521502,27.8103674,63.1875831,32.7153097,55.9017436,14.9452296,10.719755,78.0300444,6.1194168,36.712656,5.6425486,1.0430546,1.0548344,12.0424304,80.9197661,80.4800949,75.1911889,21.5812568,51.0560367,27.8394355,63.116596,32.405129,55.796686,15.3299617,10.9991829,78.0169548,6.3164267,36.4885481,5.7227297\r\n243,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0162476,1.0238678,11.6710547,80.5477965,80.3502009,75.5857291,21.9325484,50.4521502,27.8103674,63.1875831,32.7153097,55.9017436,14.9452296,10.719755,78.0300444,6.1194168,36.712656,5.6425486,1.0430546,1.0548344,12.0424304,80.9197661,80.4800949,75.1911889,21.5812568,51.0560367,27.8394355,63.116596,32.405129,55.796686,15.3299617,10.9991829,78.0169548,6.3164267,36.4885481,5.7227297,0.9968097,1.0070124,11.5814012,81.7505953,80.5859045,75.3542717,21.9351871,51.1053521,28.0527693,62.6426735,32.9155409,55.4803037,15.1881907,10.8880222,78.2016538,6.4426126,36.5189835,5.9308511\r\n244,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0430546,1.0548344,12.0424304,80.9197661,80.4800949,75.1911889,21.5812568,51.0560367,27.8394355,63.116596,32.405129,55.796686,15.3299617,10.9991829,78.0169548,6.3164267,36.4885481,5.7227297,0.9968097,1.0070124,11.5814012,81.7505953,80.5859045,75.3542717,21.9351871,51.1053521,28.0527693,62.6426735,32.9155409,55.4803037,15.1881907,10.8880222,78.2016538,6.4426126,36.5189835,5.9308511,1.0503161,1.0559685,11.7141916,81.9862217,80.0582021,75.1667099,21.730279,51.536017,28.1101062,62.9234116,32.9149038,55.3514665,15.1220157,10.8327992,78.5419355,6.5820232,36.5873488,5.9189189\r\n245,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9968097,1.0070124,11.5814012,81.7505953,80.5859045,75.3542717,21.9351871,51.1053521,28.0527693,62.6426735,32.9155409,55.4803037,15.1881907,10.8880222,78.2016538,6.4426126,36.5189835,5.9308511,1.0503161,1.0559685,11.7141916,81.9862217,80.0582021,75.1667099,21.730279,51.536017,28.1101062,62.9234116,32.9149038,55.3514665,15.1220157,10.8327992,78.5419355,6.5820232,36.5873488,5.9189189,1.0266918,1.0359826,12.0807388,82.2808724,80.3376075,75.2127599,22.067168,52.142145,27.9581532,62.9144528,33.0753154,56.2763428,14.9904707,10.8076648,78.6526247,6.549031,37.1144263,6.116453\r\n246,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0503161,1.0559685,11.7141916,81.9862217,80.0582021,75.1667099,21.730279,51.536017,28.1101062,62.9234116,32.9149038,55.3514665,15.1220157,10.8327992,78.5419355,6.5820232,36.5873488,5.9189189,1.0266918,1.0359826,12.0807388,82.2808724,80.3376075,75.2127599,22.067168,52.142145,27.9581532,62.9144528,33.0753154,56.2763428,14.9904707,10.8076648,78.6526247,6.549031,37.1144263,6.116453,1.0261932,1.0400371,12.0334125,83.1289986,80.4645536,74.7991427,21.6884663,51.8169688,27.6403222,63.3735127,32.816108,56.0254571,14.9105301,10.8060616,78.6901542,6.5298082,37.2245709,6.5664557\r\n247,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0266918,1.0359826,12.0807388,82.2808724,80.3376075,75.2127599,22.067168,52.142145,27.9581532,62.9144528,33.0753154,56.2763428,14.9904707,10.8076648,78.6526247,6.549031,37.1144263,6.116453,1.0261932,1.0400371,12.0334125,83.1289986,80.4645536,74.7991427,21.6884663,51.8169688,27.6403222,63.3735127,32.816108,56.0254571,14.9105301,10.8060616,78.6901542,6.5298082,37.2245709,6.5664557,1.0349252,1.0439707,11.5629377,82.3637192,79.4644518,74.4668338,21.431119,51.7923269,27.61611,63.4005942,32.9671997,55.9554764,14.6124961,10.5444679,78.3329727,6.7186694,37.3279449,6.4761405\r\n248,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0261932,1.0400371,12.0334125,83.1289986,80.4645536,74.7991427,21.6884663,51.8169688,27.6403222,63.3735127,32.816108,56.0254571,14.9105301,10.8060616,78.6901542,6.5298082,37.2245709,6.5664557,1.0349252,1.0439707,11.5629377,82.3637192,79.4644518,74.4668338,21.431119,51.7923269,27.61611,63.4005942,32.9671997,55.9554764,14.6124961,10.5444679,78.3329727,6.7186694,37.3279449,6.4761405,1.0396692,1.0485958,11.6170347,82.8457936,79.5533767,75.0059159,21.0856023,51.4581214,27.3595359,63.218132,33.3322345,56.0373779,14.5838049,10.6012717,78.380814,6.8899001,37.9067629,6.5925543\r\n249,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0349252,1.0439707,11.5629377,82.3637192,79.4644518,74.4668338,21.431119,51.7923269,27.61611,63.4005942,32.9671997,55.9554764,14.6124961,10.5444679,78.3329727,6.7186694,37.3279449,6.4761405,1.0396692,1.0485958,11.6170347,82.8457936,79.5533767,75.0059159,21.0856023,51.4581214,27.3595359,63.218132,33.3322345,56.0373779,14.5838049,10.6012717,78.380814,6.8899001,37.9067629,6.5925543,0.9704106,0.9787583,11.4855207,82.6330526,79.3585889,74.5152659,21.2618234,51.2753502,27.1778964,62.8619629,33.641754,56.7363967,14.4943657,10.4903965,78.3728417,6.7566802,38.247292,6.7927544\r\n250,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0396692,1.0485958,11.6170347,82.8457936,79.5533767,75.0059159,21.0856023,51.4581214,27.3595359,63.218132,33.3322345,56.0373779,14.5838049,10.6012717,78.380814,6.8899001,37.9067629,6.5925543,0.9704106,0.9787583,11.4855207,82.6330526,79.3585889,74.5152659,21.2618234,51.2753502,27.1778964,62.8619629,33.641754,56.7363967,14.4943657,10.4903965,78.3728417,6.7566802,38.247292,6.7927544,0.9767036,0.9901423,11.955555,82.3845177,79.734442,75.0046293,21.2396605,51.6823056,27.2327252,63.2661433,33.3819396,57.1929101,14.6310531,10.5479278,78.6026392,6.4838451,38.3641457,6.9319979\r\n251,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9704106,0.9787583,11.4855207,82.6330526,79.3585889,74.5152659,21.2618234,51.2753502,27.1778964,62.8619629,33.641754,56.7363967,14.4943657,10.4903965,78.3728417,6.7566802,38.247292,6.7927544,0.9767036,0.9901423,11.955555,82.3845177,79.734442,75.0046293,21.2396605,51.6823056,27.2327252,63.2661433,33.3819396,57.1929101,14.6310531,10.5479278,78.6026392,6.4838451,38.3641457,6.9319979,0.9857633,0.9921825,12.2423705,82.1589671,79.5319544,74.761047,21.4909449,52.3492554,26.8371399,63.2563467,33.7934864,57.3498762,14.6812799,10.806423,79.0957986,6.2923385,38.7732185,6.9080637\r\n252,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9767036,0.9901423,11.955555,82.3845177,79.734442,75.0046293,21.2396605,51.6823056,27.2327252,63.2661433,33.3819396,57.1929101,14.6310531,10.5479278,78.6026392,6.4838451,38.3641457,6.9319979,0.9857633,0.9921825,12.2423705,82.1589671,79.5319544,74.761047,21.4909449,52.3492554,26.8371399,63.2563467,33.7934864,57.3498762,14.6812799,10.806423,79.0957986,6.2923385,38.7732185,6.9080637,0.963997,0.970722,11.8971358,82.1112337,79.764784,74.7431341,21.7025993,52.7955306,26.7645548,63.2753544,33.9511795,56.9473488,14.7390347,10.880951,79.4434506,6.2278885,38.6900614,6.681672\r\n253,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9857633,0.9921825,12.2423705,82.1589671,79.5319544,74.761047,21.4909449,52.3492554,26.8371399,63.2563467,33.7934864,57.3498762,14.6812799,10.806423,79.0957986,6.2923385,38.7732185,6.9080637,0.963997,0.970722,11.8971358,82.1112337,79.764784,74.7431341,21.7025993,52.7955306,26.7645548,63.2753544,33.9511795,56.9473488,14.7390347,10.880951,79.4434506,6.2278885,38.6900614,6.681672,0.9495262,0.9524082,11.9857676,81.573117,79.7464924,74.7412716,21.8617385,53.450942,26.3735619,62.8031652,34.1800922,57.4090653,15.1374447,11.1463651,79.9380194,6.1456023,38.2797764,6.5332599\r\n254,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.963997,0.970722,11.8971358,82.1112337,79.764784,74.7431341,21.7025993,52.7955306,26.7645548,63.2753544,33.9511795,56.9473488,14.7390347,10.880951,79.4434506,6.2278885,38.6900614,6.681672,0.9495262,0.9524082,11.9857676,81.573117,79.7464924,74.7412716,21.8617385,53.450942,26.3735619,62.8031652,34.1800922,57.4090653,15.1374447,11.1463651,79.9380194,6.1456023,38.2797764,6.5332599,0.9831116,1.0002336,12.6437546,81.4783667,79.798598,74.4208095,22.317839,54.2435573,25.6369945,63.0776542,34.2380127,58.1515035,15.771649,11.6322061,80.6536715,5.8916596,37.8592238,6.8012908\r\n255,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9495262,0.9524082,11.9857676,81.573117,79.7464924,74.7412716,21.8617385,53.450942,26.3735619,62.8031652,34.1800922,57.4090653,15.1374447,11.1463651,79.9380194,6.1456023,38.2797764,6.5332599,0.9831116,1.0002336,12.6437546,81.4783667,79.798598,74.4208095,22.317839,54.2435573,25.6369945,63.0776542,34.2380127,58.1515035,15.771649,11.6322061,80.6536715,5.8916596,37.8592238,6.8012908,1.0630954,1.1032765,13.2107463,81.2208444,79.8261918,74.8351153,22.4930724,56.2751605,25.7394392,63.0841604,34.1123781,58.4031746,16.4175948,11.9989252,81.4307926,5.8758349,37.8494198,6.9543738\r\n256,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,0.9831116,1.0002336,12.6437546,81.4783667,79.798598,74.4208095,22.317839,54.2435573,25.6369945,63.0776542,34.2380127,58.1515035,15.771649,11.6322061,80.6536715,5.8916596,37.8592238,6.8012908,1.0630954,1.1032765,13.2107463,81.2208444,79.8261918,74.8351153,22.4930724,56.2751605,25.7394392,63.0841604,34.1123781,58.4031746,16.4175948,11.9989252,81.4307926,5.8758349,37.8494198,6.9543738,1.1349157,1.1780518,13.7713733,81.3975409,80.2231358,75.0333698,22.2992791,57.5648006,25.7139791,63.8842341,34.2589921,58.4760148,17.0569401,12.6293882,82.1701555,5.8784256,37.5354943,6.9828825\r\n257,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.0630954,1.1032765,13.2107463,81.2208444,79.8261918,74.8351153,22.4930724,56.2751605,25.7394392,63.0841604,34.1123781,58.4031746,16.4175948,11.9989252,81.4307926,5.8758349,37.8494198,6.9543738,1.1349157,1.1780518,13.7713733,81.3975409,80.2231358,75.0333698,22.2992791,57.5648006,25.7139791,63.8842341,34.2589921,58.4760148,17.0569401,12.6293882,82.1701555,5.8784256,37.5354943,6.9828825,1.2016672,1.2477665,14.560288,81.6310538,80.2463434,75.1620648,21.8211577,58.7184308,25.0402385,64.1938349,33.9503184,58.2665096,18.1661381,13.5764672,82.7426769,5.903241,37.1664259,7.0691325\r\n258,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.1349157,1.1780518,13.7713733,81.3975409,80.2231358,75.0333698,22.2992791,57.5648006,25.7139791,63.8842341,34.2589921,58.4760148,17.0569401,12.6293882,82.1701555,5.8784256,37.5354943,6.9828825,1.2016672,1.2477665,14.560288,81.6310538,80.2463434,75.1620648,21.8211577,58.7184308,25.0402385,64.1938349,33.9503184,58.2665096,18.1661381,13.5764672,82.7426769,5.903241,37.1664259,7.0691325,1.2922171,1.3444768,15.2210614,81.5490533,80.7786293,75.305571,21.5996303,59.5406622,25.1060946,63.4959069,32.3618972,59.0748323,19.3049032,14.4531182,83.0030842,5.9011174,36.7760997,7.6964904\r\n259,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.2016672,1.2477665,14.560288,81.6310538,80.2463434,75.1620648,21.8211577,58.7184308,25.0402385,64.1938349,33.9503184,58.2665096,18.1661381,13.5764672,82.7426769,5.903241,37.1664259,7.0691325,1.2922171,1.3444768,15.2210614,81.5490533,80.7786293,75.305571,21.5996303,59.5406622,25.1060946,63.4959069,32.3618972,59.0748323,19.3049032,14.4531182,83.0030842,5.9011174,36.7760997,7.6964904,1.4133114,1.4708946,15.9771462,81.6980044,80.7561825,75.5815752,21.4470499,60.3807572,25.5418976,62.2849042,30.7724668,59.3814946,20.4854583,15.4355146,83.4652995,5.728161,36.7879454,7.7858536\r\n260,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.2922171,1.3444768,15.2210614,81.5490533,80.7786293,75.305571,21.5996303,59.5406622,25.1060946,63.4959069,32.3618972,59.0748323,19.3049032,14.4531182,83.0030842,5.9011174,36.7760997,7.6964904,1.4133114,1.4708946,15.9771462,81.6980044,80.7561825,75.5815752,21.4470499,60.3807572,25.5418976,62.2849042,30.7724668,59.3814946,20.4854583,15.4355146,83.4652995,5.728161,36.7879454,7.7858536,1.5668949,1.6238809,17.0759368,82.0109804,80.945718,75.9421885,21.1089462,60.737759,25.5780206,61.4018726,29.7774905,59.8378004,21.9078773,16.7050261,83.9670661,5.5674012,36.8183418,8.319019\r\n261,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.4133114,1.4708946,15.9771462,81.6980044,80.7561825,75.5815752,21.4470499,60.3807572,25.5418976,62.2849042,30.7724668,59.3814946,20.4854583,15.4355146,83.4652995,5.728161,36.7879454,7.7858536,1.5668949,1.6238809,17.0759368,82.0109804,80.945718,75.9421885,21.1089462,60.737759,25.5780206,61.4018726,29.7774905,59.8378004,21.9078773,16.7050261,83.9670661,5.5674012,36.8183418,8.319019,1.6850439,1.7434654,18.1787155,82.5581297,81.2632411,76.2554691,20.314623,60.8855334,26.0471872,60.5146669,29.1517677,59.8226062,23.1651341,17.9685276,84.4915869,5.4356387,36.7973585,9.1067128\r\n262,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.5668949,1.6238809,17.0759368,82.0109804,80.945718,75.9421885,21.1089462,60.737759,25.5780206,61.4018726,29.7774905,59.8378004,21.9078773,16.7050261,83.9670661,5.5674012,36.8183418,8.319019,1.6850439,1.7434654,18.1787155,82.5581297,81.2632411,76.2554691,20.314623,60.8855334,26.0471872,60.5146669,29.1517677,59.8226062,23.1651341,17.9685276,84.4915869,5.4356387,36.7973585,9.1067128,1.8757454,1.9311448,19.4741105,82.5424157,81.3543534,76.3559774,20.0448746,61.0880261,25.9488061,59.916908,28.5273918,60.7144462,24.7412271,19.4781993,84.9790629,5.2714462,36.8923431,9.7228494\r\n263,0.0,0.0,1.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,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.0,0.0,0.0,0.0,0.0,1.6850439,1.7434654,18.1787155,82.5581297,81.2632411,76.2554691,20.314623,60.8855334,26.0471872,60.5146669,29.1517677,59.8226062,23.1651341,17.9685276,84.4915869,5.4356387,36.7973585,9.1067128,1.8757454,1.9311448,19.4741105,82.5424157,81.3543534,76.3559774,20.0448746,61.0880261,25.9488061,59.916908,28.5273918,60.7144462,24.7412271,19.4781993,84.9790629,5.2714462,36.8923431,9.7228494,2.0886681,2.1451555,21.0499906,82.5125252,81.0100227,76.6930126,19.751448,61.3575946,26.4414249,58.7023588,27.6840585,60.9644711,26.4672876,20.9215895,85.1148809,5.1056558,37.0351508,10.5653631\r\n264,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5124728,1.5397363,17.9895124,74.9548723,75.3470358,66.5452616,23.6975744,10.342952,16.2351489,67.0224441,38.5824335,44.4324451,21.4709255,16.540367,52.901521,6.0062637,34.42488,10.1724163,1.3769096,1.4047756,17.404931,75.5042652,76.2552649,66.4819684,24.1622039,11.1384976,16.4335588,66.5192574,38.5606537,44.5258815,20.880002,16.2516227,53.1059612,6.1147589,33.0132536,12.3144713,1.3860575,1.4548361,17.5005365,74.7767307,75.9048432,66.9842605,24.5372973,11.8850542,17.3494891,66.8006798,37.7831085,44.5609506,20.7140738,16.3410651,51.9629319,6.0591129,33.8398789,12.7642966\r\n265,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3769096,1.4047756,17.404931,75.5042652,76.2552649,66.4819684,24.1622039,11.1384976,16.4335588,66.5192574,38.5606537,44.5258815,20.880002,16.2516227,53.1059612,6.1147589,33.0132536,12.3144713,1.3860575,1.4548361,17.5005365,74.7767307,75.9048432,66.9842605,24.5372973,11.8850542,17.3494891,66.8006798,37.7831085,44.5609506,20.7140738,16.3410651,51.9629319,6.0591129,33.8398789,12.7642966,1.560872,1.592693,17.205322,74.175647,74.515508,66.5929906,24.8436764,12.2676076,17.5587108,67.1278168,38.5203758,44.1045457,20.6032179,16.4656059,51.7818955,6.5820113,33.912792,13.4282742\r\n266,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3860575,1.4548361,17.5005365,74.7767307,75.9048432,66.9842605,24.5372973,11.8850542,17.3494891,66.8006798,37.7831085,44.5609506,20.7140738,16.3410651,51.9629319,6.0591129,33.8398789,12.7642966,1.560872,1.592693,17.205322,74.175647,74.515508,66.5929906,24.8436764,12.2676076,17.5587108,67.1278168,38.5203758,44.1045457,20.6032179,16.4656059,51.7818955,6.5820113,33.912792,13.4282742,1.364588,1.4601558,17.5804753,74.0486807,74.3993832,66.8113133,24.9096967,12.3166862,18.035137,68.6078816,39.0665936,43.4456708,20.9017933,16.7868988,51.2295072,6.9748583,33.7898518,14.7355238\r\n267,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.560872,1.592693,17.205322,74.175647,74.515508,66.5929906,24.8436764,12.2676076,17.5587108,67.1278168,38.5203758,44.1045457,20.6032179,16.4656059,51.7818955,6.5820113,33.912792,13.4282742,1.364588,1.4601558,17.5804753,74.0486807,74.3993832,66.8113133,24.9096967,12.3166862,18.035137,68.6078816,39.0665936,43.4456708,20.9017933,16.7868988,51.2295072,6.9748583,33.7898518,14.7355238,1.4445028,1.5032881,17.6146298,73.1071628,74.0535431,65.814306,25.4338388,12.5420656,18.2448553,68.9776111,39.6446226,42.5371497,21.0323082,16.9498524,51.0821895,6.8101314,33.4674225,15.5696281\r\n268,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.364588,1.4601558,17.5804753,74.0486807,74.3993832,66.8113133,24.9096967,12.3166862,18.035137,68.6078816,39.0665936,43.4456708,20.9017933,16.7868988,51.2295072,6.9748583,33.7898518,14.7355238,1.4445028,1.5032881,17.6146298,73.1071628,74.0535431,65.814306,25.4338388,12.5420656,18.2448553,68.9776111,39.6446226,42.5371497,21.0323082,16.9498524,51.0821895,6.8101314,33.4674225,15.5696281,1.5627577,1.6309727,17.2389043,72.1295291,72.3753446,64.7297576,26.1614666,11.648284,16.2828392,69.4204409,40.4454014,42.5086616,20.6227491,16.9416356,51.1775138,6.8669595,32.8420771,17.2647518\r\n269,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.4445028,1.5032881,17.6146298,73.1071628,74.0535431,65.814306,25.4338388,12.5420656,18.2448553,68.9776111,39.6446226,42.5371497,21.0323082,16.9498524,51.0821895,6.8101314,33.4674225,15.5696281,1.5627577,1.6309727,17.2389043,72.1295291,72.3753446,64.7297576,26.1614666,11.648284,16.2828392,69.4204409,40.4454014,42.5086616,20.6227491,16.9416356,51.1775138,6.8669595,32.8420771,17.2647518,1.5070385,1.5694335,17.8606946,71.1032273,70.8424652,63.6555068,26.630402,11.5288333,15.4389339,69.0900422,39.7639526,41.9303387,21.277006,17.6477566,50.8394461,6.2410039,32.4002158,17.1863047\r\n270,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5627577,1.6309727,17.2389043,72.1295291,72.3753446,64.7297576,26.1614666,11.648284,16.2828392,69.4204409,40.4454014,42.5086616,20.6227491,16.9416356,51.1775138,6.8669595,32.8420771,17.2647518,1.5070385,1.5694335,17.8606946,71.1032273,70.8424652,63.6555068,26.630402,11.5288333,15.4389339,69.0900422,39.7639526,41.9303387,21.277006,17.6477566,50.8394461,6.2410039,32.4002158,17.1863047,1.5124808,1.576314,17.9232903,71.1953097,71.270974,62.9543652,26.4286258,10.6668998,15.6431075,69.8961884,39.3487268,41.5324524,21.9229023,18.2965143,50.4495464,6.109146,34.3900126,15.1095375\r\n271,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5070385,1.5694335,17.8606946,71.1032273,70.8424652,63.6555068,26.630402,11.5288333,15.4389339,69.0900422,39.7639526,41.9303387,21.277006,17.6477566,50.8394461,6.2410039,32.4002158,17.1863047,1.5124808,1.576314,17.9232903,71.1953097,71.270974,62.9543652,26.4286258,10.6668998,15.6431075,69.8961884,39.3487268,41.5324524,21.9229023,18.2965143,50.4495464,6.109146,34.3900126,15.1095375,1.4490258,1.4535954,18.1955844,71.9055039,72.1806087,63.084203,26.5418288,9.824799,14.8413597,69.8760839,40.3508279,41.8550945,21.9759609,18.3096835,51.3192939,6.1255239,34.0558617,16.0601249\r\n272,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5124808,1.576314,17.9232903,71.1953097,71.270974,62.9543652,26.4286258,10.6668998,15.6431075,69.8961884,39.3487268,41.5324524,21.9229023,18.2965143,50.4495464,6.109146,34.3900126,15.1095375,1.4490258,1.4535954,18.1955844,71.9055039,72.1806087,63.084203,26.5418288,9.824799,14.8413597,69.8760839,40.3508279,41.8550945,21.9759609,18.3096835,51.3192939,6.1255239,34.0558617,16.0601249,1.335308,1.3636281,17.6853343,71.8532257,72.5876313,62.7712854,26.0789367,9.0120783,15.0948819,68.8317379,39.8858891,42.3237469,21.3762378,17.8475403,51.6559296,5.7009162,33.4492331,15.5432375\r\n273,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.4490258,1.4535954,18.1955844,71.9055039,72.1806087,63.084203,26.5418288,9.824799,14.8413597,69.8760839,40.3508279,41.8550945,21.9759609,18.3096835,51.3192939,6.1255239,34.0558617,16.0601249,1.335308,1.3636281,17.6853343,71.8532257,72.5876313,62.7712854,26.0789367,9.0120783,15.0948819,68.8317379,39.8858891,42.3237469,21.3762378,17.8475403,51.6559296,5.7009162,33.4492331,15.5432375,1.3860764,1.4158954,17.1027985,71.8195363,72.8087798,62.119976,26.0444154,9.4024823,14.9945966,67.9608703,39.7438473,42.1193854,21.362172,17.6070426,52.5172203,5.504002,33.3438242,15.4623666\r\n274,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.335308,1.3636281,17.6853343,71.8532257,72.5876313,62.7712854,26.0789367,9.0120783,15.0948819,68.8317379,39.8858891,42.3237469,21.3762378,17.8475403,51.6559296,5.7009162,33.4492331,15.5432375,1.3860764,1.4158954,17.1027985,71.8195363,72.8087798,62.119976,26.0444154,9.4024823,14.9945966,67.9608703,39.7438473,42.1193854,21.362172,17.6070426,52.5172203,5.504002,33.3438242,15.4623666,1.3763026,1.4075056,16.9893627,72.7088828,73.2142303,64.2309355,26.0508362,9.3630536,15.94061,67.589869,40.5317272,41.6553813,21.3089172,17.4228118,52.2606057,5.5794899,34.7885367,15.194609\r\n275,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3860764,1.4158954,17.1027985,71.8195363,72.8087798,62.119976,26.0444154,9.4024823,14.9945966,67.9608703,39.7438473,42.1193854,21.362172,17.6070426,52.5172203,5.504002,33.3438242,15.4623666,1.3763026,1.4075056,16.9893627,72.7088828,73.2142303,64.2309355,26.0508362,9.3630536,15.94061,67.589869,40.5317272,41.6553813,21.3089172,17.4228118,52.2606057,5.5794899,34.7885367,15.194609,1.2930588,1.3051611,16.8974044,72.790117,73.7157573,65.2328078,25.8722003,9.7377647,17.0488625,67.9190927,41.0912842,41.2125479,21.1904397,17.092915,52.3575205,5.3637553,33.6629424,13.7488861\r\n276,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3763026,1.4075056,16.9893627,72.7088828,73.2142303,64.2309355,26.0508362,9.3630536,15.94061,67.589869,40.5317272,41.6553813,21.3089172,17.4228118,52.2606057,5.5794899,34.7885367,15.194609,1.2930588,1.3051611,16.8974044,72.790117,73.7157573,65.2328078,25.8722003,9.7377647,17.0488625,67.9190927,41.0912842,41.2125479,21.1904397,17.092915,52.3575205,5.3637553,33.6629424,13.7488861,1.5443395,1.5754868,16.4972112,74.4314346,75.1665934,66.2299587,26.1210761,9.9716275,18.6748224,67.8513185,41.3934814,42.7106784,21.2466948,16.7111307,53.0359862,5.6932967,34.2402185,14.4001058\r\n277,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.2930588,1.3051611,16.8974044,72.790117,73.7157573,65.2328078,25.8722003,9.7377647,17.0488625,67.9190927,41.0912842,41.2125479,21.1904397,17.092915,52.3575205,5.3637553,33.6629424,13.7488861,1.5443395,1.5754868,16.4972112,74.4314346,75.1665934,66.2299587,26.1210761,9.9716275,18.6748224,67.8513185,41.3934814,42.7106784,21.2466948,16.7111307,53.0359862,5.6932967,34.2402185,14.4001058,1.7568357,1.746124,17.1223315,73.4248836,74.5877317,65.9510232,25.7567865,11.720588,18.4468422,67.7463703,41.7812627,41.6615739,21.7861276,16.6519646,53.2966714,5.5892838,32.5775857,15.148065\r\n278,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5443395,1.5754868,16.4972112,74.4314346,75.1665934,66.2299587,26.1210761,9.9716275,18.6748224,67.8513185,41.3934814,42.7106784,21.2466948,16.7111307,53.0359862,5.6932967,34.2402185,14.4001058,1.7568357,1.746124,17.1223315,73.4248836,74.5877317,65.9510232,25.7567865,11.720588,18.4468422,67.7463703,41.7812627,41.6615739,21.7861276,16.6519646,53.2966714,5.5892838,32.5775857,15.148065,1.9313602,1.9276939,17.3535962,71.6298925,72.7808214,65.5286263,26.1757674,11.9001063,18.6911468,66.9671535,41.9588388,39.5577268,21.7666302,16.5278059,52.6969685,6.0210265,32.6219926,14.2637027\r\n279,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.7568357,1.746124,17.1223315,73.4248836,74.5877317,65.9510232,25.7567865,11.720588,18.4468422,67.7463703,41.7812627,41.6615739,21.7861276,16.6519646,53.2966714,5.5892838,32.5775857,15.148065,1.9313602,1.9276939,17.3535962,71.6298925,72.7808214,65.5286263,26.1757674,11.9001063,18.6911468,66.9671535,41.9588388,39.5577268,21.7666302,16.5278059,52.6969685,6.0210265,32.6219926,14.2637027,2.0986926,2.0626795,17.7179366,71.3395043,71.98061,67.3341522,26.6730879,12.4253116,19.0596515,68.0510768,42.5073532,39.1307473,22.5743315,17.1072932,52.434584,5.9303172,32.4545987,14.3578525\r\n280,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.9313602,1.9276939,17.3535962,71.6298925,72.7808214,65.5286263,26.1757674,11.9001063,18.6911468,66.9671535,41.9588388,39.5577268,21.7666302,16.5278059,52.6969685,6.0210265,32.6219926,14.2637027,2.0986926,2.0626795,17.7179366,71.3395043,71.98061,67.3341522,26.6730879,12.4253116,19.0596515,68.0510768,42.5073532,39.1307473,22.5743315,17.1072932,52.434584,5.9303172,32.4545987,14.3578525,2.0785629,1.9989892,17.348997,70.0274007,70.5272214,67.9448911,26.8438148,12.6120555,19.3961491,67.9057978,42.9772785,38.8020725,22.3712651,16.8866659,52.1674879,5.8538548,33.5650942,13.6377366\r\n281,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.0986926,2.0626795,17.7179366,71.3395043,71.98061,67.3341522,26.6730879,12.4253116,19.0596515,68.0510768,42.5073532,39.1307473,22.5743315,17.1072932,52.434584,5.9303172,32.4545987,14.3578525,2.0785629,1.9989892,17.348997,70.0274007,70.5272214,67.9448911,26.8438148,12.6120555,19.3961491,67.9057978,42.9772785,38.8020725,22.3712651,16.8866659,52.1674879,5.8538548,33.5650942,13.6377366,2.0865484,2.0104115,18.2505951,68.4584723,70.0740822,65.4072602,26.5506607,12.8174228,18.4371205,67.6806592,42.2700713,39.4083896,23.4735933,17.9372756,52.3547227,5.9831781,33.1718203,13.579572\r\n282,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.0785629,1.9989892,17.348997,70.0274007,70.5272214,67.9448911,26.8438148,12.6120555,19.3961491,67.9057978,42.9772785,38.8020725,22.3712651,16.8866659,52.1674879,5.8538548,33.5650942,13.6377366,2.0865484,2.0104115,18.2505951,68.4584723,70.0740822,65.4072602,26.5506607,12.8174228,18.4371205,67.6806592,42.2700713,39.4083896,23.4735933,17.9372756,52.3547227,5.9831781,33.1718203,13.579572,2.0407925,1.9737078,18.4699351,67.402748,69.8965251,63.8504709,26.2759356,12.8066669,18.2321965,67.1701983,40.8378411,39.0796296,23.9658772,18.3753504,52.1503116,5.8936945,33.8911884,14.8902821\r\n283,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.0865484,2.0104115,18.2505951,68.4584723,70.0740822,65.4072602,26.5506607,12.8174228,18.4371205,67.6806592,42.2700713,39.4083896,23.4735933,17.9372756,52.3547227,5.9831781,33.1718203,13.579572,2.0407925,1.9737078,18.4699351,67.402748,69.8965251,63.8504709,26.2759356,12.8066669,18.2321965,67.1701983,40.8378411,39.0796296,23.9658772,18.3753504,52.1503116,5.8936945,33.8911884,14.8902821,1.9773823,1.8938374,18.8162403,66.1320937,68.8442046,64.4865451,25.5646655,13.1705897,16.9024157,67.201253,40.9731309,38.6338929,24.918319,19.304648,52.3125095,5.9699206,33.4851795,14.9851632\r\n284,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.0407925,1.9737078,18.4699351,67.402748,69.8965251,63.8504709,26.2759356,12.8066669,18.2321965,67.1701983,40.8378411,39.0796296,23.9658772,18.3753504,52.1503116,5.8936945,33.8911884,14.8902821,1.9773823,1.8938374,18.8162403,66.1320937,68.8442046,64.4865451,25.5646655,13.1705897,16.9024157,67.201253,40.9731309,38.6338929,24.918319,19.304648,52.3125095,5.9699206,33.4851795,14.9851632,1.7792931,1.7722745,18.4025986,67.2113543,68.6926448,65.8169239,25.7451481,12.2067497,16.9414352,66.6543045,40.8463724,39.6662953,24.4082034,19.1509028,52.2535174,5.7746784,33.8546518,15.7898276\r\n285,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.9773823,1.8938374,18.8162403,66.1320937,68.8442046,64.4865451,25.5646655,13.1705897,16.9024157,67.201253,40.9731309,38.6338929,24.918319,19.304648,52.3125095,5.9699206,33.4851795,14.9851632,1.7792931,1.7722745,18.4025986,67.2113543,68.6926448,65.8169239,25.7451481,12.2067497,16.9414352,66.6543045,40.8463724,39.6662953,24.4082034,19.1509028,52.2535174,5.7746784,33.8546518,15.7898276,1.8299863,1.8350237,18.5298317,68.4145697,70.5497374,66.7678239,26.0202324,12.2175713,16.9145482,67.1331406,41.2566322,41.6760611,24.9143152,19.6079539,53.0655796,5.4653296,33.5003977,17.4512341\r\n286,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.7792931,1.7722745,18.4025986,67.2113543,68.6926448,65.8169239,25.7451481,12.2067497,16.9414352,66.6543045,40.8463724,39.6662953,24.4082034,19.1509028,52.2535174,5.7746784,33.8546518,15.7898276,1.8299863,1.8350237,18.5298317,68.4145697,70.5497374,66.7678239,26.0202324,12.2175713,16.9145482,67.1331406,41.2566322,41.6760611,24.9143152,19.6079539,53.0655796,5.4653296,33.5003977,17.4512341,1.7612902,1.7691966,18.7862249,69.4064498,72.3889588,65.4474248,26.3832361,12.523434,16.5992071,66.0489283,41.5480494,41.8376351,25.208812,19.9057449,52.9791105,5.5473893,34.1338626,18.1621494\r\n287,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8299863,1.8350237,18.5298317,68.4145697,70.5497374,66.7678239,26.0202324,12.2175713,16.9145482,67.1331406,41.2566322,41.6760611,24.9143152,19.6079539,53.0655796,5.4653296,33.5003977,17.4512341,1.7612902,1.7691966,18.7862249,69.4064498,72.3889588,65.4474248,26.3832361,12.523434,16.5992071,66.0489283,41.5480494,41.8376351,25.208812,19.9057449,52.9791105,5.5473893,34.1338626,18.1621494,1.7138742,1.7536355,19.5238913,70.2216014,73.3520117,65.2937884,26.6336135,13.4703125,16.5069622,65.7642202,41.0164972,42.0222881,24.8864994,20.1188778,53.4211007,5.5694008,33.6989701,17.0953816\r\n288,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.7612902,1.7691966,18.7862249,69.4064498,72.3889588,65.4474248,26.3832361,12.523434,16.5992071,66.0489283,41.5480494,41.8376351,25.208812,19.9057449,52.9791105,5.5473893,34.1338626,18.1621494,1.7138742,1.7536355,19.5238913,70.2216014,73.3520117,65.2937884,26.6336135,13.4703125,16.5069622,65.7642202,41.0164972,42.0222881,24.8864994,20.1188778,53.4211007,5.5694008,33.6989701,17.0953816,1.6441774,1.6928996,19.6545275,71.1016524,73.2062052,66.8348282,26.8070378,13.7838115,16.0974684,66.6681453,41.0433109,42.0341611,24.6481165,20.195213,53.778823,5.4188638,33.3664312,18.3742191\r\n289,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.7138742,1.7536355,19.5238913,70.2216014,73.3520117,65.2937884,26.6336135,13.4703125,16.5069622,65.7642202,41.0164972,42.0222881,24.8864994,20.1188778,53.4211007,5.5694008,33.6989701,17.0953816,1.6441774,1.6928996,19.6545275,71.1016524,73.2062052,66.8348282,26.8070378,13.7838115,16.0974684,66.6681453,41.0433109,42.0341611,24.6481165,20.195213,53.778823,5.4188638,33.3664312,18.3742191,1.8540302,1.8868197,20.2535966,71.0737514,72.6410929,67.3134848,26.4999517,13.6572079,16.11543,66.6417091,41.8127018,42.9550448,25.0862829,20.8075414,53.6687052,5.5139139,33.2981703,18.3639195\r\n290,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.6441774,1.6928996,19.6545275,71.1016524,73.2062052,66.8348282,26.8070378,13.7838115,16.0974684,66.6681453,41.0433109,42.0341611,24.6481165,20.195213,53.778823,5.4188638,33.3664312,18.3742191,1.8540302,1.8868197,20.2535966,71.0737514,72.6410929,67.3134848,26.4999517,13.6572079,16.11543,66.6417091,41.8127018,42.9550448,25.0862829,20.8075414,53.6687052,5.5139139,33.2981703,18.3639195,1.8608584,1.9007081,20.6892574,72.4405161,73.4258976,67.2537276,26.9347424,14.6237652,16.9150246,67.3542511,41.4206784,42.0504492,24.6173318,20.5608857,53.9633814,5.7619593,32.5398497,17.9099703\r\n291,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8540302,1.8868197,20.2535966,71.0737514,72.6410929,67.3134848,26.4999517,13.6572079,16.11543,66.6417091,41.8127018,42.9550448,25.0862829,20.8075414,53.6687052,5.5139139,33.2981703,18.3639195,1.8608584,1.9007081,20.6892574,72.4405161,73.4258976,67.2537276,26.9347424,14.6237652,16.9150246,67.3542511,41.4206784,42.0504492,24.6173318,20.5608857,53.9633814,5.7619593,32.5398497,17.9099703,1.9268615,1.9365856,21.7330643,72.3432237,72.8233983,67.4522995,27.1752297,14.6586337,16.3363826,66.991366,40.5705293,42.8149682,24.9436333,21.1371837,54.4109763,5.9630484,32.5392049,17.5121704\r\n292,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8608584,1.9007081,20.6892574,72.4405161,73.4258976,67.2537276,26.9347424,14.6237652,16.9150246,67.3542511,41.4206784,42.0504492,24.6173318,20.5608857,53.9633814,5.7619593,32.5398497,17.9099703,1.9268615,1.9365856,21.7330643,72.3432237,72.8233983,67.4522995,27.1752297,14.6586337,16.3363826,66.991366,40.5705293,42.8149682,24.9436333,21.1371837,54.4109763,5.9630484,32.5392049,17.5121704,1.8795101,1.850456,21.3943826,73.3389397,73.0780581,67.6437079,26.9504315,15.2946992,17.2737939,66.8345972,39.6723152,43.3738428,24.4284778,20.7366279,54.8732369,6.2482929,33.0219872,16.7041473\r\n293,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.9268615,1.9365856,21.7330643,72.3432237,72.8233983,67.4522995,27.1752297,14.6586337,16.3363826,66.991366,40.5705293,42.8149682,24.9436333,21.1371837,54.4109763,5.9630484,32.5392049,17.5121704,1.8795101,1.850456,21.3943826,73.3389397,73.0780581,67.6437079,26.9504315,15.2946992,17.2737939,66.8345972,39.6723152,43.3738428,24.4284778,20.7366279,54.8732369,6.2482929,33.0219872,16.7041473,1.7899314,1.7611369,22.0096693,73.62995,71.7231977,67.6103373,26.4205745,15.49267,17.7262619,67.4887344,38.6497045,42.5622766,24.58668,21.0781391,54.8176553,6.1399945,32.4608979,17.4429456\r\n294,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8795101,1.850456,21.3943826,73.3389397,73.0780581,67.6437079,26.9504315,15.2946992,17.2737939,66.8345972,39.6723152,43.3738428,24.4284778,20.7366279,54.8732369,6.2482929,33.0219872,16.7041473,1.7899314,1.7611369,22.0096693,73.62995,71.7231977,67.6103373,26.4205745,15.49267,17.7262619,67.4887344,38.6497045,42.5622766,24.58668,21.0781391,54.8176553,6.1399945,32.4608979,17.4429456,1.8185256,1.7591576,22.4434864,74.2812752,72.7334288,67.4393085,26.1923169,15.2389842,17.777313,66.7333007,37.7556587,43.2068442,25.3908816,21.5296246,54.9055413,6.021908,32.5447903,18.6298741\r\n295,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.7899314,1.7611369,22.0096693,73.62995,71.7231977,67.6103373,26.4205745,15.49267,17.7262619,67.4887344,38.6497045,42.5622766,24.58668,21.0781391,54.8176553,6.1399945,32.4608979,17.4429456,1.8185256,1.7591576,22.4434864,74.2812752,72.7334288,67.4393085,26.1923169,15.2389842,17.777313,66.7333007,37.7556587,43.2068442,25.3908816,21.5296246,54.9055413,6.021908,32.5447903,18.6298741,1.9255342,1.875361,22.3632739,75.1441245,73.4636238,68.1854621,26.1060314,15.8354487,18.0751144,66.3376859,37.5294196,44.2629264,25.5943786,21.1838099,55.8958169,6.0300458,32.3858655,19.2988277\r\n296,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8185256,1.7591576,22.4434864,74.2812752,72.7334288,67.4393085,26.1923169,15.2389842,17.777313,66.7333007,37.7556587,43.2068442,25.3908816,21.5296246,54.9055413,6.021908,32.5447903,18.6298741,1.9255342,1.875361,22.3632739,75.1441245,73.4636238,68.1854621,26.1060314,15.8354487,18.0751144,66.3376859,37.5294196,44.2629264,25.5943786,21.1838099,55.8958169,6.0300458,32.3858655,19.2988277,1.7968902,1.755925,22.2056191,75.970329,74.8417379,69.3596926,26.6219018,16.5548383,18.7665938,66.0984385,37.4376634,44.6739059,25.6883823,21.0537389,56.00045,6.1494039,32.2077278,20.9368151\r\n297,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.9255342,1.875361,22.3632739,75.1441245,73.4636238,68.1854621,26.1060314,15.8354487,18.0751144,66.3376859,37.5294196,44.2629264,25.5943786,21.1838099,55.8958169,6.0300458,32.3858655,19.2988277,1.7968902,1.755925,22.2056191,75.970329,74.8417379,69.3596926,26.6219018,16.5548383,18.7665938,66.0984385,37.4376634,44.6739059,25.6883823,21.0537389,56.00045,6.1494039,32.2077278,20.9368151,1.8814079,1.8407549,22.326356,75.0032781,74.2740014,68.9864188,26.9748537,16.3388019,18.4553046,65.6897755,37.9900449,45.791192,26.221458,21.4954491,55.9643561,6.2380985,32.2604763,21.757457\r\n298,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.7968902,1.755925,22.2056191,75.970329,74.8417379,69.3596926,26.6219018,16.5548383,18.7665938,66.0984385,37.4376634,44.6739059,25.6883823,21.0537389,56.00045,6.1494039,32.2077278,20.9368151,1.8814079,1.8407549,22.326356,75.0032781,74.2740014,68.9864188,26.9748537,16.3388019,18.4553046,65.6897755,37.9900449,45.791192,26.221458,21.4954491,55.9643561,6.2380985,32.2604763,21.757457,2.0397199,2.0092118,21.8639749,73.9555749,74.5559914,67.962376,27.9685737,15.5358515,18.9643135,66.5255123,39.478895,45.1939178,26.7217136,21.7665148,55.6999397,6.0683467,32.6823795,22.4318095\r\n299,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8814079,1.8407549,22.326356,75.0032781,74.2740014,68.9864188,26.9748537,16.3388019,18.4553046,65.6897755,37.9900449,45.791192,26.221458,21.4954491,55.9643561,6.2380985,32.2604763,21.757457,2.0397199,2.0092118,21.8639749,73.9555749,74.5559914,67.962376,27.9685737,15.5358515,18.9643135,66.5255123,39.478895,45.1939178,26.7217136,21.7665148,55.6999397,6.0683467,32.6823795,22.4318095,2.0823265,2.0516032,22.9152419,72.8843506,73.8235482,67.0584926,27.0454302,15.7857451,17.9651712,66.4718622,39.6756151,44.3207208,27.6195895,22.7539595,54.7997722,5.8894424,32.4246487,22.4810085\r\n300,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.0397199,2.0092118,21.8639749,73.9555749,74.5559914,67.962376,27.9685737,15.5358515,18.9643135,66.5255123,39.478895,45.1939178,26.7217136,21.7665148,55.6999397,6.0683467,32.6823795,22.4318095,2.0823265,2.0516032,22.9152419,72.8843506,73.8235482,67.0584926,27.0454302,15.7857451,17.9651712,66.4718622,39.6756151,44.3207208,27.6195895,22.7539595,54.7997722,5.8894424,32.4246487,22.4810085,2.122564,2.0982614,23.3545896,71.8257032,74.2909885,67.9207002,26.5641974,15.7009279,17.1235304,66.7126991,40.2224783,45.5470007,27.974098,23.1325696,55.1777561,5.8587018,33.6326255,20.8806261\r\n301,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.0823265,2.0516032,22.9152419,72.8843506,73.8235482,67.0584926,27.0454302,15.7857451,17.9651712,66.4718622,39.6756151,44.3207208,27.6195895,22.7539595,54.7997722,5.8894424,32.4246487,22.4810085,2.122564,2.0982614,23.3545896,71.8257032,74.2909885,67.9207002,26.5641974,15.7009279,17.1235304,66.7126991,40.2224783,45.5470007,27.974098,23.1325696,55.1777561,5.8587018,33.6326255,20.8806261,2.1766688,2.2070933,22.9601656,71.6968713,73.2925352,67.3124172,26.3350838,16.1067166,17.5434593,66.864663,40.4636117,46.040339,27.9164923,23.2232412,55.1677314,5.7225422,32.9198704,21.7464204\r\n302,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.122564,2.0982614,23.3545896,71.8257032,74.2909885,67.9207002,26.5641974,15.7009279,17.1235304,66.7126991,40.2224783,45.5470007,27.974098,23.1325696,55.1777561,5.8587018,33.6326255,20.8806261,2.1766688,2.2070933,22.9601656,71.6968713,73.2925352,67.3124172,26.3350838,16.1067166,17.5434593,66.864663,40.4636117,46.040339,27.9164923,23.2232412,55.1677314,5.7225422,32.9198704,21.7464204,2.1974728,2.2160359,23.7125223,69.4935115,71.3664917,66.8358703,26.5796331,15.8200361,17.7795743,67.4488989,41.0419139,45.3732105,28.8547975,24.275886,54.177237,5.7990578,32.9306334,19.6134568\r\n303,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.1766688,2.2070933,22.9601656,71.6968713,73.2925352,67.3124172,26.3350838,16.1067166,17.5434593,66.864663,40.4636117,46.040339,27.9164923,23.2232412,55.1677314,5.7225422,32.9198704,21.7464204,2.1974728,2.2160359,23.7125223,69.4935115,71.3664917,66.8358703,26.5796331,15.8200361,17.7795743,67.4488989,41.0419139,45.3732105,28.8547975,24.275886,54.177237,5.7990578,32.9306334,19.6134568,2.2437465,2.2423212,24.3911182,68.7756474,70.2535443,66.5400163,25.6609458,16.2164383,17.0680346,68.2685299,40.5435628,45.4500782,29.4081858,24.8322275,54.630754,5.9173491,33.2138902,17.8663969\r\n304,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.1974728,2.2160359,23.7125223,69.4935115,71.3664917,66.8358703,26.5796331,15.8200361,17.7795743,67.4488989,41.0419139,45.3732105,28.8547975,24.275886,54.177237,5.7990578,32.9306334,19.6134568,2.2437465,2.2423212,24.3911182,68.7756474,70.2535443,66.5400163,25.6609458,16.2164383,17.0680346,68.2685299,40.5435628,45.4500782,29.4081858,24.8322275,54.630754,5.9173491,33.2138902,17.8663969,2.1699725,2.1685273,23.9816855,68.8721973,70.0538437,66.9244504,25.4726564,15.4405584,17.348929,68.278754,40.113767,45.3180608,29.2471849,24.5957549,54.9467466,5.6421546,33.8907709,18.6780894\r\n305,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.2437465,2.2423212,24.3911182,68.7756474,70.2535443,66.5400163,25.6609458,16.2164383,17.0680346,68.2685299,40.5435628,45.4500782,29.4081858,24.8322275,54.630754,5.9173491,33.2138902,17.8663969,2.1699725,2.1685273,23.9816855,68.8721973,70.0538437,66.9244504,25.4726564,15.4405584,17.348929,68.278754,40.113767,45.3180608,29.2471849,24.5957549,54.9467466,5.6421546,33.8907709,18.6780894,1.883776,1.8974812,24.5987371,69.0970861,69.8796156,67.2098088,24.3048093,17.6448772,17.5183793,67.5394834,39.3641247,45.8778958,29.7351931,25.023726,55.3644914,5.735445,34.2185793,16.9593265\r\n306,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.1699725,2.1685273,23.9816855,68.8721973,70.0538437,66.9244504,25.4726564,15.4405584,17.348929,68.278754,40.113767,45.3180608,29.2471849,24.5957549,54.9467466,5.6421546,33.8907709,18.6780894,1.883776,1.8974812,24.5987371,69.0970861,69.8796156,67.2098088,24.3048093,17.6448772,17.5183793,67.5394834,39.3641247,45.8778958,29.7351931,25.023726,55.3644914,5.735445,34.2185793,16.9593265,1.8715949,1.9299656,24.4330356,69.9147833,70.2209977,67.5091207,23.7644293,17.0503801,17.5347989,67.0797233,38.7552982,46.4386014,29.5756807,24.760357,56.1078407,5.3597721,34.4344269,17.2272411\r\n307,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.883776,1.8974812,24.5987371,69.0970861,69.8796156,67.2098088,24.3048093,17.6448772,17.5183793,67.5394834,39.3641247,45.8778958,29.7351931,25.023726,55.3644914,5.735445,34.2185793,16.9593265,1.8715949,1.9299656,24.4330356,69.9147833,70.2209977,67.5091207,23.7644293,17.0503801,17.5347989,67.0797233,38.7552982,46.4386014,29.5756807,24.760357,56.1078407,5.3597721,34.4344269,17.2272411,2.0861328,2.1691917,24.1437948,70.8801903,70.5286451,68.1784167,24.1185104,16.8766392,17.8358692,66.4556194,38.186178,46.2623357,29.651125,24.5565653,56.4301282,5.4954554,35.3162605,18.5577841\r\n308,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8715949,1.9299656,24.4330356,69.9147833,70.2209977,67.5091207,23.7644293,17.0503801,17.5347989,67.0797233,38.7552982,46.4386014,29.5756807,24.760357,56.1078407,5.3597721,34.4344269,17.2272411,2.0861328,2.1691917,24.1437948,70.8801903,70.5286451,68.1784167,24.1185104,16.8766392,17.8358692,66.4556194,38.186178,46.2623357,29.651125,24.5565653,56.4301282,5.4954554,35.3162605,18.5577841,1.9430967,2.0019064,25.0679124,71.4196858,70.4605515,69.6087356,24.5673466,17.0644579,17.5987079,66.952572,38.5873012,45.2568536,29.965419,24.9532364,56.2647818,5.6127311,35.638789,17.0279444\r\n309,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.0861328,2.1691917,24.1437948,70.8801903,70.5286451,68.1784167,24.1185104,16.8766392,17.8358692,66.4556194,38.186178,46.2623357,29.651125,24.5565653,56.4301282,5.4954554,35.3162605,18.5577841,1.9430967,2.0019064,25.0679124,71.4196858,70.4605515,69.6087356,24.5673466,17.0644579,17.5987079,66.952572,38.5873012,45.2568536,29.965419,24.9532364,56.2647818,5.6127311,35.638789,17.0279444,1.9166957,1.9682028,25.0059078,71.6433122,71.4017706,69.9211875,24.1247656,16.5142824,17.9209711,66.1092104,37.9316899,45.5622642,29.7239428,24.8938235,56.8122199,5.3145629,36.1036412,17.7064253\r\n310,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.9430967,2.0019064,25.0679124,71.4196858,70.4605515,69.6087356,24.5673466,17.0644579,17.5987079,66.952572,38.5873012,45.2568536,29.965419,24.9532364,56.2647818,5.6127311,35.638789,17.0279444,1.9166957,1.9682028,25.0059078,71.6433122,71.4017706,69.9211875,24.1247656,16.5142824,17.9209711,66.1092104,37.9316899,45.5622642,29.7239428,24.8938235,56.8122199,5.3145629,36.1036412,17.7064253,1.7693415,1.9083261,24.8178083,72.9181678,71.6273315,70.2149207,24.5364382,16.7968816,17.605401,65.7066895,38.7019453,44.4149074,28.9243456,24.3467996,57.347505,5.2782333,36.2671307,17.2191592\r\n311,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.9166957,1.9682028,25.0059078,71.6433122,71.4017706,69.9211875,24.1247656,16.5142824,17.9209711,66.1092104,37.9316899,45.5622642,29.7239428,24.8938235,56.8122199,5.3145629,36.1036412,17.7064253,1.7693415,1.9083261,24.8178083,72.9181678,71.6273315,70.2149207,24.5364382,16.7968816,17.605401,65.7066895,38.7019453,44.4149074,28.9243456,24.3467996,57.347505,5.2782333,36.2671307,17.2191592,1.6386485,1.7871474,25.4110544,73.9172451,72.9318508,70.4424192,23.9624926,17.8208205,16.9239842,65.6982859,37.888528,44.7984642,28.8787346,24.5612149,57.1649424,5.1314571,35.9211862,16.048259\r\n312,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.7693415,1.9083261,24.8178083,72.9181678,71.6273315,70.2149207,24.5364382,16.7968816,17.605401,65.7066895,38.7019453,44.4149074,28.9243456,24.3467996,57.347505,5.2782333,36.2671307,17.2191592,1.6386485,1.7871474,25.4110544,73.9172451,72.9318508,70.4424192,23.9624926,17.8208205,16.9239842,65.6982859,37.888528,44.7984642,28.8787346,24.5612149,57.1649424,5.1314571,35.9211862,16.048259,1.8213581,1.9223276,25.6813674,73.7433999,71.6049695,70.685984,24.221864,17.9924804,16.3926382,66.0872968,37.6061503,43.2046685,28.8670261,24.6151623,57.3250441,4.9224088,34.1948754,17.3148333\r\n313,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.6386485,1.7871474,25.4110544,73.9172451,72.9318508,70.4424192,23.9624926,17.8208205,16.9239842,65.6982859,37.888528,44.7984642,28.8787346,24.5612149,57.1649424,5.1314571,35.9211862,16.048259,1.8213581,1.9223276,25.6813674,73.7433999,71.6049695,70.685984,24.221864,17.9924804,16.3926382,66.0872968,37.6061503,43.2046685,28.8670261,24.6151623,57.3250441,4.9224088,34.1948754,17.3148333,1.8412825,1.9482935,24.7358322,73.8093103,71.6116633,69.912341,25.484901,18.2347138,16.0001047,67.2319951,38.654053,43.3300853,28.3751124,24.1037258,57.1364997,5.0505973,33.9860669,16.9941257\r\n314,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8213581,1.9223276,25.6813674,73.7433999,71.6049695,70.685984,24.221864,17.9924804,16.3926382,66.0872968,37.6061503,43.2046685,28.8670261,24.6151623,57.3250441,4.9224088,34.1948754,17.3148333,1.8412825,1.9482935,24.7358322,73.8093103,71.6116633,69.912341,25.484901,18.2347138,16.0001047,67.2319951,38.654053,43.3300853,28.3751124,24.1037258,57.1364997,5.0505973,33.9860669,16.9941257,1.5750427,1.6313202,25.2849616,74.3077552,72.3530655,68.8980226,24.880431,18.4881311,16.2280186,67.6112812,39.1691631,43.0343877,28.4648406,24.3391699,57.7385065,4.9934403,31.8961465,16.3618089\r\n315,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.8412825,1.9482935,24.7358322,73.8093103,71.6116633,69.912341,25.484901,18.2347138,16.0001047,67.2319951,38.654053,43.3300853,28.3751124,24.1037258,57.1364997,5.0505973,33.9860669,16.9941257,1.5750427,1.6313202,25.2849616,74.3077552,72.3530655,68.8980226,24.880431,18.4881311,16.2280186,67.6112812,39.1691631,43.0343877,28.4648406,24.3391699,57.7385065,4.9934403,31.8961465,16.3618089,1.542625,1.599296,24.2971105,73.135165,71.7852835,68.4572522,24.9668527,17.0908097,15.8075517,68.7678201,39.9904417,42.3211865,27.7346196,23.398118,58.1012524,4.7564279,32.4012117,16.5962156\r\n316,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5750427,1.6313202,25.2849616,74.3077552,72.3530655,68.8980226,24.880431,18.4881311,16.2280186,67.6112812,39.1691631,43.0343877,28.4648406,24.3391699,57.7385065,4.9934403,31.8961465,16.3618089,1.542625,1.599296,24.2971105,73.135165,71.7852835,68.4572522,24.9668527,17.0908097,15.8075517,68.7678201,39.9904417,42.3211865,27.7346196,23.398118,58.1012524,4.7564279,32.4012117,16.5962156,1.5268752,1.5838894,23.1027593,74.1536854,71.0384201,67.7436986,25.1963384,17.8562302,15.8502119,69.6181188,40.2099116,42.5687213,27.0882035,22.7941581,57.8682747,4.9572831,33.0600548,15.6716631\r\n317,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.542625,1.599296,24.2971105,73.135165,71.7852835,68.4572522,24.9668527,17.0908097,15.8075517,68.7678201,39.9904417,42.3211865,27.7346196,23.398118,58.1012524,4.7564279,32.4012117,16.5962156,1.5268752,1.5838894,23.1027593,74.1536854,71.0384201,67.7436986,25.1963384,17.8562302,15.8502119,69.6181188,40.2099116,42.5687213,27.0882035,22.7941581,57.8682747,4.9572831,33.0600548,15.6716631,1.4374156,1.450728,22.2074315,74.6861998,72.02912,68.959367,25.8249351,17.6648895,16.973284,68.4596195,38.9404166,43.8862377,26.743502,22.4174023,58.3491928,4.4784849,33.1065258,15.8643545\r\n318,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5268752,1.5838894,23.1027593,74.1536854,71.0384201,67.7436986,25.1963384,17.8562302,15.8502119,69.6181188,40.2099116,42.5687213,27.0882035,22.7941581,57.8682747,4.9572831,33.0600548,15.6716631,1.4374156,1.450728,22.2074315,74.6861998,72.02912,68.959367,25.8249351,17.6648895,16.973284,68.4596195,38.9404166,43.8862377,26.743502,22.4174023,58.3491928,4.4784849,33.1065258,15.8643545,1.701292,1.7038947,21.6306399,73.7318639,70.3550988,67.7797766,26.1986422,18.5500763,17.5757141,67.9117164,38.9176084,43.5216597,26.5891961,22.1001452,59.2412047,4.7500263,32.5557443,15.3444708\r\n319,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.4374156,1.450728,22.2074315,74.6861998,72.02912,68.959367,25.8249351,17.6648895,16.973284,68.4596195,38.9404166,43.8862377,26.743502,22.4174023,58.3491928,4.4784849,33.1065258,15.8643545,1.701292,1.7038947,21.6306399,73.7318639,70.3550988,67.7797766,26.1986422,18.5500763,17.5757141,67.9117164,38.9176084,43.5216597,26.5891961,22.1001452,59.2412047,4.7500263,32.5557443,15.3444708,1.4828565,1.5080415,20.1857094,74.0584863,71.5902142,67.7624635,25.9134113,18.2142299,17.6660106,67.6200042,38.6171961,44.8318439,24.9130229,20.4725827,60.2415962,4.9627364,33.6597167,14.8484878\r\n320,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.701292,1.7038947,21.6306399,73.7318639,70.3550988,67.7797766,26.1986422,18.5500763,17.5757141,67.9117164,38.9176084,43.5216597,26.5891961,22.1001452,59.2412047,4.7500263,32.5557443,15.3444708,1.4828565,1.5080415,20.1857094,74.0584863,71.5902142,67.7624635,25.9134113,18.2142299,17.6660106,67.6200042,38.6171961,44.8318439,24.9130229,20.4725827,60.2415962,4.9627364,33.6597167,14.8484878,1.405903,1.4034049,20.9721753,72.4458264,71.383734,68.3606069,25.7210443,19.6265531,18.624736,66.8449992,37.9480302,44.5948791,25.5446335,20.8741573,60.5805919,5.12878,33.3665605,14.8467461\r\n321,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.4828565,1.5080415,20.1857094,74.0584863,71.5902142,67.7624635,25.9134113,18.2142299,17.6660106,67.6200042,38.6171961,44.8318439,24.9130229,20.4725827,60.2415962,4.9627364,33.6597167,14.8484878,1.405903,1.4034049,20.9721753,72.4458264,71.383734,68.3606069,25.7210443,19.6265531,18.624736,66.8449992,37.9480302,44.5948791,25.5446335,20.8741573,60.5805919,5.12878,33.3665605,14.8467461,1.3707375,1.3979878,19.9040094,72.4709274,71.184347,68.704392,25.1600795,20.6122761,18.6673738,66.6955727,37.2785437,45.7088548,24.9844025,20.1152918,61.2373118,5.2204725,33.8626558,13.9423104\r\n322,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.405903,1.4034049,20.9721753,72.4458264,71.383734,68.3606069,25.7210443,19.6265531,18.624736,66.8449992,37.9480302,44.5948791,25.5446335,20.8741573,60.5805919,5.12878,33.3665605,14.8467461,1.3707375,1.3979878,19.9040094,72.4709274,71.184347,68.704392,25.1600795,20.6122761,18.6673738,66.6955727,37.2785437,45.7088548,24.9844025,20.1152918,61.2373118,5.2204725,33.8626558,13.9423104,1.5649206,1.5920982,20.7180324,72.096718,70.8473431,68.1555787,25.1794819,22.230726,18.2120856,65.6275109,36.5715001,47.3448666,25.604106,20.7092417,62.2131332,5.5822338,34.5079869,15.5493511\r\n323,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3707375,1.3979878,19.9040094,72.4709274,71.184347,68.704392,25.1600795,20.6122761,18.6673738,66.6955727,37.2785437,45.7088548,24.9844025,20.1152918,61.2373118,5.2204725,33.8626558,13.9423104,1.5649206,1.5920982,20.7180324,72.096718,70.8473431,68.1555787,25.1794819,22.230726,18.2120856,65.6275109,36.5715001,47.3448666,25.604106,20.7092417,62.2131332,5.5822338,34.5079869,15.5493511,1.5492066,1.5762479,21.0263717,72.8711738,72.2257207,69.7369312,25.1894721,23.2393032,16.4155205,65.4189814,36.3408972,48.5328919,25.661972,20.6125113,63.403175,5.2541325,34.4666941,14.8798576\r\n324,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5649206,1.5920982,20.7180324,72.096718,70.8473431,68.1555787,25.1794819,22.230726,18.2120856,65.6275109,36.5715001,47.3448666,25.604106,20.7092417,62.2131332,5.5822338,34.5079869,15.5493511,1.5492066,1.5762479,21.0263717,72.8711738,72.2257207,69.7369312,25.1894721,23.2393032,16.4155205,65.4189814,36.3408972,48.5328919,25.661972,20.6125113,63.403175,5.2541325,34.4666941,14.8798576,1.5705012,1.5739985,20.3946488,70.9641743,70.0747589,68.5545119,24.2825876,23.54705,15.4822583,65.7267173,36.8439795,47.8748292,25.5555675,20.3284425,63.2568747,5.5861376,34.6612714,14.2193335\r\n325,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5492066,1.5762479,21.0263717,72.8711738,72.2257207,69.7369312,25.1894721,23.2393032,16.4155205,65.4189814,36.3408972,48.5328919,25.661972,20.6125113,63.403175,5.2541325,34.4666941,14.8798576,1.5705012,1.5739985,20.3946488,70.9641743,70.0747589,68.5545119,24.2825876,23.54705,15.4822583,65.7267173,36.8439795,47.8748292,25.5555675,20.3284425,63.2568747,5.5861376,34.6612714,14.2193335,1.370916,1.3436268,20.5359279,71.5387492,71.4571612,69.9144425,23.6448557,22.9531091,14.9415297,66.3595092,36.9711934,48.6325786,25.6709133,20.3396269,64.2836349,5.388039,35.9182802,14.4084024\r\n326,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5705012,1.5739985,20.3946488,70.9641743,70.0747589,68.5545119,24.2825876,23.54705,15.4822583,65.7267173,36.8439795,47.8748292,25.5555675,20.3284425,63.2568747,5.5861376,34.6612714,14.2193335,1.370916,1.3436268,20.5359279,71.5387492,71.4571612,69.9144425,23.6448557,22.9531091,14.9415297,66.3595092,36.9711934,48.6325786,25.6709133,20.3396269,64.2836349,5.388039,35.9182802,14.4084024,1.5329587,1.5045278,20.8544287,71.5706318,72.3741183,69.7023313,24.3251995,23.5711891,14.70045,67.1415453,38.5192146,48.981814,26.4413675,21.0148969,64.0744105,5.6636892,36.8581611,14.3554744\r\n327,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.370916,1.3436268,20.5359279,71.5387492,71.4571612,69.9144425,23.6448557,22.9531091,14.9415297,66.3595092,36.9711934,48.6325786,25.6709133,20.3396269,64.2836349,5.388039,35.9182802,14.4084024,1.5329587,1.5045278,20.8544287,71.5706318,72.3741183,69.7023313,24.3251995,23.5711891,14.70045,67.1415453,38.5192146,48.981814,26.4413675,21.0148969,64.0744105,5.6636892,36.8581611,14.3554744,1.4628088,1.4529108,20.6363957,72.8749718,71.8269907,70.7997824,24.3498025,24.0464458,14.4587236,66.739896,38.7394748,50.123669,25.5345194,20.4379388,64.8243961,5.5919252,37.105877,14.3299028\r\n328,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5329587,1.5045278,20.8544287,71.5706318,72.3741183,69.7023313,24.3251995,23.5711891,14.70045,67.1415453,38.5192146,48.981814,26.4413675,21.0148969,64.0744105,5.6636892,36.8581611,14.3554744,1.4628088,1.4529108,20.6363957,72.8749718,71.8269907,70.7997824,24.3498025,24.0464458,14.4587236,66.739896,38.7394748,50.123669,25.5345194,20.4379388,64.8243961,5.5919252,37.105877,14.3299028,1.6100892,1.5624372,20.808667,72.0378735,71.1869201,70.0515068,25.7973707,24.6116374,14.0776441,67.0507944,39.67284,49.7417151,25.5290892,20.6664042,64.6351914,5.6224748,36.6354745,14.8565665\r\n329,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.4628088,1.4529108,20.6363957,72.8749718,71.8269907,70.7997824,24.3498025,24.0464458,14.4587236,66.739896,38.7394748,50.123669,25.5345194,20.4379388,64.8243961,5.5919252,37.105877,14.3299028,1.6100892,1.5624372,20.808667,72.0378735,71.1869201,70.0515068,25.7973707,24.6116374,14.0776441,67.0507944,39.67284,49.7417151,25.5290892,20.6664042,64.6351914,5.6224748,36.6354745,14.8565665,1.4985149,1.4506536,20.192896,72.2179627,71.5823559,70.2041172,26.034429,25.0593813,14.0143267,68.0100161,40.0602366,48.724711,24.822855,20.2029952,64.9752842,5.4353951,36.4475911,13.3684295\r\n330,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.6100892,1.5624372,20.808667,72.0378735,71.1869201,70.0515068,25.7973707,24.6116374,14.0776441,67.0507944,39.67284,49.7417151,25.5290892,20.6664042,64.6351914,5.6224748,36.6354745,14.8565665,1.4985149,1.4506536,20.192896,72.2179627,71.5823559,70.2041172,26.034429,25.0593813,14.0143267,68.0100161,40.0602366,48.724711,24.822855,20.2029952,64.9752842,5.4353951,36.4475911,13.3684295,1.4649984,1.4173299,20.4591105,72.4828704,69.9376483,68.5715418,26.9382029,25.3833121,14.6030776,68.1183586,41.0436196,48.2445701,24.4154416,19.9181341,65.343776,6.2513748,36.4214686,13.282946\r\n331,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.4985149,1.4506536,20.192896,72.2179627,71.5823559,70.2041172,26.034429,25.0593813,14.0143267,68.0100161,40.0602366,48.724711,24.822855,20.2029952,64.9752842,5.4353951,36.4475911,13.3684295,1.4649984,1.4173299,20.4591105,72.4828704,69.9376483,68.5715418,26.9382029,25.3833121,14.6030776,68.1183586,41.0436196,48.2445701,24.4154416,19.9181341,65.343776,6.2513748,36.4214686,13.282946,1.6363602,1.6055781,21.457745,73.5374157,71.6749605,68.6464535,27.1643692,26.8526207,14.8518693,68.6523615,40.6474266,49.3693178,24.8493974,20.2153652,65.8932895,6.1974704,36.2471126,13.6076035\r\n332,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.4649984,1.4173299,20.4591105,72.4828704,69.9376483,68.5715418,26.9382029,25.3833121,14.6030776,68.1183586,41.0436196,48.2445701,24.4154416,19.9181341,65.343776,6.2513748,36.4214686,13.282946,1.6363602,1.6055781,21.457745,73.5374157,71.6749605,68.6464535,27.1643692,26.8526207,14.8518693,68.6523615,40.6474266,49.3693178,24.8493974,20.2153652,65.8932895,6.1974704,36.2471126,13.6076035,1.5545823,1.5641515,20.9536453,72.836717,70.5295961,67.9481843,28.3896722,27.5072423,15.012074,69.0073035,41.8569935,49.4583275,24.0674565,19.7688747,65.3546298,6.0800222,35.3487627,12.8008837\r\n333,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.6363602,1.6055781,21.457745,73.5374157,71.6749605,68.6464535,27.1643692,26.8526207,14.8518693,68.6523615,40.6474266,49.3693178,24.8493974,20.2153652,65.8932895,6.1974704,36.2471126,13.6076035,1.5545823,1.5641515,20.9536453,72.836717,70.5295961,67.9481843,28.3896722,27.5072423,15.012074,69.0073035,41.8569935,49.4583275,24.0674565,19.7688747,65.3546298,6.0800222,35.3487627,12.8008837,1.4136513,1.4231055,20.4749558,72.7411243,70.3003562,67.8631577,28.2760611,27.598768,15.2817779,68.8624893,41.2899866,49.6623799,23.3295009,19.2154489,65.5615591,5.780431,34.0209721,11.5991069\r\n334,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.5545823,1.5641515,20.9536453,72.836717,70.5295961,67.9481843,28.3896722,27.5072423,15.012074,69.0073035,41.8569935,49.4583275,24.0674565,19.7688747,65.3546298,6.0800222,35.3487627,12.8008837,1.4136513,1.4231055,20.4749558,72.7411243,70.3003562,67.8631577,28.2760611,27.598768,15.2817779,68.8624893,41.2899866,49.6623799,23.3295009,19.2154489,65.5615591,5.780431,34.0209721,11.5991069,1.3680364,1.3663681,19.7972124,72.9563346,70.2647532,68.3867164,29.1481408,28.3053314,15.2175339,70.3254129,42.4536713,48.2314498,23.1697444,18.9120895,66.1048356,6.0101806,34.1566878,10.5321625\r\n335,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.4136513,1.4231055,20.4749558,72.7411243,70.3003562,67.8631577,28.2760611,27.598768,15.2817779,68.8624893,41.2899866,49.6623799,23.3295009,19.2154489,65.5615591,5.780431,34.0209721,11.5991069,1.3680364,1.3663681,19.7972124,72.9563346,70.2647532,68.3867164,29.1481408,28.3053314,15.2175339,70.3254129,42.4536713,48.2314498,23.1697444,18.9120895,66.1048356,6.0101806,34.1566878,10.5321625,1.3209129,1.3440309,19.4684201,71.8976402,69.8981876,69.5787577,28.8171665,27.8560621,15.314301,70.4317253,42.1161903,47.1805972,22.6872025,18.3407981,66.2890701,5.9064755,34.3380996,9.6666774\r\n336,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3680364,1.3663681,19.7972124,72.9563346,70.2647532,68.3867164,29.1481408,28.3053314,15.2175339,70.3254129,42.4536713,48.2314498,23.1697444,18.9120895,66.1048356,6.0101806,34.1566878,10.5321625,1.3209129,1.3440309,19.4684201,71.8976402,69.8981876,69.5787577,28.8171665,27.8560621,15.314301,70.4317253,42.1161903,47.1805972,22.6872025,18.3407981,66.2890701,5.9064755,34.3380996,9.6666774,1.3378268,1.3444276,19.1160543,73.2645637,70.8973645,70.8617032,28.6330263,29.1359215,15.7230975,69.6290617,41.5793359,47.5686875,22.6130866,18.1700913,66.4574644,5.9167647,34.0916701,8.6056739\r\n337,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3209129,1.3440309,19.4684201,71.8976402,69.8981876,69.5787577,28.8171665,27.8560621,15.314301,70.4317253,42.1161903,47.1805972,22.6872025,18.3407981,66.2890701,5.9064755,34.3380996,9.6666774,1.3378268,1.3444276,19.1160543,73.2645637,70.8973645,70.8617032,28.6330263,29.1359215,15.7230975,69.6290617,41.5793359,47.5686875,22.6130866,18.1700913,66.4574644,5.9167647,34.0916701,8.6056739,1.2336367,1.2336367,18.0476522,72.308362,72.153317,71.0495103,27.1848722,29.1807215,15.8030189,68.800635,40.8761866,47.680796,22.3098399,17.931779,66.308146,5.1999689,33.666724,9.0401866\r\n338,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3378268,1.3444276,19.1160543,73.2645637,70.8973645,70.8617032,28.6330263,29.1359215,15.7230975,69.6290617,41.5793359,47.5686875,22.6130866,18.1700913,66.4574644,5.9167647,34.0916701,8.6056739,1.2336367,1.2336367,18.0476522,72.308362,72.153317,71.0495103,27.1848722,29.1807215,15.8030189,68.800635,40.8761866,47.680796,22.3098399,17.931779,66.308146,5.1999689,33.666724,9.0401866,1.1109821,1.0939344,17.8960261,72.3971312,72.3067623,71.0659703,27.0264092,29.3419043,16.6084244,68.3921146,41.1377772,47.6241614,22.2047535,18.0469575,66.9685707,5.264233,33.3706685,9.1208871\r\n339,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.2336367,1.2336367,18.0476522,72.308362,72.153317,71.0495103,27.1848722,29.1807215,15.8030189,68.800635,40.8761866,47.680796,22.3098399,17.931779,66.308146,5.1999689,33.666724,9.0401866,1.1109821,1.0939344,17.8960261,72.3971312,72.3067623,71.0659703,27.0264092,29.3419043,16.6084244,68.3921146,41.1377772,47.6241614,22.2047535,18.0469575,66.9685707,5.264233,33.3706685,9.1208871,1.1622596,1.1454524,18.1965289,71.8131632,72.6848061,70.8433073,26.894797,29.5425993,16.7003893,68.0785731,40.9335457,46.8268143,22.537505,18.0191692,67.1369044,5.5836814,33.6174567,9.2391365\r\n340,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.1109821,1.0939344,17.8960261,72.3971312,72.3067623,71.0659703,27.0264092,29.3419043,16.6084244,68.3921146,41.1377772,47.6241614,22.2047535,18.0469575,66.9685707,5.264233,33.3706685,9.1208871,1.1622596,1.1454524,18.1965289,71.8131632,72.6848061,70.8433073,26.894797,29.5425993,16.7003893,68.0785731,40.9335457,46.8268143,22.537505,18.0191692,67.1369044,5.5836814,33.6174567,9.2391365,1.1465244,1.1295803,17.8158969,72.3846231,72.551197,71.1579433,26.5693841,29.4111529,16.3599314,68.1499157,40.5043982,45.1843601,22.66718,17.823645,67.5254702,5.4972963,34.548762,10.6264053\r\n341,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.1622596,1.1454524,18.1965289,71.8131632,72.6848061,70.8433073,26.894797,29.5425993,16.7003893,68.0785731,40.9335457,46.8268143,22.537505,18.0191692,67.1369044,5.5836814,33.6174567,9.2391365,1.1465244,1.1295803,17.8158969,72.3846231,72.551197,71.1579433,26.5693841,29.4111529,16.3599314,68.1499157,40.5043982,45.1843601,22.66718,17.823645,67.5254702,5.4972963,34.548762,10.6264053,1.2645837,1.2340777,18.139155,72.7845218,73.5431527,71.1164943,25.9745048,29.4550475,16.6830202,67.0553858,39.1378145,46.2944163,23.6748182,18.23406,68.2463675,5.2831375,35.519123,10.9808149\r\n342,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.1465244,1.1295803,17.8158969,72.3846231,72.551197,71.1579433,26.5693841,29.4111529,16.3599314,68.1499157,40.5043982,45.1843601,22.66718,17.823645,67.5254702,5.4972963,34.548762,10.6264053,1.2645837,1.2340777,18.139155,72.7845218,73.5431527,71.1164943,25.9745048,29.4550475,16.6830202,67.0553858,39.1378145,46.2944163,23.6748182,18.23406,68.2463675,5.2831375,35.519123,10.9808149,1.3381182,1.2965838,18.6756621,74.51119,74.2153901,70.5039311,25.9674757,31.0136412,17.3230756,67.4646148,39.0372507,47.2701276,24.2521939,18.8549041,68.7826482,5.1234174,35.6487287,10.9147632\r\n343,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.2645837,1.2340777,18.139155,72.7845218,73.5431527,71.1164943,25.9745048,29.4550475,16.6830202,67.0553858,39.1378145,46.2944163,23.6748182,18.23406,68.2463675,5.2831375,35.519123,10.9808149,1.3381182,1.2965838,18.6756621,74.51119,74.2153901,70.5039311,25.9674757,31.0136412,17.3230756,67.4646148,39.0372507,47.2701276,24.2521939,18.8549041,68.7826482,5.1234174,35.6487287,10.9147632,1.443161,1.4644136,19.2438452,74.3962863,74.3174745,69.7125462,25.3793615,30.4284829,18.2249195,68.2204522,39.2095179,49.0226573,24.8551906,19.1912805,69.3053528,5.4914758,35.5647145,11.7\r\n344,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.3381182,1.2965838,18.6756621,74.51119,74.2153901,70.5039311,25.9674757,31.0136412,17.3230756,67.4646148,39.0372507,47.2701276,24.2521939,18.8549041,68.7826482,5.1234174,35.6487287,10.9147632,1.443161,1.4644136,19.2438452,74.3962863,74.3174745,69.7125462,25.3793615,30.4284829,18.2249195,68.2204522,39.2095179,49.0226573,24.8551906,19.1912805,69.3053528,5.4914758,35.5647145,11.7,1.6479052,1.6434126,20.3468841,74.7015029,75.2807132,70.5468794,25.343813,31.204669,17.8448695,69.2477944,39.6995362,48.9285247,25.3088148,19.5543347,69.6202652,5.8795783,35.4442311,10.8775137\r\n345,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.443161,1.4644136,19.2438452,74.3962863,74.3174745,69.7125462,25.3793615,30.4284829,18.2249195,68.2204522,39.2095179,49.0226573,24.8551906,19.1912805,69.3053528,5.4914758,35.5647145,11.7,1.6479052,1.6434126,20.3468841,74.7015029,75.2807132,70.5468794,25.343813,31.204669,17.8448695,69.2477944,39.6995362,48.9285247,25.3088148,19.5543347,69.6202652,5.8795783,35.4442311,10.8775137,1.9934862,2.0251107,21.0923198,74.9534256,75.3022694,70.7014697,25.3598844,31.8648106,16.7321056,69.7508908,40.4713101,49.6966054,26.5763114,20.1402205,69.3054193,5.7622768,35.3985685,12.8318584\r\n346,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.6479052,1.6434126,20.3468841,74.7015029,75.2807132,70.5468794,25.343813,31.204669,17.8448695,69.2477944,39.6995362,48.9285247,25.3088148,19.5543347,69.6202652,5.8795783,35.4442311,10.8775137,1.9934862,2.0251107,21.0923198,74.9534256,75.3022694,70.7014697,25.3598844,31.8648106,16.7321056,69.7508908,40.4713101,49.6966054,26.5763114,20.1402205,69.3054193,5.7622768,35.3985685,12.8318584,2.078294,2.072703,22.5238623,75.9438608,75.1484221,70.5738734,24.4213841,32.6105259,15.9596104,68.8298328,38.185734,51.2962305,28.2293877,21.5073071,70.1020336,5.3652224,35.3397665,13.597973\r\n347,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,1.9934862,2.0251107,21.0923198,74.9534256,75.3022694,70.7014697,25.3598844,31.8648106,16.7321056,69.7508908,40.4713101,49.6966054,26.5763114,20.1402205,69.3054193,5.7622768,35.3985685,12.8318584,2.078294,2.072703,22.5238623,75.9438608,75.1484221,70.5738734,24.4213841,32.6105259,15.9596104,68.8298328,38.185734,51.2962305,28.2293877,21.5073071,70.1020336,5.3652224,35.3397665,13.597973,2.1191776,2.1521557,24.0912657,73.970409,73.101578,70.7262483,24.3045892,33.3894139,15.3664614,66.9490758,36.9268382,52.2123461,29.5520515,22.6709525,70.3105339,5.4586894,34.6169661,13.0062346\r\n348,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.078294,2.072703,22.5238623,75.9438608,75.1484221,70.5738734,24.4213841,32.6105259,15.9596104,68.8298328,38.185734,51.2962305,28.2293877,21.5073071,70.1020336,5.3652224,35.3397665,13.597973,2.1191776,2.1521557,24.0912657,73.970409,73.101578,70.7262483,24.3045892,33.3894139,15.3664614,66.9490758,36.9268382,52.2123461,29.5520515,22.6709525,70.3105339,5.4586894,34.6169661,13.0062346,2.2809693,2.3509795,25.8888334,74.3591317,73.0484501,69.9339447,23.8680349,33.8004109,14.7917982,66.3234629,35.9577997,51.99462,30.8870293,24.4852424,70.2302193,5.3145253,34.2173294,13.4294406\r\n349,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.1191776,2.1521557,24.0912657,73.970409,73.101578,70.7262483,24.3045892,33.3894139,15.3664614,66.9490758,36.9268382,52.2123461,29.5520515,22.6709525,70.3105339,5.4586894,34.6169661,13.0062346,2.2809693,2.3509795,25.8888334,74.3591317,73.0484501,69.9339447,23.8680349,33.8004109,14.7917982,66.3234629,35.9577997,51.99462,30.8870293,24.4852424,70.2302193,5.3145253,34.2173294,13.4294406,2.3676321,2.4371675,26.5514461,73.8622608,73.3040518,70.686294,23.8747025,32.8167312,14.1522111,65.2285717,35.2036164,52.5207279,32.2231446,25.687607,70.4628701,5.3822197,35.1109196,14.9645411\r\n350,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.2809693,2.3509795,25.8888334,74.3591317,73.0484501,69.9339447,23.8680349,33.8004109,14.7917982,66.3234629,35.9577997,51.99462,30.8870293,24.4852424,70.2302193,5.3145253,34.2173294,13.4294406,2.3676321,2.4371675,26.5514461,73.8622608,73.3040518,70.686294,23.8747025,32.8167312,14.1522111,65.2285717,35.2036164,52.5207279,32.2231446,25.687607,70.4628701,5.3822197,35.1109196,14.9645411,2.6012245,2.6195405,28.0843359,74.3784335,74.0208792,71.291293,23.1853822,32.955447,12.9526012,64.0014175,34.6781843,51.7974741,34.251396,27.4048023,70.6227327,5.0621859,34.6319698,15.1774021\r\n351,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.0,2.3676321,2.4371675,26.5514461,73.8622608,73.3040518,70.686294,23.8747025,32.8167312,14.1522111,65.2285717,35.2036164,52.5207279,32.2231446,25.687607,70.4628701,5.3822197,35.1109196,14.9645411,2.6012245,2.6195405,28.0843359,74.3784335,74.0208792,71.291293,23.1853822,32.955447,12.9526012,64.0014175,34.6781843,51.7974741,34.251396,27.4048023,70.6227327,5.0621859,34.6319698,15.1774021,2.8792461,2.9784693,29.6856552,74.814434,73.6691824,71.8170933,22.6844518,32.765065,13.5846358,62.4509481,33.8572082,52.4959171,36.5897496,29.7160369,70.7961694,5.1029592,34.2616192,17.4475999\r\n352,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.5331897,0.5495867,10.9014953,83.2908144,81.0273116,77.7589441,20.6876602,42.2298399,23.2150746,66.9573178,35.0635279,54.442982,13.2943925,9.5560748,74.168251,5.2221172,35.4448743,8.6440678,0.582416,0.6105621,10.0909594,83.6397772,81.1375427,78.9138436,21.7674292,42.4695926,23.5997013,66.4639244,35.6796401,55.0413038,12.7624825,8.9360709,74.2877493,5.2693762,35.4227405,8.1881533,0.625869,0.6551964,10.4524122,83.2719954,81.7071255,78.3804563,21.6258087,42.4937861,24.0782438,67.3329391,35.5043391,56.2571199,12.9243453,9.2870999,74.5657568,5.0567341,35.2376138,8.9090909\r\n353,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.582416,0.6105621,10.0909594,83.6397772,81.1375427,78.9138436,21.7674292,42.4695926,23.5997013,66.4639244,35.6796401,55.0413038,12.7624825,8.9360709,74.2877493,5.2693762,35.4227405,8.1881533,0.625869,0.6551964,10.4524122,83.2719954,81.7071255,78.3804563,21.6258087,42.4937861,24.0782438,67.3329391,35.5043391,56.2571199,12.9243453,9.2870999,74.5657568,5.0567341,35.2376138,8.9090909,0.7788951,0.7854093,10.5957994,83.1623694,81.8619796,77.9604525,22.4217161,43.7922755,23.8999553,67.1374474,35.1931142,54.7682395,12.7850558,9.0975255,74.6656761,5.2903543,35.95,6.7028986\r\n354,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.625869,0.6551964,10.4524122,83.2719954,81.7071255,78.3804563,21.6258087,42.4937861,24.0782438,67.3329391,35.5043391,56.2571199,12.9243453,9.2870999,74.5657568,5.0567341,35.2376138,8.9090909,0.7788951,0.7854093,10.5957994,83.1623694,81.8619796,77.9604525,22.4217161,43.7922755,23.8999553,67.1374474,35.1931142,54.7682395,12.7850558,9.0975255,74.6656761,5.2903543,35.95,6.7028986,0.7018146,0.7194157,10.4095183,82.7404568,81.2246848,78.3349882,22.6626024,42.208355,24.9692021,67.3037118,35.4677235,54.8954064,12.5478011,8.9627151,74.707887,4.799807,35.5890944,6.0218978\r\n355,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7788951,0.7854093,10.5957994,83.1623694,81.8619796,77.9604525,22.4217161,43.7922755,23.8999553,67.1374474,35.1931142,54.7682395,12.7850558,9.0975255,74.6656761,5.2903543,35.95,6.7028986,0.7018146,0.7194157,10.4095183,82.7404568,81.2246848,78.3349882,22.6626024,42.208355,24.9692021,67.3037118,35.4677235,54.8954064,12.5478011,8.9627151,74.707887,4.799807,35.5890944,6.0218978,0.7307197,0.7486666,10.2277507,83.2665258,82.0011394,80.3577942,22.0337468,42.5010087,24.374628,66.9571247,34.5472669,53.5953969,12.3177843,8.8678328,73.9572989,4.4406281,36.1248761,5.8303887\r\n356,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7018146,0.7194157,10.4095183,82.7404568,81.2246848,78.3349882,22.6626024,42.208355,24.9692021,67.3037118,35.4677235,54.8954064,12.5478011,8.9627151,74.707887,4.799807,35.5890944,6.0218978,0.7307197,0.7486666,10.2277507,83.2665258,82.0011394,80.3577942,22.0337468,42.5010087,24.374628,66.9571247,34.5472669,53.5953969,12.3177843,8.8678328,73.9572989,4.4406281,36.1248761,5.8303887,0.8526093,0.8709843,10.3941343,83.9820295,82.3358182,80.131918,21.4961322,43.8549157,24.1557892,66.2012767,34.5190636,54.885143,12.5499002,8.9071856,74.490316,4.3489191,36.0596708,5.2919708\r\n357,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7307197,0.7486666,10.2277507,83.2665258,82.0011394,80.3577942,22.0337468,42.5010087,24.374628,66.9571247,34.5472669,53.5953969,12.3177843,8.8678328,73.9572989,4.4406281,36.1248761,5.8303887,0.8526093,0.8709843,10.3941343,83.9820295,82.3358182,80.131918,21.4961322,43.8549157,24.1557892,66.2012767,34.5190636,54.885143,12.5499002,8.9071856,74.490316,4.3489191,36.0596708,5.2919708,0.8331177,0.8517542,9.7039692,83.5373789,81.7088319,80.1332303,21.3884004,43.4086018,24.2289707,67.1880067,34.545674,53.8009696,12.2329603,8.8758901,74.5365602,4.3555782,36.4836325,4.4802867\r\n358,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8526093,0.8709843,10.3941343,83.9820295,82.3358182,80.131918,21.4961322,43.8549157,24.1557892,66.2012767,34.5190636,54.885143,12.5499002,8.9071856,74.490316,4.3489191,36.0596708,5.2919708,0.8331177,0.8517542,9.7039692,83.5373789,81.7088319,80.1332303,21.3884004,43.4086018,24.2289707,67.1880067,34.545674,53.8009696,12.2329603,8.8758901,74.5365602,4.3555782,36.4836325,4.4802867,0.7407898,0.7529375,9.8594587,83.6002232,81.5622431,80.1607791,20.3320595,43.9246521,24.7463626,67.1207142,33.5350103,53.4021895,12.3048907,9.0270552,74.8681435,4.6663191,37.2156013,3.5984848\r\n359,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8331177,0.8517542,9.7039692,83.5373789,81.7088319,80.1332303,21.3884004,43.4086018,24.2289707,67.1880067,34.545674,53.8009696,12.2329603,8.8758901,74.5365602,4.3555782,36.4836325,4.4802867,0.7407898,0.7529375,9.8594587,83.6002232,81.5622431,80.1607791,20.3320595,43.9246521,24.7463626,67.1207142,33.5350103,53.4021895,12.3048907,9.0270552,74.8681435,4.6663191,37.2156013,3.5984848,0.7464092,0.7584516,9.5224604,82.6315239,80.587391,80.7475846,20.020907,43.991599,23.1164007,66.4215723,34.173098,50.3669267,12.131402,8.7687532,74.2924528,4.6229339,37.1686108,4.3071161\r\n360,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7407898,0.7529375,9.8594587,83.6002232,81.5622431,80.1607791,20.3320595,43.9246521,24.7463626,67.1207142,33.5350103,53.4021895,12.3048907,9.0270552,74.8681435,4.6663191,37.2156013,3.5984848,0.7464092,0.7584516,9.5224604,82.6315239,80.587391,80.7475846,20.020907,43.991599,23.1164007,66.4215723,34.173098,50.3669267,12.131402,8.7687532,74.2924528,4.6229339,37.1686108,4.3071161,0.6784587,0.6909151,9.0989989,82.4637442,79.9718866,81.2511813,21.0341327,43.6774838,22.7598747,66.8312702,36.0595441,51.2719352,11.6,8.6133333,73.5086768,4.2046063,36.546841,5.075188\r\n361,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7464092,0.7584516,9.5224604,82.6315239,80.587391,80.7475846,20.020907,43.991599,23.1164007,66.4215723,34.173098,50.3669267,12.131402,8.7687532,74.2924528,4.6229339,37.1686108,4.3071161,0.6784587,0.6909151,9.0989989,82.4637442,79.9718866,81.2511813,21.0341327,43.6774838,22.7598747,66.8312702,36.0595441,51.2719352,11.6,8.6133333,73.5086768,4.2046063,36.546841,5.075188,0.7139066,0.7139066,8.9869157,83.0492504,80.0391736,81.3122101,21.7974632,44.8205498,22.7466017,67.359936,35.6831206,50.2535688,11.1644997,7.9988694,73.2813403,4.6078993,37.0911215,5.8943089\r\n362,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.6784587,0.6909151,9.0989989,82.4637442,79.9718866,81.2511813,21.0341327,43.6774838,22.7598747,66.8312702,36.0595441,51.2719352,11.6,8.6133333,73.5086768,4.2046063,36.546841,5.075188,0.7139066,0.7139066,8.9869157,83.0492504,80.0391736,81.3122101,21.7974632,44.8205498,22.7466017,67.359936,35.6831206,50.2535688,11.1644997,7.9988694,73.2813403,4.6078993,37.0911215,5.8943089,0.6863276,0.7133838,8.9753327,81.6907532,79.5283078,78.8562839,23.2121801,44.0014326,23.3821165,67.8313552,36.1242966,49.436022,11.8307427,8.2037997,73.6919459,5.1020408,35.9976663,5.7446809\r\n363,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7139066,0.7139066,8.9869157,83.0492504,80.0391736,81.3122101,21.7974632,44.8205498,22.7466017,67.359936,35.6831206,50.2535688,11.1644997,7.9988694,73.2813403,4.6078993,37.0911215,5.8943089,0.6863276,0.7133838,8.9753327,81.6907532,79.5283078,78.8562839,23.2121801,44.0014326,23.3821165,67.8313552,36.1242966,49.436022,11.8307427,8.2037997,73.6919459,5.1020408,35.9976663,5.7446809,0.7030387,0.730663,9.5539697,79.8317696,79.5567855,77.9289157,23.1135127,41.6435342,24.9731233,68.2914547,34.5965434,47.4166547,12.1256606,8.4850264,73.1670673,5.0387597,35.7142857,5.9917355\r\n364,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.6863276,0.7133838,8.9753327,81.6907532,79.5283078,78.8562839,23.2121801,44.0014326,23.3821165,67.8313552,36.1242966,49.436022,11.8307427,8.2037997,73.6919459,5.1020408,35.9976663,5.7446809,0.7030387,0.730663,9.5539697,79.8317696,79.5567855,77.9289157,23.1135127,41.6435342,24.9731233,68.2914547,34.5965434,47.4166547,12.1256606,8.4850264,73.1670673,5.0387597,35.7142857,5.9917355,0.8742938,0.9025424,9.8919091,79.5575624,78.6050184,78.7112077,22.5039618,41.9184717,23.6342008,66.8929537,33.761959,46.6060426,12.5,8.6031175,72.8421702,4.9847095,35.136742,7.2052402\r\n365,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7030387,0.730663,9.5539697,79.8317696,79.5567855,77.9289157,23.1135127,41.6435342,24.9731233,68.2914547,34.5965434,47.4166547,12.1256606,8.4850264,73.1670673,5.0387597,35.7142857,5.9917355,0.8742938,0.9025424,9.8919091,79.5575624,78.6050184,78.7112077,22.5039618,41.9184717,23.6342008,66.8929537,33.761959,46.6060426,12.5,8.6031175,72.8421702,4.9847095,35.136742,7.2052402,0.8981375,0.9269393,10.318878,79.8894787,78.0936003,77.7836054,22.7062489,43.1195508,22.9580403,66.906308,33.7982915,45.8279312,12.8510379,9.1269841,73.1715006,4.8498123,35.2905569,8.0434783\r\n366,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8742938,0.9025424,9.8919091,79.5575624,78.6050184,78.7112077,22.5039618,41.9184717,23.6342008,66.8929537,33.761959,46.6060426,12.5,8.6031175,72.8421702,4.9847095,35.136742,7.2052402,0.8981375,0.9269393,10.318878,79.8894787,78.0936003,77.7836054,22.7062489,43.1195508,22.9580403,66.906308,33.7982915,45.8279312,12.8510379,9.1269841,73.1715006,4.8498123,35.2905569,8.0434783,1.0874772,1.1168372,10.8747194,80.8914439,79.246411,78.427637,23.330255,42.7200688,23.975284,67.0920632,34.15182,48.3414323,13.6081835,9.516429,73.2120051,5.1811825,35.6516291,8.1775701\r\n367,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8981375,0.9269393,10.318878,79.8894787,78.0936003,77.7836054,22.7062489,43.1195508,22.9580403,66.906308,33.7982915,45.8279312,12.8510379,9.1269841,73.1715006,4.8498123,35.2905569,8.0434783,1.0874772,1.1168372,10.8747194,80.8914439,79.246411,78.427637,23.330255,42.7200688,23.975284,67.0920632,34.15182,48.3414323,13.6081835,9.516429,73.2120051,5.1811825,35.6516291,8.1775701,1.0636748,1.0934367,11.4839048,81.0692242,80.6216426,78.8056031,21.6631265,42.2744911,23.9346239,66.1878885,32.2105989,48.1603283,14.8580442,10.3785489,72.7243173,5.3975436,34.7631242,8.8832487\r\n368,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.0874772,1.1168372,10.8747194,80.8914439,79.246411,78.427637,23.330255,42.7200688,23.975284,67.0920632,34.15182,48.3414323,13.6081835,9.516429,73.2120051,5.1811825,35.6516291,8.1775701,1.0636748,1.0934367,11.4839048,81.0692242,80.6216426,78.8056031,21.6631265,42.2744911,23.9346239,66.1878885,32.2105989,48.1603283,14.8580442,10.3785489,72.7243173,5.3975436,34.7631242,8.8832487,1.084811,1.1146796,11.696031,80.735801,80.5639548,78.7191511,21.827919,41.2148731,23.2154024,65.372464,33.2511997,46.9323237,15.5435474,10.8391608,72.2911227,5.1623377,36.0523039,8.4183673\r\n369,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.0636748,1.0934367,11.4839048,81.0692242,80.6216426,78.8056031,21.6631265,42.2744911,23.9346239,66.1878885,32.2105989,48.1603283,14.8580442,10.3785489,72.7243173,5.3975436,34.7631242,8.8832487,1.084811,1.1146796,11.696031,80.735801,80.5639548,78.7191511,21.827919,41.2148731,23.2154024,65.372464,33.2511997,46.9323237,15.5435474,10.8391608,72.2911227,5.1623377,36.0523039,8.4183673,1.1322436,1.1322436,11.5970347,82.0824118,81.0184662,79.8020763,21.2292669,42.0087857,23.2324583,65.0489032,33.0799577,48.1609571,14.9106003,10.7598978,72.5228162,5.3536665,36.6792929,7.0680628\r\n370,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.084811,1.1146796,11.696031,80.735801,80.5639548,78.7191511,21.827919,41.2148731,23.2154024,65.372464,33.2511997,46.9323237,15.5435474,10.8391608,72.2911227,5.1623377,36.0523039,8.4183673,1.1322436,1.1322436,11.5970347,82.0824118,81.0184662,79.8020763,21.2292669,42.0087857,23.2324583,65.0489032,33.0799577,48.1609571,14.9106003,10.7598978,72.5228162,5.3536665,36.6792929,7.0680628,1.01263,1.01263,11.4499634,82.1197733,81.465359,80.0741204,22.5909164,41.7073123,22.4352859,65.2521557,35.066625,50.1121858,14.3860721,10.5375687,72.1774194,5.9457794,35.1497006,9.0673575\r\n371,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.1322436,1.1322436,11.5970347,82.0824118,81.0184662,79.8020763,21.2292669,42.0087857,23.2324583,65.0489032,33.0799577,48.1609571,14.9106003,10.7598978,72.5228162,5.3536665,36.6792929,7.0680628,1.01263,1.01263,11.4499634,82.1197733,81.465359,80.0741204,22.5909164,41.7073123,22.4352859,65.2521557,35.066625,50.1121858,14.3860721,10.5375687,72.1774194,5.9457794,35.1497006,9.0673575,0.7987851,0.8264859,10.5848204,82.0624301,82.2972377,79.2800763,23.8846465,40.3187352,23.3856894,65.4250116,35.143418,51.6733184,13.7249115,9.8878394,71.9314079,5.8911483,35.8391608,7.5609756\r\n372,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.01263,1.01263,11.4499634,82.1197733,81.465359,80.0741204,22.5909164,41.7073123,22.4352859,65.2521557,35.066625,50.1121858,14.3860721,10.5375687,72.1774194,5.9457794,35.1497006,9.0673575,0.7987851,0.8264859,10.5848204,82.0624301,82.2972377,79.2800763,23.8846465,40.3187352,23.3856894,65.4250116,35.143418,51.6733184,13.7249115,9.8878394,71.9314079,5.8911483,35.8391608,7.5609756,0.8591936,0.8868179,10.1800105,80.8865909,82.9416516,79.9366695,24.7382009,37.0406764,22.3305954,66.3671093,36.400402,50.8867001,13.6256622,9.682166,70.3003003,5.9261465,35.6140351,7.9326923\r\n373,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7987851,0.8264859,10.5848204,82.0624301,82.2972377,79.2800763,23.8846465,40.3187352,23.3856894,65.4250116,35.143418,51.6733184,13.7249115,9.8878394,71.9314079,5.8911483,35.8391608,7.5609756,0.8591936,0.8868179,10.1800105,80.8865909,82.9416516,79.9366695,24.7382009,37.0406764,22.3305954,66.3671093,36.400402,50.8867001,13.6256622,9.682166,70.3003003,5.9261465,35.6140351,7.9326923,0.7113692,0.7641675,9.7249306,80.5775198,81.9737185,78.3202601,23.2289396,36.8833656,21.328351,65.8260115,34.8942769,51.0616074,13.0912162,9.3186937,70.9537572,5.5396096,35.1396648,6.7099567\r\n374,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8591936,0.8868179,10.1800105,80.8865909,82.9416516,79.9366695,24.7382009,37.0406764,22.3305954,66.3671093,36.400402,50.8867001,13.6256622,9.682166,70.3003003,5.9261465,35.6140351,7.9326923,0.7113692,0.7641675,9.7249306,80.5775198,81.9737185,78.3202601,23.2289396,36.8833656,21.328351,65.8260115,34.8942769,51.0616074,13.0912162,9.3186937,70.9537572,5.5396096,35.1396648,6.7099567,0.849123,0.900484,8.9926539,81.737244,81.8650668,78.4195996,23.8961758,36.9456053,21.8536285,66.5241159,35.2846962,49.977805,12.2319956,8.4387026,71.1092247,5.7390817,35.1098901,6.25\r\n375,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7113692,0.7641675,9.7249306,80.5775198,81.9737185,78.3202601,23.2289396,36.8833656,21.328351,65.8260115,34.8942769,51.0616074,13.0912162,9.3186937,70.9537572,5.5396096,35.1396648,6.7099567,0.849123,0.900484,8.9926539,81.737244,81.8650668,78.4195996,23.8961758,36.9456053,21.8536285,66.5241159,35.2846962,49.977805,12.2319956,8.4387026,71.1092247,5.7390817,35.1098901,6.25,0.9157825,0.9631983,8.882002,80.9742207,81.2783531,78.1282463,23.5189631,36.8153958,22.2042443,66.8993346,34.7398436,50.8611147,12.3729675,8.5111789,71.2610735,5.8019598,34.4594595,7.0342205\r\n376,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.849123,0.900484,8.9926539,81.737244,81.8650668,78.4195996,23.8961758,36.9456053,21.8536285,66.5241159,35.2846962,49.977805,12.2319956,8.4387026,71.1092247,5.7390817,35.1098901,6.25,0.9157825,0.9631983,8.882002,80.9742207,81.2783531,78.1282463,23.5189631,36.8153958,22.2042443,66.8993346,34.7398436,50.8611147,12.3729675,8.5111789,71.2610735,5.8019598,34.4594595,7.0342205,0.8433391,0.9353777,9.2258638,81.2828655,81.1096864,78.1434844,23.6614825,35.0805906,21.5998732,66.7939316,34.9266673,51.723843,12.5614553,8.4316618,71.8512898,5.5805806,34.0886203,6.6308244\r\n377,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.9157825,0.9631983,8.882002,80.9742207,81.2783531,78.1282463,23.5189631,36.8153958,22.2042443,66.8993346,34.7398436,50.8611147,12.3729675,8.5111789,71.2610735,5.8019598,34.4594595,7.0342205,0.8433391,0.9353777,9.2258638,81.2828655,81.1096864,78.1434844,23.6614825,35.0805906,21.5998732,66.7939316,34.9266673,51.723843,12.5614553,8.4316618,71.8512898,5.5805806,34.0886203,6.6308244,0.7870079,0.8792163,8.7510486,81.6824527,79.705282,78.332463,22.9556837,34.9727724,21.2125916,68.2621988,34.776097,50.5971298,12.722332,8.2756917,72.3377282,5.5973896,34.2430484,5.9139785\r\n378,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8433391,0.9353777,9.2258638,81.2828655,81.1096864,78.1434844,23.6614825,35.0805906,21.5998732,66.7939316,34.9266673,51.723843,12.5614553,8.4316618,71.8512898,5.5805806,34.0886203,6.6308244,0.7870079,0.8792163,8.7510486,81.6824527,79.705282,78.332463,22.9556837,34.9727724,21.2125916,68.2621988,34.776097,50.5971298,12.722332,8.2756917,72.3377282,5.5973896,34.2430484,5.9139785,0.7950148,0.8628574,8.5394701,81.2505723,78.8616816,77.2304786,22.1749968,34.9148328,20.4682344,69.2190516,35.303605,48.8038653,12.5424551,8.1271228,72.4454365,5.4630083,34.202454,6.1837456\r\n379,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7870079,0.8792163,8.7510486,81.6824527,79.705282,78.332463,22.9556837,34.9727724,21.2125916,68.2621988,34.776097,50.5971298,12.722332,8.2756917,72.3377282,5.5973896,34.2430484,5.9139785,0.7950148,0.8628574,8.5394701,81.2505723,78.8616816,77.2304786,22.1749968,34.9148328,20.4682344,69.2190516,35.303605,48.8038653,12.5424551,8.1271228,72.4454365,5.4630083,34.202454,6.1837456,0.8572567,0.9244911,7.9262833,80.593096,77.106917,76.7990559,22.2813241,35.2913697,21.5815512,68.7212164,35.7017786,47.2640624,11.8852459,7.5940212,72.4384236,5.7261209,34.1025641,5.2727273\r\n380,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7950148,0.8628574,8.5394701,81.2505723,78.8616816,77.2304786,22.1749968,34.9148328,20.4682344,69.2190516,35.303605,48.8038653,12.5424551,8.1271228,72.4454365,5.4630083,34.202454,6.1837456,0.8572567,0.9244911,7.9262833,80.593096,77.106917,76.7990559,22.2813241,35.2913697,21.5815512,68.7212164,35.7017786,47.2640624,11.8852459,7.5940212,72.4384236,5.7261209,34.1025641,5.2727273,0.8623105,0.9232768,8.5270584,81.29881,78.0091737,78.3018449,23.4771253,35.7084215,22.3072723,68.950712,35.7200991,44.9920516,12.5429553,8.3210604,71.7184369,5.7234886,34.7395833,5.8935361\r\n381,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8572567,0.9244911,7.9262833,80.593096,77.106917,76.7990559,22.2813241,35.2913697,21.5815512,68.7212164,35.7017786,47.2640624,11.8852459,7.5940212,72.4384236,5.7261209,34.1025641,5.2727273,0.8623105,0.9232768,8.5270584,81.29881,78.0091737,78.3018449,23.4771253,35.7084215,22.3072723,68.950712,35.7200991,44.9920516,12.5429553,8.3210604,71.7184369,5.7234886,34.7395833,5.8935361,0.7449096,0.8064102,8.2395291,79.0063774,76.1350004,77.7416123,25.0445685,35.4692154,22.6368012,69.235436,37.5403701,42.9956247,12.1234568,8.1234568,71.5465465,5.9801489,34.6113445,5.5102041\r\n382,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8623105,0.9232768,8.5270584,81.29881,78.0091737,78.3018449,23.4771253,35.7084215,22.3072723,68.950712,35.7200991,44.9920516,12.5429553,8.3210604,71.7184369,5.7234886,34.7395833,5.8935361,0.7449096,0.8064102,8.2395291,79.0063774,76.1350004,77.7416123,25.0445685,35.4692154,22.6368012,69.235436,37.5403701,42.9956247,12.1234568,8.1234568,71.5465465,5.9801489,34.6113445,5.5102041,0.6350544,0.7459542,8.7943259,79.8670309,76.4573079,78.0392626,26.0564991,36.5483015,23.4112339,69.3553282,37.444243,42.0082464,11.9868221,8.1348201,71.1746522,5.7967314,33.8203463,4.3032787\r\n383,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7449096,0.8064102,8.2395291,79.0063774,76.1350004,77.7416123,25.0445685,35.4692154,22.6368012,69.235436,37.5403701,42.9956247,12.1234568,8.1234568,71.5465465,5.9801489,34.6113445,5.5102041,0.6350544,0.7459542,8.7943259,79.8670309,76.4573079,78.0392626,26.0564991,36.5483015,23.4112339,69.3553282,37.444243,42.0082464,11.9868221,8.1348201,71.1746522,5.7967314,33.8203463,4.3032787,0.6434043,0.7065954,9.0429837,78.2176042,75.6989121,78.9335516,26.8389171,36.8838715,24.7109191,70.2682516,37.5346329,41.7931078,11.6801211,8.1987891,69.7895277,5.9257375,33.494105,4.7717842\r\n384,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.6350544,0.7459542,8.7943259,79.8670309,76.4573079,78.0392626,26.0564991,36.5483015,23.4112339,69.3553282,37.444243,42.0082464,11.9868221,8.1348201,71.1746522,5.7967314,33.8203463,4.3032787,0.6434043,0.7065954,9.0429837,78.2176042,75.6989121,78.9335516,26.8389171,36.8838715,24.7109191,70.2682516,37.5346329,41.7931078,11.6801211,8.1987891,69.7895277,5.9257375,33.494105,4.7717842,0.7665103,0.8300629,9.1478549,78.7998892,76.478909,78.5158598,26.5405893,37.2420577,23.4882778,69.6570153,37.0775153,40.6070478,11.7721519,8.3797468,69.8195876,5.7515337,34.5464135,4.5258621\r\n385,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.6434043,0.7065954,9.0429837,78.2176042,75.6989121,78.9335516,26.8389171,36.8838715,24.7109191,70.2682516,37.5346329,41.7931078,11.6801211,8.1987891,69.7895277,5.9257375,33.494105,4.7717842,0.7665103,0.8300629,9.1478549,78.7998892,76.478909,78.5158598,26.5405893,37.2420577,23.4882778,69.6570153,37.0775153,40.6070478,11.7721519,8.3797468,69.8195876,5.7515337,34.5464135,4.5258621,0.8796393,0.9569128,9.7620024,78.142181,75.3932392,78.5786692,27.0942991,37.4139705,24.1320697,69.1590734,37.5877469,39.8875617,11.9905956,8.9602926,69.5295983,6.0930962,34.4218415,5.5555556\r\n386,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7665103,0.8300629,9.1478549,78.7998892,76.478909,78.5158598,26.5405893,37.2420577,23.4882778,69.6570153,37.0775153,40.6070478,11.7721519,8.3797468,69.8195876,5.7515337,34.5464135,4.5258621,0.8796393,0.9569128,9.7620024,78.142181,75.3932392,78.5786692,27.0942991,37.4139705,24.1320697,69.1590734,37.5877469,39.8875617,11.9905956,8.9602926,69.5295983,6.0930962,34.4218415,5.5555556,0.7458405,0.8221457,10.5174709,79.3235569,76.4163731,78.3201484,25.8624995,37.0822266,23.4930521,69.5659518,36.6904305,40.7176394,13.2139148,9.4755971,70.0731835,5.819969,34.21875,6.0669456\r\n387,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8796393,0.9569128,9.7620024,78.142181,75.3932392,78.5786692,27.0942991,37.4139705,24.1320697,69.1590734,37.5877469,39.8875617,11.9905956,8.9602926,69.5295983,6.0930962,34.4218415,5.5555556,0.7458405,0.8221457,10.5174709,79.3235569,76.4163731,78.3201484,25.8624995,37.0822266,23.4930521,69.5659518,36.6904305,40.7176394,13.2139148,9.4755971,70.0731835,5.819969,34.21875,6.0669456,0.7312521,0.7906345,11.2016632,78.6635952,75.8961624,78.542939,26.1223521,37.4795295,22.5692225,69.9353786,38.200168,40.6272402,12.9040534,9.1585428,69.68361,5.8145492,34.5723014,6.25\r\n388,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7458405,0.8221457,10.5174709,79.3235569,76.4163731,78.3201484,25.8624995,37.0822266,23.4930521,69.5659518,36.6904305,40.7176394,13.2139148,9.4755971,70.0731835,5.819969,34.21875,6.0669456,0.7312521,0.7906345,11.2016632,78.6635952,75.8961624,78.542939,26.1223521,37.4795295,22.5692225,69.9353786,38.200168,40.6272402,12.9040534,9.1585428,69.68361,5.8145492,34.5723014,6.25,0.6874676,0.7466252,12.2275578,79.3288672,76.8254451,77.6553805,25.0829346,37.3577209,22.598002,70.2407815,36.8901319,41.480318,13.2330444,9.4084651,69.2846034,6.2724014,35.5182927,7.8846154\r\n389,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7312521,0.7906345,11.2016632,78.6635952,75.8961624,78.542939,26.1223521,37.4795295,22.5692225,69.9353786,38.200168,40.6272402,12.9040534,9.1585428,69.68361,5.8145492,34.5723014,6.25,0.6874676,0.7466252,12.2275578,79.3288672,76.8254451,77.6553805,25.0829346,37.3577209,22.598002,70.2407815,36.8901319,41.480318,13.2330444,9.4084651,69.2846034,6.2724014,35.5182927,7.8846154,0.7771304,0.7888509,11.4362917,78.8789041,77.0039177,75.9067502,24.0496241,36.5781441,21.8279526,70.6186203,37.2964837,41.1445952,12.9367089,9.1392405,69.0427174,6.4819522,36.4415323,8.9353612\r\n390,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.6874676,0.7466252,12.2275578,79.3288672,76.8254451,77.6553805,25.0829346,37.3577209,22.598002,70.2407815,36.8901319,41.480318,13.2330444,9.4084651,69.2846034,6.2724014,35.5182927,7.8846154,0.7771304,0.7888509,11.4362917,78.8789041,77.0039177,75.9067502,24.0496241,36.5781441,21.8279526,70.6186203,37.2964837,41.1445952,12.9367089,9.1392405,69.0427174,6.4819522,36.4415323,8.9353612,0.7909512,0.8145473,10.8396065,79.6560709,77.859103,75.0320894,22.4762597,36.3579349,21.7033029,69.3666429,36.8823256,39.7421218,13.117677,9.1951095,69.0847634,6.25966,37.0162933,9.2885375\r\n391,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7771304,0.7888509,11.4362917,78.8789041,77.0039177,75.9067502,24.0496241,36.5781441,21.8279526,70.6186203,37.2964837,41.1445952,12.9367089,9.1392405,69.0427174,6.4819522,36.4415323,8.9353612,0.7909512,0.8145473,10.8396065,79.6560709,77.859103,75.0320894,22.4762597,36.3579349,21.7033029,69.3666429,36.8823256,39.7421218,13.117677,9.1951095,69.0847634,6.25966,37.0162933,9.2885375,0.7872159,0.8109126,11.3807612,79.1094151,77.8795777,74.860735,22.8299574,35.318126,21.8209584,68.8917043,36.5328268,41.8355383,13.5294118,9.5396419,69.124544,6.24029,37.0654397,8.5657371\r\n392,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7909512,0.8145473,10.8396065,79.6560709,77.859103,75.0320894,22.4762597,36.3579349,21.7033029,69.3666429,36.8823256,39.7421218,13.117677,9.1951095,69.0847634,6.25966,37.0162933,9.2885375,0.7872159,0.8109126,11.3807612,79.1094151,77.8795777,74.860735,22.8299574,35.318126,21.8209584,68.8917043,36.5328268,41.8355383,13.5294118,9.5396419,69.124544,6.24029,37.0654397,8.5657371,0.8808078,0.8925559,11.4291809,79.4258477,79.3442991,75.692458,21.5425796,34.3425101,21.6433792,67.7342863,35.7658502,43.8522731,13.7487386,9.4096872,69.216805,5.9234351,37.4242424,8.6872587\r\n393,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7872159,0.8109126,11.3807612,79.1094151,77.8795777,74.860735,22.8299574,35.318126,21.8209584,68.8917043,36.5328268,41.8355383,13.5294118,9.5396419,69.124544,6.24029,37.0654397,8.5657371,0.8808078,0.8925559,11.4291809,79.4258477,79.3442991,75.692458,21.5425796,34.3425101,21.6433792,67.7342863,35.7658502,43.8522731,13.7487386,9.4096872,69.216805,5.9234351,37.4242424,8.6872587,1.0806535,1.09253,11.809791,77.9106383,78.2486153,76.0176375,21.8892306,33.8895763,22.6718883,67.0742393,35.6382742,44.0359825,13.3991895,9.5997974,69.0713536,5.9145388,38.4654995,9.5703125\r\n394,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8808078,0.8925559,11.4291809,79.4258477,79.3442991,75.692458,21.5425796,34.3425101,21.6433792,67.7342863,35.7658502,43.8522731,13.7487386,9.4096872,69.216805,5.9234351,37.4242424,8.6872587,1.0806535,1.09253,11.809791,77.9106383,78.2486153,76.0176375,21.8892306,33.8895763,22.6718883,67.0742393,35.6382742,44.0359825,13.3991895,9.5997974,69.0713536,5.9145388,38.4654995,9.5703125,1.121996,1.1099303,11.0270419,78.8612828,78.9976826,77.116653,22.0879675,33.2550901,24.2733705,67.0955933,35.0608993,46.9446289,13.3178774,9.6084493,69.2694547,6.2961012,37.8594249,9.0405904\r\n395,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.0806535,1.09253,11.809791,77.9106383,78.2486153,76.0176375,21.8892306,33.8895763,22.6718883,67.0742393,35.6382742,44.0359825,13.3991895,9.5997974,69.0713536,5.9145388,38.4654995,9.5703125,1.121996,1.1099303,11.0270419,78.8612828,78.9976826,77.116653,22.0879675,33.2550901,24.2733705,67.0955933,35.0608993,46.9446289,13.3178774,9.6084493,69.2694547,6.2961012,37.8594249,9.0405904,1.186346,1.1742804,10.7051584,78.9881442,79.5157788,78.6883307,22.0708315,33.3268249,23.7471189,66.0473864,35.2386466,47.9258669,13.6996904,10.0361197,69.8198198,5.3421053,36.8504772,7.4898785\r\n396,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.121996,1.1099303,11.0270419,78.8612828,78.9976826,77.116653,22.0879675,33.2550901,24.2733705,67.0955933,35.0608993,46.9446289,13.3178774,9.6084493,69.2694547,6.2961012,37.8594249,9.0405904,1.186346,1.1742804,10.7051584,78.9881442,79.5157788,78.6883307,22.0708315,33.3268249,23.7471189,66.0473864,35.2386466,47.9258669,13.6996904,10.0361197,69.8198198,5.3421053,36.8504772,7.4898785,1.1622026,1.1498812,10.7132184,78.0590326,78.7552493,80.6378767,21.7738772,32.1953036,23.3401227,65.3071043,34.5102945,49.3104972,13.8991067,10.0630583,70.037961,5.2447552,36.3685932,8.3333333\r\n397,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.186346,1.1742804,10.7051584,78.9881442,79.5157788,78.6883307,22.0708315,33.3268249,23.7471189,66.0473864,35.2386466,47.9258669,13.6996904,10.0361197,69.8198198,5.3421053,36.8504772,7.4898785,1.1622026,1.1498812,10.7132184,78.0590326,78.7552493,80.6378767,21.7738772,32.1953036,23.3401227,65.3071043,34.5102945,49.3104972,13.8991067,10.0630583,70.037961,5.2447552,36.3685932,8.3333333,1.3358852,1.3109972,11.0238527,76.9956279,77.9441243,80.770436,23.4725074,31.3843172,23.8137197,64.6648147,34.6030275,50.2048468,13.8326226,10.0479744,69.0983607,5.275974,36.1878453,9.1101695\r\n398,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.1622026,1.1498812,10.7132184,78.0590326,78.7552493,80.6378767,21.7738772,32.1953036,23.3401227,65.3071043,34.5102945,49.3104972,13.8991067,10.0630583,70.037961,5.2447552,36.3685932,8.3333333,1.3358852,1.3109972,11.0238527,76.9956279,77.9441243,80.770436,23.4725074,31.3843172,23.8137197,64.6648147,34.6030275,50.2048468,13.8326226,10.0479744,69.0983607,5.275974,36.1878453,9.1101695,1.4296227,1.4049069,11.0667001,75.8708714,77.094057,80.3399865,24.2408649,30.2098012,24.0109427,65.4365735,35.2114822,48.6860201,13.7684989,10.1744186,67.9619565,5.5555556,36.1993428,10.3658537\r\n399,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.3358852,1.3109972,11.0238527,76.9956279,77.9441243,80.770436,23.4725074,31.3843172,23.8137197,64.6648147,34.6030275,50.2048468,13.8326226,10.0479744,69.0983607,5.275974,36.1878453,9.1101695,1.4296227,1.4049069,11.0667001,75.8708714,77.094057,80.3399865,24.2408649,30.2098012,24.0109427,65.4365735,35.2114822,48.6860201,13.7684989,10.1744186,67.9619565,5.5555556,36.1993428,10.3658537,1.4878829,1.479709,10.5706207,76.08607,77.0491557,80.1307883,25.5037492,31.3797173,24.6551785,66.4224009,35.2533314,48.3162012,13.7198321,9.9947534,67.9108485,5.6408898,36.0841424,8.4980237\r\n400,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.4296227,1.4049069,11.0667001,75.8708714,77.094057,80.3399865,24.2408649,30.2098012,24.0109427,65.4365735,35.2114822,48.6860201,13.7684989,10.1744186,67.9619565,5.5555556,36.1993428,10.3658537,1.4878829,1.479709,10.5706207,76.08607,77.0491557,80.1307883,25.5037492,31.3797173,24.6551785,66.4224009,35.2533314,48.3162012,13.7198321,9.9947534,67.9108485,5.6408898,36.0841424,8.4980237,1.5248092,1.5166552,10.2232893,77.3356953,78.5208021,80.8203964,27.475256,32.5888819,23.9007942,66.4064655,36.2798672,48.8174781,13.6910995,10.1832461,68.24,5.90885,35.0905218,8.6\r\n401,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.4878829,1.479709,10.5706207,76.08607,77.0491557,80.1307883,25.5037492,31.3797173,24.6551785,66.4224009,35.2533314,48.3162012,13.7198321,9.9947534,67.9108485,5.6408898,36.0841424,8.4980237,1.5248092,1.5166552,10.2232893,77.3356953,78.5208021,80.8203964,27.475256,32.5888819,23.9007942,66.4064655,36.2798672,48.8174781,13.6910995,10.1832461,68.24,5.90885,35.0905218,8.6,1.5647777,1.5808265,10.9118421,75.3308141,77.3885023,78.8875949,27.4788374,30.8536648,22.5539053,66.6882914,35.9512506,46.2061389,14.3846154,10.6410256,67.847769,5.7522124,35.3395062,9.0361446\r\n402,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.5248092,1.5166552,10.2232893,77.3356953,78.5208021,80.8203964,27.475256,32.5888819,23.9007942,66.4064655,36.2798672,48.8174781,13.6910995,10.1832461,68.24,5.90885,35.0905218,8.6,1.5647777,1.5808265,10.9118421,75.3308141,77.3885023,78.8875949,27.4788374,30.8536648,22.5539053,66.6882914,35.9512506,46.2061389,14.3846154,10.6410256,67.847769,5.7522124,35.3395062,9.0361446,1.7194047,1.7356253,12.0048025,76.1628863,78.2559106,79.5089341,27.1832913,29.5429159,21.9086459,67.3674409,35.4378712,46.8647695,14.7043568,11.0217842,68.4029614,5.9580052,35.2544133,9.437751\r\n403,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.5647777,1.5808265,10.9118421,75.3308141,77.3885023,78.8875949,27.4788374,30.8536648,22.5539053,66.6882914,35.9512506,46.2061389,14.3846154,10.6410256,67.847769,5.7522124,35.3395062,9.0361446,1.7194047,1.7356253,12.0048025,76.1628863,78.2559106,79.5089341,27.1832913,29.5429159,21.9086459,67.3674409,35.4378712,46.8647695,14.7043568,11.0217842,68.4029614,5.9580052,35.2544133,9.437751,1.8381355,1.8546208,12.9018366,77.246878,79.1837998,79.2613466,28.0821613,30.1503823,22.165128,68.5220404,36.7555903,45.9820552,15.4881266,11.8469657,68.5752688,6.5796484,35.7142857,9.4594595\r\n404,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.7194047,1.7356253,12.0048025,76.1628863,78.2559106,79.5089341,27.1832913,29.5429159,21.9086459,67.3674409,35.4378712,46.8647695,14.7043568,11.0217842,68.4029614,5.9580052,35.2544133,9.437751,1.8381355,1.8546208,12.9018366,77.246878,79.1837998,79.2613466,28.0821613,30.1503823,22.165128,68.5220404,36.7555903,45.9820552,15.4881266,11.8469657,68.5752688,6.5796484,35.7142857,9.4594595,1.6313488,1.6481668,12.8107823,79.5903732,80.9971228,79.7603742,28.1750108,30.5688797,20.4924199,69.7423193,37.6198792,45.6188361,15.643511,11.82014,69.1103789,6.8206522,36.358754,7.9150579\r\n405,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.8381355,1.8546208,12.9018366,77.246878,79.1837998,79.2613466,28.0821613,30.1503823,22.165128,68.5220404,36.7555903,45.9820552,15.4881266,11.8469657,68.5752688,6.5796484,35.7142857,9.4594595,1.6313488,1.6481668,12.8107823,79.5903732,80.9971228,79.7603742,28.1750108,30.5688797,20.4924199,69.7423193,37.6198792,45.6188361,15.643511,11.82014,69.1103789,6.8206522,36.358754,7.9150579,1.5021797,1.5138522,12.4467025,81.0640677,82.0276733,81.3922201,28.9479031,31.8345645,21.7672288,68.1559102,36.6195093,47.1949272,15.3907923,11.5364026,69.2915531,6.6252028,36.0192102,8.1132075\r\n406,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.6313488,1.6481668,12.8107823,79.5903732,80.9971228,79.7603742,28.1750108,30.5688797,20.4924199,69.7423193,37.6198792,45.6188361,15.643511,11.82014,69.1103789,6.8206522,36.358754,7.9150579,1.5021797,1.5138522,12.4467025,81.0640677,82.0276733,81.3922201,28.9479031,31.8345645,21.7672288,68.1559102,36.6195093,47.1949272,15.3907923,11.5364026,69.2915531,6.6252028,36.0192102,8.1132075,1.265721,1.2606807,12.6539106,79.3709553,80.9557208,80.7914277,28.6420981,32.5464697,20.198692,66.8852457,34.7416934,45.785566,15.3825431,12.0420259,69.1570881,6.4227642,35.5904659,9.1439689\r\n407,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.5021797,1.5138522,12.4467025,81.0640677,82.0276733,81.3922201,28.9479031,31.8345645,21.7672288,68.1559102,36.6195093,47.1949272,15.3907923,11.5364026,69.2915531,6.6252028,36.0192102,8.1132075,1.265721,1.2606807,12.6539106,79.3709553,80.9557208,80.7914277,28.6420981,32.5464697,20.198692,66.8852457,34.7416934,45.785566,15.3825431,12.0420259,69.1570881,6.4227642,35.5904659,9.1439689,0.9875726,0.9826945,13.3549184,79.487335,81.2248455,80.0309448,27.0153762,30.4909933,19.5328915,66.8169508,33.2870957,46.8993657,15.8783784,12.5,68.3722163,6.1026716,35.0793651,8.4532374\r\n408,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.265721,1.2606807,12.6539106,79.3709553,80.9557208,80.7914277,28.6420981,32.5464697,20.198692,66.8852457,34.7416934,45.785566,15.3825431,12.0420259,69.1570881,6.4227642,35.5904659,9.1439689,0.9875726,0.9826945,13.3549184,79.487335,81.2248455,80.0309448,27.0153762,30.4909933,19.5328915,66.8169508,33.2870957,46.8993657,15.8783784,12.5,68.3722163,6.1026716,35.0793651,8.4532374,0.842204,0.8849188,12.888751,81.1426456,81.9257274,81.2961351,26.5485028,32.3076054,19.9026207,65.5192653,32.8230081,48.982727,15.4683544,12.2278481,69.058642,6.2372709,34.7352025,8.4775087\r\n409,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.9875726,0.9826945,13.3549184,79.487335,81.2248455,80.0309448,27.0153762,30.4909933,19.5328915,66.8169508,33.2870957,46.8993657,15.8783784,12.5,68.3722163,6.1026716,35.0793651,8.4532374,0.842204,0.8849188,12.888751,81.1426456,81.9257274,81.2961351,26.5485028,32.3076054,19.9026207,65.5192653,32.8230081,48.982727,15.4683544,12.2278481,69.058642,6.2372709,34.7352025,8.4775087,0.7597633,0.8262137,12.9273627,80.5768718,80.4711113,80.9394113,26.5219777,32.5981512,19.5850748,65.2081147,32.5787607,50.0043653,16.2796443,12.5247036,68.3215726,6.3496016,34.1841842,9.2532468\r\n410,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.842204,0.8849188,12.888751,81.1426456,81.9257274,81.2961351,26.5485028,32.3076054,19.9026207,65.5192653,32.8230081,48.982727,15.4683544,12.2278481,69.058642,6.2372709,34.7352025,8.4775087,0.7597633,0.8262137,12.9273627,80.5768718,80.4711113,80.9394113,26.5219777,32.5981512,19.5850748,65.2081147,32.5787607,50.0043653,16.2796443,12.5247036,68.3215726,6.3496016,34.1841842,9.2532468,0.6737496,0.7393484,12.7585292,81.4266439,80.315977,80.6593306,25.4869876,31.6539874,18.4620415,64.1386388,31.3044424,52.0801338,16.3898388,12.6770884,68.8960716,5.4872047,33.4834835,8.8333333\r\n411,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7597633,0.8262137,12.9273627,80.5768718,80.4711113,80.9394113,26.5219777,32.5981512,19.5850748,65.2081147,32.5787607,50.0043653,16.2796443,12.5247036,68.3215726,6.3496016,34.1841842,9.2532468,0.6737496,0.7393484,12.7585292,81.4266439,80.315977,80.6593306,25.4869876,31.6539874,18.4620415,64.1386388,31.3044424,52.0801338,16.3898388,12.6770884,68.8960716,5.4872047,33.4834835,8.8333333,0.7957612,0.8655084,13.9156959,79.8769498,78.5912795,80.2183894,24.2900932,30.1862693,17.994057,63.771072,29.5543721,52.2110677,17.4084376,13.6995828,69.7580645,4.941452,34.1635338,9.7222222\r\n412,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.6737496,0.7393484,12.7585292,81.4266439,80.315977,80.6593306,25.4869876,31.6539874,18.4620415,64.1386388,31.3044424,52.0801338,16.3898388,12.6770884,68.8960716,5.4872047,33.4834835,8.8333333,0.7957612,0.8655084,13.9156959,79.8769498,78.5912795,80.2183894,24.2900932,30.1862693,17.994057,63.771072,29.5543721,52.2110677,17.4084376,13.6995828,69.7580645,4.941452,34.1635338,9.7222222,0.8293755,0.9037412,15.5256968,80.1120945,79.2251317,79.7831345,22.7715722,32.5578353,15.7993544,64.9691618,29.5685088,52.5119865,18.4247212,14.4284387,70.8412548,4.6560599,34.8513902,8.7692308\r\n413,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.7957612,0.8655084,13.9156959,79.8769498,78.5912795,80.2183894,24.2900932,30.1862693,17.994057,63.771072,29.5543721,52.2110677,17.4084376,13.6995828,69.7580645,4.941452,34.1635338,9.7222222,0.8293755,0.9037412,15.5256968,80.1120945,79.2251317,79.7831345,22.7715722,32.5578353,15.7993544,64.9691618,29.5685088,52.5119865,18.4247212,14.4284387,70.8412548,4.6560599,34.8513902,8.7692308,1.0084638,1.090431,16.2572546,82.0914202,80.6809743,81.1215209,23.1777704,33.0494462,16.554361,65.6869963,31.2776603,54.5937493,18.861454,14.6090535,71.0823529,4.9907149,34.8053181,10.058309\r\n414,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,0.8293755,0.9037412,15.5256968,80.1120945,79.2251317,79.7831345,22.7715722,32.5578353,15.7993544,64.9691618,29.5685088,52.5119865,18.4247212,14.4284387,70.8412548,4.6560599,34.8513902,8.7692308,1.0084638,1.090431,16.2572546,82.0914202,80.6809743,81.1215209,23.1777704,33.0494462,16.554361,65.6869963,31.2776603,54.5937493,18.861454,14.6090535,71.0823529,4.9907149,34.8053181,10.058309,1.1937415,1.2774788,16.5633278,82.6386614,80.560222,80.3005394,23.4236814,34.9542257,17.2052531,65.4102479,31.9700866,54.5344253,19.6487119,14.9648712,72.1126083,5.0071191,35.326087,10.1769912\r\n415,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.0084638,1.090431,16.2572546,82.0914202,80.6809743,81.1215209,23.1777704,33.0494462,16.554361,65.6869963,31.2776603,54.5937493,18.861454,14.6090535,71.0823529,4.9907149,34.8053181,10.058309,1.1937415,1.2774788,16.5633278,82.6386614,80.560222,80.3005394,23.4236814,34.9542257,17.2052531,65.4102479,31.9700866,54.5344253,19.6487119,14.9648712,72.1126083,5.0071191,35.326087,10.1769912,1.5138268,1.5698619,17.2432222,82.0889476,81.0811472,79.2827467,22.6099055,35.6188901,18.2200436,66.1583335,31.2499884,55.7730341,20.939759,15.6385542,73.325,4.8005908,35.303186,10.7988166\r\n416,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.1937415,1.2774788,16.5633278,82.6386614,80.560222,80.3005394,23.4236814,34.9542257,17.2052531,65.4102479,31.9700866,54.5344253,19.6487119,14.9648712,72.1126083,5.0071191,35.326087,10.1769912,1.5138268,1.5698619,17.2432222,82.0889476,81.0811472,79.2827467,22.6099055,35.6188901,18.2200436,66.1583335,31.2499884,55.7730341,20.939759,15.6385542,73.325,4.8005908,35.303186,10.7988166,1.6564083,1.6885331,17.7076668,82.2790602,81.1582176,78.6756284,22.9157016,37.0345267,18.8007099,66.6323916,31.6450395,54.8251769,21.0769981,16.2524366,74.3195565,4.8057769,36.2326574,11.1594203\r\n417,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.5138268,1.5698619,17.2432222,82.0889476,81.0811472,79.2827467,22.6099055,35.6188901,18.2200436,66.1583335,31.2499884,55.7730341,20.939759,15.6385542,73.325,4.8005908,35.303186,10.7988166,1.6564083,1.6885331,17.7076668,82.2790602,81.1582176,78.6756284,22.9157016,37.0345267,18.8007099,66.6323916,31.6450395,54.8251769,21.0769981,16.2524366,74.3195565,4.8057769,36.2326574,11.1594203,1.7317026,1.7634055,18.6169175,81.1479645,80.3973132,77.8915824,23.5180479,38.4570681,19.9935382,66.7926346,31.1377886,53.8167853,21.7862301,16.8271545,73.7929318,4.7958682,35.5087359,11.7231638\r\n418,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.6564083,1.6885331,17.7076668,82.2790602,81.1582176,78.6756284,22.9157016,37.0345267,18.8007099,66.6323916,31.6450395,54.8251769,21.0769981,16.2524366,74.3195565,4.8057769,36.2326574,11.1594203,1.7317026,1.7634055,18.6169175,81.1479645,80.3973132,77.8915824,23.5180479,38.4570681,19.9935382,66.7926346,31.1377886,53.8167853,21.7862301,16.8271545,73.7929318,4.7958682,35.5087359,11.7231638,1.7701318,1.7949959,18.3043536,80.6872792,80.3451444,78.1133579,23.584019,40.9195724,21.5422125,66.5259142,31.0917829,53.9250362,21.9542516,16.7826952,73.470948,5.2325581,35.1595745,12.8242075\r\n419,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.7317026,1.7634055,18.6169175,81.1479645,80.3973132,77.8915824,23.5180479,38.4570681,19.9935382,66.7926346,31.1377886,53.8167853,21.7862301,16.8271545,73.7929318,4.7958682,35.5087359,11.7231638,1.7701318,1.7949959,18.3043536,80.6872792,80.3451444,78.1133579,23.584019,40.9195724,21.5422125,66.5259142,31.0917829,53.9250362,21.9542516,16.7826952,73.470948,5.2325581,35.1595745,12.8242075,1.7209095,1.7460076,18.2306568,80.4418834,79.3677916,77.2262765,23.1657899,38.1049396,22.1501898,65.979214,31.6282727,53.0775943,22.314257,17.0933735,72.6497934,5.2483359,33.772392,14.8529412\r\n420,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.7701318,1.7949959,18.3043536,80.6872792,80.3451444,78.1133579,23.584019,40.9195724,21.5422125,66.5259142,31.0917829,53.9250362,21.9542516,16.7826952,73.470948,5.2325581,35.1595745,12.8242075,1.7209095,1.7460076,18.2306568,80.4418834,79.3677916,77.2262765,23.1657899,38.1049396,22.1501898,65.979214,31.6282727,53.0775943,22.314257,17.0933735,72.6497934,5.2483359,33.772392,14.8529412,1.7276188,1.7431588,19.3847797,79.7734748,79.2923905,77.2656198,23.0981607,37.4013708,21.2417971,65.4941697,32.6212962,52.3022446,23.6368184,18.184092,72.8739754,5.0456389,33.5616438,14.4662921\r\n421,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.7209095,1.7460076,18.2306568,80.4418834,79.3677916,77.2262765,23.1657899,38.1049396,22.1501898,65.979214,31.6282727,53.0775943,22.314257,17.0933735,72.6497934,5.2483359,33.772392,14.8529412,1.7276188,1.7431588,19.3847797,79.7734748,79.2923905,77.2656198,23.0981607,37.4013708,21.2417971,65.4941697,32.6212962,52.3022446,23.6368184,18.184092,72.8739754,5.0456389,33.5616438,14.4662921,1.5865691,1.6019513,19.1808223,79.4727979,78.1040338,77.6605777,22.8466394,36.9986002,20.4790813,65.3830346,32.4915241,53.4406339,23.3267229,18.1209717,73.8942552,4.798995,34.2515593,14.3048128\r\n422,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.7276188,1.7431588,19.3847797,79.7734748,79.2923905,77.2656198,23.0981607,37.4013708,21.2417971,65.4941697,32.6212962,52.3022446,23.6368184,18.184092,72.8739754,5.0456389,33.5616438,14.4662921,1.5865691,1.6019513,19.1808223,79.4727979,78.1040338,77.6605777,22.8466394,36.9986002,20.4790813,65.3830346,32.4915241,53.4406339,23.3267229,18.1209717,73.8942552,4.798995,34.2515593,14.3048128,1.453955,1.4772324,19.8674688,79.9993504,77.5117788,77.9435822,24.3610825,34.7916528,19.518797,65.2030678,33.5214538,53.2123988,23.5574511,18.7907677,73.642418,4.5270612,34.0526316,14.5380435\r\n423,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.5865691,1.6019513,19.1808223,79.4727979,78.1040338,77.6605777,22.8466394,36.9986002,20.4790813,65.3830346,32.4915241,53.4406339,23.3267229,18.1209717,73.8942552,4.798995,34.2515593,14.3048128,1.453955,1.4772324,19.8674688,79.9993504,77.5117788,77.9435822,24.3610825,34.7916528,19.518797,65.2030678,33.5214538,53.2123988,23.5574511,18.7907677,73.642418,4.5270612,34.0526316,14.5380435,1.3635259,1.386717,19.3263486,79.3644077,76.9704854,77.6991404,23.9201316,33.1441391,20.3215239,64.1811588,33.3291659,52.5313483,23.4142716,18.4093162,73.7071173,4.3686869,34.4917012,13.7228261\r\n424,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.453955,1.4772324,19.8674688,79.9993504,77.5117788,77.9435822,24.3610825,34.7916528,19.518797,65.2030678,33.5214538,53.2123988,23.5574511,18.7907677,73.642418,4.5270612,34.0526316,14.5380435,1.3635259,1.386717,19.3263486,79.3644077,76.9704854,77.6991404,23.9201316,33.1441391,20.3215239,64.1811588,33.3291659,52.5313483,23.4142716,18.4093162,73.7071173,4.3686869,34.4917012,13.7228261,1.464373,1.4414687,19.042584,79.4276549,77.4673274,77.9284713,24.14553,32.6891046,20.2932762,64.5817999,33.9525794,53.1681637,23.7548828,18.3837891,74.3284339,4.675,35.1141079,13.4114583\r\n425,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.3635259,1.386717,19.3263486,79.3644077,76.9704854,77.6991404,23.9201316,33.1441391,20.3215239,64.1811588,33.3291659,52.5313483,23.4142716,18.4093162,73.7071173,4.3686869,34.4917012,13.7228261,1.464373,1.4414687,19.042584,79.4276549,77.4673274,77.9284713,24.14553,32.6891046,20.2932762,64.5817999,33.9525794,53.1681637,23.7548828,18.3837891,74.3284339,4.675,35.1141079,13.4114583,1.6469731,1.5771732,20.1888018,80.0696614,77.7666215,78.4190925,24.3121505,32.2664568,18.9659736,64.9153704,34.0549033,54.7354431,24.2326733,18.7376238,74.8192149,4.7969543,34.9683544,13.1510417\r\n426,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.464373,1.4414687,19.042584,79.4276549,77.4673274,77.9284713,24.14553,32.6891046,20.2932762,64.5817999,33.9525794,53.1681637,23.7548828,18.3837891,74.3284339,4.675,35.1141079,13.4114583,1.6469731,1.5771732,20.1888018,80.0696614,77.7666215,78.4190925,24.3121505,32.2664568,18.9659736,64.9153704,34.0549033,54.7354431,24.2326733,18.7376238,74.8192149,4.7969543,34.9683544,13.1510417,1.625395,1.5575217,19.9294403,79.8174189,77.1469078,78.7714946,25.1570612,33.3843276,20.5492654,65.075349,34.0819651,55.8228022,24.3275696,19.0441883,75.788683,4.9434333,36.0020661,11.509901\r\n427,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.6469731,1.5771732,20.1888018,80.0696614,77.7666215,78.4190925,24.3121505,32.2664568,18.9659736,64.9153704,34.0549033,54.7354431,24.2326733,18.7376238,74.8192149,4.7969543,34.9683544,13.1510417,1.625395,1.5575217,19.9294403,79.8174189,77.1469078,78.7714946,25.1570612,33.3843276,20.5492654,65.075349,34.0819651,55.8228022,24.3275696,19.0441883,75.788683,4.9434333,36.0020661,11.509901,1.7067648,1.6399199,19.8671028,80.027437,77.252962,78.0355755,23.6160363,33.2027885,20.9801427,64.8270519,32.6388215,56.5998588,24.1517436,18.9208294,76.0009886,5.026712,37.046371,12.375\r\n428,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.625395,1.5575217,19.9294403,79.8174189,77.1469078,78.7714946,25.1570612,33.3843276,20.5492654,65.075349,34.0819651,55.8228022,24.3275696,19.0441883,75.788683,4.9434333,36.0020661,11.509901,1.7067648,1.6399199,19.8671028,80.027437,77.252962,78.0355755,23.6160363,33.2027885,20.9801427,64.8270519,32.6388215,56.5998588,24.1517436,18.9208294,76.0009886,5.026712,37.046371,12.375,1.9344247,1.8779766,20.353628,79.4407444,77.9602814,78.4818653,24.3934238,36.0007457,21.5317169,64.9567333,32.8642201,56.7829861,25.4117109,19.6935041,75.1679463,5.2569543,36.5628043,13.3906634\r\n429,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.7067648,1.6399199,19.8671028,80.027437,77.252962,78.0355755,23.6160363,33.2027885,20.9801427,64.8270519,32.6388215,56.5998588,24.1517436,18.9208294,76.0009886,5.026712,37.046371,12.375,1.9344247,1.8779766,20.353628,79.4407444,77.9602814,78.4818653,24.3934238,36.0007457,21.5317169,64.9567333,32.8642201,56.7829861,25.4117109,19.6935041,75.1679463,5.2569543,36.5628043,13.3906634,1.8404571,1.7656752,21.1922904,78.7258265,77.0655273,78.2838971,23.7874416,38.1322612,21.9816635,65.6683093,32.9045978,56.3279116,26.5775635,20.8369851,74.9884952,5.4878049,35.8867224,13.6046512\r\n430,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.9344247,1.8779766,20.353628,79.4407444,77.9602814,78.4818653,24.3934238,36.0007457,21.5317169,64.9567333,32.8642201,56.7829861,25.4117109,19.6935041,75.1679463,5.2569543,36.5628043,13.3906634,1.8404571,1.7656752,21.1922904,78.7258265,77.0655273,78.2838971,23.7874416,38.1322612,21.9816635,65.6683093,32.9045978,56.3279116,26.5775635,20.8369851,74.9884952,5.4878049,35.8867224,13.6046512,1.9649204,1.9100852,23.3274709,79.4520236,77.313773,79.3355855,23.7798073,39.4738294,20.8178146,66.3302477,33.2091067,58.9892486,28.4716342,22.6714649,74.9666815,5.2115133,35.5323021,14.6995708\r\n431,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.8404571,1.7656752,21.1922904,78.7258265,77.0655273,78.2838971,23.7874416,38.1322612,21.9816635,65.6683093,32.9045978,56.3279116,26.5775635,20.8369851,74.9884952,5.4878049,35.8867224,13.6046512,1.9649204,1.9100852,23.3274709,79.4520236,77.313773,79.3355855,23.7798073,39.4738294,20.8178146,66.3302477,33.2091067,58.9892486,28.4716342,22.6714649,74.9666815,5.2115133,35.5323021,14.6995708,2.1463994,2.1317935,25.0090745,80.3144506,77.6560016,80.3057552,23.1569532,40.0851147,20.644711,65.8764848,32.8835207,59.3776869,29.650437,23.8243862,75.6315331,5.2372809,36.4986499,16.6666667\r\n432,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,1.9649204,1.9100852,23.3274709,79.4520236,77.313773,79.3355855,23.7798073,39.4738294,20.8178146,66.3302477,33.2091067,58.9892486,28.4716342,22.6714649,74.9666815,5.2115133,35.5323021,14.6995708,2.1463994,2.1317935,25.0090745,80.3144506,77.6560016,80.3057552,23.1569532,40.0851147,20.644711,65.8764848,32.8835207,59.3776869,29.650437,23.8243862,75.6315331,5.2372809,36.4986499,16.6666667,2.1146527,2.1569371,26.0037883,81.7042793,77.5804554,79.7463127,22.4982007,40.7365827,20.858856,66.7181603,33.3808667,60.4770899,30.2819698,24.5631454,76.4056643,4.9055829,35.2966466,17.0708955\r\n433,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,2.1463994,2.1317935,25.0090745,80.3144506,77.6560016,80.3057552,23.1569532,40.0851147,20.644711,65.8764848,32.8835207,59.3776869,29.650437,23.8243862,75.6315331,5.2372809,36.4986499,16.6666667,2.1146527,2.1569371,26.0037883,81.7042793,77.5804554,79.7463127,22.4982007,40.7365827,20.858856,66.7181603,33.3808667,60.4770899,30.2819698,24.5631454,76.4056643,4.9055829,35.2966466,17.0708955,2.2424651,2.2660247,26.9437571,81.4759631,77.7538405,79.9910032,21.5547073,42.9857774,20.512118,66.4808402,31.9964438,60.9903334,31.2425329,25.2688172,76.9053601,4.8865979,35.3275109,17.8315412\r\n434,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,2.1146527,2.1569371,26.0037883,81.7042793,77.5804554,79.7463127,22.4982007,40.7365827,20.858856,66.7181603,33.3808667,60.4770899,30.2819698,24.5631454,76.4056643,4.9055829,35.2966466,17.0708955,2.2424651,2.2660247,26.9437571,81.4759631,77.7538405,79.9910032,21.5547073,42.9857774,20.512118,66.4808402,31.9964438,60.9903334,31.2425329,25.2688172,76.9053601,4.8865979,35.3275109,17.8315412,2.39456,2.4250289,28.7356217,80.9721611,77.0140786,80.4645832,23.020855,44.1101741,20.4657976,66.5447885,30.4600307,61.9483005,33.3945328,27.0705834,77.6377616,4.606647,34.7001764,17.1304348\r\n435,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,2.2424651,2.2660247,26.9437571,81.4759631,77.7538405,79.9910032,21.5547073,42.9857774,20.512118,66.4808402,31.9964438,60.9903334,31.2425329,25.2688172,76.9053601,4.8865979,35.3275109,17.8315412,2.39456,2.4250289,28.7356217,80.9721611,77.0140786,80.4645832,23.020855,44.1101741,20.4657976,66.5447885,30.4600307,61.9483005,33.3945328,27.0705834,77.6377616,4.606647,34.7001764,17.1304348,2.6232859,2.6551456,30.7251616,80.924544,76.3068457,81.1932319,22.9224737,43.0823906,21.0348569,64.9161862,28.6176264,61.8014934,35.3923541,29.1146881,77.7613828,4.4642857,35.5851979,18.7699681\r\n436,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,2.39456,2.4250289,28.7356217,80.9721611,77.0140786,80.4645832,23.020855,44.1101741,20.4657976,66.5447885,30.4600307,61.9483005,33.3945328,27.0705834,77.6377616,4.606647,34.7001764,17.1304348,2.6232859,2.6551456,30.7251616,80.924544,76.3068457,81.1932319,22.9224737,43.0823906,21.0348569,64.9161862,28.6176264,61.8014934,35.3923541,29.1146881,77.7613828,4.4642857,35.5851979,18.7699681,3.2190568,3.237801,31.225469,82.2360781,77.1589844,81.2772444,21.5834757,42.6953225,20.3710633,63.1830195,26.6479539,61.6953687,35.8789063,29.5507812,79.3336059,4.0960452,36.4207879,19.0721649\r\n437,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,2.6232859,2.6551456,30.7251616,80.924544,76.3068457,81.1932319,22.9224737,43.0823906,21.0348569,64.9161862,28.6176264,61.8014934,35.3923541,29.1146881,77.7613828,4.4642857,35.5851979,18.7699681,3.2190568,3.237801,31.225469,82.2360781,77.1589844,81.2772444,21.5834757,42.6953225,20.3710633,63.1830195,26.6479539,61.6953687,35.8789063,29.5507812,79.3336059,4.0960452,36.4207879,19.0721649,3.7244124,3.7326808,31.070337,81.9063998,78.329454,79.6715094,21.1221325,42.7891855,20.8715596,61.9459999,25.1984924,61.4489975,36.8451025,30.4669704,80.7738095,4.3588741,36.7093675,19.7658402\r\n438,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,3.2190568,3.237801,31.225469,82.2360781,77.1589844,81.2772444,21.5834757,42.6953225,20.3710633,63.1830195,26.6479539,61.6953687,35.8789063,29.5507812,79.3336059,4.0960452,36.4207879,19.0721649,3.7244124,3.7326808,31.070337,81.9063998,78.329454,79.6715094,21.1221325,42.7891855,20.8715596,61.9459999,25.1984924,61.4489975,36.8451025,30.4669704,80.7738095,4.3588741,36.7093675,19.7658402,3.7590276,3.8259191,32.708434,81.1103376,77.7229281,78.8065094,21.1838258,43.0387295,20.5792615,60.9961263,24.8536859,62.0206583,39.0460646,32.9887559,80.9208033,3.9635281,35.206422,19.5380774\r\n439,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.0,3.7244124,3.7326808,31.070337,81.9063998,78.329454,79.6715094,21.1221325,42.7891855,20.8715596,61.9459999,25.1984924,61.4489975,36.8451025,30.4669704,80.7738095,4.3588741,36.7093675,19.7658402,3.7590276,3.8259191,32.708434,81.1103376,77.7229281,78.8065094,21.1838258,43.0387295,20.5792615,60.9961263,24.8536859,62.0206583,39.0460646,32.9887559,80.9208033,3.9635281,35.206422,19.5380774,3.863589,3.9176307,34.0799884,79.8390611,77.5785007,79.4244409,20.4880662,43.5031443,20.4558341,59.4334212,23.8350486,62.3913578,41.0854032,34.9948962,81.0738494,4.1317992,36.0071942,20.4441913\r\n440,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.964046,1.028601,15.7651727,74.3248353,75.0695174,61.1113172,22.4791654,21.4208991,19.5463356,69.4704099,38.9322051,52.7041106,18.4943762,15.2404427,67.7426671,4.329685,37.6380668,11.2284063,0.864389,0.8965737,15.6971507,74.6425166,75.1411066,61.0262558,22.3766026,21.022133,19.5498864,69.3207716,38.2453951,53.1440888,18.2053791,14.921769,67.3274155,4.3139584,37.8355493,10.1790425,0.8508798,0.8810351,15.1852637,74.1439463,74.928302,60.7932498,22.2982477,20.9468142,19.9182652,69.0235891,38.2575856,51.7029669,17.9852932,14.6000519,67.0494837,4.3598724,37.4924636,10.007019\r\n441,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.864389,0.8965737,15.6971507,74.6425166,75.1411066,61.0262558,22.3766026,21.022133,19.5498864,69.3207716,38.2453951,53.1440888,18.2053791,14.921769,67.3274155,4.3139584,37.8355493,10.1790425,0.8508798,0.8810351,15.1852637,74.1439463,74.928302,60.7932498,22.2982477,20.9468142,19.9182652,69.0235891,38.2575856,51.7029669,17.9852932,14.6000519,67.0494837,4.3598724,37.4924636,10.007019,0.85203,0.8688308,15.1449457,73.9317172,74.5726454,60.3124591,22.0121089,20.6359497,19.530337,68.8457313,38.3730077,51.3142136,17.7416212,14.2463988,66.6092161,4.2696527,37.6624645,9.7725607\r\n442,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8508798,0.8810351,15.1852637,74.1439463,74.928302,60.7932498,22.2982477,20.9468142,19.9182652,69.0235891,38.2575856,51.7029669,17.9852932,14.6000519,67.0494837,4.3598724,37.4924636,10.007019,0.85203,0.8688308,15.1449457,73.9317172,74.5726454,60.3124591,22.0121089,20.6359497,19.530337,68.8457313,38.3730077,51.3142136,17.7416212,14.2463988,66.6092161,4.2696527,37.6624645,9.7725607,0.8832374,0.9056226,14.8910073,72.8998599,74.4219204,60.8144437,22.1359809,20.8771318,19.3011607,68.8911419,38.0051801,51.5960871,17.5593492,14.0851147,66.2783781,4.52434,37.776666,9.9083166\r\n443,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.85203,0.8688308,15.1449457,73.9317172,74.5726454,60.3124591,22.0121089,20.6359497,19.530337,68.8457313,38.3730077,51.3142136,17.7416212,14.2463988,66.6092161,4.2696527,37.6624645,9.7725607,0.8832374,0.9056226,14.8910073,72.8998599,74.4219204,60.8144437,22.1359809,20.8771318,19.3011607,68.8911419,38.0051801,51.5960871,17.5593492,14.0851147,66.2783781,4.52434,37.776666,9.9083166,0.9525087,0.9721568,14.3004841,72.9545126,74.6076563,60.9867022,22.3647525,20.6321198,18.9280286,69.2152862,38.4288578,51.1114426,17.1884137,13.541056,65.8017405,4.5236693,37.4499166,9.3548342\r\n444,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8832374,0.9056226,14.8910073,72.8998599,74.4219204,60.8144437,22.1359809,20.8771318,19.3011607,68.8911419,38.0051801,51.5960871,17.5593492,14.0851147,66.2783781,4.52434,37.776666,9.9083166,0.9525087,0.9721568,14.3004841,72.9545126,74.6076563,60.9867022,22.3647525,20.6321198,18.9280286,69.2152862,38.4288578,51.1114426,17.1884137,13.541056,65.8017405,4.5236693,37.4499166,9.3548342,0.8966264,0.9123993,14.0855612,73.0110997,74.8548455,61.6765419,22.7028247,20.1997717,19.1706295,69.0057711,38.775465,50.9387548,17.2120664,13.5465783,65.6670922,4.6288078,37.8343032,8.8992169\r\n445,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.9525087,0.9721568,14.3004841,72.9545126,74.6076563,60.9867022,22.3647525,20.6321198,18.9280286,69.2152862,38.4288578,51.1114426,17.1884137,13.541056,65.8017405,4.5236693,37.4499166,9.3548342,0.8966264,0.9123993,14.0855612,73.0110997,74.8548455,61.6765419,22.7028247,20.1997717,19.1706295,69.0057711,38.775465,50.9387548,17.2120664,13.5465783,65.6670922,4.6288078,37.8343032,8.8992169,0.9316359,0.9454315,13.9067164,72.1892092,74.1969458,62.3711159,23.6375846,20.2456289,18.6228112,69.345758,39.2719074,50.3684089,17.0378169,13.276155,64.9771141,4.7942457,37.4229951,8.4237184\r\n446,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8966264,0.9123993,14.0855612,73.0110997,74.8548455,61.6765419,22.7028247,20.1997717,19.1706295,69.0057711,38.775465,50.9387548,17.2120664,13.5465783,65.6670922,4.6288078,37.8343032,8.8992169,0.9316359,0.9454315,13.9067164,72.1892092,74.1969458,62.3711159,23.6375846,20.2456289,18.6228112,69.345758,39.2719074,50.3684089,17.0378169,13.276155,64.9771141,4.7942457,37.4229951,8.4237184,0.9228738,0.9449134,13.6761985,71.8705778,74.0038795,62.3666148,23.7348236,19.9038259,18.6174578,69.2438658,40.0375039,49.9986255,16.9091851,13.2146537,64.6079051,4.8024357,37.6056622,8.0752242\r\n447,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.9316359,0.9454315,13.9067164,72.1892092,74.1969458,62.3711159,23.6375846,20.2456289,18.6228112,69.345758,39.2719074,50.3684089,17.0378169,13.276155,64.9771141,4.7942457,37.4229951,8.4237184,0.9228738,0.9449134,13.6761985,71.8705778,74.0038795,62.3666148,23.7348236,19.9038259,18.6174578,69.2438658,40.0375039,49.9986255,16.9091851,13.2146537,64.6079051,4.8024357,37.6056622,8.0752242,0.9189074,0.9445484,13.7116851,71.3450906,73.2530474,62.0205717,24.3042777,19.5545815,18.7199959,69.5500623,40.8060829,49.3157647,16.5166195,12.9748694,64.1899259,4.9495639,37.3585337,7.7981673\r\n448,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.9228738,0.9449134,13.6761985,71.8705778,74.0038795,62.3666148,23.7348236,19.9038259,18.6174578,69.2438658,40.0375039,49.9986255,16.9091851,13.2146537,64.6079051,4.8024357,37.6056622,8.0752242,0.9189074,0.9445484,13.7116851,71.3450906,73.2530474,62.0205717,24.3042777,19.5545815,18.7199959,69.5500623,40.8060829,49.3157647,16.5166195,12.9748694,64.1899259,4.9495639,37.3585337,7.7981673,0.8921699,0.911782,13.1731399,71.1148279,72.5873748,62.1439269,25.221843,19.1257595,18.4308121,69.6850406,41.2308232,49.2617951,16.1142539,12.6248044,63.7135349,4.9829942,36.9294214,7.562079\r\n449,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.9189074,0.9445484,13.7116851,71.3450906,73.2530474,62.0205717,24.3042777,19.5545815,18.7199959,69.5500623,40.8060829,49.3157647,16.5166195,12.9748694,64.1899259,4.9495639,37.3585337,7.7981673,0.8921699,0.911782,13.1731399,71.1148279,72.5873748,62.1439269,25.221843,19.1257595,18.4308121,69.6850406,41.2308232,49.2617951,16.1142539,12.6248044,63.7135349,4.9829942,36.9294214,7.562079,0.8647272,0.8793865,12.7458465,71.6011487,72.7774183,62.773879,25.3306143,19.0431617,17.8426519,70.1317205,41.2819534,48.7810916,15.7464515,12.1630367,63.574161,4.81321,36.7371983,7.0168427\r\n450,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8921699,0.911782,13.1731399,71.1148279,72.5873748,62.1439269,25.221843,19.1257595,18.4308121,69.6850406,41.2308232,49.2617951,16.1142539,12.6248044,63.7135349,4.9829942,36.9294214,7.562079,0.8647272,0.8793865,12.7458465,71.6011487,72.7774183,62.773879,25.3306143,19.0431617,17.8426519,70.1317205,41.2819534,48.7810916,15.7464515,12.1630367,63.574161,4.81321,36.7371983,7.0168427,0.8016849,0.827454,12.3467397,71.2557925,72.1017205,62.5583335,25.4455112,18.6308641,17.9254153,69.4165195,41.3117596,48.657133,15.655876,12.1010762,63.2483019,4.8568499,36.5724436,6.7364028\r\n451,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8647272,0.8793865,12.7458465,71.6011487,72.7774183,62.773879,25.3306143,19.0431617,17.8426519,70.1317205,41.2819534,48.7810916,15.7464515,12.1630367,63.574161,4.81321,36.7371983,7.0168427,0.8016849,0.827454,12.3467397,71.2557925,72.1017205,62.5583335,25.4455112,18.6308641,17.9254153,69.4165195,41.3117596,48.657133,15.655876,12.1010762,63.2483019,4.8568499,36.5724436,6.7364028,0.8389957,0.8484934,11.9391274,71.5994634,72.079213,62.9107501,25.1731131,18.8495355,18.0885699,69.5423902,41.5146924,48.3538255,15.0230565,11.4993472,63.1808911,4.9627339,36.8608714,6.1141304\r\n452,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8016849,0.827454,12.3467397,71.2557925,72.1017205,62.5583335,25.4455112,18.6308641,17.9254153,69.4165195,41.3117596,48.657133,15.655876,12.1010762,63.2483019,4.8568499,36.5724436,6.7364028,0.8389957,0.8484934,11.9391274,71.5994634,72.079213,62.9107501,25.1731131,18.8495355,18.0885699,69.5423902,41.5146924,48.3538255,15.0230565,11.4993472,63.1808911,4.9627339,36.8608714,6.1141304,0.7746402,0.7816348,11.6493514,72.5232748,73.1206533,62.83636,24.9389888,18.8349416,18.8109015,69.3478979,41.3987304,47.8079645,14.8758822,11.4078839,63.0039604,4.9536875,37.3318202,5.8906692\r\n453,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8389957,0.8484934,11.9391274,71.5994634,72.079213,62.9107501,25.1731131,18.8495355,18.0885699,69.5423902,41.5146924,48.3538255,15.0230565,11.4993472,63.1808911,4.9627339,36.8608714,6.1141304,0.7746402,0.7816348,11.6493514,72.5232748,73.1206533,62.83636,24.9389888,18.8349416,18.8109015,69.3478979,41.3987304,47.8079645,14.8758822,11.4078839,63.0039604,4.9536875,37.3318202,5.8906692,0.8081241,0.8228945,11.2772641,72.4467997,72.8169709,63.1416638,25.4247963,18.6783954,18.6474516,69.7614175,41.7007164,47.42719,14.3897881,11.0149426,62.598178,4.7931458,36.706408,6.2988275\r\n454,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7746402,0.7816348,11.6493514,72.5232748,73.1206533,62.83636,24.9389888,18.8349416,18.8109015,69.3478979,41.3987304,47.8079645,14.8758822,11.4078839,63.0039604,4.9536875,37.3318202,5.8906692,0.8081241,0.8228945,11.2772641,72.4467997,72.8169709,63.1416638,25.4247963,18.6783954,18.6474516,69.7614175,41.7007164,47.42719,14.3897881,11.0149426,62.598178,4.7931458,36.706408,6.2988275,0.7849554,0.7766241,11.0337349,73.5447661,73.0732215,64.1546866,25.8357944,18.653062,18.3442089,69.9695483,41.7030566,49.232206,14.4060199,10.7289811,62.6813979,4.7425445,36.9083077,6.0123227\r\n455,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8081241,0.8228945,11.2772641,72.4467997,72.8169709,63.1416638,25.4247963,18.6783954,18.6474516,69.7614175,41.7007164,47.42719,14.3897881,11.0149426,62.598178,4.7931458,36.706408,6.2988275,0.7849554,0.7766241,11.0337349,73.5447661,73.0732215,64.1546866,25.8357944,18.653062,18.3442089,69.9695483,41.7030566,49.232206,14.4060199,10.7289811,62.6813979,4.7425445,36.9083077,6.0123227,0.8199124,0.8106367,10.9265401,74.7382619,74.4343599,64.6857705,25.207173,18.8252942,19.2825826,70.0501083,41.3261303,49.7653323,14.4048134,10.7599875,63.0371936,4.8146678,37.1763754,6.2434306\r\n456,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7849554,0.7766241,11.0337349,73.5447661,73.0732215,64.1546866,25.8357944,18.653062,18.3442089,69.9695483,41.7030566,49.232206,14.4060199,10.7289811,62.6813979,4.7425445,36.9083077,6.0123227,0.8199124,0.8106367,10.9265401,74.7382619,74.4343599,64.6857705,25.207173,18.8252942,19.2825826,70.0501083,41.3261303,49.7653323,14.4048134,10.7599875,63.0371936,4.8146678,37.1763754,6.2434306,0.8178926,0.8097693,10.5921908,74.810394,75.1712072,64.1774841,25.2199859,18.6537412,19.7874299,69.7697731,41.69915,50.4516074,14.1067298,10.484293,62.5644104,4.8832935,37.1715808,6.5832311\r\n457,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8199124,0.8106367,10.9265401,74.7382619,74.4343599,64.6857705,25.207173,18.8252942,19.2825826,70.0501083,41.3261303,49.7653323,14.4048134,10.7599875,63.0371936,4.8146678,37.1763754,6.2434306,0.8178926,0.8097693,10.5921908,74.810394,75.1712072,64.1774841,25.2199859,18.6537412,19.7874299,69.7697731,41.69915,50.4516074,14.1067298,10.484293,62.5644104,4.8832935,37.1715808,6.5832311,0.8222786,0.8023197,10.3460434,74.2960088,74.6312533,64.2045282,25.6696626,18.9231508,20.0559056,70.5080265,41.8102393,50.660751,13.6840107,9.9961214,62.3365493,5.0729329,37.576153,6.7805836\r\n458,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8178926,0.8097693,10.5921908,74.810394,75.1712072,64.1774841,25.2199859,18.6537412,19.7874299,69.7697731,41.69915,50.4516074,14.1067298,10.484293,62.5644104,4.8832935,37.1715808,6.5832311,0.8222786,0.8023197,10.3460434,74.2960088,74.6312533,64.2045282,25.6696626,18.9231508,20.0559056,70.5080265,41.8102393,50.660751,13.6840107,9.9961214,62.3365493,5.0729329,37.576153,6.7805836,0.7300933,0.7506338,10.1642097,74.1669617,74.8523477,63.3838638,26.0985729,17.5293763,19.3385039,70.6567327,42.1037808,50.6827179,13.6637822,9.9447207,61.848861,5.2108372,37.2576845,6.7823232\r\n459,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8222786,0.8023197,10.3460434,74.2960088,74.6312533,64.2045282,25.6696626,18.9231508,20.0559056,70.5080265,41.8102393,50.660751,13.6840107,9.9961214,62.3365493,5.0729329,37.576153,6.7805836,0.7300933,0.7506338,10.1642097,74.1669617,74.8523477,63.3838638,26.0985729,17.5293763,19.3385039,70.6567327,42.1037808,50.6827179,13.6637822,9.9447207,61.848861,5.2108372,37.2576845,6.7823232,0.7903765,0.8101364,10.1785269,74.5268274,74.5427702,62.7596928,26.1248677,16.9307861,18.7017282,70.9142624,42.2608202,50.7926371,13.5212152,9.7151532,61.736827,5.181442,37.450143,7.6882741\r\n460,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7300933,0.7506338,10.1642097,74.1669617,74.8523477,63.3838638,26.0985729,17.5293763,19.3385039,70.6567327,42.1037808,50.6827179,13.6637822,9.9447207,61.848861,5.2108372,37.2576845,6.7823232,0.7903765,0.8101364,10.1785269,74.5268274,74.5427702,62.7596928,26.1248677,16.9307861,18.7017282,70.9142624,42.2608202,50.7926371,13.5212152,9.7151532,61.736827,5.181442,37.450143,7.6882741,0.7841613,0.8049131,10.0050712,74.5184594,74.7804348,62.2221189,26.0655876,16.8388516,18.9874835,71.0447539,42.0628746,50.5510086,13.6545949,9.7263168,61.7281735,5.3263187,37.8648915,7.5879296\r\n461,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7903765,0.8101364,10.1785269,74.5268274,74.5427702,62.7596928,26.1248677,16.9307861,18.7017282,70.9142624,42.2608202,50.7926371,13.5212152,9.7151532,61.736827,5.181442,37.450143,7.6882741,0.7841613,0.8049131,10.0050712,74.5184594,74.7804348,62.2221189,26.0655876,16.8388516,18.9874835,71.0447539,42.0628746,50.5510086,13.6545949,9.7263168,61.7281735,5.3263187,37.8648915,7.5879296,0.7977218,0.8436652,9.9297331,74.0527628,74.6478381,61.4568534,25.6654108,17.222605,19.233695,71.0314331,41.7242687,49.8633113,13.493413,9.7468187,61.4229812,5.2778404,38.1233981,7.9787315\r\n462,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7841613,0.8049131,10.0050712,74.5184594,74.7804348,62.2221189,26.0655876,16.8388516,18.9874835,71.0447539,42.0628746,50.5510086,13.6545949,9.7263168,61.7281735,5.3263187,37.8648915,7.5879296,0.7977218,0.8436652,9.9297331,74.0527628,74.6478381,61.4568534,25.6654108,17.222605,19.233695,71.0314331,41.7242687,49.8633113,13.493413,9.7468187,61.4229812,5.2778404,38.1233981,7.9787315,0.7769121,0.8359713,10.0511803,72.7187716,73.4367872,61.2510351,25.8320509,17.8745046,18.735917,70.6382562,41.9923123,48.965862,13.4770986,9.7738085,60.8786078,5.1109123,38.3591196,7.142866\r\n463,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7977218,0.8436652,9.9297331,74.0527628,74.6478381,61.4568534,25.6654108,17.222605,19.233695,71.0314331,41.7242687,49.8633113,13.493413,9.7468187,61.4229812,5.2778404,38.1233981,7.9787315,0.7769121,0.8359713,10.0511803,72.7187716,73.4367872,61.2510351,25.8320509,17.8745046,18.735917,70.6382562,41.9923123,48.965862,13.4770986,9.7738085,60.8786078,5.1109123,38.3591196,7.142866,0.7930341,0.8453321,10.2869882,72.5584626,72.6786764,61.0759802,26.1944654,17.5816083,18.870766,70.7336743,42.3643114,47.7883789,13.6061093,9.904334,60.6209062,5.1830529,38.1737781,6.4192233\r\n464,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7769121,0.8359713,10.0511803,72.7187716,73.4367872,61.2510351,25.8320509,17.8745046,18.735917,70.6382562,41.9923123,48.965862,13.4770986,9.7738085,60.8786078,5.1109123,38.3591196,7.142866,0.7930341,0.8453321,10.2869882,72.5584626,72.6786764,61.0759802,26.1944654,17.5816083,18.870766,70.7336743,42.3643114,47.7883789,13.6061093,9.904334,60.6209062,5.1830529,38.1737781,6.4192233,0.829825,0.8793682,10.4508289,72.5114864,73.1311693,61.0605697,25.6998632,16.9664985,18.1960009,70.8976832,42.2245384,47.2090703,13.6193416,10.0531933,60.2279419,5.1209869,37.5736069,6.9991702\r\n465,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7930341,0.8453321,10.2869882,72.5584626,72.6786764,61.0759802,26.1944654,17.5816083,18.870766,70.7336743,42.3643114,47.7883789,13.6061093,9.904334,60.6209062,5.1830529,38.1737781,6.4192233,0.829825,0.8793682,10.4508289,72.5114864,73.1311693,61.0605697,25.6998632,16.9664985,18.1960009,70.8976832,42.2245384,47.2090703,13.6193416,10.0531933,60.2279419,5.1209869,37.5736069,6.9991702,0.8204797,0.8618848,10.5064582,72.3404442,72.0898074,61.2564351,25.9196871,17.5907394,18.8058668,70.6441049,42.2447178,46.6803317,13.7856034,10.260739,59.6829171,4.9656697,37.6758483,7.0652263\r\n466,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.829825,0.8793682,10.4508289,72.5114864,73.1311693,61.0605697,25.6998632,16.9664985,18.1960009,70.8976832,42.2245384,47.2090703,13.6193416,10.0531933,60.2279419,5.1209869,37.5736069,6.9991702,0.8204797,0.8618848,10.5064582,72.3404442,72.0898074,61.2564351,25.9196871,17.5907394,18.8058668,70.6441049,42.2447178,46.6803317,13.7856034,10.260739,59.6829171,4.9656697,37.6758483,7.0652263,0.7951054,0.8311634,10.151469,70.2483571,71.3802941,62.1018093,26.7411306,17.2679437,18.2005241,70.6927352,42.4670202,45.6391259,13.5527364,10.1322171,59.0622506,4.9100692,36.8774324,6.3265393\r\n467,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8204797,0.8618848,10.5064582,72.3404442,72.0898074,61.2564351,25.9196871,17.5907394,18.8058668,70.6441049,42.2447178,46.6803317,13.7856034,10.260739,59.6829171,4.9656697,37.6758483,7.0652263,0.7951054,0.8311634,10.151469,70.2483571,71.3802941,62.1018093,26.7411306,17.2679437,18.2005241,70.6927352,42.4670202,45.6391259,13.5527364,10.1322171,59.0622506,4.9100692,36.8774324,6.3265393,0.7508333,0.7935459,10.1947818,69.82013,71.0401898,61.4905852,27.0070332,17.2508938,17.3911369,70.8696201,42.8441631,44.63164,13.3336462,10.0610616,58.7316115,4.8762934,36.8590386,5.8600427\r\n468,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7951054,0.8311634,10.151469,70.2483571,71.3802941,62.1018093,26.7411306,17.2679437,18.2005241,70.6927352,42.4670202,45.6391259,13.5527364,10.1322171,59.0622506,4.9100692,36.8774324,6.3265393,0.7508333,0.7935459,10.1947818,69.82013,71.0401898,61.4905852,27.0070332,17.2508938,17.3911369,70.8696201,42.8441631,44.63164,13.3336462,10.0610616,58.7316115,4.8762934,36.8590386,5.8600427,0.7543271,0.7859826,9.8488415,69.7111066,71.3099352,61.789409,27.4528411,16.8156899,16.9446652,70.784181,42.8901477,43.2864116,13.3278988,9.8389724,58.348699,4.7254334,36.8109518,5.2519237\r\n469,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7508333,0.7935459,10.1947818,69.82013,71.0401898,61.4905852,27.0070332,17.2508938,17.3911369,70.8696201,42.8441631,44.63164,13.3336462,10.0610616,58.7316115,4.8762934,36.8590386,5.8600427,0.7543271,0.7859826,9.8488415,69.7111066,71.3099352,61.789409,27.4528411,16.8156899,16.9446652,70.784181,42.8901477,43.2864116,13.3278988,9.8389724,58.348699,4.7254334,36.8109518,5.2519237,0.7158729,0.7481552,9.6154651,70.2370845,71.6356747,62.4318317,27.7231884,15.8218027,17.3091647,70.8689705,42.9807846,43.4355128,13.0532429,9.6214506,58.1729346,4.737903,36.6809296,5.2388957\r\n470,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7543271,0.7859826,9.8488415,69.7111066,71.3099352,61.789409,27.4528411,16.8156899,16.9446652,70.784181,42.8901477,43.2864116,13.3278988,9.8389724,58.348699,4.7254334,36.8109518,5.2519237,0.7158729,0.7481552,9.6154651,70.2370845,71.6356747,62.4318317,27.7231884,15.8218027,17.3091647,70.8689705,42.9807846,43.4355128,13.0532429,9.6214506,58.1729346,4.737903,36.6809296,5.2388957,0.6794447,0.7108567,9.7320619,69.6980159,71.0978042,61.8807281,27.8174138,16.07764,16.3985809,70.908164,42.9476386,43.5366594,12.869504,9.4661609,57.5998031,4.6844488,36.1111152,5.2792335\r\n471,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7158729,0.7481552,9.6154651,70.2370845,71.6356747,62.4318317,27.7231884,15.8218027,17.3091647,70.8689705,42.9807846,43.4355128,13.0532429,9.6214506,58.1729346,4.737903,36.6809296,5.2388957,0.6794447,0.7108567,9.7320619,69.6980159,71.0978042,61.8807281,27.8174138,16.07764,16.3985809,70.908164,42.9476386,43.5366594,12.869504,9.4661609,57.5998031,4.6844488,36.1111152,5.2792335,0.654844,0.6883093,9.8524435,69.9803702,71.5591995,62.5188985,28.1306793,16.4157482,17.3489957,70.7321345,43.517965,43.190558,13.1000661,9.5565659,57.1851818,4.7246841,36.3296297,4.7725262\r\n472,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6794447,0.7108567,9.7320619,69.6980159,71.0978042,61.8807281,27.8174138,16.07764,16.3985809,70.908164,42.9476386,43.5366594,12.869504,9.4661609,57.5998031,4.6844488,36.1111152,5.2792335,0.654844,0.6883093,9.8524435,69.9803702,71.5591995,62.5188985,28.1306793,16.4157482,17.3489957,70.7321345,43.517965,43.190558,13.1000661,9.5565659,57.1851818,4.7246841,36.3296297,4.7725262,0.7140052,0.7492297,9.7744379,69.3688099,71.847587,62.1740823,27.9389524,15.8523068,17.0282269,70.4525874,43.4111446,43.2609553,13.0354998,9.3266558,57.0028183,4.7132173,36.3059263,5.0306229\r\n473,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.654844,0.6883093,9.8524435,69.9803702,71.5591995,62.5188985,28.1306793,16.4157482,17.3489957,70.7321345,43.517965,43.190558,13.1000661,9.5565659,57.1851818,4.7246841,36.3296297,4.7725262,0.7140052,0.7492297,9.7744379,69.3688099,71.847587,62.1740823,27.9389524,15.8523068,17.0282269,70.4525874,43.4111446,43.2609553,13.0354998,9.3266558,57.0028183,4.7132173,36.3059263,5.0306229,0.7631173,0.8112554,9.9226447,70.7121062,72.6709033,61.1956961,27.108789,16.2904626,18.0286057,70.1739777,43.1328157,44.2421761,13.2875214,9.3549377,57.1595418,5.0130738,36.3814066,5.7727294\r\n474,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7140052,0.7492297,9.7744379,69.3688099,71.847587,62.1740823,27.9389524,15.8523068,17.0282269,70.4525874,43.4111446,43.2609553,13.0354998,9.3266558,57.0028183,4.7132173,36.3059263,5.0306229,0.7631173,0.8112554,9.9226447,70.7121062,72.6709033,61.1956961,27.108789,16.2904626,18.0286057,70.1739777,43.1328157,44.2421761,13.2875214,9.3549377,57.1595418,5.0130738,36.3814066,5.7727294,0.7709569,0.8106067,9.994754,70.1444564,72.2256074,62.4278176,27.1744849,16.0614849,18.4604698,69.7360135,43.0298399,44.7708561,13.4124384,9.287076,56.8791096,4.9374703,36.0282115,6.2059881\r\n475,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7631173,0.8112554,9.9226447,70.7121062,72.6709033,61.1956961,27.108789,16.2904626,18.0286057,70.1739777,43.1328157,44.2421761,13.2875214,9.3549377,57.1595418,5.0130738,36.3814066,5.7727294,0.7709569,0.8106067,9.994754,70.1444564,72.2256074,62.4278176,27.1744849,16.0614849,18.4604698,69.7360135,43.0298399,44.7708561,13.4124384,9.287076,56.8791096,4.9374703,36.0282115,6.2059881,0.8162926,0.8607486,10.1523246,69.2614279,71.6306494,61.3715392,26.9690241,15.6285426,18.7992598,70.0218188,43.318088,44.2962432,13.3109736,9.3261935,56.6959753,5.2097919,35.8173565,6.374323\r\n476,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7709569,0.8106067,9.994754,70.1444564,72.2256074,62.4278176,27.1744849,16.0614849,18.4604698,69.7360135,43.0298399,44.7708561,13.4124384,9.287076,56.8791096,4.9374703,36.0282115,6.2059881,0.8162926,0.8607486,10.1523246,69.2614279,71.6306494,61.3715392,26.9690241,15.6285426,18.7992598,70.0218188,43.318088,44.2962432,13.3109736,9.3261935,56.6959753,5.2097919,35.8173565,6.374323,0.811156,0.8330733,10.2195744,68.5069754,71.5028773,61.081344,26.5795941,15.4385179,18.3427666,70.3234533,43.0872402,43.6995533,13.3538824,9.3118453,56.1717049,5.1126104,36.0915441,6.885398\r\n477,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8162926,0.8607486,10.1523246,69.2614279,71.6306494,61.3715392,26.9690241,15.6285426,18.7992598,70.0218188,43.318088,44.2962432,13.3109736,9.3261935,56.6959753,5.2097919,35.8173565,6.374323,0.811156,0.8330733,10.2195744,68.5069754,71.5028773,61.081344,26.5795941,15.4385179,18.3427666,70.3234533,43.0872402,43.6995533,13.3538824,9.3118453,56.1717049,5.1126104,36.0915441,6.885398,0.8068147,0.8211485,9.8011903,69.0595642,72.3137443,62.0147812,26.8203452,15.5036566,18.457313,70.6831585,43.0951498,43.1479734,13.4836624,9.3199652,56.0203709,5.0126981,36.4273704,6.8011263\r\n478,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.811156,0.8330733,10.2195744,68.5069754,71.5028773,61.081344,26.5795941,15.4385179,18.3427666,70.3234533,43.0872402,43.6995533,13.3538824,9.3118453,56.1717049,5.1126104,36.0915441,6.885398,0.8068147,0.8211485,9.8011903,69.0595642,72.3137443,62.0147812,26.8203452,15.5036566,18.457313,70.6831585,43.0951498,43.1479734,13.4836624,9.3199652,56.0203709,5.0126981,36.4273704,6.8011263,0.8196624,0.8231143,9.5367821,69.2202365,71.8907725,61.976503,26.7515278,15.2865796,17.5403529,70.8228544,42.4777958,43.8879285,13.3459045,9.1673479,56.129391,4.9735309,36.8603102,6.4806055\r\n479,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8068147,0.8211485,9.8011903,69.0595642,72.3137443,62.0147812,26.8203452,15.5036566,18.457313,70.6831585,43.0951498,43.1479734,13.4836624,9.3199652,56.0203709,5.0126981,36.4273704,6.8011263,0.8196624,0.8231143,9.5367821,69.2202365,71.8907725,61.976503,26.7515278,15.2865796,17.5403529,70.8228544,42.4777958,43.8879285,13.3459045,9.1673479,56.129391,4.9735309,36.8603102,6.4806055,0.7508488,0.7415179,9.4800458,70.1099611,72.4615195,61.6163103,27.1544549,15.4425883,17.7344495,71.4155903,43.3642764,44.1373636,13.1693449,9.1299873,55.9507526,5.0848357,37.0588178,5.8562992\r\n480,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8196624,0.8231143,9.5367821,69.2202365,71.8907725,61.976503,26.7515278,15.2865796,17.5403529,70.8228544,42.4777958,43.8879285,13.3459045,9.1673479,56.129391,4.9735309,36.8603102,6.4806055,0.7508488,0.7415179,9.4800458,70.1099611,72.4615195,61.6163103,27.1544549,15.4425883,17.7344495,71.4155903,43.3642764,44.1373636,13.1693449,9.1299873,55.9507526,5.0848357,37.0588178,5.8562992,0.6846758,0.6709702,9.4208644,70.1674437,70.2233368,62.3653355,26.9747532,14.9676225,16.9234049,71.8872518,43.1711949,42.5902392,13.0811553,9.1791216,55.5759881,4.8774175,37.537434,5.2042802\r\n481,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7508488,0.7415179,9.4800458,70.1099611,72.4615195,61.6163103,27.1544549,15.4425883,17.7344495,71.4155903,43.3642764,44.1373636,13.1693449,9.1299873,55.9507526,5.0848357,37.0588178,5.8562992,0.6846758,0.6709702,9.4208644,70.1674437,70.2233368,62.3653355,26.9747532,14.9676225,16.9234049,71.8872518,43.1711949,42.5902392,13.0811553,9.1791216,55.5759881,4.8774175,37.537434,5.2042802,0.726455,0.6997755,9.4360093,71.1643794,70.9416718,62.1650064,26.7028384,14.5895836,16.8315629,71.8036261,43.3452103,43.1816033,13.1991627,9.2890742,55.6387342,5.0478002,37.8352009,4.9590997\r\n482,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6846758,0.6709702,9.4208644,70.1674437,70.2233368,62.3653355,26.9747532,14.9676225,16.9234049,71.8872518,43.1711949,42.5902392,13.0811553,9.1791216,55.5759881,4.8774175,37.537434,5.2042802,0.726455,0.6997755,9.4360093,71.1643794,70.9416718,62.1650064,26.7028384,14.5895836,16.8315629,71.8036261,43.3452103,43.1816033,13.1991627,9.2890742,55.6387342,5.0478002,37.8352009,4.9590997,0.6521546,0.6145275,9.3167464,71.0880672,71.144206,63.3893315,26.8456869,15.1613695,16.8772848,71.2346053,42.5883727,43.3220628,13.2272034,9.1336995,55.5034997,4.7575929,37.8665105,5.1321133\r\n483,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.726455,0.6997755,9.4360093,71.1643794,70.9416718,62.1650064,26.7028384,14.5895836,16.8315629,71.8036261,43.3452103,43.1816033,13.1991627,9.2890742,55.6387342,5.0478002,37.8352009,4.9590997,0.6521546,0.6145275,9.3167464,71.0880672,71.144206,63.3893315,26.8456869,15.1613695,16.8772848,71.2346053,42.5883727,43.3220628,13.2272034,9.1336995,55.5034997,4.7575929,37.8665105,5.1321133,0.6381757,0.6135001,9.5960462,71.6120925,71.3171033,63.5024136,27.0566113,15.3834083,16.7938341,71.3553162,42.9392227,44.0447813,13.2934178,9.2879085,55.3579155,5.0695934,37.5930749,4.8940459\r\n484,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6521546,0.6145275,9.3167464,71.0880672,71.144206,63.3893315,26.8456869,15.1613695,16.8772848,71.2346053,42.5883727,43.3220628,13.2272034,9.1336995,55.5034997,4.7575929,37.8665105,5.1321133,0.6381757,0.6135001,9.5960462,71.6120925,71.3171033,63.5024136,27.0566113,15.3834083,16.7938341,71.3553162,42.9392227,44.0447813,13.2934178,9.2879085,55.3579155,5.0695934,37.5930749,4.8940459,0.6279561,0.6261366,10.2858731,70.5802494,70.0408513,62.5022692,26.9517816,14.317589,16.4893639,71.1386875,42.8138711,43.8302065,13.4131927,9.4703476,55.3588936,5.2725313,38.1500914,5.2178308\r\n485,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6381757,0.6135001,9.5960462,71.6120925,71.3171033,63.5024136,27.0566113,15.3834083,16.7938341,71.3553162,42.9392227,44.0447813,13.2934178,9.2879085,55.3579155,5.0695934,37.5930749,4.8940459,0.6279561,0.6261366,10.2858731,70.5802494,70.0408513,62.5022692,26.9517816,14.317589,16.4893639,71.1386875,42.8138711,43.8302065,13.4131927,9.4703476,55.3588936,5.2725313,38.1500914,5.2178308,0.6655015,0.6788119,10.3857888,70.0759273,70.1008054,62.5960373,26.7944871,14.4562588,16.6026623,71.1937097,43.4742805,43.7340796,13.6398433,9.6052925,55.1263559,5.3108528,37.5363555,5.7040076\r\n486,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6279561,0.6261366,10.2858731,70.5802494,70.0408513,62.5022692,26.9517816,14.317589,16.4893639,71.1386875,42.8138711,43.8302065,13.4131927,9.4703476,55.3588936,5.2725313,38.1500914,5.2178308,0.6655015,0.6788119,10.3857888,70.0759273,70.1008054,62.5960373,26.7944871,14.4562588,16.6026623,71.1937097,43.4742805,43.7340796,13.6398433,9.6052925,55.1263559,5.3108528,37.5363555,5.7040076,0.6925364,0.7187233,10.5352079,70.4229164,70.2670151,63.9042515,26.4260885,14.1148154,16.6014449,70.7701462,42.6561481,43.4074239,13.8556857,9.7104941,55.1360706,5.2443323,37.3367799,6.0020871\r\n487,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6655015,0.6788119,10.3857888,70.0759273,70.1008054,62.5960373,26.7944871,14.4562588,16.6026623,71.1937097,43.4742805,43.7340796,13.6398433,9.6052925,55.1263559,5.3108528,37.5363555,5.7040076,0.6925364,0.7187233,10.5352079,70.4229164,70.2670151,63.9042515,26.4260885,14.1148154,16.6014449,70.7701462,42.6561481,43.4074239,13.8556857,9.7104941,55.1360706,5.2443323,37.3367799,6.0020871,0.7091245,0.7346921,10.4316138,70.3507811,72.0104217,63.0578605,27.0576356,14.5437241,16.82793,70.568921,42.7586526,45.228569,13.7447313,9.5863811,54.9111175,5.2827466,37.5254627,5.5325744\r\n488,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6925364,0.7187233,10.5352079,70.4229164,70.2670151,63.9042515,26.4260885,14.1148154,16.6014449,70.7701462,42.6561481,43.4074239,13.8556857,9.7104941,55.1360706,5.2443323,37.3367799,6.0020871,0.7091245,0.7346921,10.4316138,70.3507811,72.0104217,63.0578605,27.0576356,14.5437241,16.82793,70.568921,42.7586526,45.228569,13.7447313,9.5863811,54.9111175,5.2827466,37.5254627,5.5325744,0.7232199,0.7682237,10.663813,69.6774689,71.1094639,62.584259,27.3014777,14.6963148,16.4981806,70.8968334,42.5342144,44.318346,13.485316,9.5550882,54.3332218,5.2477333,36.8474254,5.6948798\r\n489,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7091245,0.7346921,10.4316138,70.3507811,72.0104217,63.0578605,27.0576356,14.5437241,16.82793,70.568921,42.7586526,45.228569,13.7447313,9.5863811,54.9111175,5.2827466,37.5254627,5.5325744,0.7232199,0.7682237,10.663813,69.6774689,71.1094639,62.584259,27.3014777,14.6963148,16.4981806,70.8968334,42.5342144,44.318346,13.485316,9.5550882,54.3332218,5.2477333,36.8474254,5.6948798,0.7755429,0.8240575,10.8022522,70.0909485,71.5463161,62.0825588,27.3973594,13.8219756,15.7676404,71.1426607,43.1223922,44.5690427,13.5663635,9.8659412,54.1175785,5.4085466,36.88783,6.0020877\r\n490,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7232199,0.7682237,10.663813,69.6774689,71.1094639,62.584259,27.3014777,14.6963148,16.4981806,70.8968334,42.5342144,44.318346,13.485316,9.5550882,54.3332218,5.2477333,36.8474254,5.6948798,0.7755429,0.8240575,10.8022522,70.0909485,71.5463161,62.0825588,27.3973594,13.8219756,15.7676404,71.1426607,43.1223922,44.5690427,13.5663635,9.8659412,54.1175785,5.4085466,36.88783,6.0020877,0.8696738,0.9170444,10.4448502,69.6214442,71.3672988,61.7827462,27.3025769,13.1213939,15.1511322,71.1261665,42.7623134,43.5704546,13.6186555,9.7228404,54.1464759,5.3337023,37.0592159,5.9286464\r\n491,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7755429,0.8240575,10.8022522,70.0909485,71.5463161,62.0825588,27.3973594,13.8219756,15.7676404,71.1426607,43.1223922,44.5690427,13.5663635,9.8659412,54.1175785,5.4085466,36.88783,6.0020877,0.8696738,0.9170444,10.4448502,69.6214442,71.3672988,61.7827462,27.3025769,13.1213939,15.1511322,71.1261665,42.7623134,43.5704546,13.6186555,9.7228404,54.1464759,5.3337023,37.0592159,5.9286464,0.8764028,0.9188739,9.7391948,69.7895491,72.0353187,62.4106489,26.7417313,13.9559491,15.8156634,71.2728485,42.5903045,43.5922681,13.3284808,9.421182,54.1590787,5.232687,36.6289735,6.1385008\r\n492,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8696738,0.9170444,10.4448502,69.6214442,71.3672988,61.7827462,27.3025769,13.1213939,15.1511322,71.1261665,42.7623134,43.5704546,13.6186555,9.7228404,54.1464759,5.3337023,37.0592159,5.9286464,0.8764028,0.9188739,9.7391948,69.7895491,72.0353187,62.4106489,26.7417313,13.9559491,15.8156634,71.2728485,42.5903045,43.5922681,13.3284808,9.421182,54.1590787,5.232687,36.6289735,6.1385008,0.8214005,0.8617842,9.7208417,69.623508,71.5714726,62.0722377,27.292732,13.0026506,15.7622397,71.0634019,41.9233354,43.0555793,12.9457711,9.1984608,53.764245,5.3173318,36.9160983,5.7855532\r\n493,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8764028,0.9188739,9.7391948,69.7895491,72.0353187,62.4106489,26.7417313,13.9559491,15.8156634,71.2728485,42.5903045,43.5922681,13.3284808,9.421182,54.1590787,5.232687,36.6289735,6.1385008,0.8214005,0.8617842,9.7208417,69.623508,71.5714726,62.0722377,27.292732,13.0026506,15.7622397,71.0634019,41.9233354,43.0555793,12.9457711,9.1984608,53.764245,5.3173318,36.9160983,5.7855532,0.8004605,0.8288345,9.4402749,69.1923366,71.3198117,61.5472699,28.6491777,13.2674368,15.2884164,71.0013763,41.7851306,43.2985043,12.7443159,8.9147716,53.2034196,5.2652662,36.4734811,5.7650767\r\n494,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8214005,0.8617842,9.7208417,69.623508,71.5714726,62.0722377,27.292732,13.0026506,15.7622397,71.0634019,41.9233354,43.0555793,12.9457711,9.1984608,53.764245,5.3173318,36.9160983,5.7855532,0.8004605,0.8288345,9.4402749,69.1923366,71.3198117,61.5472699,28.6491777,13.2674368,15.2884164,71.0013763,41.7851306,43.2985043,12.7443159,8.9147716,53.2034196,5.2652662,36.4734811,5.7650767,0.817335,0.8521076,9.8892007,69.3593048,71.5442789,62.1190443,28.8325652,12.6667069,15.1574666,70.3735467,41.5650104,43.0530624,13.020717,9.0312979,53.2579304,5.2716711,36.1831471,5.848252\r\n495,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.8004605,0.8288345,9.4402749,69.1923366,71.3198117,61.5472699,28.6491777,13.2674368,15.2884164,71.0013763,41.7851306,43.2985043,12.7443159,8.9147716,53.2034196,5.2652662,36.4734811,5.7650767,0.817335,0.8521076,9.8892007,69.3593048,71.5442789,62.1190443,28.8325652,12.6667069,15.1574666,70.3735467,41.5650104,43.0530624,13.020717,9.0312979,53.2579304,5.2716711,36.1831471,5.848252,0.7882551,0.8099993,9.5751668,69.3880992,71.9208771,62.8237362,28.7185158,12.379041,15.1767048,70.0294333,40.9357094,43.6531149,13.0152654,8.7949832,52.9965455,5.1710803,36.9852114,5.4425138\r\n496,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.817335,0.8521076,9.8892007,69.3593048,71.5442789,62.1190443,28.8325652,12.6667069,15.1574666,70.3735467,41.5650104,43.0530624,13.020717,9.0312979,53.2579304,5.2716711,36.1831471,5.848252,0.7882551,0.8099993,9.5751668,69.3880992,71.9208771,62.8237362,28.7185158,12.379041,15.1767048,70.0294333,40.9357094,43.6531149,13.0152654,8.7949832,52.9965455,5.1710803,36.9852114,5.4425138,0.6935588,0.7300369,9.665053,69.4502838,71.8447234,62.8322933,28.7360978,12.2868756,15.5613351,69.7954102,40.5721967,44.4870885,13.0413694,8.8073695,52.9661026,5.1261051,37.0067265,4.3190964\r\n497,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7882551,0.8099993,9.5751668,69.3880992,71.9208771,62.8237362,28.7185158,12.379041,15.1767048,70.0294333,40.9357094,43.6531149,13.0152654,8.7949832,52.9965455,5.1710803,36.9852114,5.4425138,0.6935588,0.7300369,9.665053,69.4502838,71.8447234,62.8322933,28.7360978,12.2868756,15.5613351,69.7954102,40.5721967,44.4870885,13.0413694,8.8073695,52.9661026,5.1261051,37.0067265,4.3190964,0.6827211,0.7045986,9.6692632,69.6205871,71.6904043,62.3275986,29.3258655,12.4454357,16.1207433,69.3541054,40.5009855,44.6363138,13.0833573,8.7490597,53.1520234,5.0977207,37.0631744,4.3059588\r\n498,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6935588,0.7300369,9.665053,69.4502838,71.8447234,62.8322933,28.7360978,12.2868756,15.5613351,69.7954102,40.5721967,44.4870885,13.0413694,8.8073695,52.9661026,5.1261051,37.0067265,4.3190964,0.6827211,0.7045986,9.6692632,69.6205871,71.6904043,62.3275986,29.3258655,12.4454357,16.1207433,69.3541054,40.5009855,44.6363138,13.0833573,8.7490597,53.1520234,5.0977207,37.0631744,4.3059588,0.6674859,0.6781263,9.9102548,69.5881341,71.1893826,62.2416934,29.8739116,11.8590182,15.6231438,69.1150696,40.5860385,44.9227484,13.1967449,8.8210106,52.8909025,5.0409757,37.2085285,3.9898901\r\n499,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6827211,0.7045986,9.6692632,69.6205871,71.6904043,62.3275986,29.3258655,12.4454357,16.1207433,69.3541054,40.5009855,44.6363138,13.0833573,8.7490597,53.1520234,5.0977207,37.0631744,4.3059588,0.6674859,0.6781263,9.9102548,69.5881341,71.1893826,62.2416934,29.8739116,11.8590182,15.6231438,69.1150696,40.5860385,44.9227484,13.1967449,8.8210106,52.8909025,5.0409757,37.2085285,3.9898901,0.6808625,0.6978626,9.6744648,70.3445976,72.3355045,64.0214474,29.7964654,12.179999,15.9903846,68.9661031,40.3631273,45.5803729,13.1851267,8.8129662,53.5364972,4.8361363,36.3706481,4.1624787\r\n500,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6674859,0.6781263,9.9102548,69.5881341,71.1893826,62.2416934,29.8739116,11.8590182,15.6231438,69.1150696,40.5860385,44.9227484,13.1967449,8.8210106,52.8909025,5.0409757,37.2085285,3.9898901,0.6808625,0.6978626,9.6744648,70.3445976,72.3355045,64.0214474,29.7964654,12.179999,15.9903846,68.9661031,40.3631273,45.5803729,13.1851267,8.8129662,53.5364972,4.8361363,36.3706481,4.1624787,0.681013,0.712844,9.8247469,69.811087,71.5915338,63.857955,28.6641016,11.600278,15.7912835,69.3142559,40.5382862,45.4996555,13.3734535,8.8996582,54.2080882,4.9160181,36.7924518,3.9342542\r\n501,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6808625,0.6978626,9.6744648,70.3445976,72.3355045,64.0214474,29.7964654,12.179999,15.9903846,68.9661031,40.3631273,45.5803729,13.1851267,8.8129662,53.5364972,4.8361363,36.3706481,4.1624787,0.681013,0.712844,9.8247469,69.811087,71.5915338,63.857955,28.6641016,11.600278,15.7912835,69.3142559,40.5382862,45.4996555,13.3734535,8.8996582,54.2080882,4.9160181,36.7924518,3.9342542,0.6892848,0.7097383,9.5804054,69.9021089,71.7778841,64.5258253,28.3211217,11.6727643,15.3724537,69.4125075,40.7859631,46.260591,13.2471632,8.85144,54.6705798,4.7798548,36.6946484,4.1410958\r\n502,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.681013,0.712844,9.8247469,69.811087,71.5915338,63.857955,28.6641016,11.600278,15.7912835,69.3142559,40.5382862,45.4996555,13.3734535,8.8996582,54.2080882,4.9160181,36.7924518,3.9342542,0.6892848,0.7097383,9.5804054,69.9021089,71.7778841,64.5258253,28.3211217,11.6727643,15.3724537,69.4125075,40.7859631,46.260591,13.2471632,8.85144,54.6705798,4.7798548,36.6946484,4.1410958,0.7697465,0.7882068,9.6587436,70.2722454,72.1178801,64.3864236,28.5878468,11.6594631,15.8597829,69.964985,41.8569679,46.2675848,13.636363,9.0522482,55.131361,4.8064171,36.2873534,4.0429806\r\n503,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.6892848,0.7097383,9.5804054,69.9021089,71.7778841,64.5258253,28.3211217,11.6727643,15.3724537,69.4125075,40.7859631,46.260591,13.2471632,8.85144,54.6705798,4.7798548,36.6946484,4.1410958,0.7697465,0.7882068,9.6587436,70.2722454,72.1178801,64.3864236,28.5878468,11.6594631,15.8597829,69.964985,41.8569679,46.2675848,13.636363,9.0522482,55.131361,4.8064171,36.2873534,4.0429806,0.849483,0.8425759,9.8607809,70.11802,72.0148098,65.2026875,28.8493836,12.0879383,15.8206117,69.9077328,41.9622184,46.6673246,14.0542024,9.2865029,55.3922705,4.6774909,36.3104809,4.6239755\r\n504,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.7697465,0.7882068,9.6587436,70.2722454,72.1178801,64.3864236,28.5878468,11.6594631,15.8597829,69.964985,41.8569679,46.2675848,13.636363,9.0522482,55.131361,4.8064171,36.2873534,4.0429806,0.849483,0.8425759,9.8607809,70.11802,72.0148098,65.2026875,28.8493836,12.0879383,15.8206117,69.9077328,41.9622184,46.6673246,14.0542024,9.2865029,55.3922705,4.6774909,36.3104809,4.6239755,0.81284,0.82456,9.9550139,70.1033962,72.3582767,65.8672141,28.5124558,12.1348615,15.6082408,70.3267694,42.1077716,47.3707588,14.3309281,9.5669067,55.2184611,4.6633558,35.7912818,4.5547609\r\n505,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.849483,0.8425759,9.8607809,70.11802,72.0148098,65.2026875,28.8493836,12.0879383,15.8206117,69.9077328,41.9622184,46.6673246,14.0542024,9.2865029,55.3922705,4.6774909,36.3104809,4.6239755,0.81284,0.82456,9.9550139,70.1033962,72.3582767,65.8672141,28.5124558,12.1348615,15.6082408,70.3267694,42.1077716,47.3707588,14.3309281,9.5669067,55.2184611,4.6633558,35.7912818,4.5547609,0.9241313,0.9269638,10.079178,70.9024362,72.5385795,65.7538898,28.425585,11.9291235,15.7148758,70.3044408,41.8699368,47.4214202,14.4802673,9.6108942,55.6371985,4.7769643,35.0332342,4.1968916\r\n506,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.81284,0.82456,9.9550139,70.1033962,72.3582767,65.8672141,28.5124558,12.1348615,15.6082408,70.3267694,42.1077716,47.3707588,14.3309281,9.5669067,55.2184611,4.6633558,35.7912818,4.5547609,0.9241313,0.9269638,10.079178,70.9024362,72.5385795,65.7538898,28.425585,11.9291235,15.7148758,70.3044408,41.8699368,47.4214202,14.4802673,9.6108942,55.6371985,4.7769643,35.0332342,4.1968916,0.9736738,0.9671069,10.5735602,69.3267041,72.086919,63.7203085,27.8744192,11.5242578,16.5045734,70.6580043,42.44516,46.6504977,14.8200077,9.7510369,55.5010154,4.798883,36.0344848,4.504049\r\n507,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.9241313,0.9269638,10.079178,70.9024362,72.5385795,65.7538898,28.425585,11.9291235,15.7148758,70.3044408,41.8699368,47.4214202,14.4802673,9.6108942,55.6371985,4.7769643,35.0332342,4.1968916,0.9736738,0.9671069,10.5735602,69.3267041,72.086919,63.7203085,27.8744192,11.5242578,16.5045734,70.6580043,42.44516,46.6504977,14.8200077,9.7510369,55.5010154,4.798883,36.0344848,4.504049,1.0444382,1.0327644,10.8790168,69.8122401,72.1865567,63.7343776,28.1123426,11.9852802,16.4745729,70.2649727,42.6567121,46.9667641,14.8659223,9.9497199,55.2284993,4.7090941,36.0579142,4.7830375\r\n508,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.9736738,0.9671069,10.5735602,69.3267041,72.086919,63.7203085,27.8744192,11.5242578,16.5045734,70.6580043,42.44516,46.6504977,14.8200077,9.7510369,55.5010154,4.798883,36.0344848,4.504049,1.0444382,1.0327644,10.8790168,69.8122401,72.1865567,63.7343776,28.1123426,11.9852802,16.4745729,70.2649727,42.6567121,46.9667641,14.8659223,9.9497199,55.2284993,4.7090941,36.0579142,4.7830375,1.0487088,1.0369275,11.0901149,69.6360863,71.9468097,63.3040278,28.2410629,11.8453771,17.1762584,70.7242871,43.0828197,46.4610579,14.9887258,10.1521967,54.8933974,4.6920648,35.6732548,4.5812803\r\n509,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.0444382,1.0327644,10.8790168,69.8122401,72.1865567,63.7343776,28.1123426,11.9852802,16.4745729,70.2649727,42.6567121,46.9667641,14.8659223,9.9497199,55.2284993,4.7090941,36.0579142,4.7830375,1.0487088,1.0369275,11.0901149,69.6360863,71.9468097,63.3040278,28.2410629,11.8453771,17.1762584,70.7242871,43.0828197,46.4610579,14.9887258,10.1521967,54.8933974,4.6920648,35.6732548,4.5812803,0.9908201,0.9630655,11.1330465,69.3332159,71.9747661,63.7530334,28.0703266,12.0545817,16.7067092,70.5772308,42.7559998,46.3914749,14.5864063,10.0476553,54.7080338,4.7012892,36.229699,4.8645928\r\n510,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.0487088,1.0369275,11.0901149,69.6360863,71.9468097,63.3040278,28.2410629,11.8453771,17.1762584,70.7242871,43.0828197,46.4610579,14.9887258,10.1521967,54.8933974,4.6920648,35.6732548,4.5812803,0.9908201,0.9630655,11.1330465,69.3332159,71.9747661,63.7530334,28.0703266,12.0545817,16.7067092,70.5772308,42.7559998,46.3914749,14.5864063,10.0476553,54.7080338,4.7012892,36.229699,4.8645928,1.0344462,1.0248315,10.7872284,69.9584218,71.5429203,63.0944303,27.7041398,11.7359952,16.393863,70.773391,43.1240357,45.7111784,14.2163042,9.7804964,54.3165043,4.7871736,35.6640873,5.1551557\r\n511,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,0.9908201,0.9630655,11.1330465,69.3332159,71.9747661,63.7530334,28.0703266,12.0545817,16.7067092,70.5772308,42.7559998,46.3914749,14.5864063,10.0476553,54.7080338,4.7012892,36.229699,4.8645928,1.0344462,1.0248315,10.7872284,69.9584218,71.5429203,63.0944303,27.7041398,11.7359952,16.393863,70.773391,43.1240357,45.7111784,14.2163042,9.7804964,54.3165043,4.7871736,35.6640873,5.1551557,1.1294853,1.1294853,10.8040403,70.2207229,71.2133914,62.931527,28.2051612,11.5857241,16.6642764,70.5805976,43.5924143,44.7186045,14.0918454,9.6713242,54.1037846,4.7868063,35.7878727,5.45\r\n512,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.0344462,1.0248315,10.7872284,69.9584218,71.5429203,63.0944303,27.7041398,11.7359952,16.393863,70.773391,43.1240357,45.7111784,14.2163042,9.7804964,54.3165043,4.7871736,35.6640873,5.1551557,1.1294853,1.1294853,10.8040403,70.2207229,71.2133914,62.931527,28.2051612,11.5857241,16.6642764,70.5805976,43.5924143,44.7186045,14.0918454,9.6713242,54.1037846,4.7868063,35.7878727,5.45,1.0421526,1.0561171,11.0093271,69.8789556,71.5387688,63.3231146,28.2511582,11.8193458,16.6244761,70.4691472,43.794879,45.2374168,14.2035096,9.9418881,53.7455353,4.5916041,36.0915503,5.5996036\r\n513,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.1294853,1.1294853,10.8040403,70.2207229,71.2133914,62.931527,28.2051612,11.5857241,16.6642764,70.5805976,43.5924143,44.7186045,14.0918454,9.6713242,54.1037846,4.7868063,35.7878727,5.45,1.0421526,1.0561171,11.0093271,69.8789556,71.5387688,63.3231146,28.2511582,11.8193458,16.6244761,70.4691472,43.794879,45.2374168,14.2035096,9.9418881,53.7455353,4.5916041,36.0915503,5.5996036,1.0469064,1.0585214,11.1450597,71.1559728,71.0475671,64.4484325,28.4788639,12.4239354,15.2274079,70.4197347,43.2428471,46.0790269,14.2266013,10.0652786,53.1700117,4.552893,35.6934654,5.8731809\r\n514,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.0421526,1.0561171,11.0093271,69.8789556,71.5387688,63.3231146,28.2511582,11.8193458,16.6244761,70.4691472,43.794879,45.2374168,14.2035096,9.9418881,53.7455353,4.5916041,36.0915503,5.5996036,1.0469064,1.0585214,11.1450597,71.1559728,71.0475671,64.4484325,28.4788639,12.4239354,15.2274079,70.4197347,43.2428471,46.0790269,14.2266013,10.0652786,53.1700117,4.552893,35.6934654,5.8731809,1.0802379,1.0748016,11.3642589,70.1987326,71.070045,64.3339135,28.8088002,12.6645974,15.3873112,70.7336063,42.7415415,46.0045354,14.719334,10.3521237,52.9435606,4.6512962,35.5081091,6.2114996\r\n515,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.0469064,1.0585214,11.1450597,71.1559728,71.0475671,64.4484325,28.4788639,12.4239354,15.2274079,70.4197347,43.2428471,46.0790269,14.2266013,10.0652786,53.1700117,4.552893,35.6934654,5.8731809,1.0802379,1.0748016,11.3642589,70.1987326,71.070045,64.3339135,28.8088002,12.6645974,15.3873112,70.7336063,42.7415415,46.0045354,14.719334,10.3521237,52.9435606,4.6512962,35.5081091,6.2114996,1.1360682,1.1409696,11.7705471,69.3434967,70.6619953,64.5899793,29.2915255,12.5424824,14.8194511,71.2503932,42.7031333,45.2864424,14.9503336,10.579474,52.4307078,4.7611147,35.7534844,6.8446609\r\n516,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.0802379,1.0748016,11.3642589,70.1987326,71.070045,64.3339135,28.8088002,12.6645974,15.3873112,70.7336063,42.7415415,46.0045354,14.719334,10.3521237,52.9435606,4.6512962,35.5081091,6.2114996,1.1360682,1.1409696,11.7705471,69.3434967,70.6619953,64.5899793,29.2915255,12.5424824,14.8194511,71.2503932,42.7031333,45.2864424,14.9503336,10.579474,52.4307078,4.7611147,35.7534844,6.8446609,1.1527284,1.1863053,12.0157273,69.1895687,70.2815224,63.8568416,29.5540092,11.9355043,14.4822212,71.2130026,42.9127774,44.9033715,15.6458562,11.0925758,52.6180847,4.8238965,35.0265559,7.1100917\r\n517,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.1360682,1.1409696,11.7705471,69.3434967,70.6619953,64.5899793,29.2915255,12.5424824,14.8194511,71.2503932,42.7031333,45.2864424,14.9503336,10.579474,52.4307078,4.7611147,35.7534844,6.8446609,1.1527284,1.1863053,12.0157273,69.1895687,70.2815224,63.8568416,29.5540092,11.9355043,14.4822212,71.2130026,42.9127774,44.9033715,15.6458562,11.0925758,52.6180847,4.8238965,35.0265559,7.1100917,1.2341328,1.2671939,13.1236932,68.9018185,70.4898777,64.2038995,30.0122577,11.8386904,14.4495506,71.3890829,42.8371699,45.5572786,16.3300917,11.8576898,53.0534333,5.0378491,35.6165833,6.9859384\r\n518,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.1527284,1.1863053,12.0157273,69.1895687,70.2815224,63.8568416,29.5540092,11.9355043,14.4822212,71.2130026,42.9127774,44.9033715,15.6458562,11.0925758,52.6180847,4.8238965,35.0265559,7.1100917,1.2341328,1.2671939,13.1236932,68.9018185,70.4898777,64.2038995,30.0122577,11.8386904,14.4495506,71.3890829,42.8371699,45.5572786,16.3300917,11.8576898,53.0534333,5.0378491,35.6165833,6.9859384,1.2216293,1.242837,13.9523768,68.9847915,70.7106427,64.6488048,29.4868379,11.8313599,13.9863669,71.4262544,41.8894262,47.2923513,17.1179015,12.7656347,53.6650014,4.9040829,35.7202724,7.1542749\r\n519,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.2341328,1.2671939,13.1236932,68.9018185,70.4898777,64.2038995,30.0122577,11.8386904,14.4495506,71.3890829,42.8371699,45.5572786,16.3300917,11.8576898,53.0534333,5.0378491,35.6165833,6.9859384,1.2216293,1.242837,13.9523768,68.9847915,70.7106427,64.6488048,29.4868379,11.8313599,13.9863669,71.4262544,41.8894262,47.2923513,17.1179015,12.7656347,53.6650014,4.9040829,35.7202724,7.1542749,1.3541907,1.3803388,14.8174733,68.9760928,70.483512,65.3929467,29.7885642,12.1077331,13.9374807,71.6116487,42.330786,47.3386176,18.1447968,13.6400217,53.990776,4.9354466,36.0813211,8.3771594\r\n520,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.2216293,1.242837,13.9523768,68.9847915,70.7106427,64.6488048,29.4868379,11.8313599,13.9863669,71.4262544,41.8894262,47.2923513,17.1179015,12.7656347,53.6650014,4.9040829,35.7202724,7.1542749,1.3541907,1.3803388,14.8174733,68.9760928,70.483512,65.3929467,29.7885642,12.1077331,13.9374807,71.6116487,42.330786,47.3386176,18.1447968,13.6400217,53.990776,4.9354466,36.0813211,8.3771594,1.4733941,1.50629,15.8011965,68.489245,69.941145,65.3821553,29.8990485,12.2363349,13.8549937,71.3930545,42.4218056,46.9138129,19.2644233,14.4759636,54.4826543,4.8921483,35.6894819,9.1683708\r\n521,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.3541907,1.3803388,14.8174733,68.9760928,70.483512,65.3929467,29.7885642,12.1077331,13.9374807,71.6116487,42.330786,47.3386176,18.1447968,13.6400217,53.990776,4.9354466,36.0813211,8.3771594,1.4733941,1.50629,15.8011965,68.489245,69.941145,65.3821553,29.8990485,12.2363349,13.8549937,71.3930545,42.4218056,46.9138129,19.2644233,14.4759636,54.4826543,4.8921483,35.6894819,9.1683708,1.5946808,1.6380552,16.9596516,68.9312736,69.8783504,65.3678466,28.9821557,11.8995549,13.9047565,71.606184,42.5979589,47.4425385,20.3322103,15.5560927,55.0083622,4.9478396,35.3230402,10.1286167\r\n522,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.4733941,1.50629,15.8011965,68.489245,69.941145,65.3821553,29.8990485,12.2363349,13.8549937,71.3930545,42.4218056,46.9138129,19.2644233,14.4759636,54.4826543,4.8921483,35.6894819,9.1683708,1.5946808,1.6380552,16.9596516,68.9312736,69.8783504,65.3678466,28.9821557,11.8995549,13.9047565,71.606184,42.5979589,47.4425385,20.3322103,15.5560927,55.0083622,4.9478396,35.3230402,10.1286167,1.6889079,1.7327394,18.0248548,69.5944486,69.8692801,65.1224316,28.3829776,12.0097047,14.1839342,70.3453386,41.0771837,48.8067861,21.6007384,16.6342704,56.2139881,4.8635054,35.3313781,11.3763153\r\n523,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.5946808,1.6380552,16.9596516,68.9312736,69.8783504,65.3678466,28.9821557,11.8995549,13.9047565,71.606184,42.5979589,47.4425385,20.3322103,15.5560927,55.0083622,4.9478396,35.3230402,10.1286167,1.6889079,1.7327394,18.0248548,69.5944486,69.8692801,65.1224316,28.3829776,12.0097047,14.1839342,70.3453386,41.0771837,48.8067861,21.6007384,16.6342704,56.2139881,4.8635054,35.3313781,11.3763153,1.9011856,1.9429755,19.4873113,69.5492963,69.8832882,65.3531655,27.9295101,12.5067695,14.5767986,69.3351816,39.6837627,49.9468197,23.4681148,18.1953524,56.7129613,4.6124563,35.7254087,12.7813034\r\n524,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.6889079,1.7327394,18.0248548,69.5944486,69.8692801,65.1224316,28.3829776,12.0097047,14.1839342,70.3453386,41.0771837,48.8067861,21.6007384,16.6342704,56.2139881,4.8635054,35.3313781,11.3763153,1.9011856,1.9429755,19.4873113,69.5492963,69.8832882,65.3531655,27.9295101,12.5067695,14.5767986,69.3351816,39.6837627,49.9468197,23.4681148,18.1953524,56.7129613,4.6124563,35.7254087,12.7813034,2.1889652,2.2637495,20.7500636,69.6644431,70.0511473,65.2460346,27.2133266,13.0491866,14.6213595,68.0256421,38.4392753,50.500163,25.3899321,19.7954609,57.2901647,4.2729775,35.551145,14.9759736\r\n525,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,1.9011856,1.9429755,19.4873113,69.5492963,69.8832882,65.3531655,27.9295101,12.5067695,14.5767986,69.3351816,39.6837627,49.9468197,23.4681148,18.1953524,56.7129613,4.6124563,35.7254087,12.7813034,2.1889652,2.2637495,20.7500636,69.6644431,70.0511473,65.2460346,27.2133266,13.0491866,14.6213595,68.0256421,38.4392753,50.500163,25.3899321,19.7954609,57.2901647,4.2729775,35.551145,14.9759736,2.6369618,2.7247921,22.4444964,69.3905157,69.8848498,64.5786848,26.5199963,13.3416142,14.9067935,67.1642964,37.9635779,50.3606045,27.7054888,21.5751848,57.8472976,4.2093975,35.7447905,16.6414913\r\n526,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,2.1889652,2.2637495,20.7500636,69.6644431,70.0511473,65.2460346,27.2133266,13.0491866,14.6213595,68.0256421,38.4392753,50.500163,25.3899321,19.7954609,57.2901647,4.2729775,35.551145,14.9759736,2.6369618,2.7247921,22.4444964,69.3905157,69.8848498,64.5786848,26.5199963,13.3416142,14.9067935,67.1642964,37.9635779,50.3606045,27.7054888,21.5751848,57.8472976,4.2093975,35.7447905,16.6414913,3.1406978,3.2707451,24.2023124,69.75469,69.8972491,64.8083921,25.576689,13.3063488,15.0343176,66.2327995,36.9002561,51.3173773,29.651319,23.2763958,58.0981419,4.2059426,35.8953223,19.0904894\r\n527,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.0,2.6369618,2.7247921,22.4444964,69.3905157,69.8848498,64.5786848,26.5199963,13.3416142,14.9067935,67.1642964,37.9635779,50.3606045,27.7054888,21.5751848,57.8472976,4.2093975,35.7447905,16.6414913,3.1406978,3.2707451,24.2023124,69.75469,69.8972491,64.8083921,25.576689,13.3063488,15.0343176,66.2327995,36.9002561,51.3173773,29.651319,23.2763958,58.0981419,4.2059426,35.8953223,19.0904894,3.4983571,3.6379666,26.3080664,70.621179,70.5843682,65.0478748,24.8873984,13.1933153,15.102693,65.3491775,36.3580686,53.3282733,31.5185904,25.1662707,59.0591268,4.2867085,36.1857026,20.3138426\r\n528,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0978218,1.1408971,18.4503181,72.8460968,74.7064034,57.7709107,23.593695,19.7113558,19.5096597,66.3487893,35.6181257,49.6091078,22.2471038,17.8900116,68.2082232,4.0205724,37.450078,12.6478367,1.1348459,1.1783712,17.5972363,72.9476435,75.4697744,57.2907638,24.1459286,20.0726337,19.0912825,66.8786935,35.7168722,50.0281232,21.724376,17.1691275,67.6556719,3.9968273,37.3991966,12.6532711,1.083963,1.0981509,17.0571732,71.7234476,74.3756658,56.22122,24.045413,20.3470077,18.7261649,66.8551685,35.7417901,49.7431736,21.5889278,16.8882433,67.6548159,4.4321321,37.8175246,12.4599493\r\n529,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1348459,1.1783712,17.5972363,72.9476435,75.4697744,57.2907638,24.1459286,20.0726337,19.0912825,66.8786935,35.7168722,50.0281232,21.724376,17.1691275,67.6556719,3.9968273,37.3991966,12.6532711,1.083963,1.0981509,17.0571732,71.7234476,74.3756658,56.22122,24.045413,20.3470077,18.7261649,66.8551685,35.7417901,49.7431736,21.5889278,16.8882433,67.6548159,4.4321321,37.8175246,12.4599493,1.1898354,1.193349,16.8098183,70.6980519,74.2652432,56.1755248,23.9477458,21.0217942,19.4055269,66.5746134,35.6753151,49.6468739,20.7307296,16.2225994,67.4236536,4.582301,37.5232774,13.5469151\r\n530,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.083963,1.0981509,17.0571732,71.7234476,74.3756658,56.22122,24.045413,20.3470077,18.7261649,66.8551685,35.7417901,49.7431736,21.5889278,16.8882433,67.6548159,4.4321321,37.8175246,12.4599493,1.1898354,1.193349,16.8098183,70.6980519,74.2652432,56.1755248,23.9477458,21.0217942,19.4055269,66.5746134,35.6753151,49.6468739,20.7307296,16.2225994,67.4236536,4.582301,37.5232774,13.5469151,1.1350329,1.1394929,16.8042773,70.4150547,74.0505731,56.6821703,24.4288391,21.1504986,19.5865058,66.5935604,35.7083668,49.2424664,20.5920032,16.390955,66.9192618,4.5798195,37.5808431,13.6816351\r\n531,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1898354,1.193349,16.8098183,70.6980519,74.2652432,56.1755248,23.9477458,21.0217942,19.4055269,66.5746134,35.6753151,49.6468739,20.7307296,16.2225994,67.4236536,4.582301,37.5232774,13.5469151,1.1350329,1.1394929,16.8042773,70.4150547,74.0505731,56.6821703,24.4288391,21.1504986,19.5865058,66.5935604,35.7083668,49.2424664,20.5920032,16.390955,66.9192618,4.5798195,37.5808431,13.6816351,1.1128462,1.0956647,16.4094785,69.8408655,73.1449386,55.6148868,24.0387505,20.6001699,18.9009702,66.8149136,34.8919553,47.4930921,20.2219039,16.2740182,66.4747998,4.3140635,36.8166267,12.8775246\r\n532,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1350329,1.1394929,16.8042773,70.4150547,74.0505731,56.6821703,24.4288391,21.1504986,19.5865058,66.5935604,35.7083668,49.2424664,20.5920032,16.390955,66.9192618,4.5798195,37.5808431,13.6816351,1.1128462,1.0956647,16.4094785,69.8408655,73.1449386,55.6148868,24.0387505,20.6001699,18.9009702,66.8149136,34.8919553,47.4930921,20.2219039,16.2740182,66.4747998,4.3140635,36.8166267,12.8775246,1.0105707,1.0002035,16.4108739,69.4188936,73.1161687,56.0122,24.2259586,20.4860051,18.6946546,66.735965,34.8015021,47.0632256,19.8013219,15.8752783,66.6387628,4.1538422,35.8352763,13.8278895\r\n533,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1128462,1.0956647,16.4094785,69.8408655,73.1449386,55.6148868,24.0387505,20.6001699,18.9009702,66.8149136,34.8919553,47.4930921,20.2219039,16.2740182,66.4747998,4.3140635,36.8166267,12.8775246,1.0105707,1.0002035,16.4108739,69.4188936,73.1161687,56.0122,24.2259586,20.4860051,18.6946546,66.735965,34.8015021,47.0632256,19.8013219,15.8752783,66.6387628,4.1538422,35.8352763,13.8278895,1.0455048,1.0502189,15.5385712,69.4754078,71.4144897,54.7076566,23.8255912,20.9789768,19.8742958,66.5955871,34.8601108,46.5707055,19.2370197,15.2698767,66.3740885,3.9800052,36.3342371,14.4069235\r\n534,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0105707,1.0002035,16.4108739,69.4188936,73.1161687,56.0122,24.2259586,20.4860051,18.6946546,66.735965,34.8015021,47.0632256,19.8013219,15.8752783,66.6387628,4.1538422,35.8352763,13.8278895,1.0455048,1.0502189,15.5385712,69.4754078,71.4144897,54.7076566,23.8255912,20.9789768,19.8742958,66.5955871,34.8601108,46.5707055,19.2370197,15.2698767,66.3740885,3.9800052,36.3342371,14.4069235,0.9697447,0.9745422,15.5448672,69.2620926,71.1730779,54.5995133,23.9575153,22.1858754,20.4443157,66.8317049,35.2712037,45.5610239,19.0150439,15.3246119,66.201199,4.0193015,35.978529,13.7524071\r\n535,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0455048,1.0502189,15.5385712,69.4754078,71.4144897,54.7076566,23.8255912,20.9789768,19.8742958,66.5955871,34.8601108,46.5707055,19.2370197,15.2698767,66.3740885,3.9800052,36.3342371,14.4069235,0.9697447,0.9745422,15.5448672,69.2620926,71.1730779,54.5995133,23.9575153,22.1858754,20.4443157,66.8317049,35.2712037,45.5610239,19.0150439,15.3246119,66.201199,4.0193015,35.978529,13.7524071,0.885741,0.8867836,15.4852689,68.3072526,69.9095659,54.5506601,23.8342197,21.2757056,20.1278975,66.6143714,35.6012328,44.0536124,18.761735,15.1902674,65.4243043,3.61723,35.8344777,13.2784964\r\n536,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9697447,0.9745422,15.5448672,69.2620926,71.1730779,54.5995133,23.9575153,22.1858754,20.4443157,66.8317049,35.2712037,45.5610239,19.0150439,15.3246119,66.201199,4.0193015,35.978529,13.7524071,0.885741,0.8867836,15.4852689,68.3072526,69.9095659,54.5506601,23.8342197,21.2757056,20.1278975,66.6143714,35.6012328,44.0536124,18.761735,15.1902674,65.4243043,3.61723,35.8344777,13.2784964,0.755092,0.7678156,15.2275816,68.2829012,70.2487968,54.2441814,24.1673345,20.2559167,19.6668844,66.4323761,35.8257899,44.4869988,18.7531003,14.9452024,64.8770982,3.8224366,35.8695057,11.9187031\r\n537,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.885741,0.8867836,15.4852689,68.3072526,69.9095659,54.5506601,23.8342197,21.2757056,20.1278975,66.6143714,35.6012328,44.0536124,18.761735,15.1902674,65.4243043,3.61723,35.8344777,13.2784964,0.755092,0.7678156,15.2275816,68.2829012,70.2487968,54.2441814,24.1673345,20.2559167,19.6668844,66.4323761,35.8257899,44.4869988,18.7531003,14.9452024,64.8770982,3.8224366,35.8695057,11.9187031,0.7315402,0.7315402,14.7875497,69.6354601,71.4550469,54.3320799,24.035179,19.8044182,19.4810448,66.7119759,36.3263389,45.900058,18.3876557,14.3367841,65.0066874,3.9592273,36.1743349,11.9543803\r\n538,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.755092,0.7678156,15.2275816,68.2829012,70.2487968,54.2441814,24.1673345,20.2559167,19.6668844,66.4323761,35.8257899,44.4869988,18.7531003,14.9452024,64.8770982,3.8224366,35.8695057,11.9187031,0.7315402,0.7315402,14.7875497,69.6354601,71.4550469,54.3320799,24.035179,19.8044182,19.4810448,66.7119759,36.3263389,45.900058,18.3876557,14.3367841,65.0066874,3.9592273,36.1743349,11.9543803,0.8633376,0.8741015,14.6886401,69.4591053,71.8037012,53.8333571,24.3793827,20.4824927,20.413222,66.7545719,36.5059032,46.022078,18.5862012,14.2359086,65.0243692,3.9766581,38.210637,13.4120679\r\n539,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.7315402,0.7315402,14.7875497,69.6354601,71.4550469,54.3320799,24.035179,19.8044182,19.4810448,66.7119759,36.3263389,45.900058,18.3876557,14.3367841,65.0066874,3.9592273,36.1743349,11.9543803,0.8633376,0.8741015,14.6886401,69.4591053,71.8037012,53.8333571,24.3793827,20.4824927,20.413222,66.7545719,36.5059032,46.022078,18.5862012,14.2359086,65.0243692,3.9766581,38.210637,13.4120679,0.8135808,0.8514548,13.6354677,69.4707502,72.4796981,53.6334735,24.3504829,21.3144241,20.0450528,67.3041275,36.421209,46.9842079,18.1674216,13.7956345,65.1803051,3.9380877,38.8540338,12.0575792\r\n540,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.8633376,0.8741015,14.6886401,69.4591053,71.8037012,53.8333571,24.3793827,20.4824927,20.413222,66.7545719,36.5059032,46.022078,18.5862012,14.2359086,65.0243692,3.9766581,38.210637,13.4120679,0.8135808,0.8514548,13.6354677,69.4707502,72.4796981,53.6334735,24.3504829,21.3144241,20.0450528,67.3041275,36.421209,46.9842079,18.1674216,13.7956345,65.1803051,3.9380877,38.8540338,12.0575792,0.8387614,0.8776654,13.4141723,69.0742054,72.032682,53.394289,24.7876973,21.4937564,18.7525886,67.6505447,37.0070431,46.2501263,17.8720454,13.4374867,64.6203066,4.2170803,39.1788916,11.5747569\r\n541,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.8135808,0.8514548,13.6354677,69.4707502,72.4796981,53.6334735,24.3504829,21.3144241,20.0450528,67.3041275,36.421209,46.9842079,18.1674216,13.7956345,65.1803051,3.9380877,38.8540338,12.0575792,0.8387614,0.8776654,13.4141723,69.0742054,72.032682,53.394289,24.7876973,21.4937564,18.7525886,67.6505447,37.0070431,46.2501263,17.8720454,13.4374867,64.6203066,4.2170803,39.1788916,11.5747569,0.9921528,1.0329864,12.9655226,67.5324583,71.2863346,52.9506215,24.8095016,20.5288629,19.0416702,68.418708,37.5294681,45.2099562,17.9619414,13.0305602,63.9800737,4.2077201,39.9403146,11.4686188\r\n542,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.8387614,0.8776654,13.4141723,69.0742054,72.032682,53.394289,24.7876973,21.4937564,18.7525886,67.6505447,37.0070431,46.2501263,17.8720454,13.4374867,64.6203066,4.2170803,39.1788916,11.5747569,0.9921528,1.0329864,12.9655226,67.5324583,71.2863346,52.9506215,24.8095016,20.5288629,19.0416702,68.418708,37.5294681,45.2099562,17.9619414,13.0305602,63.9800737,4.2077201,39.9403146,11.4686188,1.1306235,1.1722737,13.1065236,68.1104893,72.1069026,54.1221232,25.3816408,21.2114712,19.432081,69.0878904,37.4387653,46.0681346,18.0350891,12.8273768,64.2553926,3.9877656,39.4173018,12.1248857\r\n543,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9921528,1.0329864,12.9655226,67.5324583,71.2863346,52.9506215,24.8095016,20.5288629,19.0416702,68.418708,37.5294681,45.2099562,17.9619414,13.0305602,63.9800737,4.2077201,39.9403146,11.4686188,1.1306235,1.1722737,13.1065236,68.1104893,72.1069026,54.1221232,25.3816408,21.2114712,19.432081,69.0878904,37.4387653,46.0681346,18.0350891,12.8273768,64.2553926,3.9877656,39.4173018,12.1248857,1.1579265,1.1848787,12.4793403,67.5782308,71.0754813,54.2784502,24.9357001,22.4699405,19.2873777,69.2788591,37.416712,45.4757349,17.2484758,12.3157993,64.0451434,4.0588811,40.3976484,12.4652943\r\n544,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1306235,1.1722737,13.1065236,68.1104893,72.1069026,54.1221232,25.3816408,21.2114712,19.432081,69.0878904,37.4387653,46.0681346,18.0350891,12.8273768,64.2553926,3.9877656,39.4173018,12.1248857,1.1579265,1.1848787,12.4793403,67.5782308,71.0754813,54.2784502,24.9357001,22.4699405,19.2873777,69.2788591,37.416712,45.4757349,17.2484758,12.3157993,64.0451434,4.0588811,40.3976484,12.4652943,1.0505824,1.0920254,12.5939223,67.1562205,70.6920726,55.1056089,25.2253663,22.5860014,19.4726333,69.3250391,37.1596136,44.6082379,17.1084907,12.1884772,63.9408122,3.9813243,39.8321921,10.7237555\r\n545,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1579265,1.1848787,12.4793403,67.5782308,71.0754813,54.2784502,24.9357001,22.4699405,19.2873777,69.2788591,37.416712,45.4757349,17.2484758,12.3157993,64.0451434,4.0588811,40.3976484,12.4652943,1.0505824,1.0920254,12.5939223,67.1562205,70.6920726,55.1056089,25.2253663,22.5860014,19.4726333,69.3250391,37.1596136,44.6082379,17.1084907,12.1884772,63.9408122,3.9813243,39.8321921,10.7237555,0.9032163,0.9323035,12.0704358,67.3936945,70.3334154,57.2961317,25.5127612,22.7381095,18.7197091,69.8427802,37.1765972,45.7918991,16.4070389,11.5787437,63.2924191,3.9017601,39.3908241,8.7122953\r\n546,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0505824,1.0920254,12.5939223,67.1562205,70.6920726,55.1056089,25.2253663,22.5860014,19.4726333,69.3250391,37.1596136,44.6082379,17.1084907,12.1884772,63.9408122,3.9813243,39.8321921,10.7237555,0.9032163,0.9323035,12.0704358,67.3936945,70.3334154,57.2961317,25.5127612,22.7381095,18.7197091,69.8427802,37.1765972,45.7918991,16.4070389,11.5787437,63.2924191,3.9017601,39.3908241,8.7122953,0.9263871,0.9432649,11.9805046,67.2722382,70.1197921,56.9295393,25.8989752,21.0305506,18.9061298,69.4751788,37.614312,44.5095898,16.1204185,11.405381,62.7788968,3.7961226,39.1373333,8.138702\r\n547,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9032163,0.9323035,12.0704358,67.3936945,70.3334154,57.2961317,25.5127612,22.7381095,18.7197091,69.8427802,37.1765972,45.7918991,16.4070389,11.5787437,63.2924191,3.9017601,39.3908241,8.7122953,0.9263871,0.9432649,11.9805046,67.2722382,70.1197921,56.9295393,25.8989752,21.0305506,18.9061298,69.4751788,37.614312,44.5095898,16.1204185,11.405381,62.7788968,3.7961226,39.1373333,8.138702,1.0079583,1.0303441,12.0508715,69.0147447,71.229953,57.795509,25.2032658,20.5384779,19.3975504,68.7830804,36.8910969,46.0177657,16.7457729,11.6345308,63.430053,3.6164535,38.4448922,7.3015865\r\n548,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9263871,0.9432649,11.9805046,67.2722382,70.1197921,56.9295393,25.8989752,21.0305506,18.9061298,69.4751788,37.614312,44.5095898,16.1204185,11.405381,62.7788968,3.7961226,39.1373333,8.138702,1.0079583,1.0303441,12.0508715,69.0147447,71.229953,57.795509,25.2032658,20.5384779,19.3975504,68.7830804,36.8910969,46.0177657,16.7457729,11.6345308,63.430053,3.6164535,38.4448922,7.3015865,0.9016096,0.9235066,12.3187572,70.4532584,71.2942243,58.4422747,25.4466125,20.8057456,19.1483407,68.4432153,36.8730459,46.1142704,16.6858502,11.8646719,63.4972186,3.8879217,37.4924415,7.7604133\r\n549,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0079583,1.0303441,12.0508715,69.0147447,71.229953,57.795509,25.2032658,20.5384779,19.3975504,68.7830804,36.8910969,46.0177657,16.7457729,11.6345308,63.430053,3.6164535,38.4448922,7.3015865,0.9016096,0.9235066,12.3187572,70.4532584,71.2942243,58.4422747,25.4466125,20.8057456,19.1483407,68.4432153,36.8730459,46.1142704,16.6858502,11.8646719,63.4972186,3.8879217,37.4924415,7.7604133,0.8856623,0.9070523,12.042839,71.1818354,72.3466607,58.0594617,25.6980197,20.9327562,19.1949172,68.3932171,37.3057243,44.9500952,16.4582221,11.6586773,62.9345705,4.1606917,37.5657111,7.4814179\r\n550,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9016096,0.9235066,12.3187572,70.4532584,71.2942243,58.4422747,25.4466125,20.8057456,19.1483407,68.4432153,36.8730459,46.1142704,16.6858502,11.8646719,63.4972186,3.8879217,37.4924415,7.7604133,0.8856623,0.9070523,12.042839,71.1818354,72.3466607,58.0594617,25.6980197,20.9327562,19.1949172,68.3932171,37.3057243,44.9500952,16.4582221,11.6586773,62.9345705,4.1606917,37.5657111,7.4814179,0.9046429,0.9255065,12.1003852,72.0341986,72.9670607,58.6663747,26.1938913,19.8228803,19.2583076,68.6163879,37.8652111,44.7365103,16.4735328,11.4557337,62.5500854,4.0487872,37.6414205,7.5050278\r\n551,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.8856623,0.9070523,12.042839,71.1818354,72.3466607,58.0594617,25.6980197,20.9327562,19.1949172,68.3932171,37.3057243,44.9500952,16.4582221,11.6586773,62.9345705,4.1606917,37.5657111,7.4814179,0.9046429,0.9255065,12.1003852,72.0341986,72.9670607,58.6663747,26.1938913,19.8228803,19.2583076,68.6163879,37.8652111,44.7365103,16.4735328,11.4557337,62.5500854,4.0487872,37.6414205,7.5050278,0.9413944,0.9733094,11.7026467,70.4947774,72.0051439,57.2537029,26.4834285,19.6758427,18.578841,68.8584113,38.0990845,43.5291567,15.9732144,11.211387,61.7807239,4.2154595,37.5535787,8.3326222\r\n552,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9046429,0.9255065,12.1003852,72.0341986,72.9670607,58.6663747,26.1938913,19.8228803,19.2583076,68.6163879,37.8652111,44.7365103,16.4735328,11.4557337,62.5500854,4.0487872,37.6414205,7.5050278,0.9413944,0.9733094,11.7026467,70.4947774,72.0051439,57.2537029,26.4834285,19.6758427,18.578841,68.8584113,38.0990845,43.5291567,15.9732144,11.211387,61.7807239,4.2154595,37.5535787,8.3326222,1.1540228,1.1842938,12.3624066,70.5646537,73.0345647,56.9541221,26.9509024,19.3238779,19.20626,68.2491689,39.1418322,42.5399733,16.3277141,11.6166041,61.9970585,4.2846712,37.6149911,7.9172693\r\n553,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9413944,0.9733094,11.7026467,70.4947774,72.0051439,57.2537029,26.4834285,19.6758427,18.578841,68.8584113,38.0990845,43.5291567,15.9732144,11.211387,61.7807239,4.2154595,37.5535787,8.3326222,1.1540228,1.1842938,12.3624066,70.5646537,73.0345647,56.9541221,26.9509024,19.3238779,19.20626,68.2491689,39.1418322,42.5399733,16.3277141,11.6166041,61.9970585,4.2846712,37.6149911,7.9172693,1.1559085,1.1948467,12.9642303,70.285965,72.6494338,57.5418826,27.7589562,18.9838368,19.0141628,68.8485741,39.4085719,42.8115597,16.4954218,11.7509716,61.3227264,4.4603101,38.0651174,8.3875279\r\n554,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1540228,1.1842938,12.3624066,70.5646537,73.0345647,56.9541221,26.9509024,19.3238779,19.20626,68.2491689,39.1418322,42.5399733,16.3277141,11.6166041,61.9970585,4.2846712,37.6149911,7.9172693,1.1559085,1.1948467,12.9642303,70.285965,72.6494338,57.5418826,27.7589562,18.9838368,19.0141628,68.8485741,39.4085719,42.8115597,16.4954218,11.7509716,61.3227264,4.4603101,38.0651174,8.3875279,1.1103963,1.1443179,12.5544263,69.2502191,72.0812293,57.4392005,27.9356329,20.5233,19.5285443,69.4699466,39.8129374,41.8538457,15.5470829,11.2236726,61.0746376,4.6828818,38.5492025,8.0749452\r\n555,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1559085,1.1948467,12.9642303,70.285965,72.6494338,57.5418826,27.7589562,18.9838368,19.0141628,68.8485741,39.4085719,42.8115597,16.4954218,11.7509716,61.3227264,4.4603101,38.0651174,8.3875279,1.1103963,1.1443179,12.5544263,69.2502191,72.0812293,57.4392005,27.9356329,20.5233,19.5285443,69.4699466,39.8129374,41.8538457,15.5470829,11.2236726,61.0746376,4.6828818,38.5492025,8.0749452,1.1099173,1.1432362,12.2451962,68.9208217,72.4264852,57.2677879,28.3057463,19.8393545,19.9022826,68.8452452,39.5494602,43.1457199,14.9963584,10.6808328,61.0213433,4.556682,38.5707523,7.7327824\r\n556,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1103963,1.1443179,12.5544263,69.2502191,72.0812293,57.4392005,27.9356329,20.5233,19.5285443,69.4699466,39.8129374,41.8538457,15.5470829,11.2236726,61.0746376,4.6828818,38.5492025,8.0749452,1.1099173,1.1432362,12.2451962,68.9208217,72.4264852,57.2677879,28.3057463,19.8393545,19.9022826,68.8452452,39.5494602,43.1457199,14.9963584,10.6808328,61.0213433,4.556682,38.5707523,7.7327824,1.0853594,1.1339943,11.6917789,68.8100551,71.2070007,56.8515101,27.9298629,18.373125,19.5371758,68.3809066,39.2039283,43.1108464,14.8286712,10.4367322,60.8046307,4.467874,39.0064072,8.0994518\r\n557,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1099173,1.1432362,12.2451962,68.9208217,72.4264852,57.2677879,28.3057463,19.8393545,19.9022826,68.8452452,39.5494602,43.1457199,14.9963584,10.6808328,61.0213433,4.556682,38.5707523,7.7327824,1.0853594,1.1339943,11.6917789,68.8100551,71.2070007,56.8515101,27.9298629,18.373125,19.5371758,68.3809066,39.2039283,43.1108464,14.8286712,10.4367322,60.8046307,4.467874,39.0064072,8.0994518,1.0392963,1.0823485,11.9408652,67.7689504,69.9259467,56.3524395,27.8063239,18.8057613,19.4229792,68.5951144,38.2393572,42.6089387,14.7562916,10.6298,60.6488569,4.1046731,38.841325,8.7974633\r\n558,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0853594,1.1339943,11.6917789,68.8100551,71.2070007,56.8515101,27.9298629,18.373125,19.5371758,68.3809066,39.2039283,43.1108464,14.8286712,10.4367322,60.8046307,4.467874,39.0064072,8.0994518,1.0392963,1.0823485,11.9408652,67.7689504,69.9259467,56.3524395,27.8063239,18.8057613,19.4229792,68.5951144,38.2393572,42.6089387,14.7562916,10.6298,60.6488569,4.1046731,38.841325,8.7974633,1.1584241,1.1913932,12.1085708,67.7986724,70.1395283,56.5246814,28.0849614,18.8858549,20.2452878,69.2818859,39.0094839,42.0635743,15.2168751,10.9296881,60.0387249,3.9892326,39.0753559,8.8711283\r\n559,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0392963,1.0823485,11.9408652,67.7689504,69.9259467,56.3524395,27.8063239,18.8057613,19.4229792,68.5951144,38.2393572,42.6089387,14.7562916,10.6298,60.6488569,4.1046731,38.841325,8.7974633,1.1584241,1.1913932,12.1085708,67.7986724,70.1395283,56.5246814,28.0849614,18.8858549,20.2452878,69.2818859,39.0094839,42.0635743,15.2168751,10.9296881,60.0387249,3.9892326,39.0753559,8.8711283,0.990837,1.0363964,11.1684503,67.8665217,68.8302548,56.0783241,28.3015328,18.465058,19.5949114,69.240888,38.785598,41.5135603,14.6382277,10.3170372,59.7165706,4.0476333,38.3585537,8.8029114\r\n560,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1584241,1.1913932,12.1085708,67.7986724,70.1395283,56.5246814,28.0849614,18.8858549,20.2452878,69.2818859,39.0094839,42.0635743,15.2168751,10.9296881,60.0387249,3.9892326,39.0753559,8.8711283,0.990837,1.0363964,11.1684503,67.8665217,68.8302548,56.0783241,28.3015328,18.465058,19.5949114,69.240888,38.785598,41.5135603,14.6382277,10.3170372,59.7165706,4.0476333,38.3585537,8.8029114,0.9816291,1.0036012,10.6024556,67.5396134,68.0683836,56.4523188,27.4674241,18.8108815,19.9005471,68.6988549,38.3700108,40.9045609,14.9251326,10.2553143,60.743793,4.1721392,37.2512039,8.3924924\r\n561,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.990837,1.0363964,11.1684503,67.8665217,68.8302548,56.0783241,28.3015328,18.465058,19.5949114,69.240888,38.785598,41.5135603,14.6382277,10.3170372,59.7165706,4.0476333,38.3585537,8.8029114,0.9816291,1.0036012,10.6024556,67.5396134,68.0683836,56.4523188,27.4674241,18.8108815,19.9005471,68.6988549,38.3700108,40.9045609,14.9251326,10.2553143,60.743793,4.1721392,37.2512039,8.3924924,0.8804106,0.9023564,11.1449876,66.965809,68.4197881,56.1533052,27.3656278,16.1257935,20.2145713,68.6556719,38.2301241,40.4579867,15.7182057,10.8005759,60.0398474,4.023697,37.088084,9.418698\r\n562,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9816291,1.0036012,10.6024556,67.5396134,68.0683836,56.4523188,27.4674241,18.8108815,19.9005471,68.6988549,38.3700108,40.9045609,14.9251326,10.2553143,60.743793,4.1721392,37.2512039,8.3924924,0.8804106,0.9023564,11.1449876,66.965809,68.4197881,56.1533052,27.3656278,16.1257935,20.2145713,68.6556719,38.2301241,40.4579867,15.7182057,10.8005759,60.0398474,4.023697,37.088084,9.418698,0.9103024,0.9322956,10.9310053,67.1991407,68.5146134,56.4001678,27.1792568,15.9335142,18.4625661,69.3712314,38.1613062,39.0956661,15.9839411,10.9865023,59.3824645,4.0500848,37.9298455,9.2941728\r\n563,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.8804106,0.9023564,11.1449876,66.965809,68.4197881,56.1533052,27.3656278,16.1257935,20.2145713,68.6556719,38.2301241,40.4579867,15.7182057,10.8005759,60.0398474,4.023697,37.088084,9.418698,0.9103024,0.9322956,10.9310053,67.1991407,68.5146134,56.4001678,27.1792568,15.9335142,18.4625661,69.3712314,38.1613062,39.0956661,15.9839411,10.9865023,59.3824645,4.0500848,37.9298455,9.2941728,0.9782854,0.9841375,11.3961428,66.8360162,69.529474,57.5192193,27.0833306,16.797576,17.942081,69.6067109,38.0828966,40.0641917,16.7292353,11.2906208,59.6716185,3.904588,37.5380579,8.5280772\r\n564,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9103024,0.9322956,10.9310053,67.1991407,68.5146134,56.4001678,27.1792568,15.9335142,18.4625661,69.3712314,38.1613062,39.0956661,15.9839411,10.9865023,59.3824645,4.0500848,37.9298455,9.2941728,0.9782854,0.9841375,11.3961428,66.8360162,69.529474,57.5192193,27.0833306,16.797576,17.942081,69.6067109,38.0828966,40.0641917,16.7292353,11.2906208,59.6716185,3.904588,37.5380579,8.5280772,1.0474043,1.0355671,11.1391542,67.0959715,70.2604019,58.4615997,26.3652219,15.683812,18.1084049,69.1208496,39.0548267,39.7441261,16.7215577,11.1688006,59.7628256,4.2489543,36.9836544,7.9310709\r\n565,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9782854,0.9841375,11.3961428,66.8360162,69.529474,57.5192193,27.0833306,16.797576,17.942081,69.6067109,38.0828966,40.0641917,16.7292353,11.2906208,59.6716185,3.904588,37.5380579,8.5280772,1.0474043,1.0355671,11.1391542,67.0959715,70.2604019,58.4615997,26.3652219,15.683812,18.1084049,69.1208496,39.0548267,39.7441261,16.7215577,11.1688006,59.7628256,4.2489543,36.9836544,7.9310709,0.9864039,0.9746612,12.0808479,67.2556917,69.7754097,58.9195086,26.2276505,15.6382973,17.9484342,69.0648003,38.7388626,41.4231183,16.7002041,11.2300479,60.2464884,4.1676969,37.1049724,7.7546891\r\n566,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0474043,1.0355671,11.1391542,67.0959715,70.2604019,58.4615997,26.3652219,15.683812,18.1084049,69.1208496,39.0548267,39.7441261,16.7215577,11.1688006,59.7628256,4.2489543,36.9836544,7.9310709,0.9864039,0.9746612,12.0808479,67.2556917,69.7754097,58.9195086,26.2276505,15.6382973,17.9484342,69.0648003,38.7388626,41.4231183,16.7002041,11.2300479,60.2464884,4.1676969,37.1049724,7.7546891,1.0153599,1.0118028,12.4999087,66.064604,69.8441714,58.7329953,25.7098945,15.9571114,18.1713554,69.328551,38.5223607,40.1208974,17.0851401,11.529557,59.9294081,4.3574406,38.3635478,9.1886472\r\n567,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,0.9864039,0.9746612,12.0808479,67.2556917,69.7754097,58.9195086,26.2276505,15.6382973,17.9484342,69.0648003,38.7388626,41.4231183,16.7002041,11.2300479,60.2464884,4.1676969,37.1049724,7.7546891,1.0153599,1.0118028,12.4999087,66.064604,69.8441714,58.7329953,25.7098945,15.9571114,18.1713554,69.328551,38.5223607,40.1208974,17.0851401,11.529557,59.9294081,4.3574406,38.3635478,9.1886472,1.1184611,1.1148665,12.6438972,66.8320384,70.5431521,58.8037914,25.784872,15.5443539,18.2406762,69.5103693,39.0266448,40.468413,16.6752055,11.3606802,59.26854,4.2890854,38.4307592,9.259369\r\n568,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0153599,1.0118028,12.4999087,66.064604,69.8441714,58.7329953,25.7098945,15.9571114,18.1713554,69.328551,38.5223607,40.1208974,17.0851401,11.529557,59.9294081,4.3574406,38.3635478,9.1886472,1.1184611,1.1148665,12.6438972,66.8320384,70.5431521,58.8037914,25.784872,15.5443539,18.2406762,69.5103693,39.0266448,40.468413,16.6752055,11.3606802,59.26854,4.2890854,38.4307592,9.259369,1.1571906,1.177747,12.51153,67.0192042,69.3459766,58.3488361,25.9316168,16.1468023,17.0365225,68.5299837,38.7768157,39.9653885,16.6536814,11.4177503,59.5410704,4.2974943,38.7123398,8.5678889\r\n569,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1184611,1.1148665,12.6438972,66.8320384,70.5431521,58.8037914,25.784872,15.5443539,18.2406762,69.5103693,39.0266448,40.468413,16.6752055,11.3606802,59.26854,4.2890854,38.4307592,9.259369,1.1571906,1.177747,12.51153,67.0192042,69.3459766,58.3488361,25.9316168,16.1468023,17.0365225,68.5299837,38.7768157,39.9653885,16.6536814,11.4177503,59.5410704,4.2974943,38.7123398,8.5678889,1.2086994,1.2540874,12.8889919,67.2120676,69.3818025,58.406817,26.1941886,16.256404,17.1896147,68.2743339,39.6596301,40.5307322,16.5261733,11.3378039,59.4185532,4.4129544,37.9626661,8.9097414\r\n570,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1571906,1.177747,12.51153,67.0192042,69.3459766,58.3488361,25.9316168,16.1468023,17.0365225,68.5299837,38.7768157,39.9653885,16.6536814,11.4177503,59.5410704,4.2974943,38.7123398,8.5678889,1.2086994,1.2540874,12.8889919,67.2120676,69.3818025,58.406817,26.1941886,16.256404,17.1896147,68.2743339,39.6596301,40.5307322,16.5261733,11.3378039,59.4185532,4.4129544,37.9626661,8.9097414,1.1251528,1.1715308,13.799153,68.4322705,68.622983,58.1281916,26.3737326,15.7485304,17.307863,68.3591938,39.9211975,40.2421598,16.3388229,11.8937247,59.3558153,4.2538572,38.4117426,8.643776\r\n571,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2086994,1.2540874,12.8889919,67.2120676,69.3818025,58.406817,26.1941886,16.256404,17.1896147,68.2743339,39.6596301,40.5307322,16.5261733,11.3378039,59.4185532,4.4129544,37.9626661,8.9097414,1.1251528,1.1715308,13.799153,68.4322705,68.622983,58.1281916,26.3737326,15.7485304,17.307863,68.3591938,39.9211975,40.2421598,16.3388229,11.8937247,59.3558153,4.2538572,38.4117426,8.643776,1.15067,1.2408293,13.6616873,68.4827007,68.1591342,57.0491151,27.1187909,16.1555691,17.3633105,69.2500554,39.8630739,40.625756,16.3569439,11.914235,58.8606874,4.2691422,37.725835,7.9303071\r\n572,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1251528,1.1715308,13.799153,68.4322705,68.622983,58.1281916,26.3737326,15.7485304,17.307863,68.3591938,39.9211975,40.2421598,16.3388229,11.8937247,59.3558153,4.2538572,38.4117426,8.643776,1.15067,1.2408293,13.6616873,68.4827007,68.1591342,57.0491151,27.1187909,16.1555691,17.3633105,69.2500554,39.8630739,40.625756,16.3569439,11.914235,58.8606874,4.2691422,37.725835,7.9303071,1.0846,1.1751675,12.436474,68.6793518,67.4882613,56.4251365,27.1114238,16.7601976,16.5882252,69.1907931,40.2741982,39.5955485,16.1128043,11.4396014,58.6608827,4.2592035,37.1809546,7.7658154\r\n573,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.15067,1.2408293,13.6616873,68.4827007,68.1591342,57.0491151,27.1187909,16.1555691,17.3633105,69.2500554,39.8630739,40.625756,16.3569439,11.914235,58.8606874,4.2691422,37.725835,7.9303071,1.0846,1.1751675,12.436474,68.6793518,67.4882613,56.4251365,27.1114238,16.7601976,16.5882252,69.1907931,40.2741982,39.5955485,16.1128043,11.4396014,58.6608827,4.2592035,37.1809546,7.7658154,1.0981145,1.1759582,11.8992861,68.5983281,67.4887935,57.0840742,27.0950656,16.5166657,16.6448205,68.5613688,39.8987259,39.4389637,15.5816876,11.0250864,58.2158712,4.052976,36.1414193,6.2155675\r\n574,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0846,1.1751675,12.436474,68.6793518,67.4882613,56.4251365,27.1114238,16.7601976,16.5882252,69.1907931,40.2741982,39.5955485,16.1128043,11.4396014,58.6608827,4.2592035,37.1809546,7.7658154,1.0981145,1.1759582,11.8992861,68.5983281,67.4887935,57.0840742,27.0950656,16.5166657,16.6448205,68.5613688,39.8987259,39.4389637,15.5816876,11.0250864,58.2158712,4.052976,36.1414193,6.2155675,1.0915837,1.1700613,12.1347218,68.4849715,67.6429364,56.6553374,27.4942472,16.5819999,16.4796884,68.8797247,39.2037818,39.7095465,16.0844856,11.5005306,57.860973,4.0028598,36.5692021,5.5556429\r\n575,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0981145,1.1759582,11.8992861,68.5983281,67.4887935,57.0840742,27.0950656,16.5166657,16.6448205,68.5613688,39.8987259,39.4389637,15.5816876,11.0250864,58.2158712,4.052976,36.1414193,6.2155675,1.0915837,1.1700613,12.1347218,68.4849715,67.6429364,56.6553374,27.4942472,16.5819999,16.4796884,68.8797247,39.2037818,39.7095465,16.0844856,11.5005306,57.860973,4.0028598,36.5692021,5.5556429,1.1954773,1.2569399,12.2803707,69.6715149,69.0878614,57.8869025,27.776459,17.1081583,17.3507203,69.2040835,39.2777831,40.6187532,16.0418242,11.4777944,57.8120512,3.9547674,36.2205203,6.0103388\r\n576,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0915837,1.1700613,12.1347218,68.4849715,67.6429364,56.6553374,27.4942472,16.5819999,16.4796884,68.8797247,39.2037818,39.7095465,16.0844856,11.5005306,57.860973,4.0028598,36.5692021,5.5556429,1.1954773,1.2569399,12.2803707,69.6715149,69.0878614,57.8869025,27.776459,17.1081583,17.3507203,69.2040835,39.2777831,40.6187532,16.0418242,11.4777944,57.8120512,3.9547674,36.2205203,6.0103388,1.0546379,1.0911038,11.8632522,69.4764468,68.6461267,57.9419748,27.541897,16.93446,18.1734977,69.8478185,39.5703128,40.0996601,16.0948911,11.6491802,57.4147838,3.8820294,36.0101912,6.3970416\r\n577,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1954773,1.2569399,12.2803707,69.6715149,69.0878614,57.8869025,27.776459,17.1081583,17.3507203,69.2040835,39.2777831,40.6187532,16.0418242,11.4777944,57.8120512,3.9547674,36.2205203,6.0103388,1.0546379,1.0911038,11.8632522,69.4764468,68.6461267,57.9419748,27.541897,16.93446,18.1734977,69.8478185,39.5703128,40.0996601,16.0948911,11.6491802,57.4147838,3.8820294,36.0101912,6.3970416,1.1278911,1.1643852,11.3860744,68.3115758,69.0557252,58.2113822,27.8267328,17.2827594,18.3084055,69.6655743,39.7504882,40.3514873,15.9982371,11.2467376,57.447112,4.210132,35.9337553,6.3688083\r\n578,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0546379,1.0911038,11.8632522,69.4764468,68.6461267,57.9419748,27.541897,16.93446,18.1734977,69.8478185,39.5703128,40.0996601,16.0948911,11.6491802,57.4147838,3.8820294,36.0101912,6.3970416,1.1278911,1.1643852,11.3860744,68.3115758,69.0557252,58.2113822,27.8267328,17.2827594,18.3084055,69.6655743,39.7504882,40.3514873,15.9982371,11.2467376,57.447112,4.210132,35.9337553,6.3688083,1.1153341,1.1329663,11.2247809,67.2819215,68.2821999,57.850979,27.7453198,16.7961605,17.9983768,69.2174051,39.7639731,39.9002548,15.6063358,10.9341827,57.0779248,4.3935954,36.1127516,5.8744919\r\n579,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1278911,1.1643852,11.3860744,68.3115758,69.0557252,58.2113822,27.8267328,17.2827594,18.3084055,69.6655743,39.7504882,40.3514873,15.9982371,11.2467376,57.447112,4.210132,35.9337553,6.3688083,1.1153341,1.1329663,11.2247809,67.2819215,68.2821999,57.850979,27.7453198,16.7961605,17.9983768,69.2174051,39.7639731,39.9002548,15.6063358,10.9341827,57.0779248,4.3935954,36.1127516,5.8744919,1.1591128,1.177303,11.1811456,67.9225238,69.7416355,58.7271802,27.8029911,16.694001,18.2371314,69.4468848,39.2655284,39.1650428,15.4950565,10.905992,57.3440549,4.4725615,36.4391485,5.9724026\r\n580,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1153341,1.1329663,11.2247809,67.2819215,68.2821999,57.850979,27.7453198,16.7961605,17.9983768,69.2174051,39.7639731,39.9002548,15.6063358,10.9341827,57.0779248,4.3935954,36.1127516,5.8744919,1.1591128,1.177303,11.1811456,67.9225238,69.7416355,58.7271802,27.8029911,16.694001,18.2371314,69.4468848,39.2655284,39.1650428,15.4950565,10.905992,57.3440549,4.4725615,36.4391485,5.9724026,1.2293325,1.2144433,11.1672015,67.1059909,70.4027042,56.8488414,28.622003,16.2561783,17.4021895,71.0072974,40.6362895,40.1105367,16.0635312,11.044509,57.4485708,4.69169,35.6880609,7.2406485\r\n581,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1591128,1.177303,11.1811456,67.9225238,69.7416355,58.7271802,27.8029911,16.694001,18.2371314,69.4468848,39.2655284,39.1650428,15.4950565,10.905992,57.3440549,4.4725615,36.4391485,5.9724026,1.2293325,1.2144433,11.1672015,67.1059909,70.4027042,56.8488414,28.622003,16.2561783,17.4021895,71.0072974,40.6362895,40.1105367,16.0635312,11.044509,57.4485708,4.69169,35.6880609,7.2406485,1.159354,1.1521399,10.5643122,67.1961861,69.6437025,57.9850955,29.8055106,16.1935929,16.9053297,70.4130485,41.1806946,40.3221969,15.3544746,10.3761297,57.3090797,4.4875588,35.7454564,7.3613209\r\n582,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2293325,1.2144433,11.1672015,67.1059909,70.4027042,56.8488414,28.622003,16.2561783,17.4021895,71.0072974,40.6362895,40.1105367,16.0635312,11.044509,57.4485708,4.69169,35.6880609,7.2406485,1.159354,1.1521399,10.5643122,67.1961861,69.6437025,57.9850955,29.8055106,16.1935929,16.9053297,70.4130485,41.1806946,40.3221969,15.3544746,10.3761297,57.3090797,4.4875588,35.7454564,7.3613209,1.0335482,1.0241025,10.231939,66.4603316,69.4954732,57.3759694,30.4571121,14.8483709,16.2879606,70.4959131,41.1475789,40.7602644,14.8440152,10.0834234,56.7401347,4.4729942,35.7321969,6.8822014\r\n583,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.159354,1.1521399,10.5643122,67.1961861,69.6437025,57.9850955,29.8055106,16.1935929,16.9053297,70.4130485,41.1806946,40.3221969,15.3544746,10.3761297,57.3090797,4.4875588,35.7454564,7.3613209,1.0335482,1.0241025,10.231939,66.4603316,69.4954732,57.3759694,30.4571121,14.8483709,16.2879606,70.4959131,41.1475789,40.7602644,14.8440152,10.0834234,56.7401347,4.4729942,35.7321969,6.8822014,1.0584749,1.0492914,10.0904517,66.5374419,70.2397455,57.1017968,30.7674665,14.6460662,15.8957291,69.5524327,40.0187419,42.3492312,14.9014867,9.8733398,57.7984345,4.5846512,36.6828826,6.1514808\r\n584,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0335482,1.0241025,10.231939,66.4603316,69.4954732,57.3759694,30.4571121,14.8483709,16.2879606,70.4959131,41.1475789,40.7602644,14.8440152,10.0834234,56.7401347,4.4729942,35.7321969,6.8822014,1.0584749,1.0492914,10.0904517,66.5374419,70.2397455,57.1017968,30.7674665,14.6460662,15.8957291,69.5524327,40.0187419,42.3492312,14.9014867,9.8733398,57.7984345,4.5846512,36.6828826,6.1514808,1.0613134,1.0521927,9.3796334,66.9712958,69.1756065,55.674669,30.7079153,14.9706393,15.4993889,69.4358464,39.2718971,42.1293602,14.514689,9.4951176,57.9942848,4.6107311,35.9825005,5.4983174\r\n585,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0584749,1.0492914,10.0904517,66.5374419,70.2397455,57.1017968,30.7674665,14.6460662,15.8957291,69.5524327,40.0187419,42.3492312,14.9014867,9.8733398,57.7984345,4.5846512,36.6828826,6.1514808,1.0613134,1.0521927,9.3796334,66.9712958,69.1756065,55.674669,30.7079153,14.9706393,15.4993889,69.4358464,39.2718971,42.1293602,14.514689,9.4951176,57.9942848,4.6107311,35.9825005,5.4983174,1.0769448,1.0680187,10.2023313,68.6880673,70.7267961,57.3133149,31.1119065,15.1938152,15.4775989,69.5541068,39.5065116,43.5042528,15.3730312,10.0163234,58.426297,4.394818,35.7020758,6.2959045\r\n586,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0613134,1.0521927,9.3796334,66.9712958,69.1756065,55.674669,30.7079153,14.9706393,15.4993889,69.4358464,39.2718971,42.1293602,14.514689,9.4951176,57.9942848,4.6107311,35.9825005,5.4983174,1.0769448,1.0680187,10.2023313,68.6880673,70.7267961,57.3133149,31.1119065,15.1938152,15.4775989,69.5541068,39.5065116,43.5042528,15.3730312,10.0163234,58.426297,4.394818,35.7020758,6.2959045,1.0784088,1.0696427,10.4694233,68.0834014,69.6198772,57.3106973,31.0644898,15.1181155,16.6014851,68.4095528,38.5907802,44.7590181,15.6333662,10.1582656,58.1203873,4.4650062,36.8348314,7.0234349\r\n587,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0769448,1.0680187,10.2023313,68.6880673,70.7267961,57.3133149,31.1119065,15.1938152,15.4775989,69.5541068,39.5065116,43.5042528,15.3730312,10.0163234,58.426297,4.394818,35.7020758,6.2959045,1.0784088,1.0696427,10.4694233,68.0834014,69.6198772,57.3106973,31.0644898,15.1181155,16.6014851,68.4095528,38.5907802,44.7590181,15.6333662,10.1582656,58.1203873,4.4650062,36.8348314,7.0234349,1.0065382,1.0197724,10.899926,70.1052552,69.0432598,59.5981456,30.0047574,15.2508477,16.9844411,66.9302107,37.3357085,46.0575368,15.5005891,10.3470025,58.7371303,4.2333376,38.5157925,6.4854977\r\n588,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0784088,1.0696427,10.4694233,68.0834014,69.6198772,57.3106973,31.0644898,15.1181155,16.6014851,68.4095528,38.5907802,44.7590181,15.6333662,10.1582656,58.1203873,4.4650062,36.8348314,7.0234349,1.0065382,1.0197724,10.899926,70.1052552,69.0432598,59.5981456,30.0047574,15.2508477,16.9844411,66.9302107,37.3357085,46.0575368,15.5005891,10.3470025,58.7371303,4.2333376,38.5157925,6.4854977,1.0402651,1.0550744,11.2955877,70.654908,69.6947845,59.2720523,27.9411048,15.6952283,16.4502668,66.1245578,36.4739667,45.7939823,15.8541845,10.6280324,59.3918965,4.3970032,38.0529333,6.5363358\r\n589,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0065382,1.0197724,10.899926,70.1052552,69.0432598,59.5981456,30.0047574,15.2508477,16.9844411,66.9302107,37.3357085,46.0575368,15.5005891,10.3470025,58.7371303,4.2333376,38.5157925,6.4854977,1.0402651,1.0550744,11.2955877,70.654908,69.6947845,59.2720523,27.9411048,15.6952283,16.4502668,66.1245578,36.4739667,45.7939823,15.8541845,10.6280324,59.3918965,4.3970032,38.0529333,6.5363358,1.0545699,1.0632033,10.9417318,70.8703665,69.2034913,59.5351685,27.1556033,16.618062,16.8201022,67.1710869,37.2015617,44.7434799,15.9729111,10.4601892,60.0374946,4.2841055,37.9520574,7.3490188\r\n590,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0402651,1.0550744,11.2955877,70.654908,69.6947845,59.2720523,27.9411048,15.6952283,16.4502668,66.1245578,36.4739667,45.7939823,15.8541845,10.6280324,59.3918965,4.3970032,38.0529333,6.5363358,1.0545699,1.0632033,10.9417318,70.8703665,69.2034913,59.5351685,27.1556033,16.618062,16.8201022,67.1710869,37.2015617,44.7434799,15.9729111,10.4601892,60.0374946,4.2841055,37.9520574,7.3490188,1.0284384,1.0438177,11.4935758,70.820391,67.9878509,59.4348343,27.0937539,16.2987558,17.1792551,67.4554954,37.2960067,43.1991697,16.5916806,11.0001749,59.5406714,3.8684662,37.0535345,7.9657507\r\n591,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0545699,1.0632033,10.9417318,70.8703665,69.2034913,59.5351685,27.1556033,16.618062,16.8201022,67.1710869,37.2015617,44.7434799,15.9729111,10.4601892,60.0374946,4.2841055,37.9520574,7.3490188,1.0284384,1.0438177,11.4935758,70.820391,67.9878509,59.4348343,27.0937539,16.2987558,17.1792551,67.4554954,37.2960067,43.1991697,16.5916806,11.0001749,59.5406714,3.8684662,37.0535345,7.9657507,1.0418664,1.0574304,12.3411713,70.1084005,68.2501583,60.4117673,26.3885236,16.4695334,18.320158,66.9089945,37.6716145,43.5635513,17.121297,11.5799037,58.8244865,3.8955608,37.8843359,8.6035578\r\n592,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0284384,1.0438177,11.4935758,70.820391,67.9878509,59.4348343,27.0937539,16.2987558,17.1792551,67.4554954,37.2960067,43.1991697,16.5916806,11.0001749,59.5406714,3.8684662,37.0535345,7.9657507,1.0418664,1.0574304,12.3411713,70.1084005,68.2501583,60.4117673,26.3885236,16.4695334,18.320158,66.9089945,37.6716145,43.5635513,17.121297,11.5799037,58.8244865,3.8955608,37.8843359,8.6035578,1.1432368,1.1588843,11.7586517,68.4557942,67.0501356,59.4091441,26.2878152,16.2100136,17.7204572,66.9433559,37.1474592,42.6209868,16.9526877,11.3732402,58.9503508,3.9582357,39.3546155,9.3831588\r\n593,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.0418664,1.0574304,12.3411713,70.1084005,68.2501583,60.4117673,26.3885236,16.4695334,18.320158,66.9089945,37.6716145,43.5635513,17.121297,11.5799037,58.8244865,3.8955608,37.8843359,8.6035578,1.1432368,1.1588843,11.7586517,68.4557942,67.0501356,59.4091441,26.2878152,16.2100136,17.7204572,66.9433559,37.1474592,42.6209868,16.9526877,11.3732402,58.9503508,3.9582357,39.3546155,9.3831588,1.2139004,1.2297822,11.9897422,68.3733876,67.3062713,59.2434562,26.4532421,15.4044468,16.4690173,67.3291265,38.2354168,41.9687998,17.2037352,11.5707082,58.9221088,3.9910668,37.9319668,8.8625317\r\n594,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1432368,1.1588843,11.7586517,68.4557942,67.0501356,59.4091441,26.2878152,16.2100136,17.7204572,66.9433559,37.1474592,42.6209868,16.9526877,11.3732402,58.9503508,3.9582357,39.3546155,9.3831588,1.2139004,1.2297822,11.9897422,68.3733876,67.3062713,59.2434562,26.4532421,15.4044468,16.4690173,67.3291265,38.2354168,41.9687998,17.2037352,11.5707082,58.9221088,3.9910668,37.9319668,8.8625317,1.2033603,1.2467753,12.2696246,68.2334295,67.7251787,58.0645154,27.0126344,15.3144156,16.4033152,67.8047646,38.6433293,41.044984,17.3436161,11.8497042,58.0327483,3.8554231,36.9148712,8.1989922\r\n595,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2139004,1.2297822,11.9897422,68.3733876,67.3062713,59.2434562,26.4532421,15.4044468,16.4690173,67.3291265,38.2354168,41.9687998,17.2037352,11.5707082,58.9221088,3.9910668,37.9319668,8.8625317,1.2033603,1.2467753,12.2696246,68.2334295,67.7251787,58.0645154,27.0126344,15.3144156,16.4033152,67.8047646,38.6433293,41.044984,17.3436161,11.8497042,58.0327483,3.8554231,36.9148712,8.1989922,1.1775037,1.2117881,13.0537499,67.443975,66.8354139,57.0998506,27.7319295,14.8495812,17.1663739,69.1883191,38.9096764,40.9939403,17.305452,11.7758592,57.443928,3.8784409,36.9536782,8.9532934\r\n596,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2033603,1.2467753,12.2696246,68.2334295,67.7251787,58.0645154,27.0126344,15.3144156,16.4033152,67.8047646,38.6433293,41.044984,17.3436161,11.8497042,58.0327483,3.8554231,36.9148712,8.1989922,1.1775037,1.2117881,13.0537499,67.443975,66.8354139,57.0998506,27.7319295,14.8495812,17.1663739,69.1883191,38.9096764,40.9939403,17.305452,11.7758592,57.443928,3.8784409,36.9536782,8.9532934,1.2224247,1.2291688,13.5336321,65.6846484,66.3486294,56.5936423,28.3207196,13.9309954,15.8042137,68.9268487,38.7528021,40.4712989,17.6462608,12.4027616,56.782873,4.044156,37.0947461,8.5678502\r\n597,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1775037,1.2117881,13.0537499,67.443975,66.8354139,57.0998506,27.7319295,14.8495812,17.1663739,69.1883191,38.9096764,40.9939403,17.305452,11.7758592,57.443928,3.8784409,36.9536782,8.9532934,1.2224247,1.2291688,13.5336321,65.6846484,66.3486294,56.5936423,28.3207196,13.9309954,15.8042137,68.9268487,38.7528021,40.4712989,17.6462608,12.4027616,56.782873,4.044156,37.0947461,8.5678502,1.2412451,1.2593711,13.8515859,66.0108697,67.1903448,57.285923,28.5824711,15.2361911,15.7895254,69.1814904,38.8127755,41.5563619,17.7761684,12.3982032,57.4457116,4.2272757,37.2675207,8.2071449\r\n598,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2224247,1.2291688,13.5336321,65.6846484,66.3486294,56.5936423,28.3207196,13.9309954,15.8042137,68.9268487,38.7528021,40.4712989,17.6462608,12.4027616,56.782873,4.044156,37.0947461,8.5678502,1.2412451,1.2593711,13.8515859,66.0108697,67.1903448,57.285923,28.5824711,15.2361911,15.7895254,69.1814904,38.8127755,41.5563619,17.7761684,12.3982032,57.4457116,4.2272757,37.2675207,8.2071449,1.2977252,1.3068129,13.5015332,65.0466642,66.7972997,57.5842956,29.2584549,15.1322463,15.6703542,70.1416662,39.1390383,40.5081602,17.6306877,12.0507762,58.1166049,4.0710312,37.6696297,9.2138365\r\n599,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2412451,1.2593711,13.8515859,66.0108697,67.1903448,57.285923,28.5824711,15.2361911,15.7895254,69.1814904,38.8127755,41.5563619,17.7761684,12.3982032,57.4457116,4.2272757,37.2675207,8.2071449,1.2977252,1.3068129,13.5015332,65.0466642,66.7972997,57.5842956,29.2584549,15.1322463,15.6703542,70.1416662,39.1390383,40.5081602,17.6306877,12.0507762,58.1166049,4.0710312,37.6696297,9.2138365,1.1807165,1.174336,13.4062577,66.4225561,68.4894957,58.8914371,28.5006432,15.2257489,17.0365647,69.864551,39.2860272,40.9917062,17.8341038,11.9724289,58.4496137,3.8254265,36.8302264,9.0346913\r\n600,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2977252,1.3068129,13.5015332,65.0466642,66.7972997,57.5842956,29.2584549,15.1322463,15.6703542,70.1416662,39.1390383,40.5081602,17.6306877,12.0507762,58.1166049,4.0710312,37.6696297,9.2138365,1.1807165,1.174336,13.4062577,66.4225561,68.4894957,58.8914371,28.5006432,15.2257489,17.0365647,69.864551,39.2860272,40.9917062,17.8341038,11.9724289,58.4496137,3.8254265,36.8302264,9.0346913,1.2438473,1.228655,13.4197395,66.1887502,68.095829,59.2072932,28.9240228,15.1467145,17.2864058,70.2573978,39.763881,40.520723,17.9476107,12.1041877,58.8172899,3.7239145,38.4637517,8.753048\r\n601,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1807165,1.174336,13.4062577,66.4225561,68.4894957,58.8914371,28.5006432,15.2257489,17.0365647,69.864551,39.2860272,40.9917062,17.8341038,11.9724289,58.4496137,3.8254265,36.8302264,9.0346913,1.2438473,1.228655,13.4197395,66.1887502,68.095829,59.2072932,28.9240228,15.1467145,17.2864058,70.2573978,39.763881,40.520723,17.9476107,12.1041877,58.8172899,3.7239145,38.4637517,8.753048,1.1764121,1.1328448,13.1932815,65.9113669,66.8931594,59.9087469,28.7654571,14.9566571,17.2161889,71.1068589,40.3398265,39.9456732,18.1180703,11.9743144,59.1104945,3.9345173,38.6317509,8.9681141\r\n602,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2438473,1.228655,13.4197395,66.1887502,68.095829,59.2072932,28.9240228,15.1467145,17.2864058,70.2573978,39.763881,40.520723,17.9476107,12.1041877,58.8172899,3.7239145,38.4637517,8.753048,1.1764121,1.1328448,13.1932815,65.9113669,66.8931594,59.9087469,28.7654571,14.9566571,17.2161889,71.1068589,40.3398265,39.9456732,18.1180703,11.9743144,59.1104945,3.9345173,38.6317509,8.9681141,1.2038627,1.1859166,12.926809,66.3911723,67.7274201,60.3069129,28.5043851,14.4358219,16.771829,71.0271245,40.1142497,40.4754992,18.4763154,12.7662465,59.0347322,3.7876933,39.0464656,9.6814421\r\n603,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1764121,1.1328448,13.1932815,65.9113669,66.8931594,59.9087469,28.7654571,14.9566571,17.2161889,71.1068589,40.3398265,39.9456732,18.1180703,11.9743144,59.1104945,3.9345173,38.6317509,8.9681141,1.2038627,1.1859166,12.926809,66.3911723,67.7274201,60.3069129,28.5043851,14.4358219,16.771829,71.0271245,40.1142497,40.4754992,18.4763154,12.7662465,59.0347322,3.7876933,39.0464656,9.6814421,1.1869675,1.2371034,13.5380609,68.3827584,68.151359,59.8674856,28.172497,15.6471313,18.4319556,70.4269964,40.4771688,42.3764164,19.449257,13.3887011,59.5896205,3.6377594,39.1127599,9.9760359\r\n604,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.2038627,1.1859166,12.926809,66.3911723,67.7274201,60.3069129,28.5043851,14.4358219,16.771829,71.0271245,40.1142497,40.4754992,18.4763154,12.7662465,59.0347322,3.7876933,39.0464656,9.6814421,1.1869675,1.2371034,13.5380609,68.3827584,68.151359,59.8674856,28.172497,15.6471313,18.4319556,70.4269964,40.4771688,42.3764164,19.449257,13.3887011,59.5896205,3.6377594,39.1127599,9.9760359,1.4973094,1.4977491,13.6293505,67.8724943,67.9863073,59.2701761,27.5882137,15.2078702,19.1645779,70.0401913,40.2909008,42.4273211,19.9688756,13.7614353,59.2433632,3.7540477,39.9451673,10.2353152\r\n605,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.1869675,1.2371034,13.5380609,68.3827584,68.151359,59.8674856,28.172497,15.6471313,18.4319556,70.4269964,40.4771688,42.3764164,19.449257,13.3887011,59.5896205,3.6377594,39.1127599,9.9760359,1.4973094,1.4977491,13.6293505,67.8724943,67.9863073,59.2701761,27.5882137,15.2078702,19.1645779,70.0401913,40.2909008,42.4273211,19.9688756,13.7614353,59.2433632,3.7540477,39.9451673,10.2353152,1.3857735,1.4204514,14.7600827,69.4836999,69.1301434,59.7708708,27.3261703,15.041329,18.4304673,69.0231724,39.6507981,43.6154419,21.1390432,14.9062576,59.2425449,3.9812057,40.089759,10.1562999\r\n606,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.4973094,1.4977491,13.6293505,67.8724943,67.9863073,59.2701761,27.5882137,15.2078702,19.1645779,70.0401913,40.2909008,42.4273211,19.9688756,13.7614353,59.2433632,3.7540477,39.9451673,10.2353152,1.3857735,1.4204514,14.7600827,69.4836999,69.1301434,59.7708708,27.3261703,15.041329,18.4304673,69.0231724,39.6507981,43.6154419,21.1390432,14.9062576,59.2425449,3.9812057,40.089759,10.1562999,1.5194818,1.5488692,16.118153,70.2494886,68.0023061,59.8254081,28.1382751,16.2138957,17.747354,68.8720687,39.4091615,44.4862082,22.0736217,15.9368099,59.7348272,3.9334153,39.5121887,11.2137068\r\n607,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.3857735,1.4204514,14.7600827,69.4836999,69.1301434,59.7708708,27.3261703,15.041329,18.4304673,69.0231724,39.6507981,43.6154419,21.1390432,14.9062576,59.2425449,3.9812057,40.089759,10.1562999,1.5194818,1.5488692,16.118153,70.2494886,68.0023061,59.8254081,28.1382751,16.2138957,17.747354,68.8720687,39.4091615,44.4862082,22.0736217,15.9368099,59.7348272,3.9334153,39.5121887,11.2137068,1.4366872,1.4735154,16.9004634,70.6030003,68.1615894,60.109821,26.6037515,15.5847171,16.7344217,68.7033894,38.4297711,44.7956058,23.2317068,17.0523527,59.6260544,3.9037401,37.764276,11.7473123\r\n608,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.5194818,1.5488692,16.118153,70.2494886,68.0023061,59.8254081,28.1382751,16.2138957,17.747354,68.8720687,39.4091615,44.4862082,22.0736217,15.9368099,59.7348272,3.9334153,39.5121887,11.2137068,1.4366872,1.4735154,16.9004634,70.6030003,68.1615894,60.109821,26.6037515,15.5847171,16.7344217,68.7033894,38.4297711,44.7956058,23.2317068,17.0523527,59.6260544,3.9037401,37.764276,11.7473123,1.6909403,1.7454197,18.1643372,70.0750934,68.8456279,59.8251343,26.7277724,15.9297187,17.4056467,68.0875599,37.7097265,46.1174094,24.6105807,18.3040673,59.596626,3.665837,37.1870749,13.0014998\r\n609,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.4366872,1.4735154,16.9004634,70.6030003,68.1615894,60.109821,26.6037515,15.5847171,16.7344217,68.7033894,38.4297711,44.7956058,23.2317068,17.0523527,59.6260544,3.9037401,37.764276,11.7473123,1.6909403,1.7454197,18.1643372,70.0750934,68.8456279,59.8251343,26.7277724,15.9297187,17.4056467,68.0875599,37.7097265,46.1174094,24.6105807,18.3040673,59.596626,3.665837,37.1870749,13.0014998,1.8008571,1.8692104,19.5481855,69.171305,67.635743,59.4590789,26.5728695,16.8039379,17.8156771,68.4756657,37.9608494,45.6473564,26.7362163,19.8405246,59.956026,3.7551324,37.3322028,14.2524563\r\n610,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.6909403,1.7454197,18.1643372,70.0750934,68.8456279,59.8251343,26.7277724,15.9297187,17.4056467,68.0875599,37.7097265,46.1174094,24.6105807,18.3040673,59.596626,3.665837,37.1870749,13.0014998,1.8008571,1.8692104,19.5481855,69.171305,67.635743,59.4590789,26.5728695,16.8039379,17.8156771,68.4756657,37.9608494,45.6473564,26.7362163,19.8405246,59.956026,3.7551324,37.3322028,14.2524563,2.2555419,2.3175369,21.2655238,69.5673255,68.559011,60.310457,26.0474683,16.6142659,17.2606953,67.8846802,35.531794,45.8799657,28.4335679,21.2243477,60.7106223,3.7249347,37.5997444,17.4382699\r\n611,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,1.8008571,1.8692104,19.5481855,69.171305,67.635743,59.4590789,26.5728695,16.8039379,17.8156771,68.4756657,37.9608494,45.6473564,26.7362163,19.8405246,59.956026,3.7551324,37.3322028,14.2524563,2.2555419,2.3175369,21.2655238,69.5673255,68.559011,60.310457,26.0474683,16.6142659,17.2606953,67.8846802,35.531794,45.8799657,28.4335679,21.2243477,60.7106223,3.7249347,37.5997444,17.4382699,2.4452829,2.5684368,23.7137176,68.8525231,67.3898612,60.2579346,26.0433774,15.5859038,16.3453756,65.9482743,34.1336204,45.527993,30.6587763,23.2504472,61.2102113,3.4729455,37.3833516,20.1501736\r\n612,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,2.2555419,2.3175369,21.2655238,69.5673255,68.559011,60.310457,26.0474683,16.6142659,17.2606953,67.8846802,35.531794,45.8799657,28.4335679,21.2243477,60.7106223,3.7249347,37.5997444,17.4382699,2.4452829,2.5684368,23.7137176,68.8525231,67.3898612,60.2579346,26.0433774,15.5859038,16.3453756,65.9482743,34.1336204,45.527993,30.6587763,23.2504472,61.2102113,3.4729455,37.3833516,20.1501736,2.8915165,3.0107711,25.652345,67.5351183,67.0061328,59.247229,25.6545321,15.0340612,16.2698645,66.159464,33.848795,45.8288528,33.4457347,25.7963644,61.4427609,3.2622072,35.9671508,22.0641549\r\n613,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,2.4452829,2.5684368,23.7137176,68.8525231,67.3898612,60.2579346,26.0433774,15.5859038,16.3453756,65.9482743,34.1336204,45.527993,30.6587763,23.2504472,61.2102113,3.4729455,37.3833516,20.1501736,2.8915165,3.0107711,25.652345,67.5351183,67.0061328,59.247229,25.6545321,15.0340612,16.2698645,66.159464,33.848795,45.8288528,33.4457347,25.7963644,61.4427609,3.2622072,35.9671508,22.0641549,3.3330636,3.4630763,28.0580256,66.6427116,67.7497814,58.4399977,24.9195777,15.1086124,16.2983095,65.390961,32.925823,46.0915994,36.5698586,28.9497563,61.992999,3.3704069,36.763443,22.9575322\r\n614,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,2.8915165,3.0107711,25.652345,67.5351183,67.0061328,59.247229,25.6545321,15.0340612,16.2698645,66.159464,33.848795,45.8288528,33.4457347,25.7963644,61.4427609,3.2622072,35.9671508,22.0641549,3.3330636,3.4630763,28.0580256,66.6427116,67.7497814,58.4399977,24.9195777,15.1086124,16.2983095,65.390961,32.925823,46.0915994,36.5698586,28.9497563,61.992999,3.3704069,36.763443,22.9575322,4.0038998,4.1434412,29.8292904,66.7694495,68.4299306,58.7862117,25.083012,16.1110237,17.5158621,63.9870078,31.8834428,48.1814852,38.6826018,30.6003531,62.388236,3.6349898,37.9647507,25.3828358\r\n615,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.0,3.3330636,3.4630763,28.0580256,66.6427116,67.7497814,58.4399977,24.9195777,15.1086124,16.2983095,65.390961,32.925823,46.0915994,36.5698586,28.9497563,61.992999,3.3704069,36.763443,22.9575322,4.0038998,4.1434412,29.8292904,66.7694495,68.4299306,58.7862117,25.083012,16.1110237,17.5158621,63.9870078,31.8834428,48.1814852,38.6826018,30.6003531,62.388236,3.6349898,37.9647507,25.3828358,4.3655864,4.4914131,32.1304395,67.2361845,68.5886324,58.9272178,23.9740695,16.8328871,16.6461674,62.4232132,30.6102512,49.5005685,40.9744293,32.8707114,63.375722,3.5932706,38.6797273,26.0805585\r\n616,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.8260733,0.8475926,12.8549322,77.6941986,75.9797702,65.3980274,23.139524,46.7002704,23.7444872,64.3770812,34.5695971,49.9657215,16.5622572,13.0158664,78.4710765,6.9197645,34.5477737,7.9725723,0.8449547,0.8760658,12.5225365,76.6583607,75.1860246,66.1850456,23.011434,46.5928902,22.927189,64.0680281,35.2072963,49.1012499,16.3510537,12.9261238,78.5501484,6.8714958,33.7766761,7.9288406,0.8519742,0.8993254,12.7989247,76.148959,74.5277259,65.0438414,22.6802478,46.8860018,23.2281664,64.1657397,34.8492557,48.0139257,16.3879288,12.8858969,78.7600707,6.5258842,33.5059565,7.5548301\r\n617,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.8449547,0.8760658,12.5225365,76.6583607,75.1860246,66.1850456,23.011434,46.5928902,22.927189,64.0680281,35.2072963,49.1012499,16.3510537,12.9261238,78.5501484,6.8714958,33.7766761,7.9288406,0.8519742,0.8993254,12.7989247,76.148959,74.5277259,65.0438414,22.6802478,46.8860018,23.2281664,64.1657397,34.8492557,48.0139257,16.3879288,12.8858969,78.7600707,6.5258842,33.5059565,7.5548301,0.8715824,0.8999361,13.0138249,75.364863,74.1007761,64.7208194,23.0299284,45.6027864,24.1933253,64.6968736,35.56093,47.7346671,16.4195186,12.7935078,78.7302627,6.7096743,33.5063002,7.2077509\r\n618,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.8519742,0.8993254,12.7989247,76.148959,74.5277259,65.0438414,22.6802478,46.8860018,23.2281664,64.1657397,34.8492557,48.0139257,16.3879288,12.8858969,78.7600707,6.5258842,33.5059565,7.5548301,0.8715824,0.8999361,13.0138249,75.364863,74.1007761,64.7208194,23.0299284,45.6027864,24.1933253,64.6968736,35.56093,47.7346671,16.4195186,12.7935078,78.7302627,6.7096743,33.5063002,7.2077509,0.9161186,0.9478976,12.7309731,74.8522248,74.9084882,64.7485468,23.6913581,45.654362,24.653404,64.8409319,35.6933018,47.2064172,16.0634994,12.727052,77.9921277,6.5093399,33.6338636,7.8683456\r\n619,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.8715824,0.8999361,13.0138249,75.364863,74.1007761,64.7208194,23.0299284,45.6027864,24.1933253,64.6968736,35.56093,47.7346671,16.4195186,12.7935078,78.7302627,6.7096743,33.5063002,7.2077509,0.9161186,0.9478976,12.7309731,74.8522248,74.9084882,64.7485468,23.6913581,45.654362,24.653404,64.8409319,35.6933018,47.2064172,16.0634994,12.727052,77.9921277,6.5093399,33.6338636,7.8683456,0.9843043,1.020406,13.2092503,74.377655,74.8512287,64.9649788,24.1614402,45.2885801,24.7801164,65.4320518,36.2828536,47.3267811,16.6692198,13.2413044,78.1315411,6.5038177,34.1464163,7.9702161\r\n620,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9161186,0.9478976,12.7309731,74.8522248,74.9084882,64.7485468,23.6913581,45.654362,24.653404,64.8409319,35.6933018,47.2064172,16.0634994,12.727052,77.9921277,6.5093399,33.6338636,7.8683456,0.9843043,1.020406,13.2092503,74.377655,74.8512287,64.9649788,24.1614402,45.2885801,24.7801164,65.4320518,36.2828536,47.3267811,16.6692198,13.2413044,78.1315411,6.5038177,34.1464163,7.9702161,1.0033142,1.0380304,13.2868852,74.1243151,74.3696768,65.3377379,24.9997888,46.0623305,24.9694504,65.8966938,36.9903483,46.5091965,16.4726658,12.9826233,77.7762933,6.8815786,34.1472395,8.4204742\r\n621,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9843043,1.020406,13.2092503,74.377655,74.8512287,64.9649788,24.1614402,45.2885801,24.7801164,65.4320518,36.2828536,47.3267811,16.6692198,13.2413044,78.1315411,6.5038177,34.1464163,7.9702161,1.0033142,1.0380304,13.2868852,74.1243151,74.3696768,65.3377379,24.9997888,46.0623305,24.9694504,65.8966938,36.9903483,46.5091965,16.4726658,12.9826233,77.7762933,6.8815786,34.1472395,8.4204742,0.9873167,0.9873167,13.0083449,73.0497433,73.9864944,64.244766,24.4413492,45.7328603,24.2557222,66.324826,37.0285986,45.9117733,16.365835,12.7069036,77.4024167,6.8166297,34.5760935,8.5591348\r\n622,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.0033142,1.0380304,13.2868852,74.1243151,74.3696768,65.3377379,24.9997888,46.0623305,24.9694504,65.8966938,36.9903483,46.5091965,16.4726658,12.9826233,77.7762933,6.8815786,34.1472395,8.4204742,0.9873167,0.9873167,13.0083449,73.0497433,73.9864944,64.244766,24.4413492,45.7328603,24.2557222,66.324826,37.0285986,45.9117733,16.365835,12.7069036,77.4024167,6.8166297,34.5760935,8.5591348,0.9246248,0.9246248,13.1249389,73.7871712,74.2325102,64.1985905,24.6973799,45.9895492,24.4711115,67.0567607,36.9654284,45.2928209,16.3597968,12.8124949,77.2128909,6.7472502,34.9022981,8.1336686\r\n623,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9873167,0.9873167,13.0083449,73.0497433,73.9864944,64.244766,24.4413492,45.7328603,24.2557222,66.324826,37.0285986,45.9117733,16.365835,12.7069036,77.4024167,6.8166297,34.5760935,8.5591348,0.9246248,0.9246248,13.1249389,73.7871712,74.2325102,64.1985905,24.6973799,45.9895492,24.4711115,67.0567607,36.9654284,45.2928209,16.3597968,12.8124949,77.2128909,6.7472502,34.9022981,8.1336686,0.9280894,0.9242854,12.4960796,74.7750094,75.3050738,65.3145141,24.9530175,46.4884385,24.5614593,67.5812914,37.0763547,46.0434454,15.8990686,12.567364,76.8991562,6.6273031,35.1635015,8.8124978\r\n624,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9246248,0.9246248,13.1249389,73.7871712,74.2325102,64.1985905,24.6973799,45.9895492,24.4711115,67.0567607,36.9654284,45.2928209,16.3597968,12.8124949,77.2128909,6.7472502,34.9022981,8.1336686,0.9280894,0.9242854,12.4960796,74.7750094,75.3050738,65.3145141,24.9530175,46.4884385,24.5614593,67.5812914,37.0763547,46.0434454,15.8990686,12.567364,76.8991562,6.6273031,35.1635015,8.8124978,0.9585808,0.9657214,12.2449919,76.0405692,75.4064751,65.8017533,24.9571139,47.6175853,23.9530405,67.8821438,36.5615915,46.4863963,15.8704481,12.6402514,76.6970718,6.9495005,34.9735291,8.8730535\r\n625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9280894,0.9242854,12.4960796,74.7750094,75.3050738,65.3145141,24.9530175,46.4884385,24.5614593,67.5812914,37.0763547,46.0434454,15.8990686,12.567364,76.8991562,6.6273031,35.1635015,8.8124978,0.9585808,0.9657214,12.2449919,76.0405692,75.4064751,65.8017533,24.9571139,47.6175853,23.9530405,67.8821438,36.5615915,46.4863963,15.8704481,12.6402514,76.6970718,6.9495005,34.9735291,8.8730535,0.9821847,0.9937626,12.064893,75.6464979,74.437811,65.9019474,24.8601841,47.7385418,23.0704211,68.129477,37.77979,46.8366673,15.6996242,12.2501272,76.6301414,6.7733719,35.2516463,8.7225101\r\n626,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9585808,0.9657214,12.2449919,76.0405692,75.4064751,65.8017533,24.9571139,47.6175853,23.9530405,67.8821438,36.5615915,46.4863963,15.8704481,12.6402514,76.6970718,6.9495005,34.9735291,8.8730535,0.9821847,0.9937626,12.064893,75.6464979,74.437811,65.9019474,24.8601841,47.7385418,23.0704211,68.129477,37.77979,46.8366673,15.6996242,12.2501272,76.6301414,6.7733719,35.2516463,8.7225101,0.8820434,0.8948436,11.7008487,75.9310908,74.5757737,66.0585764,24.812149,48.6371826,23.1985292,68.27704,38.0615868,47.1509048,15.2343828,11.8157537,76.2465452,7.1061296,34.5981559,9.2011243\r\n627,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9821847,0.9937626,12.064893,75.6464979,74.437811,65.9019474,24.8601841,47.7385418,23.0704211,68.129477,37.77979,46.8366673,15.6996242,12.2501272,76.6301414,6.7733719,35.2516463,8.7225101,0.8820434,0.8948436,11.7008487,75.9310908,74.5757737,66.0585764,24.812149,48.6371826,23.1985292,68.27704,38.0615868,47.1509048,15.2343828,11.8157537,76.2465452,7.1061296,34.5981559,9.2011243,0.8583317,0.9075803,11.7484435,75.7610486,74.2840595,66.5425978,24.9417524,48.3028302,22.9508223,68.2940119,37.6060328,46.8923862,15.214384,11.8140899,76.0183531,6.7551299,34.7426234,9.3519721\r\n628,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.8820434,0.8948436,11.7008487,75.9310908,74.5757737,66.0585764,24.812149,48.6371826,23.1985292,68.27704,38.0615868,47.1509048,15.2343828,11.8157537,76.2465452,7.1061296,34.5981559,9.2011243,0.8583317,0.9075803,11.7484435,75.7610486,74.2840595,66.5425978,24.9417524,48.3028302,22.9508223,68.2940119,37.6060328,46.8923862,15.214384,11.8140899,76.0183531,6.7551299,34.7426234,9.3519721,0.8740719,0.9436708,11.9685114,75.9479621,74.6783601,66.4014716,25.1681833,49.0258565,22.9234844,67.9679859,38.2647109,46.4563749,15.3500259,11.9189623,76.2219248,6.9930476,34.4639839,9.7875402\r\n629,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.8583317,0.9075803,11.7484435,75.7610486,74.2840595,66.5425978,24.9417524,48.3028302,22.9508223,68.2940119,37.6060328,46.8923862,15.214384,11.8140899,76.0183531,6.7551299,34.7426234,9.3519721,0.8740719,0.9436708,11.9685114,75.9479621,74.6783601,66.4014716,25.1681833,49.0258565,22.9234844,67.9679859,38.2647109,46.4563749,15.3500259,11.9189623,76.2219248,6.9930476,34.4639839,9.7875402,0.9200697,0.9875099,11.8348015,76.0119061,74.5455309,66.4204434,26.6437372,49.1160936,22.4902758,68.2354077,38.9001421,45.7029376,15.3311974,11.7287298,76.2007998,7.1217259,34.4299682,9.8755817\r\n630,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.8740719,0.9436708,11.9685114,75.9479621,74.6783601,66.4014716,25.1681833,49.0258565,22.9234844,67.9679859,38.2647109,46.4563749,15.3500259,11.9189623,76.2219248,6.9930476,34.4639839,9.7875402,0.9200697,0.9875099,11.8348015,76.0119061,74.5455309,66.4204434,26.6437372,49.1160936,22.4902758,68.2354077,38.9001421,45.7029376,15.3311974,11.7287298,76.2007998,7.1217259,34.4299682,9.8755817,1.0443924,1.1341835,12.2747102,75.0834439,73.5837906,66.8045822,27.3263946,49.4582243,22.5085873,68.2172107,39.3942964,44.6663647,15.6557371,12.0766716,76.2022006,7.535409,34.4600818,8.9085058\r\n631,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9200697,0.9875099,11.8348015,76.0119061,74.5455309,66.4204434,26.6437372,49.1160936,22.4902758,68.2354077,38.9001421,45.7029376,15.3311974,11.7287298,76.2007998,7.1217259,34.4299682,9.8755817,1.0443924,1.1341835,12.2747102,75.0834439,73.5837906,66.8045822,27.3263946,49.4582243,22.5085873,68.2172107,39.3942964,44.6663647,15.6557371,12.0766716,76.2022006,7.535409,34.4600818,8.9085058,1.0759217,1.1519981,12.0472742,74.778252,73.7689642,66.5172098,27.7493488,49.7268034,22.2673633,67.4615679,39.1722411,44.541471,15.3060544,11.5251937,76.7825929,7.3535526,34.5835975,7.9967851\r\n632,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.0443924,1.1341835,12.2747102,75.0834439,73.5837906,66.8045822,27.3263946,49.4582243,22.5085873,68.2172107,39.3942964,44.6663647,15.6557371,12.0766716,76.2022006,7.535409,34.4600818,8.9085058,1.0759217,1.1519981,12.0472742,74.778252,73.7689642,66.5172098,27.7493488,49.7268034,22.2673633,67.4615679,39.1722411,44.541471,15.3060544,11.5251937,76.7825929,7.3535526,34.5835975,7.9967851,1.0606725,1.1364139,12.1724563,74.9329216,73.9823264,66.8437383,27.8965661,49.593355,22.3689265,66.8298757,38.5514569,44.2708237,15.1861497,11.3762364,77.1823974,7.5005097,34.0032856,7.7235973\r\n633,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.0759217,1.1519981,12.0472742,74.778252,73.7689642,66.5172098,27.7493488,49.7268034,22.2673633,67.4615679,39.1722411,44.541471,15.3060544,11.5251937,76.7825929,7.3535526,34.5835975,7.9967851,1.0606725,1.1364139,12.1724563,74.9329216,73.9823264,66.8437383,27.8965661,49.593355,22.3689265,66.8298757,38.5514569,44.2708237,15.1861497,11.3762364,77.1823974,7.5005097,34.0032856,7.7235973,1.1152596,1.1995683,12.3703214,74.9708429,74.3114177,67.0508713,27.7018555,49.0943791,23.6835132,66.953199,37.8866451,44.7660211,15.3560849,11.5621045,77.1232675,7.0071276,33.9660473,7.4959016\r\n634,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.0606725,1.1364139,12.1724563,74.9329216,73.9823264,66.8437383,27.8965661,49.593355,22.3689265,66.8298757,38.5514569,44.2708237,15.1861497,11.3762364,77.1823974,7.5005097,34.0032856,7.7235973,1.1152596,1.1995683,12.3703214,74.9708429,74.3114177,67.0508713,27.7018555,49.0943791,23.6835132,66.953199,37.8866451,44.7660211,15.3560849,11.5621045,77.1232675,7.0071276,33.9660473,7.4959016,1.1978557,1.2602237,12.2109955,75.1551007,74.4144472,66.6083948,27.5114036,48.7142509,23.5991968,67.3810147,38.4541827,44.8986243,15.5617004,11.6533702,77.1017276,7.2592435,34.8156182,7.2567977\r\n635,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1152596,1.1995683,12.3703214,74.9708429,74.3114177,67.0508713,27.7018555,49.0943791,23.6835132,66.953199,37.8866451,44.7660211,15.3560849,11.5621045,77.1232675,7.0071276,33.9660473,7.4959016,1.1978557,1.2602237,12.2109955,75.1551007,74.4144472,66.6083948,27.5114036,48.7142509,23.5991968,67.3810147,38.4541827,44.8986243,15.5617004,11.6533702,77.1017276,7.2592435,34.8156182,7.2567977,1.1382194,1.1983044,12.3681385,74.3797665,74.0933823,67.0046007,27.4985522,47.9347241,23.6381506,67.2828784,37.9070897,44.4942516,15.2821656,11.5726138,76.6221987,7.2203228,34.5481077,7.7464969\r\n636,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1978557,1.2602237,12.2109955,75.1551007,74.4144472,66.6083948,27.5114036,48.7142509,23.5991968,67.3810147,38.4541827,44.8986243,15.5617004,11.6533702,77.1017276,7.2592435,34.8156182,7.2567977,1.1382194,1.1983044,12.3681385,74.3797665,74.0933823,67.0046007,27.4985522,47.9347241,23.6381506,67.2828784,37.9070897,44.4942516,15.2821656,11.5726138,76.6221987,7.2203228,34.5481077,7.7464969,1.0780369,1.1362076,12.5973016,74.2086865,73.988961,67.3491734,26.5096536,48.1464255,24.0046319,67.1099995,38.1019323,45.6162903,15.1442794,11.4752561,76.5380073,7.2863785,34.6761216,7.9230935\r\n637,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1382194,1.1983044,12.3681385,74.3797665,74.0933823,67.0046007,27.4985522,47.9347241,23.6381506,67.2828784,37.9070897,44.4942516,15.2821656,11.5726138,76.6221987,7.2203228,34.5481077,7.7464969,1.0780369,1.1362076,12.5973016,74.2086865,73.988961,67.3491734,26.5096536,48.1464255,24.0046319,67.1099995,38.1019323,45.6162903,15.1442794,11.4752561,76.5380073,7.2863785,34.6761216,7.9230935,0.9915167,1.0512362,12.6059226,74.4324138,74.0728342,67.0981305,26.4584665,47.8664367,23.5937388,66.5189163,37.5460992,45.7622297,14.7096943,11.1224168,76.1054345,7.3186722,34.5671917,8.0434928\r\n638,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.0780369,1.1362076,12.5973016,74.2086865,73.988961,67.3491734,26.5096536,48.1464255,24.0046319,67.1099995,38.1019323,45.6162903,15.1442794,11.4752561,76.5380073,7.2863785,34.6761216,7.9230935,0.9915167,1.0512362,12.6059226,74.4324138,74.0728342,67.0981305,26.4584665,47.8664367,23.5937388,66.5189163,37.5460992,45.7622297,14.7096943,11.1224168,76.1054345,7.3186722,34.5671917,8.0434928,0.9927044,1.0509807,12.8628888,74.5623757,74.4817062,67.3336534,25.5610358,47.1605066,24.03986,66.7592289,37.8671079,44.8881547,14.77636,11.368513,76.2638008,7.1546617,35.1146632,7.9792417\r\n639,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9915167,1.0512362,12.6059226,74.4324138,74.0728342,67.0981305,26.4584665,47.8664367,23.5937388,66.5189163,37.5460992,45.7622297,14.7096943,11.1224168,76.1054345,7.3186722,34.5671917,8.0434928,0.9927044,1.0509807,12.8628888,74.5623757,74.4817062,67.3336534,25.5610358,47.1605066,24.03986,66.7592289,37.8671079,44.8881547,14.77636,11.368513,76.2638008,7.1546617,35.1146632,7.9792417,0.9401317,0.983074,12.6090821,75.2769885,75.347233,67.6188242,25.4331879,47.8040359,25.34936,67.1160529,38.1900891,44.1853647,14.9558823,11.3789143,76.1524359,7.3232887,35.8449871,8.1097533\r\n640,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9927044,1.0509807,12.8628888,74.5623757,74.4817062,67.3336534,25.5610358,47.1605066,24.03986,66.7592289,37.8671079,44.8881547,14.77636,11.368513,76.2638008,7.1546617,35.1146632,7.9792417,0.9401317,0.983074,12.6090821,75.2769885,75.347233,67.6188242,25.4331879,47.8040359,25.34936,67.1160529,38.1900891,44.1853647,14.9558823,11.3789143,76.1524359,7.3232887,35.8449871,8.1097533,0.9849892,1.0102608,12.2012117,74.9343516,74.9082791,66.9685534,25.7126203,47.8946793,24.0828472,66.8922897,38.4377776,43.051299,14.576142,11.0484714,76.0793589,7.3737404,35.7948153,8.3660201\r\n641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9401317,0.983074,12.6090821,75.2769885,75.347233,67.6188242,25.4331879,47.8040359,25.34936,67.1160529,38.1900891,44.1853647,14.9558823,11.3789143,76.1524359,7.3232887,35.8449871,8.1097533,0.9849892,1.0102608,12.2012117,74.9343516,74.9082791,66.9685534,25.7126203,47.8946793,24.0828472,66.8922897,38.4377776,43.051299,14.576142,11.0484714,76.0793589,7.3737404,35.7948153,8.3660201,0.9806535,0.9859111,11.834448,74.601703,74.6632168,67.74468,26.1627901,48.5999167,24.419274,66.5945771,37.984865,42.6182309,14.5217447,10.8334291,76.0396562,7.1941556,34.5846107,8.3550114\r\n642,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9849892,1.0102608,12.2012117,74.9343516,74.9082791,66.9685534,25.7126203,47.8946793,24.0828472,66.8922897,38.4377776,43.051299,14.576142,11.0484714,76.0793589,7.3737404,35.7948153,8.3660201,0.9806535,0.9859111,11.834448,74.601703,74.6632168,67.74468,26.1627901,48.5999167,24.419274,66.5945771,37.984865,42.6182309,14.5217447,10.8334291,76.0396562,7.1941556,34.5846107,8.3550114,0.9403522,0.9528778,11.1905839,74.0598548,74.0300884,67.9741151,26.968607,49.3662796,24.3655292,67.0397791,38.5892583,42.393838,14.3382457,10.5951101,76.157423,7.0992796,34.0612579,6.938835\r\n643,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9806535,0.9859111,11.834448,74.601703,74.6632168,67.74468,26.1627901,48.5999167,24.419274,66.5945771,37.984865,42.6182309,14.5217447,10.8334291,76.0396562,7.1941556,34.5846107,8.3550114,0.9403522,0.9528778,11.1905839,74.0598548,74.0300884,67.9741151,26.968607,49.3662796,24.3655292,67.0397791,38.5892583,42.393838,14.3382457,10.5951101,76.157423,7.0992796,34.0612579,6.938835,0.9700202,0.9943225,11.296611,73.6504928,73.5325169,67.8208791,27.267292,49.3957846,23.7866759,66.9570647,38.3729571,42.6133818,14.7259251,10.9998081,76.2734797,6.8127592,34.5694438,7.0184232\r\n644,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9403522,0.9528778,11.1905839,74.0598548,74.0300884,67.9741151,26.968607,49.3662796,24.3655292,67.0397791,38.5892583,42.393838,14.3382457,10.5951101,76.157423,7.0992796,34.0612579,6.938835,0.9700202,0.9943225,11.296611,73.6504928,73.5325169,67.8208791,27.267292,49.3957846,23.7866759,66.9570647,38.3729571,42.6133818,14.7259251,10.9998081,76.2734797,6.8127592,34.5694438,7.0184232,0.9915595,0.9983404,11.0933367,74.2005662,73.3282036,68.5197065,27.5162408,50.0016205,23.7735052,67.5631337,38.7936266,43.0000129,15.1951968,11.2285482,76.9062665,6.449297,34.4852639,7.5550605\r\n645,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9700202,0.9943225,11.296611,73.6504928,73.5325169,67.8208791,27.267292,49.3957846,23.7866759,66.9570647,38.3729571,42.6133818,14.7259251,10.9998081,76.2734797,6.8127592,34.5694438,7.0184232,0.9915595,0.9983404,11.0933367,74.2005662,73.3282036,68.5197065,27.5162408,50.0016205,23.7735052,67.5631337,38.7936266,43.0000129,15.1951968,11.2285482,76.9062665,6.449297,34.4852639,7.5550605,1.0001804,1.0021203,10.9882922,73.0439447,72.3965968,69.2455122,28.5721167,49.4881326,22.7493048,67.9514176,39.11641,43.1046259,15.5127062,11.3615282,76.5198632,6.5499749,34.68511,7.8276549\r\n646,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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.9915595,0.9983404,11.0933367,74.2005662,73.3282036,68.5197065,27.5162408,50.0016205,23.7735052,67.5631337,38.7936266,43.0000129,15.1951968,11.2285482,76.9062665,6.449297,34.4852639,7.5550605,1.0001804,1.0021203,10.9882922,73.0439447,72.3965968,69.2455122,28.5721167,49.4881326,22.7493048,67.9514176,39.11641,43.1046259,15.5127062,11.3615282,76.5198632,6.5499749,34.68511,7.8276549,1.085316,1.0916895,11.0967886,72.5008806,71.6635238,69.0183431,28.825716,49.5308988,21.5957364,68.3634741,38.7564991,42.8004086,15.6514267,11.5017235,76.5931756,6.3589799,34.6608935,8.4359483\r\n647,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.0001804,1.0021203,10.9882922,73.0439447,72.3965968,69.2455122,28.5721167,49.4881326,22.7493048,67.9514176,39.11641,43.1046259,15.5127062,11.3615282,76.5198632,6.5499749,34.68511,7.8276549,1.085316,1.0916895,11.0967886,72.5008806,71.6635238,69.0183431,28.825716,49.5308988,21.5957364,68.3634741,38.7564991,42.8004086,15.6514267,11.5017235,76.5931756,6.3589799,34.6608935,8.4359483,1.1004459,1.1290454,11.0930081,72.042473,71.3090819,67.562913,28.6404619,49.807058,22.4009538,67.959801,38.9319161,42.5385603,16.0087035,11.7064161,76.8610844,6.5669908,35.0099392,7.6874079\r\n648,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.085316,1.0916895,11.0967886,72.5008806,71.6635238,69.0183431,28.825716,49.5308988,21.5957364,68.3634741,38.7564991,42.8004086,15.6514267,11.5017235,76.5931756,6.3589799,34.6608935,8.4359483,1.1004459,1.1290454,11.0930081,72.042473,71.3090819,67.562913,28.6404619,49.807058,22.4009538,67.959801,38.9319161,42.5385603,16.0087035,11.7064161,76.8610844,6.5669908,35.0099392,7.6874079,1.1022743,1.1358051,11.3935971,72.4466172,71.6472465,66.859844,28.4318962,50.2689615,22.4944168,67.4965341,39.3626755,41.9471572,16.0658715,11.8220605,77.3087382,6.561086,35.3253245,7.6292434\r\n649,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1004459,1.1290454,11.0930081,72.042473,71.3090819,67.562913,28.6404619,49.807058,22.4009538,67.959801,38.9319161,42.5385603,16.0087035,11.7064161,76.8610844,6.5669908,35.0099392,7.6874079,1.1022743,1.1358051,11.3935971,72.4466172,71.6472465,66.859844,28.4318962,50.2689615,22.4944168,67.4965341,39.3626755,41.9471572,16.0658715,11.8220605,77.3087382,6.561086,35.3253245,7.6292434,1.1675648,1.2074356,12.131209,73.3922799,72.3408537,66.3280718,28.1654812,50.3956328,22.3299783,67.9250476,39.3086687,42.3056747,16.8842942,12.4380169,77.7636536,6.6066333,36.1033836,8.5171457\r\n650,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1022743,1.1358051,11.3935971,72.4466172,71.6472465,66.859844,28.4318962,50.2689615,22.4944168,67.4965341,39.3626755,41.9471572,16.0658715,11.8220605,77.3087382,6.561086,35.3253245,7.6292434,1.1675648,1.2074356,12.131209,73.3922799,72.3408537,66.3280718,28.1654812,50.3956328,22.3299783,67.9250476,39.3086687,42.3056747,16.8842942,12.4380169,77.7636536,6.6066333,36.1033836,8.5171457,1.2133191,1.2596246,11.9696882,73.4779146,72.8704767,65.6955625,28.0917064,49.2331047,22.9575907,67.8106397,39.1654172,42.3987639,16.8032839,12.0960715,77.5760984,6.83035,35.5902986,9.2105263\r\n651,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1675648,1.2074356,12.131209,73.3922799,72.3408537,66.3280718,28.1654812,50.3956328,22.3299783,67.9250476,39.3086687,42.3056747,16.8842942,12.4380169,77.7636536,6.6066333,36.1033836,8.5171457,1.2133191,1.2596246,11.9696882,73.4779146,72.8704767,65.6955625,28.0917064,49.2331047,22.9575907,67.8106397,39.1654172,42.3987639,16.8032839,12.0960715,77.5760984,6.83035,35.5902986,9.2105263,1.1959407,1.2494097,11.6369288,73.0204586,73.0223823,65.2355507,27.5667668,48.3170955,22.9104678,67.1200337,39.0794712,41.77835,16.4660294,11.7660988,77.1647125,7.0751332,35.4206953,8.8014959\r\n652,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.2133191,1.2596246,11.9696882,73.4779146,72.8704767,65.6955625,28.0917064,49.2331047,22.9575907,67.8106397,39.1654172,42.3987639,16.8032839,12.0960715,77.5760984,6.83035,35.5902986,9.2105263,1.1959407,1.2494097,11.6369288,73.0204586,73.0223823,65.2355507,27.5667668,48.3170955,22.9104678,67.1200337,39.0794712,41.77835,16.4660294,11.7660988,77.1647125,7.0751332,35.4206953,8.8014959,1.2703765,1.3471408,11.8387051,73.130652,73.0773024,64.4655039,27.3659573,49.6100509,23.838253,66.862459,39.2632938,40.6324877,16.5054359,11.7044431,76.7795996,7.172147,34.9653439,8.7468961\r\n653,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1959407,1.2494097,11.6369288,73.0204586,73.0223823,65.2355507,27.5667668,48.3170955,22.9104678,67.1200337,39.0794712,41.77835,16.4660294,11.7660988,77.1647125,7.0751332,35.4206953,8.8014959,1.2703765,1.3471408,11.8387051,73.130652,73.0773024,64.4655039,27.3659573,49.6100509,23.838253,66.862459,39.2632938,40.6324877,16.5054359,11.7044431,76.7795996,7.172147,34.9653439,8.7468961,1.1900003,1.26991,12.016228,72.8633747,73.3020533,64.2900197,27.5381081,49.7195533,24.1965166,66.4362746,39.5094141,40.8112433,16.555473,11.7765773,76.8759475,7.109624,34.4205023,8.3436331\r\n654,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.2703765,1.3471408,11.8387051,73.130652,73.0773024,64.4655039,27.3659573,49.6100509,23.838253,66.862459,39.2632938,40.6324877,16.5054359,11.7044431,76.7795996,7.172147,34.9653439,8.7468961,1.1900003,1.26991,12.016228,72.8633747,73.3020533,64.2900197,27.5381081,49.7195533,24.1965166,66.4362746,39.5094141,40.8112433,16.555473,11.7765773,76.8759475,7.109624,34.4205023,8.3436331,1.1695921,1.2277871,12.5448861,73.0632558,73.3692455,65.5932345,27.5553609,49.0582145,23.0639418,66.6740409,39.5536025,41.3338217,16.8820401,12.0702956,76.8654644,6.8484645,34.4009744,9.0073507\r\n655,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1900003,1.26991,12.016228,72.8633747,73.3020533,64.2900197,27.5381081,49.7195533,24.1965166,66.4362746,39.5094141,40.8112433,16.555473,11.7765773,76.8759475,7.109624,34.4205023,8.3436331,1.1695921,1.2277871,12.5448861,73.0632558,73.3692455,65.5932345,27.5553609,49.0582145,23.0639418,66.6740409,39.5536025,41.3338217,16.8820401,12.0702956,76.8654644,6.8484645,34.4009744,9.0073507,1.1845837,1.2433073,12.9598027,72.8394498,72.7264246,65.291816,27.1474927,48.4330998,22.4039314,66.5618032,39.1091674,42.3447483,17.0896239,12.3458156,76.7015622,6.8551013,34.9421974,9.8894349\r\n656,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1695921,1.2277871,12.5448861,73.0632558,73.3692455,65.5932345,27.5553609,49.0582145,23.0639418,66.6740409,39.5536025,41.3338217,16.8820401,12.0702956,76.8654644,6.8484645,34.4009744,9.0073507,1.1845837,1.2433073,12.9598027,72.8394498,72.7264246,65.291816,27.1474927,48.4330998,22.4039314,66.5618032,39.1091674,42.3447483,17.0896239,12.3458156,76.7015622,6.8551013,34.9421974,9.8894349,1.1282046,1.1657701,12.4326627,72.6981477,72.7520802,65.2677438,27.1278068,47.6304723,22.6041356,65.8936137,39.2022118,42.4719393,16.4231921,11.9208368,76.739929,6.611707,35.3214488,9.586465\r\n657,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1845837,1.2433073,12.9598027,72.8394498,72.7264246,65.291816,27.1474927,48.4330998,22.4039314,66.5618032,39.1091674,42.3447483,17.0896239,12.3458156,76.7015622,6.8551013,34.9421974,9.8894349,1.1282046,1.1657701,12.4326627,72.6981477,72.7520802,65.2677438,27.1278068,47.6304723,22.6041356,65.8936137,39.2022118,42.4719393,16.4231921,11.9208368,76.739929,6.611707,35.3214488,9.586465,1.144994,1.1871738,12.2248624,72.5471975,72.9380722,65.9808171,27.2105365,49.0522847,22.1246495,65.8974808,39.540617,43.0179065,16.4273849,11.9634366,76.9391377,6.5622872,35.1167433,8.6427646\r\n658,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1282046,1.1657701,12.4326627,72.6981477,72.7520802,65.2677438,27.1278068,47.6304723,22.6041356,65.8936137,39.2022118,42.4719393,16.4231921,11.9208368,76.739929,6.611707,35.3214488,9.586465,1.144994,1.1871738,12.2248624,72.5471975,72.9380722,65.9808171,27.2105365,49.0522847,22.1246495,65.8974808,39.540617,43.0179065,16.4273849,11.9634366,76.9391377,6.5622872,35.1167433,8.6427646,1.1869256,1.2257592,12.514008,72.8174596,73.7505627,66.5864406,27.7951477,49.4664238,22.7114356,66.2682003,39.5357597,44.3856391,16.6983788,12.1701136,77.2689227,6.386104,35.3245211,9.5578698\r\n659,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.144994,1.1871738,12.2248624,72.5471975,72.9380722,65.9808171,27.2105365,49.0522847,22.1246495,65.8974808,39.540617,43.0179065,16.4273849,11.9634366,76.9391377,6.5622872,35.1167433,8.6427646,1.1869256,1.2257592,12.514008,72.8174596,73.7505627,66.5864406,27.7951477,49.4664238,22.7114356,66.2682003,39.5357597,44.3856391,16.6983788,12.1701136,77.2689227,6.386104,35.3245211,9.5578698,1.0651541,1.089752,12.8284174,73.1851599,74.2037467,66.6662894,28.1331214,48.3729295,22.0103483,66.1683547,39.3965256,45.371518,16.8504378,12.5702343,77.9577456,6.3226365,35.6988059,9.4230805\r\n660,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1869256,1.2257592,12.514008,72.8174596,73.7505627,66.5864406,27.7951477,49.4664238,22.7114356,66.2682003,39.5357597,44.3856391,16.6983788,12.1701136,77.2689227,6.386104,35.3245211,9.5578698,1.0651541,1.089752,12.8284174,73.1851599,74.2037467,66.6662894,28.1331214,48.3729295,22.0103483,66.1683547,39.3965256,45.371518,16.8504378,12.5702343,77.9577456,6.3226365,35.6988059,9.4230805,1.165939,1.1878218,12.9488011,73.0241529,73.9118245,66.1773442,27.7349186,48.510327,21.9562164,66.2299962,39.1112926,45.7495503,17.2468337,12.8237756,77.8742919,6.569513,36.1202159,10.4487193\r\n661,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.0651541,1.089752,12.8284174,73.1851599,74.2037467,66.6662894,28.1331214,48.3729295,22.0103483,66.1683547,39.3965256,45.371518,16.8504378,12.5702343,77.9577456,6.3226365,35.6988059,9.4230805,1.165939,1.1878218,12.9488011,73.0241529,73.9118245,66.1773442,27.7349186,48.510327,21.9562164,66.2299962,39.1112926,45.7495503,17.2468337,12.8237756,77.8742919,6.569513,36.1202159,10.4487193,1.2183933,1.2428795,13.2740347,73.3830005,73.4733808,66.8628366,27.7500992,48.3736753,22.0001499,66.3496982,39.3921239,45.3589892,17.5068886,13.1149578,77.7064153,6.7316047,36.2862243,10.8333361\r\n662,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.165939,1.1878218,12.9488011,73.0241529,73.9118245,66.1773442,27.7349186,48.510327,21.9562164,66.2299962,39.1112926,45.7495503,17.2468337,12.8237756,77.8742919,6.569513,36.1202159,10.4487193,1.2183933,1.2428795,13.2740347,73.3830005,73.4733808,66.8628366,27.7500992,48.3736753,22.0001499,66.3496982,39.3921239,45.3589892,17.5068886,13.1149578,77.7064153,6.7316047,36.2862243,10.8333361,1.2636592,1.305028,13.8413903,73.5689401,73.7681052,66.8780833,27.2351668,47.8648624,22.497034,66.5060279,38.6986953,45.816796,18.1182583,13.7281029,77.6347067,6.6769356,35.9178367,11.0322581\r\n663,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.2183933,1.2428795,13.2740347,73.3830005,73.4733808,66.8628366,27.7500992,48.3736753,22.0001499,66.3496982,39.3921239,45.3589892,17.5068886,13.1149578,77.7064153,6.7316047,36.2862243,10.8333361,1.2636592,1.305028,13.8413903,73.5689401,73.7681052,66.8780833,27.2351668,47.8648624,22.497034,66.5060279,38.6986953,45.816796,18.1182583,13.7281029,77.6347067,6.6769356,35.9178367,11.0322581,1.26068,1.3231067,14.3308608,73.9421436,73.5643061,67.0983438,26.6918159,47.8875873,22.6260654,66.3037175,38.207758,46.0043681,18.5569803,14.0131417,77.3388579,6.8434472,35.7357904,11.4528796\r\n664,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.2636592,1.305028,13.8413903,73.5689401,73.7681052,66.8780833,27.2351668,47.8648624,22.497034,66.5060279,38.6986953,45.816796,18.1182583,13.7281029,77.6347067,6.6769356,35.9178367,11.0322581,1.26068,1.3231067,14.3308608,73.9421436,73.5643061,67.0983438,26.6918159,47.8875873,22.6260654,66.3037175,38.207758,46.0043681,18.5569803,14.0131417,77.3388579,6.8434472,35.7357904,11.4528796,1.2642026,1.3058201,14.5826904,74.1527652,72.9531592,67.6277467,26.7930895,47.9796871,22.256681,65.9635358,37.2097657,45.6850637,18.7244326,14.2234569,77.6374075,6.748632,35.676385,12.3717933\r\n665,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.26068,1.3231067,14.3308608,73.9421436,73.5643061,67.0983438,26.6918159,47.8875873,22.6260654,66.3037175,38.207758,46.0043681,18.5569803,14.0131417,77.3388579,6.8434472,35.7357904,11.4528796,1.2642026,1.3058201,14.5826904,74.1527652,72.9531592,67.6277467,26.7930895,47.9796871,22.256681,65.9635358,37.2097657,45.6850637,18.7244326,14.2234569,77.6374075,6.748632,35.676385,12.3717933,1.2315278,1.2691702,14.7791428,73.7914136,72.7968322,67.8558459,26.2562452,48.5025504,22.2534844,66.0031631,37.3595216,45.1883417,18.9772569,14.6426726,77.573464,7.17288,35.973527,11.3899555\r\n666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.2642026,1.3058201,14.5826904,74.1527652,72.9531592,67.6277467,26.7930895,47.9796871,22.256681,65.9635358,37.2097657,45.6850637,18.7244326,14.2234569,77.6374075,6.748632,35.676385,12.3717933,1.2315278,1.2691702,14.7791428,73.7914136,72.7968322,67.8558459,26.2562452,48.5025504,22.2534844,66.0031631,37.3595216,45.1883417,18.9772569,14.6426726,77.573464,7.17288,35.973527,11.3899555,1.3191977,1.3512794,14.7960576,73.5385369,73.0276999,67.6382049,25.8874647,48.5142735,22.1225714,66.2444214,37.2131716,45.4498648,19.2017975,14.8789287,77.8897735,6.9226539,35.9616056,11.8064425\r\n667,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.2315278,1.2691702,14.7791428,73.7914136,72.7968322,67.8558459,26.2562452,48.5025504,22.2534844,66.0031631,37.3595216,45.1883417,18.9772569,14.6426726,77.573464,7.17288,35.973527,11.3899555,1.3191977,1.3512794,14.7960576,73.5385369,73.0276999,67.6382049,25.8874647,48.5142735,22.1225714,66.2444214,37.2131716,45.4498648,19.2017975,14.8789287,77.8897735,6.9226539,35.9616056,11.8064425,1.231076,1.2680199,14.8223292,73.5922396,73.0828198,68.5483801,25.5268553,48.4326906,21.8607111,66.9337776,36.894328,45.8709884,18.9611138,14.7799943,77.9920975,6.6833957,35.3889907,10.9150241\r\n668,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.3191977,1.3512794,14.7960576,73.5385369,73.0276999,67.6382049,25.8874647,48.5142735,22.1225714,66.2444214,37.2131716,45.4498648,19.2017975,14.8789287,77.8897735,6.9226539,35.9616056,11.8064425,1.231076,1.2680199,14.8223292,73.5922396,73.0828198,68.5483801,25.5268553,48.4326906,21.8607111,66.9337776,36.894328,45.8709884,18.9611138,14.7799943,77.9920975,6.6833957,35.3889907,10.9150241,1.2173552,1.2525603,14.3398159,73.0966412,72.7624819,68.8246409,26.2220785,48.8049535,22.1885368,66.9424778,36.7412353,46.4775269,18.4792807,14.3540259,78.0235797,6.4051128,34.5294139,10.7908641\r\n669,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.231076,1.2680199,14.8223292,73.5922396,73.0828198,68.5483801,25.5268553,48.4326906,21.8607111,66.9337776,36.894328,45.8709884,18.9611138,14.7799943,77.9920975,6.6833957,35.3889907,10.9150241,1.2173552,1.2525603,14.3398159,73.0966412,72.7624819,68.8246409,26.2220785,48.8049535,22.1885368,66.9424778,36.7412353,46.4775269,18.4792807,14.3540259,78.0235797,6.4051128,34.5294139,10.7908641,1.0668729,1.0843705,13.8733464,73.7622281,73.3092992,70.632635,28.4437348,49.9449043,22.3992201,66.6473178,37.0035064,45.2190603,17.6101659,13.7237872,77.9832494,6.1801714,34.4457451,10.4605063\r\n670,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.2173552,1.2525603,14.3398159,73.0966412,72.7624819,68.8246409,26.2220785,48.8049535,22.1885368,66.9424778,36.7412353,46.4775269,18.4792807,14.3540259,78.0235797,6.4051128,34.5294139,10.7908641,1.0668729,1.0843705,13.8733464,73.7622281,73.3092992,70.632635,28.4437348,49.9449043,22.3992201,66.6473178,37.0035064,45.2190603,17.6101659,13.7237872,77.9832494,6.1801714,34.4457451,10.4605063,1.1480496,1.1540747,13.7956884,74.4976094,74.5420942,70.9198409,29.3291654,50.751575,22.4741519,66.9333524,36.9876531,46.5012434,17.82617,13.9425162,78.0408942,6.2592466,34.7966435,10.9937723\r\n671,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.0668729,1.0843705,13.8733464,73.7622281,73.3092992,70.632635,28.4437348,49.9449043,22.3992201,66.6473178,37.0035064,45.2190603,17.6101659,13.7237872,77.9832494,6.1801714,34.4457451,10.4605063,1.1480496,1.1540747,13.7956884,74.4976094,74.5420942,70.9198409,29.3291654,50.751575,22.4741519,66.9333524,36.9876531,46.5012434,17.82617,13.9425162,78.0408942,6.2592466,34.7966435,10.9937723,1.1481633,1.1540864,14.1577509,74.2614875,75.604858,70.9005451,29.0076119,50.6981088,23.032426,66.8998681,36.9580467,46.6788183,18.1266187,14.2352356,78.0320658,6.127069,35.4112303,10.6801764\r\n672,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1480496,1.1540747,13.7956884,74.4976094,74.5420942,70.9198409,29.3291654,50.751575,22.4741519,66.9333524,36.9876531,46.5012434,17.82617,13.9425162,78.0408942,6.2592466,34.7966435,10.9937723,1.1481633,1.1540864,14.1577509,74.2614875,75.604858,70.9005451,29.0076119,50.6981088,23.032426,66.8998681,36.9580467,46.6788183,18.1266187,14.2352356,78.0320658,6.127069,35.4112303,10.6801764,1.182658,1.1884345,14.5980317,74.4126909,74.7829835,69.7331473,28.9170498,49.628952,22.9810755,66.9589917,36.4227109,46.1008037,18.5377575,14.4359385,78.137993,5.6789681,35.1001712,11.1689699\r\n673,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1481633,1.1540864,14.1577509,74.2614875,75.604858,70.9005451,29.0076119,50.6981088,23.032426,66.8998681,36.9580467,46.6788183,18.1266187,14.2352356,78.0320658,6.127069,35.4112303,10.6801764,1.182658,1.1884345,14.5980317,74.4126909,74.7829835,69.7331473,28.9170498,49.628952,22.9810755,66.9589917,36.4227109,46.1008037,18.5377575,14.4359385,78.137993,5.6789681,35.1001712,11.1689699,1.205917,1.2170697,14.7322535,74.8059335,74.7177275,70.4018013,28.9873899,50.2160935,23.2570923,66.9581846,36.0563914,46.1634602,19.0104308,14.5971414,77.5933348,5.7928748,35.3649658,11.192341\r\n674,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.182658,1.1884345,14.5980317,74.4126909,74.7829835,69.7331473,28.9170498,49.628952,22.9810755,66.9589917,36.4227109,46.1008037,18.5377575,14.4359385,78.137993,5.6789681,35.1001712,11.1689699,1.205917,1.2170697,14.7322535,74.8059335,74.7177275,70.4018013,28.9873899,50.2160935,23.2570923,66.9581846,36.0563914,46.1634602,19.0104308,14.5971414,77.5933348,5.7928748,35.3649658,11.192341,1.1933922,1.2164582,14.8982475,74.8188513,74.3062709,69.7276665,29.3884272,48.4624128,23.0922333,65.8836355,35.9164844,46.1298503,19.5370888,14.9947828,77.9247731,5.8899851,35.607396,11.1412838\r\n675,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.205917,1.2170697,14.7322535,74.8059335,74.7177275,70.4018013,28.9873899,50.2160935,23.2570923,66.9581846,36.0563914,46.1634602,19.0104308,14.5971414,77.5933348,5.7928748,35.3649658,11.192341,1.1933922,1.2164582,14.8982475,74.8188513,74.3062709,69.7276665,29.3884272,48.4624128,23.0922333,65.8836355,35.9164844,46.1298503,19.5370888,14.9947828,77.9247731,5.8899851,35.607396,11.1412838,1.2735885,1.3076124,15.6982269,75.0001177,74.6236793,69.2148219,29.1324725,47.8644022,22.6999857,65.335576,35.7151838,45.816153,20.3041196,15.633259,78.348396,6.1311799,36.1149199,11.0821945\r\n676,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.1933922,1.2164582,14.8982475,74.8188513,74.3062709,69.7276665,29.3884272,48.4624128,23.0922333,65.8836355,35.9164844,46.1298503,19.5370888,14.9947828,77.9247731,5.8899851,35.607396,11.1412838,1.2735885,1.3076124,15.6982269,75.0001177,74.6236793,69.2148219,29.1324725,47.8644022,22.6999857,65.335576,35.7151838,45.816153,20.3041196,15.633259,78.348396,6.1311799,36.1149199,11.0821945,1.319809,1.3535911,16.487205,74.4375785,74.3323837,67.8450641,27.4180936,46.5840042,22.1158166,65.2831505,35.9516452,47.5702345,21.3437838,16.3808799,78.7599265,6.2186142,36.2815089,11.7435807\r\n677,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.2735885,1.3076124,15.6982269,75.0001177,74.6236793,69.2148219,29.1324725,47.8644022,22.6999857,65.335576,35.7151838,45.816153,20.3041196,15.633259,78.348396,6.1311799,36.1149199,11.0821945,1.319809,1.3535911,16.487205,74.4375785,74.3323837,67.8450641,27.4180936,46.5840042,22.1158166,65.2831505,35.9516452,47.5702345,21.3437838,16.3808799,78.7599265,6.2186142,36.2815089,11.7435807,1.3695213,1.3863172,17.0515663,73.9468202,73.0478956,68.1245817,26.7753416,47.0646975,22.3353858,64.9575868,35.8429054,46.9140953,22.1406303,17.0242692,79.11854,6.0715488,36.2718169,11.4124758\r\n678,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.319809,1.3535911,16.487205,74.4375785,74.3323837,67.8450641,27.4180936,46.5840042,22.1158166,65.2831505,35.9516452,47.5702345,21.3437838,16.3808799,78.7599265,6.2186142,36.2815089,11.7435807,1.3695213,1.3863172,17.0515663,73.9468202,73.0478956,68.1245817,26.7753416,47.0646975,22.3353858,64.9575868,35.8429054,46.9140953,22.1406303,17.0242692,79.11854,6.0715488,36.2718169,11.4124758,1.4015987,1.4261199,17.3213155,74.5511673,72.5116429,68.2186764,26.2541169,47.4737003,22.246353,64.900582,35.8066532,46.695756,22.3877048,17.3194095,79.0122336,6.2258444,36.2301256,12.5891819\r\n679,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.3695213,1.3863172,17.0515663,73.9468202,73.0478956,68.1245817,26.7753416,47.0646975,22.3353858,64.9575868,35.8429054,46.9140953,22.1406303,17.0242692,79.11854,6.0715488,36.2718169,11.4124758,1.4015987,1.4261199,17.3213155,74.5511673,72.5116429,68.2186764,26.2541169,47.4737003,22.246353,64.900582,35.8066532,46.695756,22.3877048,17.3194095,79.0122336,6.2258444,36.2301256,12.5891819,1.4226162,1.4474216,17.7710109,74.7080485,72.8888261,68.8990298,26.7010732,48.4994007,21.5025548,64.5817874,35.8475102,48.2552,22.7212502,17.8233538,79.6130659,6.4677885,36.3207525,12.8983938\r\n680,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.4015987,1.4261199,17.3213155,74.5511673,72.5116429,68.2186764,26.2541169,47.4737003,22.246353,64.900582,35.8066532,46.695756,22.3877048,17.3194095,79.0122336,6.2258444,36.2301256,12.5891819,1.4226162,1.4474216,17.7710109,74.7080485,72.8888261,68.8990298,26.7010732,48.4994007,21.5025548,64.5817874,35.8475102,48.2552,22.7212502,17.8233538,79.6130659,6.4677885,36.3207525,12.8983938,1.4885799,1.5232446,18.2136047,74.7509115,72.3172463,68.4484794,26.4587271,48.5339937,21.7456785,64.8126819,35.9806998,48.7311717,22.7825537,17.9611083,80.1212106,6.4966725,35.731793,13.323488\r\n681,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.4226162,1.4474216,17.7710109,74.7080485,72.8888261,68.8990298,26.7010732,48.4994007,21.5025548,64.5817874,35.8475102,48.2552,22.7212502,17.8233538,79.6130659,6.4677885,36.3207525,12.8983938,1.4885799,1.5232446,18.2136047,74.7509115,72.3172463,68.4484794,26.4587271,48.5339937,21.7456785,64.8126819,35.9806998,48.7311717,22.7825537,17.9611083,80.1212106,6.4966725,35.731793,13.323488,1.6303267,1.659824,18.8660338,74.9143976,72.2663943,69.2700964,26.2965536,49.6960178,21.5696018,64.5387486,35.9735635,49.4363607,23.2363384,18.5114226,80.1245036,6.3356219,35.598882,13.7168142\r\n682,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.4885799,1.5232446,18.2136047,74.7509115,72.3172463,68.4484794,26.4587271,48.5339937,21.7456785,64.8126819,35.9806998,48.7311717,22.7825537,17.9611083,80.1212106,6.4966725,35.731793,13.323488,1.6303267,1.659824,18.8660338,74.9143976,72.2663943,69.2700964,26.2965536,49.6960178,21.5696018,64.5387486,35.9735635,49.4363607,23.2363384,18.5114226,80.1245036,6.3356219,35.598882,13.7168142,1.6342884,1.6570829,18.9742107,75.0396293,72.5924504,69.5404329,26.3493416,50.8971216,22.4129887,64.9430098,35.7087375,49.2526089,23.5742821,18.8413462,79.7811639,6.2342867,35.9587877,14.2647087\r\n683,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.6303267,1.659824,18.8660338,74.9143976,72.2663943,69.2700964,26.2965536,49.6960178,21.5696018,64.5387486,35.9735635,49.4363607,23.2363384,18.5114226,80.1245036,6.3356219,35.598882,13.7168142,1.6342884,1.6570829,18.9742107,75.0396293,72.5924504,69.5404329,26.3493416,50.8971216,22.4129887,64.9430098,35.7087375,49.2526089,23.5742821,18.8413462,79.7811639,6.2342867,35.9587877,14.2647087,1.765316,1.7819519,19.6116637,75.2487394,73.033826,70.0259908,26.748929,51.9665694,22.2117433,65.2218063,35.7578601,49.5225197,24.0876858,19.3539721,79.8962537,6.28248,35.528155,14.2644064\r\n684,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.6342884,1.6570829,18.9742107,75.0396293,72.5924504,69.5404329,26.3493416,50.8971216,22.4129887,64.9430098,35.7087375,49.2526089,23.5742821,18.8413462,79.7811639,6.2342867,35.9587877,14.2647087,1.765316,1.7819519,19.6116637,75.2487394,73.033826,70.0259908,26.748929,51.9665694,22.2117433,65.2218063,35.7578601,49.5225197,24.0876858,19.3539721,79.8962537,6.28248,35.528155,14.2644064,1.8020278,1.8409435,19.9884448,75.2110728,73.6306851,70.2117677,27.0569578,51.7736319,22.1494092,65.2555178,35.4012486,49.7211742,24.4162057,19.7631335,79.5952153,6.268047,34.6289246,14.6940752\r\n685,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.765316,1.7819519,19.6116637,75.2487394,73.033826,70.0259908,26.748929,51.9665694,22.2117433,65.2218063,35.7578601,49.5225197,24.0876858,19.3539721,79.8962537,6.28248,35.528155,14.2644064,1.8020278,1.8409435,19.9884448,75.2110728,73.6306851,70.2117677,27.0569578,51.7736319,22.1494092,65.2555178,35.4012486,49.7211742,24.4162057,19.7631335,79.5952153,6.268047,34.6289246,14.6940752,1.9121833,1.9705964,20.1767199,74.9870089,73.5732068,70.0088939,27.1935494,51.893759,21.6944729,65.3943129,35.453692,50.08682,24.8092597,19.985006,79.860323,6.3190759,34.3837115,14.4499929\r\n686,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.8020278,1.8409435,19.9884448,75.2110728,73.6306851,70.2117677,27.0569578,51.7736319,22.1494092,65.2555178,35.4012486,49.7211742,24.4162057,19.7631335,79.5952153,6.268047,34.6289246,14.6940752,1.9121833,1.9705964,20.1767199,74.9870089,73.5732068,70.0088939,27.1935494,51.893759,21.6944729,65.3943129,35.453692,50.08682,24.8092597,19.985006,79.860323,6.3190759,34.3837115,14.4499929,1.9785267,2.0412475,20.4123255,75.0966053,73.2848947,70.8659931,27.3444393,52.5354973,22.5090029,65.4650548,35.8463398,48.0811693,25.0792485,20.168623,79.4689105,6.2275496,35.3607545,14.6849608\r\n687,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.9121833,1.9705964,20.1767199,74.9870089,73.5732068,70.0088939,27.1935494,51.893759,21.6944729,65.3943129,35.453692,50.08682,24.8092597,19.985006,79.860323,6.3190759,34.3837115,14.4499929,1.9785267,2.0412475,20.4123255,75.0966053,73.2848947,70.8659931,27.3444393,52.5354973,22.5090029,65.4650548,35.8463398,48.0811693,25.0792485,20.168623,79.4689105,6.2275496,35.3607545,14.6849608,1.8717951,1.9191842,20.5880436,75.514561,73.6425474,70.8997718,27.817599,53.8173336,22.4128266,65.245246,36.3465412,47.8334551,25.2337224,20.3923181,79.5824519,6.2852717,35.620005,14.7532729\r\n688,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.9785267,2.0412475,20.4123255,75.0966053,73.2848947,70.8659931,27.3444393,52.5354973,22.5090029,65.4650548,35.8463398,48.0811693,25.0792485,20.168623,79.4689105,6.2275496,35.3607545,14.6849608,1.8717951,1.9191842,20.5880436,75.514561,73.6425474,70.8997718,27.817599,53.8173336,22.4128266,65.245246,36.3465412,47.8334551,25.2337224,20.3923181,79.5824519,6.2852717,35.620005,14.7532729,1.9047344,1.9442388,20.9043764,76.1330176,74.5595091,70.3022348,27.8331165,53.9980412,22.1339221,64.8391672,36.0439372,47.6558018,25.6838211,20.6904294,79.8813926,6.1549893,36.3590045,15.1096268\r\n689,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.8717951,1.9191842,20.5880436,75.514561,73.6425474,70.8997718,27.817599,53.8173336,22.4128266,65.245246,36.3465412,47.8334551,25.2337224,20.3923181,79.5824519,6.2852717,35.620005,14.7532729,1.9047344,1.9442388,20.9043764,76.1330176,74.5595091,70.3022348,27.8331165,53.9980412,22.1339221,64.8391672,36.0439372,47.6558018,25.6838211,20.6904294,79.8813926,6.1549893,36.3590045,15.1096268,1.9117732,1.9469829,20.7483313,75.5908395,74.4174102,70.9044623,27.3690687,53.4330055,21.3237112,64.5341255,35.7417871,48.819891,25.5226716,20.547983,80.3518171,6.2045428,35.6447637,15.0232609\r\n690,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.9047344,1.9442388,20.9043764,76.1330176,74.5595091,70.3022348,27.8331165,53.9980412,22.1339221,64.8391672,36.0439372,47.6558018,25.6838211,20.6904294,79.8813926,6.1549893,36.3590045,15.1096268,1.9117732,1.9469829,20.7483313,75.5908395,74.4174102,70.9044623,27.3690687,53.4330055,21.3237112,64.5341255,35.7417871,48.819891,25.5226716,20.547983,80.3518171,6.2045428,35.6447637,15.0232609,1.9608972,2.0143453,20.9126122,74.6824915,73.0126777,70.870876,27.6468009,52.589824,21.4529336,64.5000082,36.0977064,47.8763978,25.9176038,20.9628874,80.2120929,6.286695,36.2232699,15.5681112\r\n691,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.9117732,1.9469829,20.7483313,75.5908395,74.4174102,70.9044623,27.3690687,53.4330055,21.3237112,64.5341255,35.7417871,48.819891,25.5226716,20.547983,80.3518171,6.2045428,35.6447637,15.0232609,1.9608972,2.0143453,20.9126122,74.6824915,73.0126777,70.870876,27.6468009,52.589824,21.4529336,64.5000082,36.0977064,47.8763978,25.9176038,20.9628874,80.2120929,6.286695,36.2232699,15.5681112,2.0505753,2.096018,21.4059381,74.0017941,72.1902533,70.2735082,27.4158311,52.0276216,21.1004477,64.239143,36.7336315,48.0621458,25.8870587,21.0916771,80.1553108,6.3662598,36.3175025,15.4067701\r\n692,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.9608972,2.0143453,20.9126122,74.6824915,73.0126777,70.870876,27.6468009,52.589824,21.4529336,64.5000082,36.0977064,47.8763978,25.9176038,20.9628874,80.2120929,6.286695,36.2232699,15.5681112,2.0505753,2.096018,21.4059381,74.0017941,72.1902533,70.2735082,27.4158311,52.0276216,21.1004477,64.239143,36.7336315,48.0621458,25.8870587,21.0916771,80.1553108,6.3662598,36.3175025,15.4067701,1.9662218,1.9881903,21.8863304,73.4315323,71.9201449,69.6078606,27.1230499,51.2910552,20.8951342,64.2951366,36.7438485,48.0105232,26.1915093,21.5355901,80.4496735,6.1788541,36.2495821,14.8163268\r\n693,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.0505753,2.096018,21.4059381,74.0017941,72.1902533,70.2735082,27.4158311,52.0276216,21.1004477,64.239143,36.7336315,48.0621458,25.8870587,21.0916771,80.1553108,6.3662598,36.3175025,15.4067701,1.9662218,1.9881903,21.8863304,73.4315323,71.9201449,69.6078606,27.1230499,51.2910552,20.8951342,64.2951366,36.7438485,48.0105232,26.1915093,21.5355901,80.4496735,6.1788541,36.2495821,14.8163268,2.0493265,2.0753941,22.5727646,72.4068152,70.8790032,67.9645927,27.1065419,50.7944066,20.4355996,64.2387341,36.6816115,50.322888,26.8480718,22.1548366,80.3839635,6.1337509,35.7462357,15.2840302\r\n694,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,1.9662218,1.9881903,21.8863304,73.4315323,71.9201449,69.6078606,27.1230499,51.2910552,20.8951342,64.2951366,36.7438485,48.0105232,26.1915093,21.5355901,80.4496735,6.1788541,36.2495821,14.8163268,2.0493265,2.0753941,22.5727646,72.4068152,70.8790032,67.9645927,27.1065419,50.7944066,20.4355996,64.2387341,36.6816115,50.322888,26.8480718,22.1548366,80.3839635,6.1337509,35.7462357,15.2840302,2.3389379,2.3560365,23.27924,72.7002108,71.3833173,68.8913811,26.1420849,50.6854749,20.2666279,64.1805161,35.9607049,52.3612528,27.8345842,23.0112077,80.7389338,6.1062157,35.7499151,15.692436\r\n695,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.0493265,2.0753941,22.5727646,72.4068152,70.8790032,67.9645927,27.1065419,50.7944066,20.4355996,64.2387341,36.6816115,50.322888,26.8480718,22.1548366,80.3839635,6.1337509,35.7462357,15.2840302,2.3389379,2.3560365,23.27924,72.7002108,71.3833173,68.8913811,26.1420849,50.6854749,20.2666279,64.1805161,35.9607049,52.3612528,27.8345842,23.0112077,80.7389338,6.1062157,35.7499151,15.692436,2.3541133,2.3680528,24.2259291,71.9978818,70.1104463,68.546594,26.1474684,50.5654305,20.1367741,65.2206755,36.5431017,52.8813832,28.5724604,23.7372295,80.6636803,6.3127616,35.4255196,15.7255562\r\n696,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.3389379,2.3560365,23.27924,72.7002108,71.3833173,68.8913811,26.1420849,50.6854749,20.2666279,64.1805161,35.9607049,52.3612528,27.8345842,23.0112077,80.7389338,6.1062157,35.7499151,15.692436,2.3541133,2.3680528,24.2259291,71.9978818,70.1104463,68.546594,26.1474684,50.5654305,20.1367741,65.2206755,36.5431017,52.8813832,28.5724604,23.7372295,80.6636803,6.3127616,35.4255196,15.7255562,2.4552473,2.4762683,25.9669789,72.2803869,70.1131287,67.9929112,25.8221935,50.7607837,19.87114,65.2876415,36.6259081,52.9809093,29.905198,25.0274818,80.7951272,6.0231635,35.9552108,16.2969902\r\n697,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.3541133,2.3680528,24.2259291,71.9978818,70.1104463,68.546594,26.1474684,50.5654305,20.1367741,65.2206755,36.5431017,52.8813832,28.5724604,23.7372295,80.6636803,6.3127616,35.4255196,15.7255562,2.4552473,2.4762683,25.9669789,72.2803869,70.1131287,67.9929112,25.8221935,50.7607837,19.87114,65.2876415,36.6259081,52.9809093,29.905198,25.0274818,80.7951272,6.0231635,35.9552108,16.2969902,2.5207598,2.5423965,26.5736887,73.4613854,71.9659458,68.10527,25.1223564,52.9388095,20.6822078,65.9385142,36.013285,54.138681,30.7206031,25.6220279,81.2464304,5.982008,35.6286385,16.4053456\r\n698,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.4552473,2.4762683,25.9669789,72.2803869,70.1131287,67.9929112,25.8221935,50.7607837,19.87114,65.2876415,36.6259081,52.9809093,29.905198,25.0274818,80.7951272,6.0231635,35.9552108,16.2969902,2.5207598,2.5423965,26.5736887,73.4613854,71.9659458,68.10527,25.1223564,52.9388095,20.6822078,65.9385142,36.013285,54.138681,30.7206031,25.6220279,81.2464304,5.982008,35.6286385,16.4053456,2.5117097,2.53411,27.8352239,73.9248587,72.7181807,68.3813197,25.466454,53.598153,20.7167946,65.2797385,34.2111783,54.3351639,32.1408946,26.888617,81.539021,5.7394703,35.8166459,17.2578866\r\n699,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.5207598,2.5423965,26.5736887,73.4613854,71.9659458,68.10527,25.1223564,52.9388095,20.6822078,65.9385142,36.013285,54.138681,30.7206031,25.6220279,81.2464304,5.982008,35.6286385,16.4053456,2.5117097,2.53411,27.8352239,73.9248587,72.7181807,68.3813197,25.466454,53.598153,20.7167946,65.2797385,34.2111783,54.3351639,32.1408946,26.888617,81.539021,5.7394703,35.8166459,17.2578866,2.7389876,2.7620815,29.9324422,74.7749363,73.0472065,68.8502355,26.2077447,53.2845707,21.4944226,63.565643,32.5850466,55.0207251,34.4923151,28.8347369,81.4970665,5.5914136,36.5429504,18.6137169\r\n700,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.5117097,2.53411,27.8352239,73.9248587,72.7181807,68.3813197,25.466454,53.598153,20.7167946,65.2797385,34.2111783,54.3351639,32.1408946,26.888617,81.539021,5.7394703,35.8166459,17.2578866,2.7389876,2.7620815,29.9324422,74.7749363,73.0472065,68.8502355,26.2077447,53.2845707,21.4944226,63.565643,32.5850466,55.0207251,34.4923151,28.8347369,81.4970665,5.5914136,36.5429504,18.6137169,2.8577488,2.8900951,31.1819465,76.144604,74.6779101,69.914852,25.3067376,53.50414,21.8496145,62.5295076,31.3013352,55.6341809,36.6175968,30.5968254,82.1542915,5.3131848,35.9437097,18.7198167\r\n701,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.7389876,2.7620815,29.9324422,74.7749363,73.0472065,68.8502355,26.2077447,53.2845707,21.4944226,63.565643,32.5850466,55.0207251,34.4923151,28.8347369,81.4970665,5.5914136,36.5429504,18.6137169,2.8577488,2.8900951,31.1819465,76.144604,74.6779101,69.914852,25.3067376,53.50414,21.8496145,62.5295076,31.3013352,55.6341809,36.6175968,30.5968254,82.1542915,5.3131848,35.9437097,18.7198167,3.0125035,3.0884491,32.66591,75.2246509,73.5744405,69.553214,26.0706683,52.4549431,22.0777193,61.2369078,30.7300031,54.6411563,38.427306,32.3764728,81.9543204,5.1428198,35.8836451,18.6506236\r\n702,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,2.8577488,2.8900951,31.1819465,76.144604,74.6779101,69.914852,25.3067376,53.50414,21.8496145,62.5295076,31.3013352,55.6341809,36.6175968,30.5968254,82.1542915,5.3131848,35.9437097,18.7198167,3.0125035,3.0884491,32.66591,75.2246509,73.5744405,69.553214,26.0706683,52.4549431,22.0777193,61.2369078,30.7300031,54.6411563,38.427306,32.3764728,81.9543204,5.1428198,35.8836451,18.6506236,3.3195525,3.4268603,33.9348397,75.5615592,74.2344943,69.6765646,25.8123816,52.886525,22.6476008,60.0544999,30.0474491,54.5750576,40.2540325,34.0334614,82.3155537,4.8691298,36.3148279,18.755288\r\n703,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,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,3.0125035,3.0884491,32.66591,75.2246509,73.5744405,69.553214,26.0706683,52.4549431,22.0777193,61.2369078,30.7300031,54.6411563,38.427306,32.3764728,81.9543204,5.1428198,35.8836451,18.6506236,3.3195525,3.4268603,33.9348397,75.5615592,74.2344943,69.6765646,25.8123816,52.886525,22.6476008,60.0544999,30.0474491,54.5750576,40.2540325,34.0334614,82.3155537,4.8691298,36.3148279,18.755288,3.4500735,3.5466736,35.1897621,75.910441,74.6991805,69.4980051,25.4994349,53.1381676,22.9223402,59.3372263,29.2552998,55.6034354,41.8743296,35.446015,82.5846264,4.6170183,36.4367811,19.7363361\r\n704,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5523332,1.5845724,21.4017324,66.7640749,68.1380892,53.5787668,26.4584439,9.7131839,16.1154237,68.6127747,38.609559,42.8958363,26.2366128,21.7872031,51.2267806,3.6440789,33.7238778,14.4911251,1.6676845,1.712609,21.3265466,66.4218626,67.4568271,53.2547359,26.6454163,9.6676595,16.7398512,68.0488131,39.4235402,43.5868836,26.3485752,21.7684239,51.5632724,3.6184101,33.9256435,15.959792,1.7277404,1.7449801,21.2781065,66.7702966,67.3185503,54.8456515,27.9392936,9.1181209,16.8957605,67.4932485,40.0839418,43.792278,26.4850552,21.8039734,51.5111557,3.6047405,34.120558,17.1116096\r\n705,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6676845,1.712609,21.3265466,66.4218626,67.4568271,53.2547359,26.6454163,9.6676595,16.7398512,68.0488131,39.4235402,43.5868836,26.3485752,21.7684239,51.5632724,3.6184101,33.9256435,15.959792,1.7277404,1.7449801,21.2781065,66.7702966,67.3185503,54.8456515,27.9392936,9.1181209,16.8957605,67.4932485,40.0839418,43.792278,26.4850552,21.8039734,51.5111557,3.6047405,34.120558,17.1116096,1.6199394,1.6715782,20.5939086,65.7366545,66.8181804,53.8353613,28.2824565,9.6817851,16.5591066,66.9787289,40.4236299,42.4674693,25.973113,21.0663174,50.9777887,3.5996543,33.6269786,18.2782697\r\n706,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7277404,1.7449801,21.2781065,66.7702966,67.3185503,54.8456515,27.9392936,9.1181209,16.8957605,67.4932485,40.0839418,43.792278,26.4850552,21.8039734,51.5111557,3.6047405,34.120558,17.1116096,1.6199394,1.6715782,20.5939086,65.7366545,66.8181804,53.8353613,28.2824565,9.6817851,16.5591066,66.9787289,40.4236299,42.4674693,25.973113,21.0663174,50.9777887,3.5996543,33.6269786,18.2782697,1.6178669,1.6330052,20.596113,66.4228423,68.2621304,54.569402,28.1016298,9.1150911,15.1961996,67.1021553,41.3715207,43.2604021,25.9945556,21.3855116,50.4331322,3.7567228,34.3946407,18.0232349\r\n707,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6199394,1.6715782,20.5939086,65.7366545,66.8181804,53.8353613,28.2824565,9.6817851,16.5591066,66.9787289,40.4236299,42.4674693,25.973113,21.0663174,50.9777887,3.5996543,33.6269786,18.2782697,1.6178669,1.6330052,20.596113,66.4228423,68.2621304,54.569402,28.1016298,9.1150911,15.1961996,67.1021553,41.3715207,43.2604021,25.9945556,21.3855116,50.4331322,3.7567228,34.3946407,18.0232349,1.562151,1.5882811,19.9144898,66.1037392,68.7685495,55.3299403,27.6685238,9.075377,15.8304906,67.0402376,42.1853041,44.1720645,25.5192845,20.9776153,50.5224851,3.7846249,34.501664,17.8160674\r\n708,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6178669,1.6330052,20.596113,66.4228423,68.2621304,54.569402,28.1016298,9.1150911,15.1961996,67.1021553,41.3715207,43.2604021,25.9945556,21.3855116,50.4331322,3.7567228,34.3946407,18.0232349,1.562151,1.5882811,19.9144898,66.1037392,68.7685495,55.3299403,27.6685238,9.075377,15.8304906,67.0402376,42.1853041,44.1720645,25.5192845,20.9776153,50.5224851,3.7846249,34.501664,17.8160674,1.4566712,1.5041629,19.6784667,65.1284928,67.8341361,54.9072685,27.777029,8.8415493,16.1340321,66.6884918,42.440338,42.3419075,24.8518813,20.5052866,50.1776056,3.5600076,34.73778,19.3045286\r\n709,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.562151,1.5882811,19.9144898,66.1037392,68.7685495,55.3299403,27.6685238,9.075377,15.8304906,67.0402376,42.1853041,44.1720645,25.5192845,20.9776153,50.5224851,3.7846249,34.501664,17.8160674,1.4566712,1.5041629,19.6784667,65.1284928,67.8341361,54.9072685,27.777029,8.8415493,16.1340321,66.6884918,42.440338,42.3419075,24.8518813,20.5052866,50.1776056,3.5600076,34.73778,19.3045286,1.5382409,1.5935565,19.77028,63.9435125,67.3629544,55.1946699,27.9520218,9.0339407,16.9371632,66.5366166,42.875397,40.6224043,24.8327664,20.0902629,50.2434177,3.4828092,34.9028123,19.4915213\r\n710,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4566712,1.5041629,19.6784667,65.1284928,67.8341361,54.9072685,27.777029,8.8415493,16.1340321,66.6884918,42.440338,42.3419075,24.8518813,20.5052866,50.1776056,3.5600076,34.73778,19.3045286,1.5382409,1.5935565,19.77028,63.9435125,67.3629544,55.1946699,27.9520218,9.0339407,16.9371632,66.5366166,42.875397,40.6224043,24.8327664,20.0902629,50.2434177,3.4828092,34.9028123,19.4915213,1.4958694,1.5450089,19.6435532,64.209944,67.5160898,54.954281,27.2962591,8.9757004,16.9764208,66.5724015,43.115396,39.6691749,24.4781644,19.7736716,49.2613522,3.3987927,35.2056755,18.1012728\r\n711,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5382409,1.5935565,19.77028,63.9435125,67.3629544,55.1946699,27.9520218,9.0339407,16.9371632,66.5366166,42.875397,40.6224043,24.8327664,20.0902629,50.2434177,3.4828092,34.9028123,19.4915213,1.4958694,1.5450089,19.6435532,64.209944,67.5160898,54.954281,27.2962591,8.9757004,16.9764208,66.5724015,43.115396,39.6691749,24.4781644,19.7736716,49.2613522,3.3987927,35.2056755,18.1012728,1.4518601,1.4989586,19.2159486,64.8322563,68.0409959,53.7361475,26.4283902,8.5672931,16.2536341,66.8369618,42.556587,39.4867046,24.2241091,19.540141,49.1912098,3.6355722,35.1917616,18.1481594\r\n712,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4958694,1.5450089,19.6435532,64.209944,67.5160898,54.954281,27.2962591,8.9757004,16.9764208,66.5724015,43.115396,39.6691749,24.4781644,19.7736716,49.2613522,3.3987927,35.2056755,18.1012728,1.4518601,1.4989586,19.2159486,64.8322563,68.0409959,53.7361475,26.4283902,8.5672931,16.2536341,66.8369618,42.556587,39.4867046,24.2241091,19.540141,49.1912098,3.6355722,35.1917616,18.1481594,1.4326496,1.4726188,19.3204768,64.8692747,66.9357927,52.9670753,26.4427346,8.2155725,16.8127631,67.1530883,42.4170068,40.0772141,24.0899144,19.5684837,49.2796161,3.5993965,35.7009908,17.6392745\r\n713,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4518601,1.4989586,19.2159486,64.8322563,68.0409959,53.7361475,26.4283902,8.5672931,16.2536341,66.8369618,42.556587,39.4867046,24.2241091,19.540141,49.1912098,3.6355722,35.1917616,18.1481594,1.4326496,1.4726188,19.3204768,64.8692747,66.9357927,52.9670753,26.4427346,8.2155725,16.8127631,67.1530883,42.4170068,40.0772141,24.0899144,19.5684837,49.2796161,3.5993965,35.7009908,17.6392745,1.4671078,1.5430202,18.5448243,64.2444076,66.0124671,52.4589926,26.5592539,8.8069481,17.9469227,67.3797021,41.2419027,39.693189,23.4832254,18.8635769,49.5993446,3.7019593,35.424704,16.2049861\r\n714,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4326496,1.4726188,19.3204768,64.8692747,66.9357927,52.9670753,26.4427346,8.2155725,16.8127631,67.1530883,42.4170068,40.0772141,24.0899144,19.5684837,49.2796161,3.5993965,35.7009908,17.6392745,1.4671078,1.5430202,18.5448243,64.2444076,66.0124671,52.4589926,26.5592539,8.8069481,17.9469227,67.3797021,41.2419027,39.693189,23.4832254,18.8635769,49.5993446,3.7019593,35.424704,16.2049861,1.3446047,1.3653652,18.4330901,62.6869344,64.3729289,52.3118105,26.837408,7.8741885,17.1742943,67.8661711,40.4817407,38.4464429,22.8929144,18.615348,48.8951105,3.7763435,34.6877078,14.9408328\r\n715,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4671078,1.5430202,18.5448243,64.2444076,66.0124671,52.4589926,26.5592539,8.8069481,17.9469227,67.3797021,41.2419027,39.693189,23.4832254,18.8635769,49.5993446,3.7019593,35.424704,16.2049861,1.3446047,1.3653652,18.4330901,62.6869344,64.3729289,52.3118105,26.837408,7.8741885,17.1742943,67.8661711,40.4817407,38.4464429,22.8929144,18.615348,48.8951105,3.7763435,34.6877078,14.9408328,1.3231682,1.3279563,17.4066362,61.8304612,64.5084801,52.2763873,25.712401,8.2067771,16.8998493,66.9499969,39.6302583,38.2871148,22.4984096,18.0404242,48.3940919,3.8600555,35.2475698,14.5588235\r\n716,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3446047,1.3653652,18.4330901,62.6869344,64.3729289,52.3118105,26.837408,7.8741885,17.1742943,67.8661711,40.4817407,38.4464429,22.8929144,18.615348,48.8951105,3.7763435,34.6877078,14.9408328,1.3231682,1.3279563,17.4066362,61.8304612,64.5084801,52.2763873,25.712401,8.2067771,16.8998493,66.9499969,39.6302583,38.2871148,22.4984096,18.0404242,48.3940919,3.8600555,35.2475698,14.5588235,1.2319967,1.2296189,16.52986,63.0264936,65.4433656,52.6755285,25.359225,8.179154,16.6985246,66.4775672,38.1876819,39.5891194,21.8202923,17.3934681,49.13343,3.924566,35.6382599,13.3647799\r\n717,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3231682,1.3279563,17.4066362,61.8304612,64.5084801,52.2763873,25.712401,8.2067771,16.8998493,66.9499969,39.6302583,38.2871148,22.4984096,18.0404242,48.3940919,3.8600555,35.2475698,14.5588235,1.2319967,1.2296189,16.52986,63.0264936,65.4433656,52.6755285,25.359225,8.179154,16.6985246,66.4775672,38.1876819,39.5891194,21.8202923,17.3934681,49.13343,3.924566,35.6382599,13.3647799,1.1534405,1.1590594,15.6733285,61.9865469,65.9749365,51.5837994,26.0136877,8.1044151,16.0489146,66.5729642,38.5976019,38.681122,21.4139771,16.9165316,49.126853,4.1127027,36.7368796,13.5937685\r\n718,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2319967,1.2296189,16.52986,63.0264936,65.4433656,52.6755285,25.359225,8.179154,16.6985246,66.4775672,38.1876819,39.5891194,21.8202923,17.3934681,49.13343,3.924566,35.6382599,13.3647799,1.1534405,1.1590594,15.6733285,61.9865469,65.9749365,51.5837994,26.0136877,8.1044151,16.0489146,66.5729642,38.5976019,38.681122,21.4139771,16.9165316,49.126853,4.1127027,36.7368796,13.5937685,1.2134013,1.214759,15.9350305,61.3328689,65.924463,52.3296354,26.0557734,8.6369136,16.1195729,66.8197696,38.787459,39.1684847,21.4987848,16.9708769,49.2048706,4.257239,37.8673388,14.5000188\r\n719,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1534405,1.1590594,15.6733285,61.9865469,65.9749365,51.5837994,26.0136877,8.1044151,16.0489146,66.5729642,38.5976019,38.681122,21.4139771,16.9165316,49.126853,4.1127027,36.7368796,13.5937685,1.2134013,1.214759,15.9350305,61.3328689,65.924463,52.3296354,26.0557734,8.6369136,16.1195729,66.8197696,38.787459,39.1684847,21.4987848,16.9708769,49.2048706,4.257239,37.8673388,14.5000188,1.2661362,1.2674966,15.7952365,62.094771,66.7576426,53.6626815,25.4889006,8.3882553,16.2241156,66.0981344,39.0516019,39.266394,21.6708124,16.9374956,48.6641836,4.137798,37.9297487,13.3898508\r\n720,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2134013,1.214759,15.9350305,61.3328689,65.924463,52.3296354,26.0557734,8.6369136,16.1195729,66.8197696,38.787459,39.1684847,21.4987848,16.9708769,49.2048706,4.257239,37.8673388,14.5000188,1.2661362,1.2674966,15.7952365,62.094771,66.7576426,53.6626815,25.4889006,8.3882553,16.2241156,66.0981344,39.0516019,39.266394,21.6708124,16.9374956,48.6641836,4.137798,37.9297487,13.3898508,1.209839,1.2139573,16.2110176,61.7288875,66.4330896,53.6327385,25.6267026,8.4264633,16.0762633,66.1761216,39.0950187,38.4255532,21.8120703,16.972792,49.1068616,4.1941276,37.8983452,13.5563637\r\n721,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2661362,1.2674966,15.7952365,62.094771,66.7576426,53.6626815,25.4889006,8.3882553,16.2241156,66.0981344,39.0516019,39.266394,21.6708124,16.9374956,48.6641836,4.137798,37.9297487,13.3898508,1.209839,1.2139573,16.2110176,61.7288875,66.4330896,53.6327385,25.6267026,8.4264633,16.0762633,66.1761216,39.0950187,38.4255532,21.8120703,16.972792,49.1068616,4.1941276,37.8983452,13.5563637,1.2594356,1.3267177,15.3649834,62.4465308,66.9760429,54.208512,26.3182375,8.9569078,16.5019461,65.8090149,40.1519975,37.7877205,21.6278055,16.3312009,48.0977622,4.4155242,39.1025671,14.0000211\r\n722,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.209839,1.2139573,16.2110176,61.7288875,66.4330896,53.6327385,25.6267026,8.4264633,16.0762633,66.1761216,39.0950187,38.4255532,21.8120703,16.972792,49.1068616,4.1941276,37.8983452,13.5563637,1.2594356,1.3267177,15.3649834,62.4465308,66.9760429,54.208512,26.3182375,8.9569078,16.5019461,65.8090149,40.1519975,37.7877205,21.6278055,16.3312009,48.0977622,4.4155242,39.1025671,14.0000211,1.3403607,1.4126346,15.6430244,64.2491041,68.0543394,54.7130893,27.1898717,8.6566696,17.3690139,66.6350883,40.9728123,38.3464486,21.5594478,16.2689971,48.944355,4.4607542,38.7417321,14.5548188\r\n723,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2594356,1.3267177,15.3649834,62.4465308,66.9760429,54.208512,26.3182375,8.9569078,16.5019461,65.8090149,40.1519975,37.7877205,21.6278055,16.3312009,48.0977622,4.4155242,39.1025671,14.0000211,1.3403607,1.4126346,15.6430244,64.2491041,68.0543394,54.7130893,27.1898717,8.6566696,17.3690139,66.6350883,40.9728123,38.3464486,21.5594478,16.2689971,48.944355,4.4607542,38.7417321,14.5548188,1.3162679,1.3856239,15.7429003,63.256618,66.6606554,54.087116,28.4149368,9.3083081,17.0638033,67.4513303,42.7689072,37.4857821,21.6445026,16.4285612,48.5243539,4.6928171,38.7108111,14.9671185\r\n724,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3403607,1.4126346,15.6430244,64.2491041,68.0543394,54.7130893,27.1898717,8.6566696,17.3690139,66.6350883,40.9728123,38.3464486,21.5594478,16.2689971,48.944355,4.4607542,38.7417321,14.5548188,1.3162679,1.3856239,15.7429003,63.256618,66.6606554,54.087116,28.4149368,9.3083081,17.0638033,67.4513303,42.7689072,37.4857821,21.6445026,16.4285612,48.5243539,4.6928171,38.7108111,14.9671185,1.2593622,1.3119175,16.1304743,64.6050235,65.5970967,55.2385636,28.9123804,9.2319792,17.7494642,67.7107919,42.5612053,38.8091231,21.4516489,16.4080097,48.901338,4.7326358,38.0449773,14.3092011\r\n725,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3162679,1.3856239,15.7429003,63.256618,66.6606554,54.087116,28.4149368,9.3083081,17.0638033,67.4513303,42.7689072,37.4857821,21.6445026,16.4285612,48.5243539,4.6928171,38.7108111,14.9671185,1.2593622,1.3119175,16.1304743,64.6050235,65.5970967,55.2385636,28.9123804,9.2319792,17.7494642,67.7107919,42.5612053,38.8091231,21.4516489,16.4080097,48.901338,4.7326358,38.0449773,14.3092011,1.2947721,1.34027,16.0024702,64.534357,65.4328116,55.2806303,29.4204767,8.246734,17.5601184,67.164751,42.9691948,36.3243036,21.1744204,16.2310992,48.5766274,4.5645056,36.5179955,11.525974\r\n726,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2593622,1.3119175,16.1304743,64.6050235,65.5970967,55.2385636,28.9123804,9.2319792,17.7494642,67.7107919,42.5612053,38.8091231,21.4516489,16.4080097,48.901338,4.7326358,38.0449773,14.3092011,1.2947721,1.34027,16.0024702,64.534357,65.4328116,55.2806303,29.4204767,8.246734,17.5601184,67.164751,42.9691948,36.3243036,21.1744204,16.2310992,48.5766274,4.5645056,36.5179955,11.525974,1.224011,1.2683382,15.8688708,63.9985053,65.7321068,54.5406932,29.5783709,8.7357191,17.5697297,68.0192608,42.7469776,35.6207355,20.8307589,16.0177683,49.2015753,4.5411579,35.5620136,10.9523775\r\n727,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2947721,1.34027,16.0024702,64.534357,65.4328116,55.2806303,29.4204767,8.246734,17.5601184,67.164751,42.9691948,36.3243036,21.1744204,16.2310992,48.5766274,4.5645056,36.5179955,11.525974,1.224011,1.2683382,15.8688708,63.9985053,65.7321068,54.5406932,29.5783709,8.7357191,17.5697297,68.0192608,42.7469776,35.6207355,20.8307589,16.0177683,49.2015753,4.5411579,35.5620136,10.9523775,1.2123231,1.2586952,15.5090724,64.9983011,66.6233791,54.1275567,29.8442292,7.9972278,16.6713901,68.1408012,43.3193769,36.313809,20.6324065,15.8966229,48.3778793,4.7105544,36.1913297,12.3511758\r\n728,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.224011,1.2683382,15.8688708,63.9985053,65.7321068,54.5406932,29.5783709,8.7357191,17.5697297,68.0192608,42.7469776,35.6207355,20.8307589,16.0177683,49.2015753,4.5411579,35.5620136,10.9523775,1.2123231,1.2586952,15.5090724,64.9983011,66.6233791,54.1275567,29.8442292,7.9972278,16.6713901,68.1408012,43.3193769,36.313809,20.6324065,15.8966229,48.3778793,4.7105544,36.1913297,12.3511758,1.3104772,1.3289031,15.9660226,65.1341046,67.1925785,53.1144007,29.0420445,7.7724931,16.6182251,67.8149855,42.8826485,37.0517726,20.7083488,16.2361191,48.3082637,4.705697,36.3085038,13.4180601\r\n729,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2123231,1.2586952,15.5090724,64.9983011,66.6233791,54.1275567,29.8442292,7.9972278,16.6713901,68.1408012,43.3193769,36.313809,20.6324065,15.8966229,48.3778793,4.7105544,36.1913297,12.3511758,1.3104772,1.3289031,15.9660226,65.1341046,67.1925785,53.1144007,29.0420445,7.7724931,16.6182251,67.8149855,42.8826485,37.0517726,20.7083488,16.2361191,48.3082637,4.705697,36.3085038,13.4180601,1.1947667,1.2043403,16.0237783,64.4807633,67.0556291,52.9653936,29.0475293,7.771717,15.9581429,68.6851,43.2789776,36.4835393,20.6270337,16.2405899,47.6623605,4.8031777,36.1375217,11.5921593\r\n730,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3104772,1.3289031,15.9660226,65.1341046,67.1925785,53.1144007,29.0420445,7.7724931,16.6182251,67.8149855,42.8826485,37.0517726,20.7083488,16.2361191,48.3082637,4.705697,36.3085038,13.4180601,1.1947667,1.2043403,16.0237783,64.4807633,67.0556291,52.9653936,29.0475293,7.771717,15.9581429,68.6851,43.2789776,36.4835393,20.6270337,16.2405899,47.6623605,4.8031777,36.1375217,11.5921593,1.1229949,1.126174,16.0044419,65.2708628,67.7847014,53.3244281,28.8637562,7.6753094,16.4797428,68.9693505,43.3017005,36.5259304,20.2869541,16.1035193,47.1958512,4.4404614,37.0738807,10.9011533\r\n731,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1947667,1.2043403,16.0237783,64.4807633,67.0556291,52.9653936,29.0475293,7.771717,15.9581429,68.6851,43.2789776,36.4835393,20.6270337,16.2405899,47.6623605,4.8031777,36.1375217,11.5921593,1.1229949,1.126174,16.0044419,65.2708628,67.7847014,53.3244281,28.8637562,7.6753094,16.4797428,68.9693505,43.3017005,36.5259304,20.2869541,16.1035193,47.1958512,4.4404614,37.0738807,10.9011533,1.1841004,1.1931173,15.611513,65.9978392,69.269554,53.4287699,28.002751,7.6382606,17.0786519,68.7522891,42.9765267,36.8664803,20.2785235,15.822281,47.1459971,4.4101432,36.3558949,12.9999926\r\n732,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1229949,1.126174,16.0044419,65.2708628,67.7847014,53.3244281,28.8637562,7.6753094,16.4797428,68.9693505,43.3017005,36.5259304,20.2869541,16.1035193,47.1958512,4.4404614,37.0738807,10.9011533,1.1841004,1.1931173,15.611513,65.9978392,69.269554,53.4287699,28.002751,7.6382606,17.0786519,68.7522891,42.9765267,36.8664803,20.2785235,15.822281,47.1459971,4.4101432,36.3558949,12.9999926,1.0810431,1.0900261,15.6843263,65.9357422,69.457181,52.6224522,28.2535467,8.15132,17.4414143,69.5846346,42.4519492,38.6848545,20.2777835,15.753963,47.2729515,4.1314292,37.2876565,14.0625124\r\n733,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1841004,1.1931173,15.611513,65.9978392,69.269554,53.4287699,28.002751,7.6382606,17.0786519,68.7522891,42.9765267,36.8664803,20.2785235,15.822281,47.1459971,4.4101432,36.3558949,12.9999926,1.0810431,1.0900261,15.6843263,65.9357422,69.457181,52.6224522,28.2535467,8.15132,17.4414143,69.5846346,42.4519492,38.6848545,20.2777835,15.753963,47.2729515,4.1314292,37.2876565,14.0625124,1.1361777,1.1451472,15.299904,66.3573521,68.7351634,52.9446998,29.0181385,8.5303304,16.902325,69.4388911,43.3367083,38.8564288,20.1399947,15.5176927,46.7906156,4.1677854,38.5116007,16.8055693\r\n734,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0810431,1.0900261,15.6843263,65.9357422,69.457181,52.6224522,28.2535467,8.15132,17.4414143,69.5846346,42.4519492,38.6848545,20.2777835,15.753963,47.2729515,4.1314292,37.2876565,14.0625124,1.1361777,1.1451472,15.299904,66.3573521,68.7351634,52.9446998,29.0181385,8.5303304,16.902325,69.4388911,43.3367083,38.8564288,20.1399947,15.5176927,46.7906156,4.1677854,38.5116007,16.8055693,1.1264533,1.1228236,15.3129399,66.1053096,68.32455,54.0954802,27.706081,8.5702727,16.704703,68.9548189,42.1269373,37.6177872,20.3483704,15.7304897,46.9731106,3.7083313,38.0938584,16.0714472\r\n735,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1361777,1.1451472,15.299904,66.3573521,68.7351634,52.9446998,29.0181385,8.5303304,16.902325,69.4388911,43.3367083,38.8564288,20.1399947,15.5176927,46.7906156,4.1677854,38.5116007,16.8055693,1.1264533,1.1228236,15.3129399,66.1053096,68.32455,54.0954802,27.706081,8.5702727,16.704703,68.9548189,42.1269373,37.6177872,20.3483704,15.7304897,46.9731106,3.7083313,38.0938584,16.0714472,1.1939128,1.134313,15.7111427,66.854075,69.1133058,54.8705358,27.7502225,8.2271737,16.5030894,70.0048063,42.1873293,37.3591994,20.8127856,15.8593131,47.0378351,3.3753457,37.0119461,16.4788968\r\n736,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1264533,1.1228236,15.3129399,66.1053096,68.32455,54.0954802,27.706081,8.5702727,16.704703,68.9548189,42.1269373,37.6177872,20.3483704,15.7304897,46.9731106,3.7083313,38.0938584,16.0714472,1.1939128,1.134313,15.7111427,66.854075,69.1133058,54.8705358,27.7502225,8.2271737,16.5030894,70.0048063,42.1873293,37.3591994,20.8127856,15.8593131,47.0378351,3.3753457,37.0119461,16.4788968,1.3354225,1.278133,16.3964182,65.2994496,67.8200796,54.1670649,28.3437095,8.1831115,16.2788259,69.0771109,41.8614769,37.0568298,20.8703923,15.9482618,46.2484995,3.0376461,37.327432,16.8588136\r\n737,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1939128,1.134313,15.7111427,66.854075,69.1133058,54.8705358,27.7502225,8.2271737,16.5030894,70.0048063,42.1873293,37.3591994,20.8127856,15.8593131,47.0378351,3.3753457,37.0119461,16.4788968,1.3354225,1.278133,16.3964182,65.2994496,67.8200796,54.1670649,28.3437095,8.1831115,16.2788259,69.0771109,41.8614769,37.0568298,20.8703923,15.9482618,46.2484995,3.0376461,37.327432,16.8588136,1.3465913,1.2957014,16.0218148,63.5138788,65.7105929,52.6191438,28.5462802,7.6715441,16.1944739,69.5345159,41.4386387,36.6874023,20.9402689,15.7226389,46.4990899,3.297172,36.5339862,16.250042\r\n738,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3354225,1.278133,16.3964182,65.2994496,67.8200796,54.1670649,28.3437095,8.1831115,16.2788259,69.0771109,41.8614769,37.0568298,20.8703923,15.9482618,46.2484995,3.0376461,37.327432,16.8588136,1.3465913,1.2957014,16.0218148,63.5138788,65.7105929,52.6191438,28.5462802,7.6715441,16.1944739,69.5345159,41.4386387,36.6874023,20.9402689,15.7226389,46.4990899,3.297172,36.5339862,16.250042,1.3056712,1.2528876,16.5942885,62.1356901,64.9131534,53.0209372,28.8063546,8.1326413,15.7606866,70.3186729,41.5091543,35.515978,21.0871826,16.1961879,46.4005459,2.9831565,37.23475,13.6856836\r\n739,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3465913,1.2957014,16.0218148,63.5138788,65.7105929,52.6191438,28.5462802,7.6715441,16.1944739,69.5345159,41.4386387,36.6874023,20.9402689,15.7226389,46.4990899,3.297172,36.5339862,16.250042,1.3056712,1.2528876,16.5942885,62.1356901,64.9131534,53.0209372,28.8063546,8.1326413,15.7606866,70.3186729,41.5091543,35.515978,21.0871826,16.1961879,46.4005459,2.9831565,37.23475,13.6856836,1.3530983,1.2742351,16.7278056,61.995547,64.7825823,53.9107475,28.2038845,8.1177983,16.4506497,69.6413104,41.3693352,35.6553622,21.2911122,16.2716035,45.789886,3.1703123,36.5904626,13.2707972\r\n740,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3056712,1.2528876,16.5942885,62.1356901,64.9131534,53.0209372,28.8063546,8.1326413,15.7606866,70.3186729,41.5091543,35.515978,21.0871826,16.1961879,46.4005459,2.9831565,37.23475,13.6856836,1.3530983,1.2742351,16.7278056,61.995547,64.7825823,53.9107475,28.2038845,8.1177983,16.4506497,69.6413104,41.3693352,35.6553622,21.2911122,16.2716035,45.789886,3.1703123,36.5904626,13.2707972,1.4260887,1.3800972,17.3009989,61.6551082,64.8780177,53.2102765,28.3081196,7.482136,16.8201609,69.5818655,41.1059693,34.3617454,22.2237519,17.1735401,45.5110994,3.2373014,35.8922238,11.0406317\r\n741,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3530983,1.2742351,16.7278056,61.995547,64.7825823,53.9107475,28.2038845,8.1177983,16.4506497,69.6413104,41.3693352,35.6553622,21.2911122,16.2716035,45.789886,3.1703123,36.5904626,13.2707972,1.4260887,1.3800972,17.3009989,61.6551082,64.8780177,53.2102765,28.3081196,7.482136,16.8201609,69.5818655,41.1059693,34.3617454,22.2237519,17.1735401,45.5110994,3.2373014,35.8922238,11.0406317,1.5507713,1.5096911,17.4654809,61.8041092,65.1181965,52.74675,29.3559764,7.8017376,16.8671482,69.4953965,41.9518714,35.3355842,22.3487605,17.0323209,45.5882276,3.2959007,34.8692934,10.5063518\r\n742,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4260887,1.3800972,17.3009989,61.6551082,64.8780177,53.2102765,28.3081196,7.482136,16.8201609,69.5818655,41.1059693,34.3617454,22.2237519,17.1735401,45.5110994,3.2373014,35.8922238,11.0406317,1.5507713,1.5096911,17.4654809,61.8041092,65.1181965,52.74675,29.3559764,7.8017376,16.8671482,69.4953965,41.9518714,35.3355842,22.3487605,17.0323209,45.5882276,3.2959007,34.8692934,10.5063518,1.399412,1.4294134,17.7785248,62.5589926,65.2410036,53.2686858,29.889489,8.3279589,17.11115,69.1903205,41.7291312,35.5749184,22.4318739,17.2105396,46.3843139,3.3381839,35.5815044,11.2069403\r\n743,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5507713,1.5096911,17.4654809,61.8041092,65.1181965,52.74675,29.3559764,7.8017376,16.8671482,69.4953965,41.9518714,35.3355842,22.3487605,17.0323209,45.5882276,3.2959007,34.8692934,10.5063518,1.399412,1.4294134,17.7785248,62.5589926,65.2410036,53.2686858,29.889489,8.3279589,17.11115,69.1903205,41.7291312,35.5749184,22.4318739,17.2105396,46.3843139,3.3381839,35.5815044,11.2069403,1.3214572,1.3519746,17.1015922,63.4038865,65.3528265,52.8382646,29.7396998,8.0999603,17.3970512,69.6336145,42.3043913,35.5778904,22.4509945,17.2666703,46.2590866,3.5449294,35.5698298,11.4734783\r\n744,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.399412,1.4294134,17.7785248,62.5589926,65.2410036,53.2686858,29.889489,8.3279589,17.11115,69.1903205,41.7291312,35.5749184,22.4318739,17.2105396,46.3843139,3.3381839,35.5815044,11.2069403,1.3214572,1.3519746,17.1015922,63.4038865,65.3528265,52.8382646,29.7396998,8.0999603,17.3970512,69.6336145,42.3043913,35.5778904,22.4509945,17.2666703,46.2590866,3.5449294,35.5698298,11.4734783,1.4722599,1.5030212,18.0918796,64.2635614,66.3671479,55.0403651,29.3019275,7.5698163,16.7863078,69.4468209,41.8610987,36.0809023,22.8475397,17.9028166,45.7260446,3.393109,35.0339932,13.3570008\r\n745,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3214572,1.3519746,17.1015922,63.4038865,65.3528265,52.8382646,29.7396998,8.0999603,17.3970512,69.6336145,42.3043913,35.5778904,22.4509945,17.2666703,46.2590866,3.5449294,35.5698298,11.4734783,1.4722599,1.5030212,18.0918796,64.2635614,66.3671479,55.0403651,29.3019275,7.5698163,16.7863078,69.4468209,41.8610987,36.0809023,22.8475397,17.9028166,45.7260446,3.393109,35.0339932,13.3570008,1.5310457,1.5619182,18.3785728,65.0424215,66.3650662,54.5679407,29.4295221,7.2036976,16.4296941,68.6986329,41.2796934,36.9304915,23.4522965,18.3270552,45.5242471,3.3885565,35.5328341,14.0288077\r\n746,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4722599,1.5030212,18.0918796,64.2635614,66.3671479,55.0403651,29.3019275,7.5698163,16.7863078,69.4468209,41.8610987,36.0809023,22.8475397,17.9028166,45.7260446,3.393109,35.0339932,13.3570008,1.5310457,1.5619182,18.3785728,65.0424215,66.3650662,54.5679407,29.4295221,7.2036976,16.4296941,68.6986329,41.2796934,36.9304915,23.4522965,18.3270552,45.5242471,3.3885565,35.5328341,14.0288077,1.6692674,1.7278322,18.2358235,66.2292366,67.238921,53.702,29.6788031,6.7607935,16.1311135,68.7145375,41.4988241,36.8040381,23.7039758,18.5490509,45.4863973,3.3283415,35.8695622,15.0349989\r\n747,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5310457,1.5619182,18.3785728,65.0424215,66.3650662,54.5679407,29.4295221,7.2036976,16.4296941,68.6986329,41.2796934,36.9304915,23.4522965,18.3270552,45.5242471,3.3885565,35.5328341,14.0288077,1.6692674,1.7278322,18.2358235,66.2292366,67.238921,53.702,29.6788031,6.7607935,16.1311135,68.7145375,41.4988241,36.8040381,23.7039758,18.5490509,45.4863973,3.3283415,35.8695622,15.0349989,1.7541595,1.7695833,18.6526698,66.18275,67.3763205,55.2206007,29.0172274,6.8228582,16.3557025,68.0421989,40.942043,38.1948306,23.1576897,18.3633843,45.2070521,3.2223441,36.8537088,16.8305121\r\n748,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6692674,1.7278322,18.2358235,66.2292366,67.238921,53.702,29.6788031,6.7607935,16.1311135,68.7145375,41.4988241,36.8040381,23.7039758,18.5490509,45.4863973,3.3283415,35.8695622,15.0349989,1.7541595,1.7695833,18.6526698,66.18275,67.3763205,55.2206007,29.0172274,6.8228582,16.3557025,68.0421989,40.942043,38.1948306,23.1576897,18.3633843,45.2070521,3.2223441,36.8537088,16.8305121,1.886475,1.8963919,18.6340397,67.2678852,68.5623398,55.3666031,29.0200548,7.2619036,17.478534,67.6365728,40.4891837,38.7569897,23.3363037,18.5401479,45.0520335,3.2043268,37.6354279,18.0798525\r\n749,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7541595,1.7695833,18.6526698,66.18275,67.3763205,55.2206007,29.0172274,6.8228582,16.3557025,68.0421989,40.942043,38.1948306,23.1576897,18.3633843,45.2070521,3.2223441,36.8537088,16.8305121,1.886475,1.8963919,18.6340397,67.2678852,68.5623398,55.3666031,29.0200548,7.2619036,17.478534,67.6365728,40.4891837,38.7569897,23.3363037,18.5401479,45.0520335,3.2043268,37.6354279,18.0798525,1.7993365,1.7950407,18.9364755,65.5215224,67.0134962,53.9571559,29.1523273,7.1395749,17.2109777,68.022435,40.5808774,38.0869654,23.1929269,18.5334389,44.2956617,3.0523598,37.7170475,16.5459257\r\n750,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.886475,1.8963919,18.6340397,67.2678852,68.5623398,55.3666031,29.0200548,7.2619036,17.478534,67.6365728,40.4891837,38.7569897,23.3363037,18.5401479,45.0520335,3.2043268,37.6354279,18.0798525,1.7993365,1.7950407,18.9364755,65.5215224,67.0134962,53.9571559,29.1523273,7.1395749,17.2109777,68.022435,40.5808774,38.0869654,23.1929269,18.5334389,44.2956617,3.0523598,37.7170475,16.5459257,1.8051317,1.8008516,19.4031681,65.0575388,66.8209471,54.8803316,28.8885945,8.0827048,18.2769949,67.4172575,39.8158138,38.4600523,23.7846649,18.804055,44.7566634,2.9737988,38.0037843,17.7804593\r\n751,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7993365,1.7950407,18.9364755,65.5215224,67.0134962,53.9571559,29.1523273,7.1395749,17.2109777,68.022435,40.5808774,38.0869654,23.1929269,18.5334389,44.2956617,3.0523598,37.7170475,16.5459257,1.8051317,1.8008516,19.4031681,65.0575388,66.8209471,54.8803316,28.8885945,8.0827048,18.2769949,67.4172575,39.8158138,38.4600523,23.7846649,18.804055,44.7566634,2.9737988,38.0037843,17.7804593,1.7411926,1.7229121,19.5832345,65.0278265,67.5103518,54.6673456,28.5815983,8.6408775,18.4590701,66.3617998,40.0959219,38.1945137,23.6748523,18.611194,45.0109008,2.932142,38.4688231,17.696011\r\n752,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8051317,1.8008516,19.4031681,65.0575388,66.8209471,54.8803316,28.8885945,8.0827048,18.2769949,67.4172575,39.8158138,38.4600523,23.7846649,18.804055,44.7566634,2.9737988,38.0037843,17.7804593,1.7411926,1.7229121,19.5832345,65.0278265,67.5103518,54.6673456,28.5815983,8.6408775,18.4590701,66.3617998,40.0959219,38.1945137,23.6748523,18.611194,45.0109008,2.932142,38.4688231,17.696011,1.7608034,1.7313804,19.7425298,65.6701673,67.6235498,54.9780788,28.3066361,9.1187143,18.169498,66.4855833,40.7215135,38.2050089,23.7586385,18.5826024,45.1026714,3.1269456,38.2704392,20.0231945\r\n753,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7411926,1.7229121,19.5832345,65.0278265,67.5103518,54.6673456,28.5815983,8.6408775,18.4590701,66.3617998,40.0959219,38.1945137,23.6748523,18.611194,45.0109008,2.932142,38.4688231,17.696011,1.7608034,1.7313804,19.7425298,65.6701673,67.6235498,54.9780788,28.3066361,9.1187143,18.169498,66.4855833,40.7215135,38.2050089,23.7586385,18.5826024,45.1026714,3.1269456,38.2704392,20.0231945,1.7802481,1.7745485,20.798151,65.6056001,66.8234811,56.0876262,28.490167,9.6678555,18.4025388,66.3275981,39.7382724,38.7383326,24.909782,19.6181465,45.644635,3.1172468,37.704405,20.1542292\r\n754,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7608034,1.7313804,19.7425298,65.6701673,67.6235498,54.9780788,28.3066361,9.1187143,18.169498,66.4855833,40.7215135,38.2050089,23.7586385,18.5826024,45.1026714,3.1269456,38.2704392,20.0231945,1.7802481,1.7745485,20.798151,65.6056001,66.8234811,56.0876262,28.490167,9.6678555,18.4025388,66.3275981,39.7382724,38.7383326,24.909782,19.6181465,45.644635,3.1172468,37.704405,20.1542292,1.6959779,1.6997519,21.3906631,63.4576505,64.3491504,53.6423404,29.2882279,9.1670588,17.7310004,66.7882402,39.6028598,37.4296151,25.5353743,20.1814248,45.0265626,3.0885011,36.6998109,20.6013501\r\n755,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7802481,1.7745485,20.798151,65.6056001,66.8234811,56.0876262,28.490167,9.6678555,18.4025388,66.3275981,39.7382724,38.7383326,24.909782,19.6181465,45.644635,3.1172468,37.704405,20.1542292,1.6959779,1.6997519,21.3906631,63.4576505,64.3491504,53.6423404,29.2882279,9.1670588,17.7310004,66.7882402,39.6028598,37.4296151,25.5353743,20.1814248,45.0265626,3.0885011,36.6998109,20.6013501,1.4843559,1.4881065,22.6129596,62.0321684,63.1044672,52.6034133,28.6787824,8.8856231,16.7038928,66.9675873,39.3834093,36.8395559,26.3818887,21.061174,44.8130635,3.0954479,36.2376841,20.1099034\r\n756,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6959779,1.6997519,21.3906631,63.4576505,64.3491504,53.6423404,29.2882279,9.1670588,17.7310004,66.7882402,39.6028598,37.4296151,25.5353743,20.1814248,45.0265626,3.0885011,36.6998109,20.6013501,1.4843559,1.4881065,22.6129596,62.0321684,63.1044672,52.6034133,28.6787824,8.8856231,16.7038928,66.9675873,39.3834093,36.8395559,26.3818887,21.061174,44.8130635,3.0954479,36.2376841,20.1099034,1.5830965,1.5869624,23.0786922,61.2051402,62.7006559,53.1745534,28.3784465,8.4671934,16.9354357,67.0998895,39.2354854,37.3533925,27.1659376,21.8578295,44.5065223,3.0118554,35.848457,21.7045553\r\n757,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4843559,1.4881065,22.6129596,62.0321684,63.1044672,52.6034133,28.6787824,8.8856231,16.7038928,66.9675873,39.3834093,36.8395559,26.3818887,21.061174,44.8130635,3.0954479,36.2376841,20.1099034,1.5830965,1.5869624,23.0786922,61.2051402,62.7006559,53.1745534,28.3784465,8.4671934,16.9354357,67.0998895,39.2354854,37.3533925,27.1659376,21.8578295,44.5065223,3.0118554,35.848457,21.7045553,1.5990469,1.6029127,23.9636356,62.4671898,64.2154023,54.9619124,29.4706557,7.9799337,16.5479864,65.2639972,37.2493006,38.6112301,28.1803907,22.7675614,44.6450745,2.8557977,35.9859681,21.5935435\r\n758,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5830965,1.5869624,23.0786922,61.2051402,62.7006559,53.1745534,28.3784465,8.4671934,16.9354357,67.0998895,39.2354854,37.3533925,27.1659376,21.8578295,44.5065223,3.0118554,35.848457,21.7045553,1.5990469,1.6029127,23.9636356,62.4671898,64.2154023,54.9619124,29.4706557,7.9799337,16.5479864,65.2639972,37.2493006,38.6112301,28.1803907,22.7675614,44.6450745,2.8557977,35.9859681,21.5935435,1.6350124,1.6532006,24.1785506,63.4317634,64.7129723,54.5836675,30.437811,7.9136405,16.6812299,64.9354553,36.138457,39.9266449,29.2560613,23.4804462,44.7108605,2.7441761,36.3664089,22.1064557\r\n759,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5990469,1.6029127,23.9636356,62.4671898,64.2154023,54.9619124,29.4706557,7.9799337,16.5479864,65.2639972,37.2493006,38.6112301,28.1803907,22.7675614,44.6450745,2.8557977,35.9859681,21.5935435,1.6350124,1.6532006,24.1785506,63.4317634,64.7129723,54.5836675,30.437811,7.9136405,16.6812299,64.9354553,36.138457,39.9266449,29.2560613,23.4804462,44.7108605,2.7441761,36.3664089,22.1064557,1.6499071,1.6781385,24.291448,62.449067,64.4903133,53.5885639,30.911467,7.4369952,16.3832636,64.8500544,34.9914418,39.2179818,29.6906774,23.8328213,44.2155558,2.8032963,36.3324341,21.2940706\r\n760,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6350124,1.6532006,24.1785506,63.4317634,64.7129723,54.5836675,30.437811,7.9136405,16.6812299,64.9354553,36.138457,39.9266449,29.2560613,23.4804462,44.7108605,2.7441761,36.3664089,22.1064557,1.6499071,1.6781385,24.291448,62.449067,64.4903133,53.5885639,30.911467,7.4369952,16.3832636,64.8500544,34.9914418,39.2179818,29.6906774,23.8328213,44.2155558,2.8032963,36.3324341,21.2940706,1.7270093,1.7384715,24.9023478,61.2586834,63.5464928,52.5697822,30.6334219,7.4947862,15.7307032,64.4569519,34.7063972,38.0836428,29.5506671,23.8115431,44.5005102,2.9719106,37.0200427,21.4963793\r\n761,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6499071,1.6781385,24.291448,62.449067,64.4903133,53.5885639,30.911467,7.4369952,16.3832636,64.8500544,34.9914418,39.2179818,29.6906774,23.8328213,44.2155558,2.8032963,36.3324341,21.2940706,1.7270093,1.7384715,24.9023478,61.2586834,63.5464928,52.5697822,30.6334219,7.4947862,15.7307032,64.4569519,34.7063972,38.0836428,29.5506671,23.8115431,44.5005102,2.9719106,37.0200427,21.4963793,1.7953862,1.8067328,24.4047132,63.8374306,65.679732,54.1563989,30.8431585,8.5368653,15.6325998,64.7606483,35.0733683,39.7105879,29.9970611,24.0062854,45.6764689,2.9525151,37.8402286,20.4804847\r\n762,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7270093,1.7384715,24.9023478,61.2586834,63.5464928,52.5697822,30.6334219,7.4947862,15.7307032,64.4569519,34.7063972,38.0836428,29.5506671,23.8115431,44.5005102,2.9719106,37.0200427,21.4963793,1.7953862,1.8067328,24.4047132,63.8374306,65.679732,54.1563989,30.8431585,8.5368653,15.6325998,64.7606483,35.0733683,39.7105879,29.9970611,24.0062854,45.6764689,2.9525151,37.8402286,20.4804847,1.7854148,1.7966,24.5337915,63.4958945,66.0117939,55.4806554,31.5173626,7.9398561,15.9030523,65.5035622,35.2795554,39.5523013,29.8861388,24.1108947,46.3337094,3.2234489,38.6701955,20.6149926\r\n763,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7953862,1.8067328,24.4047132,63.8374306,65.679732,54.1563989,30.8431585,8.5368653,15.6325998,64.7606483,35.0733683,39.7105879,29.9970611,24.0062854,45.6764689,2.9525151,37.8402286,20.4804847,1.7854148,1.7966,24.5337915,63.4958945,66.0117939,55.4806554,31.5173626,7.9398561,15.9030523,65.5035622,35.2795554,39.5523013,29.8861388,24.1108947,46.3337094,3.2234489,38.6701955,20.6149926,1.8998899,1.9282186,25.2583463,65.2927175,67.303235,56.2521637,31.0517557,8.4458287,15.5491402,64.3334289,34.1593485,40.6939154,30.4593816,24.7300796,47.0287211,3.318137,39.4443871,21.7532232\r\n764,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7854148,1.7966,24.5337915,63.4958945,66.0117939,55.4806554,31.5173626,7.9398561,15.9030523,65.5035622,35.2795554,39.5523013,29.8861388,24.1108947,46.3337094,3.2234489,38.6701955,20.6149926,1.8998899,1.9282186,25.2583463,65.2927175,67.303235,56.2521637,31.0517557,8.4458287,15.5491402,64.3334289,34.1593485,40.6939154,30.4593816,24.7300796,47.0287211,3.318137,39.4443871,21.7532232,2.1813125,2.2775478,25.8282761,64.489763,66.1282532,55.159892,30.0673932,8.3424005,14.8812639,66.0315496,35.5133585,40.8858842,30.9754933,25.1389249,47.4677093,3.4517295,39.4197083,21.7708034\r\n765,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8998899,1.9282186,25.2583463,65.2927175,67.303235,56.2521637,31.0517557,8.4458287,15.5491402,64.3334289,34.1593485,40.6939154,30.4593816,24.7300796,47.0287211,3.318137,39.4443871,21.7532232,2.1813125,2.2775478,25.8282761,64.489763,66.1282532,55.159892,30.0673932,8.3424005,14.8812639,66.0315496,35.5133585,40.8858842,30.9754933,25.1389249,47.4677093,3.4517295,39.4197083,21.7708034,2.2865663,2.383541,26.0215829,63.8617159,65.8104418,54.9266125,29.9064999,8.2478258,15.1047315,66.1056624,35.8600553,41.0846177,31.2762101,25.3988003,47.8753954,3.7629711,39.3876448,21.9191831\r\n766,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1813125,2.2775478,25.8282761,64.489763,66.1282532,55.159892,30.0673932,8.3424005,14.8812639,66.0315496,35.5133585,40.8858842,30.9754933,25.1389249,47.4677093,3.4517295,39.4197083,21.7708034,2.2865663,2.383541,26.0215829,63.8617159,65.8104418,54.9266125,29.9064999,8.2478258,15.1047315,66.1056624,35.8600553,41.0846177,31.2762101,25.3988003,47.8753954,3.7629711,39.3876448,21.9191831,2.576226,2.6697839,26.6695008,63.8625534,65.8587776,57.1206772,30.152817,8.6807182,15.600701,65.9032173,36.9635912,41.7486247,31.6557926,25.7867883,48.3913841,3.7053176,38.7650713,22.5527682\r\n767,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2865663,2.383541,26.0215829,63.8617159,65.8104418,54.9266125,29.9064999,8.2478258,15.1047315,66.1056624,35.8600553,41.0846177,31.2762101,25.3988003,47.8753954,3.7629711,39.3876448,21.9191831,2.576226,2.6697839,26.6695008,63.8625534,65.8587776,57.1206772,30.152817,8.6807182,15.600701,65.9032173,36.9635912,41.7486247,31.6557926,25.7867883,48.3913841,3.7053176,38.7650713,22.5527682,2.6265852,2.7143993,26.3225904,64.8814023,67.1922474,58.0155472,30.0998854,9.0569796,15.6258048,66.6440917,38.4756418,44.0973531,31.6446509,25.8180238,48.7113862,3.6467452,38.7417426,22.2328372\r\n768,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.576226,2.6697839,26.6695008,63.8625534,65.8587776,57.1206772,30.152817,8.6807182,15.600701,65.9032173,36.9635912,41.7486247,31.6557926,25.7867883,48.3913841,3.7053176,38.7650713,22.5527682,2.6265852,2.7143993,26.3225904,64.8814023,67.1922474,58.0155472,30.0998854,9.0569796,15.6258048,66.6440917,38.4756418,44.0973531,31.6446509,25.8180238,48.7113862,3.6467452,38.7417426,22.2328372,2.5988511,2.7032703,26.595972,63.5466315,66.163223,56.8477934,29.3391301,8.6559492,15.8572451,66.3084607,37.5254791,44.2304338,31.5360353,25.7580114,49.5375865,3.6567542,38.4131838,22.6679545\r\n769,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6265852,2.7143993,26.3225904,64.8814023,67.1922474,58.0155472,30.0998854,9.0569796,15.6258048,66.6440917,38.4756418,44.0973531,31.6446509,25.8180238,48.7113862,3.6467452,38.7417426,22.2328372,2.5988511,2.7032703,26.595972,63.5466315,66.163223,56.8477934,29.3391301,8.6559492,15.8572451,66.3084607,37.5254791,44.2304338,31.5360353,25.7580114,49.5375865,3.6567542,38.4131838,22.6679545,2.9260241,3.0039585,26.6528278,63.6596983,65.3582999,56.6160218,29.4494843,8.8975597,15.9923464,65.9912763,37.6794417,44.364741,32.3030448,25.9775813,49.4123011,3.4609631,37.695552,24.7698202\r\n770,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5988511,2.7032703,26.595972,63.5466315,66.163223,56.8477934,29.3391301,8.6559492,15.8572451,66.3084607,37.5254791,44.2304338,31.5360353,25.7580114,49.5375865,3.6567542,38.4131838,22.6679545,2.9260241,3.0039585,26.6528278,63.6596983,65.3582999,56.6160218,29.4494843,8.8975597,15.9923464,65.9912763,37.6794417,44.364741,32.3030448,25.9775813,49.4123011,3.4609631,37.695552,24.7698202,2.9543644,3.0129564,26.2423582,62.8329298,64.7078018,55.7017205,30.2014536,8.9410464,15.5628269,66.8312574,38.5905055,42.9178203,32.2131614,25.6608615,49.7189319,3.6839015,37.0776711,22.2924329\r\n771,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9260241,3.0039585,26.6528278,63.6596983,65.3582999,56.6160218,29.4494843,8.8975597,15.9923464,65.9912763,37.6794417,44.364741,32.3030448,25.9775813,49.4123011,3.4609631,37.695552,24.7698202,2.9543644,3.0129564,26.2423582,62.8329298,64.7078018,55.7017205,30.2014536,8.9410464,15.5628269,66.8312574,38.5905055,42.9178203,32.2131614,25.6608615,49.7189319,3.6839015,37.0776711,22.2924329,2.8730213,2.8894817,25.7363182,63.0660082,65.1417666,56.0548572,30.3269469,9.5058167,16.1369653,66.9065978,39.2640888,42.8520663,31.8346295,25.1809591,49.7495639,3.7212586,37.2866407,23.5883639\r\n772,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9543644,3.0129564,26.2423582,62.8329298,64.7078018,55.7017205,30.2014536,8.9410464,15.5628269,66.8312574,38.5905055,42.9178203,32.2131614,25.6608615,49.7189319,3.6839015,37.0776711,22.2924329,2.8730213,2.8894817,25.7363182,63.0660082,65.1417666,56.0548572,30.3269469,9.5058167,16.1369653,66.9065978,39.2640888,42.8520663,31.8346295,25.1809591,49.7495639,3.7212586,37.2866407,23.5883639,2.8982095,2.9147612,25.9358951,62.1782646,63.4806411,55.899271,28.9569467,9.7584666,15.7443503,65.9151375,38.7698522,41.018418,32.3019393,25.6931528,50.0888971,3.4766217,36.5204737,25.7741489\r\n773,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8730213,2.8894817,25.7363182,63.0660082,65.1417666,56.0548572,30.3269469,9.5058167,16.1369653,66.9065978,39.2640888,42.8520663,31.8346295,25.1809591,49.7495639,3.7212586,37.2866407,23.5883639,2.8982095,2.9147612,25.9358951,62.1782646,63.4806411,55.899271,28.9569467,9.7584666,15.7443503,65.9151375,38.7698522,41.018418,32.3019393,25.6931528,50.0888971,3.4766217,36.5204737,25.7741489,2.8611038,2.8775594,26.5395899,62.9099436,63.7812367,53.6789418,28.6028095,9.3308572,16.0165336,65.9507955,38.5468099,41.0973742,33.0050329,26.4845101,49.9264992,3.4240516,36.4991243,25.8684007\r\n774,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8982095,2.9147612,25.9358951,62.1782646,63.4806411,55.899271,28.9569467,9.7584666,15.7443503,65.9151375,38.7698522,41.018418,32.3019393,25.6931528,50.0888971,3.4766217,36.5204737,25.7741489,2.8611038,2.8775594,26.5395899,62.9099436,63.7812367,53.6789418,28.6028095,9.3308572,16.0165336,65.9507955,38.5468099,41.0973742,33.0050329,26.4845101,49.9264992,3.4240516,36.4991243,25.8684007,2.7566534,2.7820794,25.7975905,61.6361537,62.7875158,53.2569267,28.9559485,8.8509795,15.5993116,65.6927118,37.8647526,38.8543734,33.0494624,26.4591315,48.9288712,3.2523711,36.6226695,25.9562976\r\n775,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8611038,2.8775594,26.5395899,62.9099436,63.7812367,53.6789418,28.6028095,9.3308572,16.0165336,65.9507955,38.5468099,41.0973742,33.0050329,26.4845101,49.9264992,3.4240516,36.4991243,25.8684007,2.7566534,2.7820794,25.7975905,61.6361537,62.7875158,53.2569267,28.9559485,8.8509795,15.5993116,65.6927118,37.8647526,38.8543734,33.0494624,26.4591315,48.9288712,3.2523711,36.6226695,25.9562976,2.6307643,2.6219695,26.3673493,63.8638882,65.243702,53.7507405,29.4689274,8.4644808,15.3504164,65.7278134,38.9146529,40.8546207,33.7364733,27.0920548,48.1420972,3.2216382,37.3067672,27.6501729\r\n776,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7566534,2.7820794,25.7975905,61.6361537,62.7875158,53.2569267,28.9559485,8.8509795,15.5993116,65.6927118,37.8647526,38.8543734,33.0494624,26.4591315,48.9288712,3.2523711,36.6226695,25.9562976,2.6307643,2.6219695,26.3673493,63.8638882,65.243702,53.7507405,29.4689274,8.4644808,15.3504164,65.7278134,38.9146529,40.8546207,33.7364733,27.0920548,48.1420972,3.2216382,37.3067672,27.6501729,2.5542763,2.5807096,26.8832587,64.295252,65.7411486,52.880674,30.1618034,8.8086017,15.4953891,65.7299548,39.5631386,41.021286,33.7932221,27.4944554,48.7175215,3.2761003,38.1736416,25.9795602\r\n777,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6307643,2.6219695,26.3673493,63.8638882,65.243702,53.7507405,29.4689274,8.4644808,15.3504164,65.7278134,38.9146529,40.8546207,33.7364733,27.0920548,48.1420972,3.2216382,37.3067672,27.6501729,2.5542763,2.5807096,26.8832587,64.295252,65.7411486,52.880674,30.1618034,8.8086017,15.4953891,65.7299548,39.5631386,41.021286,33.7932221,27.4944554,48.7175215,3.2761003,38.1736416,25.9795602,2.6781538,2.7054605,26.6569117,64.959322,66.0023309,53.6688047,29.546195,8.6483864,17.0633053,65.5177143,39.4893204,42.0450045,33.8668022,27.5807672,48.9990406,3.0191369,37.8504626,28.4090887\r\n778,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5542763,2.5807096,26.8832587,64.295252,65.7411486,52.880674,30.1618034,8.8086017,15.4953891,65.7299548,39.5631386,41.021286,33.7932221,27.4944554,48.7175215,3.2761003,38.1736416,25.9795602,2.6781538,2.7054605,26.6569117,64.959322,66.0023309,53.6688047,29.546195,8.6483864,17.0633053,65.5177143,39.4893204,42.0450045,33.8668022,27.5807672,48.9990406,3.0191369,37.8504626,28.4090887,2.6261661,2.6261661,27.8583066,65.2847561,66.5649155,53.7014142,28.5662195,8.3541731,16.6467532,65.0810875,38.9752689,43.1410615,34.3597986,28.5162054,49.9699686,2.9325857,36.801736,27.5083608\r\n779,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6781538,2.7054605,26.6569117,64.959322,66.0023309,53.6688047,29.546195,8.6483864,17.0633053,65.5177143,39.4893204,42.0450045,33.8668022,27.5807672,48.9990406,3.0191369,37.8504626,28.4090887,2.6261661,2.6261661,27.8583066,65.2847561,66.5649155,53.7014142,28.5662195,8.3541731,16.6467532,65.0810875,38.9752689,43.1410615,34.3597986,28.5162054,49.9699686,2.9325857,36.801736,27.5083608,2.7521713,2.7521713,27.7425712,66.1628835,67.672888,53.8439238,29.5755857,7.9948518,16.3593121,66.4697171,39.4176186,44.4668382,33.6521819,27.9117547,50.6089158,2.9020299,37.014089,25.202609\r\n780,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6261661,2.6261661,27.8583066,65.2847561,66.5649155,53.7014142,28.5662195,8.3541731,16.6467532,65.0810875,38.9752689,43.1410615,34.3597986,28.5162054,49.9699686,2.9325857,36.801736,27.5083608,2.7521713,2.7521713,27.7425712,66.1628835,67.672888,53.8439238,29.5755857,7.9948518,16.3593121,66.4697171,39.4176186,44.4668382,33.6521819,27.9117547,50.6089158,2.9020299,37.014089,25.202609,2.5397104,2.5207028,27.0763371,64.9440286,66.618242,54.3818337,30.379154,7.7605307,15.3528332,66.9866321,39.707777,44.4858154,33.5660782,27.5403359,51.0476985,2.908934,36.8928729,23.6925865\r\n781,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7521713,2.7521713,27.7425712,66.1628835,67.672888,53.8439238,29.5755857,7.9948518,16.3593121,66.4697171,39.4176186,44.4668382,33.6521819,27.9117547,50.6089158,2.9020299,37.014089,25.202609,2.5397104,2.5207028,27.0763371,64.9440286,66.618242,54.3818337,30.379154,7.7605307,15.3528332,66.9866321,39.707777,44.4858154,33.5660782,27.5403359,51.0476985,2.908934,36.8928729,23.6925865,2.5636577,2.5364337,27.8409838,65.1599634,66.9890032,54.1042255,30.9902876,7.9392938,15.4373011,66.7731578,40.2585445,45.4155022,33.741857,27.761256,51.9903833,3.1337,36.6969391,24.9238264\r\n782,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5397104,2.5207028,27.0763371,64.9440286,66.618242,54.3818337,30.379154,7.7605307,15.3528332,66.9866321,39.707777,44.4858154,33.5660782,27.5403359,51.0476985,2.908934,36.8928729,23.6925865,2.5636577,2.5364337,27.8409838,65.1599634,66.9890032,54.1042255,30.9902876,7.9392938,15.4373011,66.7731578,40.2585445,45.4155022,33.741857,27.761256,51.9903833,3.1337,36.6969391,24.9238264,2.5787074,2.57495,28.4189154,63.8577311,65.8875551,55.3131547,30.2795304,8.1132804,15.7306566,66.7448525,39.8816714,43.81745,33.8246399,28.0344698,52.8757301,3.1017321,36.6534632,23.153904\r\n783,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5636577,2.5364337,27.8409838,65.1599634,66.9890032,54.1042255,30.9902876,7.9392938,15.4373011,66.7731578,40.2585445,45.4155022,33.741857,27.761256,51.9903833,3.1337,36.6969391,24.9238264,2.5787074,2.57495,28.4189154,63.8577311,65.8875551,55.3131547,30.2795304,8.1132804,15.7306566,66.7448525,39.8816714,43.81745,33.8246399,28.0344698,52.8757301,3.1017321,36.6534632,23.153904,2.42899,2.4195833,28.05143,63.7503435,65.896828,56.0233563,29.196489,7.8837217,15.0839625,66.5669199,39.2104717,44.7847439,33.4763949,27.7517003,53.1588328,3.1511962,36.431288,22.901378\r\n784,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5787074,2.57495,28.4189154,63.8577311,65.8875551,55.3131547,30.2795304,8.1132804,15.7306566,66.7448525,39.8816714,43.81745,33.8246399,28.0344698,52.8757301,3.1017321,36.6534632,23.153904,2.42899,2.4195833,28.05143,63.7503435,65.896828,56.0233563,29.196489,7.8837217,15.0839625,66.5669199,39.2104717,44.7847439,33.4763949,27.7517003,53.1588328,3.1511962,36.431288,22.901378,2.3565922,2.3240822,28.8704152,62.2817294,65.2006202,55.6682626,29.0663738,8.1021977,13.9910584,66.5563378,38.8059636,45.03609,34.0840668,28.4593795,52.8606257,3.0851247,37.2956805,21.1724644\r\n785,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.42899,2.4195833,28.05143,63.7503435,65.896828,56.0233563,29.196489,7.8837217,15.0839625,66.5669199,39.2104717,44.7847439,33.4763949,27.7517003,53.1588328,3.1511962,36.431288,22.901378,2.3565922,2.3240822,28.8704152,62.2817294,65.2006202,55.6682626,29.0663738,8.1021977,13.9910584,66.5563378,38.8059636,45.03609,34.0840668,28.4593795,52.8606257,3.0851247,37.2956805,21.1724644,2.3875636,2.3316576,28.1496868,62.6080249,64.4644867,54.6177614,29.4788127,7.6708428,13.8393838,67.239448,38.5539641,43.4464418,33.7679599,28.2538052,52.7474656,3.0417692,37.5600192,20.486166\r\n786,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3565922,2.3240822,28.8704152,62.2817294,65.2006202,55.6682626,29.0663738,8.1021977,13.9910584,66.5563378,38.8059636,45.03609,34.0840668,28.4593795,52.8606257,3.0851247,37.2956805,21.1724644,2.3875636,2.3316576,28.1496868,62.6080249,64.4644867,54.6177614,29.4788127,7.6708428,13.8393838,67.239448,38.5539641,43.4464418,33.7679599,28.2538052,52.7474656,3.0417692,37.5600192,20.486166,2.3016037,2.2448449,29.3392357,62.7394327,65.0700865,55.369328,29.7407934,8.5097403,14.5327387,66.58989,37.8192797,43.6772329,34.8781383,29.5026065,52.1651148,3.0844543,37.2886164,19.7055206\r\n787,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3875636,2.3316576,28.1496868,62.6080249,64.4644867,54.6177614,29.4788127,7.6708428,13.8393838,67.239448,38.5539641,43.4464418,33.7679599,28.2538052,52.7474656,3.0417692,37.5600192,20.486166,2.3016037,2.2448449,29.3392357,62.7394327,65.0700865,55.369328,29.7407934,8.5097403,14.5327387,66.58989,37.8192797,43.6772329,34.8781383,29.5026065,52.1651148,3.0844543,37.2886164,19.7055206,2.5649197,2.5668851,30.2757666,64.0909936,66.2596549,56.3462764,29.3265612,8.8324229,15.2657717,64.497493,35.499794,44.5567323,35.2816489,29.9476516,52.6562717,2.9457956,37.8385733,20.4762338\r\n788,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3016037,2.2448449,29.3392357,62.7394327,65.0700865,55.369328,29.7407934,8.5097403,14.5327387,66.58989,37.8192797,43.6772329,34.8781383,29.5026065,52.1651148,3.0844543,37.2886164,19.7055206,2.5649197,2.5668851,30.2757666,64.0909936,66.2596549,56.3462764,29.3265612,8.8324229,15.2657717,64.497493,35.499794,44.5567323,35.2816489,29.9476516,52.6562717,2.9457956,37.8385733,20.4762338,2.5842565,2.5861749,30.7367677,64.9809632,67.0299748,57.2374822,28.5167487,8.8100719,15.8118134,64.0346503,34.3918148,46.1994663,36.0968976,30.5454049,53.1494902,2.7223914,36.5885601,19.6038471\r\n789,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5649197,2.5668851,30.2757666,64.0909936,66.2596549,56.3462764,29.3265612,8.8324229,15.2657717,64.497493,35.499794,44.5567323,35.2816489,29.9476516,52.6562717,2.9457956,37.8385733,20.4762338,2.5842565,2.5861749,30.7367677,64.9809632,67.0299748,57.2374822,28.5167487,8.8100719,15.8118134,64.0346503,34.3918148,46.1994663,36.0968976,30.5454049,53.1494902,2.7223914,36.5885601,19.6038471,2.802891,2.7991279,31.0492752,64.7535533,66.7186824,56.1545164,29.0528024,8.5583507,15.7371806,63.8713922,34.1295118,46.1734043,36.9627138,31.2633605,52.4446011,2.8103942,35.939905,19.0945088\r\n790,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5842565,2.5861749,30.7367677,64.9809632,67.0299748,57.2374822,28.5167487,8.8100719,15.8118134,64.0346503,34.3918148,46.1994663,36.0968976,30.5454049,53.1494902,2.7223914,36.5885601,19.6038471,2.802891,2.7991279,31.0492752,64.7535533,66.7186824,56.1545164,29.0528024,8.5583507,15.7371806,63.8713922,34.1295118,46.1734043,36.9627138,31.2633605,52.4446011,2.8103942,35.939905,19.0945088,3.0608975,3.0623589,32.2535169,64.9232622,66.6645222,55.6402857,28.3642469,8.2573821,15.9341076,63.161707,33.2056138,46.0665853,38.3122525,32.4569299,52.0538824,2.4914954,35.4686301,20.8601032\r\n791,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.802891,2.7991279,31.0492752,64.7535533,66.7186824,56.1545164,29.0528024,8.5583507,15.7371806,63.8713922,34.1295118,46.1734043,36.9627138,31.2633605,52.4446011,2.8103942,35.939905,19.0945088,3.0608975,3.0623589,32.2535169,64.9232622,66.6645222,55.6402857,28.3642469,8.2573821,15.9341076,63.161707,33.2056138,46.0665853,38.3122525,32.4569299,52.0538824,2.4914954,35.4686301,20.8601032,3.2270292,3.2446904,32.9035461,66.0811527,67.6317748,55.9950254,27.952707,8.103233,15.9648267,62.2404112,32.7935137,46.5789519,39.2541098,33.4277797,52.9245573,2.5779407,35.5378284,23.0061614\r\n792,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6271361,1.7122231,25.1437769,68.455156,67.9493687,58.2133009,28.3938261,4.9009174,13.4264575,68.1802977,39.5511293,41.5574332,28.1112217,24.1324414,43.5664818,3.7356374,30.0985858,28.8454618,1.6361009,1.7514714,23.6369296,69.0145697,67.4467231,59.077661,27.8792003,4.9092588,13.8428416,66.8302772,39.0706483,41.8019466,27.3969919,23.4283117,44.0227184,3.557537,30.9487679,29.815664,1.7397315,1.8194445,23.7014439,68.5974943,65.953319,58.2240162,28.6122562,6.8861073,12.3472187,66.6253813,39.5140119,39.3055988,27.068009,23.3913166,44.1182905,3.8003391,30.3539613,28.9214895\r\n793,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6361009,1.7514714,23.6369296,69.0145697,67.4467231,59.077661,27.8792003,4.9092588,13.8428416,66.8302772,39.0706483,41.8019466,27.3969919,23.4283117,44.0227184,3.557537,30.9487679,29.815664,1.7397315,1.8194445,23.7014439,68.5974943,65.953319,58.2240162,28.6122562,6.8861073,12.3472187,66.6253813,39.5140119,39.3055988,27.068009,23.3913166,44.1182905,3.8003391,30.3539613,28.9214895,1.6170708,1.7039089,23.5029874,68.7357996,66.1691252,58.5450366,28.9568584,6.4325146,12.6435162,67.1710321,39.5380964,38.6248014,26.661641,22.8182944,43.4829529,3.6053755,29.9126661,25.3225084\r\n794,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7397315,1.8194445,23.7014439,68.5974943,65.953319,58.2240162,28.6122562,6.8861073,12.3472187,66.6253813,39.5140119,39.3055988,27.068009,23.3913166,44.1182905,3.8003391,30.3539613,28.9214895,1.6170708,1.7039089,23.5029874,68.7357996,66.1691252,58.5450366,28.9568584,6.4325146,12.6435162,67.1710321,39.5380964,38.6248014,26.661641,22.8182944,43.4829529,3.6053755,29.9126661,25.3225084,1.5972206,1.6569772,22.6896771,68.1946122,66.4167515,58.771087,31.0658117,6.3433824,13.1218834,67.8211167,40.2833398,37.3740343,25.9305924,22.1177779,42.8860561,3.5690086,30.2608752,23.2727216\r\n795,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6170708,1.7039089,23.5029874,68.7357996,66.1691252,58.5450366,28.9568584,6.4325146,12.6435162,67.1710321,39.5380964,38.6248014,26.661641,22.8182944,43.4829529,3.6053755,29.9126661,25.3225084,1.5972206,1.6569772,22.6896771,68.1946122,66.4167515,58.771087,31.0658117,6.3433824,13.1218834,67.8211167,40.2833398,37.3740343,25.9305924,22.1177779,42.8860561,3.5690086,30.2608752,23.2727216,1.8305351,1.8780004,22.4786745,67.6406882,66.9844195,58.9273581,31.3238987,6.4999462,12.6196605,67.6799876,40.6404307,38.4723669,25.6786115,21.4841592,42.3633102,3.860882,31.1595008,23.2386193\r\n796,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5972206,1.6569772,22.6896771,68.1946122,66.4167515,58.771087,31.0658117,6.3433824,13.1218834,67.8211167,40.2833398,37.3740343,25.9305924,22.1177779,42.8860561,3.5690086,30.2608752,23.2727216,1.8305351,1.8780004,22.4786745,67.6406882,66.9844195,58.9273581,31.3238987,6.4999462,12.6196605,67.6799876,40.6404307,38.4723669,25.6786115,21.4841592,42.3633102,3.860882,31.1595008,23.2386193,1.7362131,1.7845836,20.8428804,66.7926981,66.582206,58.723237,30.6908427,6.405158,13.0012408,67.7240649,40.9390141,37.5921474,25.1464856,20.8601753,42.6759015,3.5489028,31.6061215,24.3155617\r\n797,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8305351,1.8780004,22.4786745,67.6406882,66.9844195,58.9273581,31.3238987,6.4999462,12.6196605,67.6799876,40.6404307,38.4723669,25.6786115,21.4841592,42.3633102,3.860882,31.1595008,23.2386193,1.7362131,1.7845836,20.8428804,66.7926981,66.582206,58.723237,30.6908427,6.405158,13.0012408,67.7240649,40.9390141,37.5921474,25.1464856,20.8601753,42.6759015,3.5489028,31.6061215,24.3155617,2.0255482,2.0532535,21.0502778,65.6298246,65.1891371,56.4661455,31.3221807,6.631608,12.8269006,68.3433702,41.6446321,38.238308,26.2239248,21.4733922,42.260199,3.6835457,32.8558995,23.5379391\r\n798,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7362131,1.7845836,20.8428804,66.7926981,66.582206,58.723237,30.6908427,6.405158,13.0012408,67.7240649,40.9390141,37.5921474,25.1464856,20.8601753,42.6759015,3.5489028,31.6061215,24.3155617,2.0255482,2.0532535,21.0502778,65.6298246,65.1891371,56.4661455,31.3221807,6.631608,12.8269006,68.3433702,41.6446321,38.238308,26.2239248,21.4733922,42.260199,3.6835457,32.8558995,23.5379391,1.9978124,1.9391564,21.5106042,64.634158,65.3553006,55.3301218,30.7317183,7.2246195,12.9040388,68.6660068,40.7321567,37.2477898,26.4496891,21.8394817,42.0140534,3.6654437,34.1836982,22.4812394\r\n799,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0255482,2.0532535,21.0502778,65.6298246,65.1891371,56.4661455,31.3221807,6.631608,12.8269006,68.3433702,41.6446321,38.238308,26.2239248,21.4733922,42.260199,3.6835457,32.8558995,23.5379391,1.9978124,1.9391564,21.5106042,64.634158,65.3553006,55.3301218,30.7317183,7.2246195,12.9040388,68.6660068,40.7321567,37.2477898,26.4496891,21.8394817,42.0140534,3.6654437,34.1836982,22.4812394,1.8964282,1.9195857,21.0200874,64.1913764,65.917616,56.7659507,31.0628101,4.8466603,14.4501593,69.2699707,40.2686989,37.5997963,26.8897787,21.6692449,41.723394,3.2952684,34.1011327,22.70088\r\n800,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9978124,1.9391564,21.5106042,64.634158,65.3553006,55.3301218,30.7317183,7.2246195,12.9040388,68.6660068,40.7321567,37.2477898,26.4496891,21.8394817,42.0140534,3.6654437,34.1836982,22.4812394,1.8964282,1.9195857,21.0200874,64.1913764,65.917616,56.7659507,31.0628101,4.8466603,14.4501593,69.2699707,40.2686989,37.5997963,26.8897787,21.6692449,41.723394,3.2952684,34.1011327,22.70088,1.918616,1.9559165,20.2807472,63.8457047,65.0625042,55.7328115,30.5553323,5.1993424,14.799606,69.1136347,40.8269743,38.7633024,26.6084602,21.3846153,42.4621595,3.5204597,34.50329,23.4837378\r\n801,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8964282,1.9195857,21.0200874,64.1913764,65.917616,56.7659507,31.0628101,4.8466603,14.4501593,69.2699707,40.2686989,37.5997963,26.8897787,21.6692449,41.723394,3.2952684,34.1011327,22.70088,1.918616,1.9559165,20.2807472,63.8457047,65.0625042,55.7328115,30.5553323,5.1993424,14.799606,69.1136347,40.8269743,38.7633024,26.6084602,21.3846153,42.4621595,3.5204597,34.50329,23.4837378,2.0447399,2.0842505,21.0979021,64.674856,65.8650343,57.9954002,29.1146901,5.5725078,14.9116266,68.1206574,39.7360012,40.2623173,27.454701,22.2245791,43.4358336,3.6807183,34.0609584,23.9601358\r\n802,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.918616,1.9559165,20.2807472,63.8457047,65.0625042,55.7328115,30.5553323,5.1993424,14.799606,69.1136347,40.8269743,38.7633024,26.6084602,21.3846153,42.4621595,3.5204597,34.50329,23.4837378,2.0447399,2.0842505,21.0979021,64.674856,65.8650343,57.9954002,29.1146901,5.5725078,14.9116266,68.1206574,39.7360012,40.2623173,27.454701,22.2245791,43.4358336,3.6807183,34.0609584,23.9601358,1.9932508,2.0996822,20.0396528,62.1617646,66.0019169,59.1402953,29.6866784,5.2724327,15.3304998,67.5655961,40.3124721,37.8916682,27.4858851,21.8691341,43.9307265,3.8245933,33.2824626,22.0173284\r\n803,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0447399,2.0842505,21.0979021,64.674856,65.8650343,57.9954002,29.1146901,5.5725078,14.9116266,68.1206574,39.7360012,40.2623173,27.454701,22.2245791,43.4358336,3.6807183,34.0609584,23.9601358,1.9932508,2.0996822,20.0396528,62.1617646,66.0019169,59.1402953,29.6866784,5.2724327,15.3304998,67.5655961,40.3124721,37.8916682,27.4858851,21.8691341,43.9307265,3.8245933,33.2824626,22.0173284,2.0331774,2.1682574,21.0359075,62.9625031,66.6551677,60.2974753,29.3342378,4.6843576,14.3851173,67.1865068,40.3415098,38.718629,28.1312888,22.2850609,43.7062112,4.1174717,33.6395236,21.4899998\r\n804,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9932508,2.0996822,20.0396528,62.1617646,66.0019169,59.1402953,29.6866784,5.2724327,15.3304998,67.5655961,40.3124721,37.8916682,27.4858851,21.8691341,43.9307265,3.8245933,33.2824626,22.0173284,2.0331774,2.1682574,21.0359075,62.9625031,66.6551677,60.2974753,29.3342378,4.6843576,14.3851173,67.1865068,40.3415098,38.718629,28.1312888,22.2850609,43.7062112,4.1174717,33.6395236,21.4899998,1.7792073,1.9427676,20.8175602,64.301288,68.275106,62.0358407,27.8286728,4.6053485,14.7330896,66.6721422,40.2777474,37.3593401,26.9399516,21.4465067,43.6632367,4.1396954,33.5382294,19.1180588\r\n805,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0331774,2.1682574,21.0359075,62.9625031,66.6551677,60.2974753,29.3342378,4.6843576,14.3851173,67.1865068,40.3415098,38.718629,28.1312888,22.2850609,43.7062112,4.1174717,33.6395236,21.4899998,1.7792073,1.9427676,20.8175602,64.301288,68.275106,62.0358407,27.8286728,4.6053485,14.7330896,66.6721422,40.2777474,37.3593401,26.9399516,21.4465067,43.6632367,4.1396954,33.5382294,19.1180588,1.930698,2.1371663,21.698716,64.9066986,66.077389,62.2504711,28.7241399,4.9724817,14.7527037,66.7679488,41.3783456,37.5480162,27.2259525,21.8868734,43.9680948,4.4407148,32.2405342,19.7827153\r\n806,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7792073,1.9427676,20.8175602,64.301288,68.275106,62.0358407,27.8286728,4.6053485,14.7330896,66.6721422,40.2777474,37.3593401,26.9399516,21.4465067,43.6632367,4.1396954,33.5382294,19.1180588,1.930698,2.1371663,21.698716,64.9066986,66.077389,62.2504711,28.7241399,4.9724817,14.7527037,66.7679488,41.3783456,37.5480162,27.2259525,21.8868734,43.9680948,4.4407148,32.2405342,19.7827153,1.8967314,2.009628,21.2299007,64.769672,66.6044784,61.1129564,29.2168686,4.6770964,14.9178562,66.9548175,42.8390406,37.9896499,26.0915127,21.1019422,43.5890525,4.5296979,32.403935,19.3975072\r\n807,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.930698,2.1371663,21.698716,64.9066986,66.077389,62.2504711,28.7241399,4.9724817,14.7527037,66.7679488,41.3783456,37.5480162,27.2259525,21.8868734,43.9680948,4.4407148,32.2405342,19.7827153,1.8967314,2.009628,21.2299007,64.769672,66.6044784,61.1129564,29.2168686,4.6770964,14.9178562,66.9548175,42.8390406,37.9896499,26.0915127,21.1019422,43.5890525,4.5296979,32.403935,19.3975072,1.9739685,2.0503098,21.0785763,65.0931747,67.9510146,62.1923299,29.6494141,5.3694206,15.8082609,66.5236562,42.0637444,36.2436844,25.9248031,20.7550512,43.351489,4.358005,31.8917982,16.6702999\r\n808,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8967314,2.009628,21.2299007,64.769672,66.6044784,61.1129564,29.2168686,4.6770964,14.9178562,66.9548175,42.8390406,37.9896499,26.0915127,21.1019422,43.5890525,4.5296979,32.403935,19.3975072,1.9739685,2.0503098,21.0785763,65.0931747,67.9510146,62.1923299,29.6494141,5.3694206,15.8082609,66.5236562,42.0637444,36.2436844,25.9248031,20.7550512,43.351489,4.358005,31.8917982,16.6702999,1.7890951,1.9118797,20.0120499,64.8948221,67.7267965,59.6396388,30.2217182,5.4784929,15.5926974,67.1348888,42.4280513,35.3491968,24.783858,19.6513499,42.9034681,4.2461365,32.1536332,17.3376941\r\n809,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9739685,2.0503098,21.0785763,65.0931747,67.9510146,62.1923299,29.6494141,5.3694206,15.8082609,66.5236562,42.0637444,36.2436844,25.9248031,20.7550512,43.351489,4.358005,31.8917982,16.6702999,1.7890951,1.9118797,20.0120499,64.8948221,67.7267965,59.6396388,30.2217182,5.4784929,15.5926974,67.1348888,42.4280513,35.3491968,24.783858,19.6513499,42.9034681,4.2461365,32.1536332,17.3376941,1.518839,1.5829547,20.3375837,67.3114464,67.3584636,59.2397806,30.722988,5.5321456,15.5545165,67.9897923,43.4864071,37.7203271,24.0252337,19.5129465,42.1872203,4.2543328,32.8974165,16.0900329\r\n810,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7890951,1.9118797,20.0120499,64.8948221,67.7267965,59.6396388,30.2217182,5.4784929,15.5926974,67.1348888,42.4280513,35.3491968,24.783858,19.6513499,42.9034681,4.2461365,32.1536332,17.3376941,1.518839,1.5829547,20.3375837,67.3114464,67.3584636,59.2397806,30.722988,5.5321456,15.5545165,67.9897923,43.4864071,37.7203271,24.0252337,19.5129465,42.1872203,4.2543328,32.8974165,16.0900329,1.6243191,1.6330927,19.5784309,66.0158783,66.4916262,57.3805884,31.6936381,5.9032559,15.6251545,68.8802935,44.1859713,36.0995353,23.3201017,18.7155897,40.6832472,4.1774212,32.9954552,16.4093761\r\n811,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.518839,1.5829547,20.3375837,67.3114464,67.3584636,59.2397806,30.722988,5.5321456,15.5545165,67.9897923,43.4864071,37.7203271,24.0252337,19.5129465,42.1872203,4.2543328,32.8974165,16.0900329,1.6243191,1.6330927,19.5784309,66.0158783,66.4916262,57.3805884,31.6936381,5.9032559,15.6251545,68.8802935,44.1859713,36.0995353,23.3201017,18.7155897,40.6832472,4.1774212,32.9954552,16.4093761,1.6663052,1.6747799,19.8614808,63.846431,65.7326659,57.4095505,32.6005016,5.8967054,14.904877,68.323735,43.7216503,35.7919442,23.7141218,18.9536622,39.9572244,3.8916707,32.4215419,19.1259102\r\n812,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6243191,1.6330927,19.5784309,66.0158783,66.4916262,57.3805884,31.6936381,5.9032559,15.6251545,68.8802935,44.1859713,36.0995353,23.3201017,18.7155897,40.6832472,4.1774212,32.9954552,16.4093761,1.6663052,1.6747799,19.8614808,63.846431,65.7326659,57.4095505,32.6005016,5.8967054,14.904877,68.323735,43.7216503,35.7919442,23.7141218,18.9536622,39.9572244,3.8916707,32.4215419,19.1259102,1.5164568,1.5247338,18.5917848,63.6956259,66.5600824,57.4557652,32.089583,5.4046359,14.7654243,67.9808033,43.5392558,35.2660591,23.2000142,17.904179,39.9025932,3.5758682,32.9338661,19.1683275\r\n813,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6663052,1.6747799,19.8614808,63.846431,65.7326659,57.4095505,32.6005016,5.8967054,14.904877,68.323735,43.7216503,35.7919442,23.7141218,18.9536622,39.9572244,3.8916707,32.4215419,19.1259102,1.5164568,1.5247338,18.5917848,63.6956259,66.5600824,57.4557652,32.089583,5.4046359,14.7654243,67.9808033,43.5392558,35.2660591,23.2000142,17.904179,39.9025932,3.5758682,32.9338661,19.1683275,1.6182015,1.6701672,19.4354332,64.5127859,67.4312314,58.0828319,31.8328207,5.4681329,14.4018258,67.9539502,42.2110273,35.7665781,23.861418,18.8014415,39.9667845,3.6572955,32.2030863,19.7494406\r\n814,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5164568,1.5247338,18.5917848,63.6956259,66.5600824,57.4557652,32.089583,5.4046359,14.7654243,67.9808033,43.5392558,35.2660591,23.2000142,17.904179,39.9025932,3.5758682,32.9338661,19.1683275,1.6182015,1.6701672,19.4354332,64.5127859,67.4312314,58.0828319,31.8328207,5.4681329,14.4018258,67.9539502,42.2110273,35.7665781,23.861418,18.8014415,39.9667845,3.6572955,32.2030863,19.7494406,1.7817334,1.8392931,20.4387575,63.868136,66.4894512,56.7871465,32.0141037,4.9717588,14.0427061,68.9010173,42.8865142,37.41845,23.6426535,18.8906546,40.0580082,3.7860992,31.3722299,20.4291074\r\n815,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6182015,1.6701672,19.4354332,64.5127859,67.4312314,58.0828319,31.8328207,5.4681329,14.4018258,67.9539502,42.2110273,35.7665781,23.861418,18.8014415,39.9667845,3.6572955,32.2030863,19.7494406,1.7817334,1.8392931,20.4387575,63.868136,66.4894512,56.7871465,32.0141037,4.9717588,14.0427061,68.9010173,42.8865142,37.41845,23.6426535,18.8906546,40.0580082,3.7860992,31.3722299,20.4291074,1.9992832,2.017207,21.184781,62.2448082,65.5497673,56.5869092,32.3328611,4.5431337,14.0766049,69.0185913,43.7923422,36.5950831,24.0498322,19.0730427,39.8094924,3.8362665,32.8207401,22.8481044\r\n816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7817334,1.8392931,20.4387575,63.868136,66.4894512,56.7871465,32.0141037,4.9717588,14.0427061,68.9010173,42.8865142,37.41845,23.6426535,18.8906546,40.0580082,3.7860992,31.3722299,20.4291074,1.9992832,2.017207,21.184781,62.2448082,65.5497673,56.5869092,32.3328611,4.5431337,14.0766049,69.0185913,43.7923422,36.5950831,24.0498322,19.0730427,39.8094924,3.8362665,32.8207401,22.8481044,2.1864047,2.2038759,21.2297233,62.9854183,66.2844269,56.0892857,30.0840963,4.8564992,13.7631119,69.3620492,41.5450215,34.6783616,24.4503264,19.292551,40.0864237,3.6428075,33.2278407,24.7740539\r\n817,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9992832,2.017207,21.184781,62.2448082,65.5497673,56.5869092,32.3328611,4.5431337,14.0766049,69.0185913,43.7923422,36.5950831,24.0498322,19.0730427,39.8094924,3.8362665,32.8207401,22.8481044,2.1864047,2.2038759,21.2297233,62.9854183,66.2844269,56.0892857,30.0840963,4.8564992,13.7631119,69.3620492,41.5450215,34.6783616,24.4503264,19.292551,40.0864237,3.6428075,33.2278407,24.7740539,2.0791916,2.0964097,21.538394,63.5943633,65.9477453,55.9261546,29.9455956,5.1839465,15.1963669,68.3469005,40.8234574,34.5195243,24.0334036,19.336904,40.5463359,3.6832141,32.6738663,22.202525\r\n818,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1864047,2.2038759,21.2297233,62.9854183,66.2844269,56.0892857,30.0840963,4.8564992,13.7631119,69.3620492,41.5450215,34.6783616,24.4503264,19.292551,40.0864237,3.6428075,33.2278407,24.7740539,2.0791916,2.0964097,21.538394,63.5943633,65.9477453,55.9261546,29.9455956,5.1839465,15.1963669,68.3469005,40.8234574,34.5195243,24.0334036,19.336904,40.5463359,3.6832141,32.6738663,22.202525,2.2174494,2.2345417,20.6897024,64.6857605,63.3397813,55.074501,29.6599227,4.6128596,15.3830774,68.1941745,41.7399856,33.2328013,23.5368068,18.8784284,40.1590324,3.9536971,32.8998916,22.691663\r\n819,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0791916,2.0964097,21.538394,63.5943633,65.9477453,55.9261546,29.9455956,5.1839465,15.1963669,68.3469005,40.8234574,34.5195243,24.0334036,19.336904,40.5463359,3.6832141,32.6738663,22.202525,2.2174494,2.2345417,20.6897024,64.6857605,63.3397813,55.074501,29.6599227,4.6128596,15.3830774,68.1941745,41.7399856,33.2328013,23.5368068,18.8784284,40.1590324,3.9536971,32.8998916,22.691663,2.2023615,2.219144,21.5257038,64.8403029,63.8112029,56.5428605,30.2652377,4.3580572,15.817557,68.7670714,41.8569523,33.5898266,23.6625318,19.2644964,40.1054739,3.8567062,32.7609359,23.5207503\r\n820,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2174494,2.2345417,20.6897024,64.6857605,63.3397813,55.074501,29.6599227,4.6128596,15.3830774,68.1941745,41.7399856,33.2328013,23.5368068,18.8784284,40.1590324,3.9536971,32.8998916,22.691663,2.2023615,2.219144,21.5257038,64.8403029,63.8112029,56.5428605,30.2652377,4.3580572,15.817557,68.7670714,41.8569523,33.5898266,23.6625318,19.2644964,40.1054739,3.8567062,32.7609359,23.5207503,2.1776155,2.1576209,20.3819976,64.9715825,63.5338112,56.6225335,30.2533064,4.3438031,16.5234881,68.8770041,41.682173,33.0487408,23.0808867,18.5787031,40.682912,3.5104544,34.1167677,22.8687305\r\n821,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2023615,2.219144,21.5257038,64.8403029,63.8112029,56.5428605,30.2652377,4.3580572,15.817557,68.7670714,41.8569523,33.5898266,23.6625318,19.2644964,40.1054739,3.8567062,32.7609359,23.5207503,2.1776155,2.1576209,20.3819976,64.9715825,63.5338112,56.6225335,30.2533064,4.3438031,16.5234881,68.8770041,41.682173,33.0487408,23.0808867,18.5787031,40.682912,3.5104544,34.1167677,22.8687305,2.0082236,1.9880763,19.4267229,64.1966047,63.0623747,57.1723398,29.9458565,4.239701,15.3099001,68.75183,41.2008039,32.127359,23.2631343,18.4201006,40.371991,3.3714986,34.9946912,23.66484\r\n822,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1776155,2.1576209,20.3819976,64.9715825,63.5338112,56.6225335,30.2533064,4.3438031,16.5234881,68.8770041,41.682173,33.0487408,23.0808867,18.5787031,40.682912,3.5104544,34.1167677,22.8687305,2.0082236,1.9880763,19.4267229,64.1966047,63.0623747,57.1723398,29.9458565,4.239701,15.3099001,68.75183,41.2008039,32.127359,23.2631343,18.4201006,40.371991,3.3714986,34.9946912,23.66484,1.9058055,1.9301779,19.2817926,65.9049703,64.6608212,58.6992201,29.414504,4.2565942,15.0512495,68.9899632,39.5415226,32.6738087,23.4288701,18.6342682,40.2960979,3.4792461,35.3882092,21.517434\r\n823,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0082236,1.9880763,19.4267229,64.1966047,63.0623747,57.1723398,29.9458565,4.239701,15.3099001,68.75183,41.2008039,32.127359,23.2631343,18.4201006,40.371991,3.3714986,34.9946912,23.66484,1.9058055,1.9301779,19.2817926,65.9049703,64.6608212,58.6992201,29.414504,4.2565942,15.0512495,68.9899632,39.5415226,32.6738087,23.4288701,18.6342682,40.2960979,3.4792461,35.3882092,21.517434,1.9111854,1.9647848,19.3393789,65.0156351,63.6531539,58.6546522,30.3003527,4.1626208,15.3194066,68.8618301,40.8844755,31.9221477,23.7894489,18.7371826,39.7677989,3.4422948,35.3897388,22.0215498\r\n824,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9058055,1.9301779,19.2817926,65.9049703,64.6608212,58.6992201,29.414504,4.2565942,15.0512495,68.9899632,39.5415226,32.6738087,23.4288701,18.6342682,40.2960979,3.4792461,35.3882092,21.517434,1.9111854,1.9647848,19.3393789,65.0156351,63.6531539,58.6546522,30.3003527,4.1626208,15.3194066,68.8618301,40.8844755,31.9221477,23.7894489,18.7371826,39.7677989,3.4422948,35.3897388,22.0215498,2.0621348,2.1371818,20.6850969,65.4578288,62.8631489,57.4210424,30.5906365,3.7631457,13.8500559,69.6215312,40.5618361,33.3116925,24.8110869,19.5086976,39.6055885,3.2539633,36.2974366,23.9973655\r\n825,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9111854,1.9647848,19.3393789,65.0156351,63.6531539,58.6546522,30.3003527,4.1626208,15.3194066,68.8618301,40.8844755,31.9221477,23.7894489,18.7371826,39.7677989,3.4422948,35.3897388,22.0215498,2.0621348,2.1371818,20.6850969,65.4578288,62.8631489,57.4210424,30.5906365,3.7631457,13.8500559,69.6215312,40.5618361,33.3116925,24.8110869,19.5086976,39.6055885,3.2539633,36.2974366,23.9973655,1.8684604,1.9435728,21.2500117,65.9216478,65.2568738,57.8149058,31.1940611,4.8336959,13.7002822,70.8284006,40.2042919,32.7934323,25.6027494,20.2567359,39.847123,3.1600774,35.9508402,22.8559895\r\n826,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0621348,2.1371818,20.6850969,65.4578288,62.8631489,57.4210424,30.5906365,3.7631457,13.8500559,69.6215312,40.5618361,33.3116925,24.8110869,19.5086976,39.6055885,3.2539633,36.2974366,23.9973655,1.8684604,1.9435728,21.2500117,65.9216478,65.2568738,57.8149058,31.1940611,4.8336959,13.7002822,70.8284006,40.2042919,32.7934323,25.6027494,20.2567359,39.847123,3.1600774,35.9508402,22.8559895,2.038842,2.163453,20.4601143,66.1084146,65.1199743,57.5206928,31.4189403,5.1575474,13.7609659,70.3300457,40.6748661,33.1755783,25.8247708,20.1381991,39.3676365,3.197729,35.6840706,21.0465919\r\n827,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8684604,1.9435728,21.2500117,65.9216478,65.2568738,57.8149058,31.1940611,4.8336959,13.7002822,70.8284006,40.2042919,32.7934323,25.6027494,20.2567359,39.847123,3.1600774,35.9508402,22.8559895,2.038842,2.163453,20.4601143,66.1084146,65.1199743,57.5206928,31.4189403,5.1575474,13.7609659,70.3300457,40.6748661,33.1755783,25.8247708,20.1381991,39.3676365,3.197729,35.6840706,21.0465919,1.9818012,2.105349,20.5896878,65.0568895,64.5426334,57.0331201,30.7025523,5.239649,12.780274,69.8760442,40.6827365,33.8961457,26.2007066,20.4245345,39.7825211,3.4897198,34.6351231,23.9086085\r\n828,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.038842,2.163453,20.4601143,66.1084146,65.1199743,57.5206928,31.4189403,5.1575474,13.7609659,70.3300457,40.6748661,33.1755783,25.8247708,20.1381991,39.3676365,3.197729,35.6840706,21.0465919,1.9818012,2.105349,20.5896878,65.0568895,64.5426334,57.0331201,30.7025523,5.239649,12.780274,69.8760442,40.6827365,33.8961457,26.2007066,20.4245345,39.7825211,3.4897198,34.6351231,23.9086085,2.0380503,2.2056093,20.5652951,65.2541953,64.9641895,58.1254271,30.5147768,5.5374685,12.9223664,69.7187884,40.747164,33.7581034,26.2001577,20.4382332,40.2423482,3.7013592,34.5961038,22.246434\r\n829,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9818012,2.105349,20.5896878,65.0568895,64.5426334,57.0331201,30.7025523,5.239649,12.780274,69.8760442,40.6827365,33.8961457,26.2007066,20.4245345,39.7825211,3.4897198,34.6351231,23.9086085,2.0380503,2.2056093,20.5652951,65.2541953,64.9641895,58.1254271,30.5147768,5.5374685,12.9223664,69.7187884,40.747164,33.7581034,26.2001577,20.4382332,40.2423482,3.7013592,34.5961038,22.246434,1.8725637,2.0066174,20.4690794,65.1888142,64.1445412,57.0775834,30.2306312,5.6029769,14.0680984,69.6483989,41.0283417,34.2456723,25.6576291,19.9959919,39.9830987,3.8291435,32.9478531,23.1236245\r\n830,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0380503,2.2056093,20.5652951,65.2541953,64.9641895,58.1254271,30.5147768,5.5374685,12.9223664,69.7187884,40.747164,33.7581034,26.2001577,20.4382332,40.2423482,3.7013592,34.5961038,22.246434,1.8725637,2.0066174,20.4690794,65.1888142,64.1445412,57.0775834,30.2306312,5.6029769,14.0680984,69.6483989,41.0283417,34.2456723,25.6576291,19.9959919,39.9830987,3.8291435,32.9478531,23.1236245,1.9112258,2.0367523,21.7502508,66.2684319,64.6288458,56.7106372,31.0752138,5.7335891,14.0401187,69.5220461,40.4671088,35.7040484,25.6692738,20.5719537,40.7922382,3.8528662,31.9896879,24.456208\r\n831,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8725637,2.0066174,20.4690794,65.1888142,64.1445412,57.0775834,30.2306312,5.6029769,14.0680984,69.6483989,41.0283417,34.2456723,25.6576291,19.9959919,39.9830987,3.8291435,32.9478531,23.1236245,1.9112258,2.0367523,21.7502508,66.2684319,64.6288458,56.7106372,31.0752138,5.7335891,14.0401187,69.5220461,40.4671088,35.7040484,25.6692738,20.5719537,40.7922382,3.8528662,31.9896879,24.456208,1.981731,2.1065494,20.6352496,66.078802,65.7115791,58.2671848,30.581673,6.3326069,14.6188303,68.8851434,41.2621199,34.5381423,25.7584138,20.4755782,40.2087065,3.8545858,30.8129665,25.4344598\r\n832,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9112258,2.0367523,21.7502508,66.2684319,64.6288458,56.7106372,31.0752138,5.7335891,14.0401187,69.5220461,40.4671088,35.7040484,25.6692738,20.5719537,40.7922382,3.8528662,31.9896879,24.456208,1.981731,2.1065494,20.6352496,66.078802,65.7115791,58.2671848,30.581673,6.3326069,14.6188303,68.8851434,41.2621199,34.5381423,25.7584138,20.4755782,40.2087065,3.8545858,30.8129665,25.4344598,1.9685778,2.0934838,21.1215285,65.8068748,66.3543535,59.0225697,29.8442561,5.4535379,14.2841828,67.6499527,41.6535522,36.0892551,25.7502479,20.1190397,40.1065559,4.1788732,32.060378,25.5217142\r\n833,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.981731,2.1065494,20.6352496,66.078802,65.7115791,58.2671848,30.581673,6.3326069,14.6188303,68.8851434,41.2621199,34.5381423,25.7584138,20.4755782,40.2087065,3.8545858,30.8129665,25.4344598,1.9685778,2.0934838,21.1215285,65.8068748,66.3543535,59.0225697,29.8442561,5.4535379,14.2841828,67.6499527,41.6535522,36.0892551,25.7502479,20.1190397,40.1065559,4.1788732,32.060378,25.5217142,1.8412002,1.916784,21.3097903,64.2003251,64.4061097,57.2977738,30.066615,4.9205489,13.3684904,68.3187957,41.5884988,35.3902749,25.2196718,19.9297621,40.2065861,4.2678809,32.3236628,26.4476014\r\n834,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9685778,2.0934838,21.1215285,65.8068748,66.3543535,59.0225697,29.8442561,5.4535379,14.2841828,67.6499527,41.6535522,36.0892551,25.7502479,20.1190397,40.1065559,4.1788732,32.060378,25.5217142,1.8412002,1.916784,21.3097903,64.2003251,64.4061097,57.2977738,30.066615,4.9205489,13.3684904,68.3187957,41.5884988,35.3902749,25.2196718,19.9297621,40.2065861,4.2678809,32.3236628,26.4476014,1.9207522,2.0050711,21.7091528,64.1457192,64.7725134,58.2597015,30.8881177,4.7645518,14.140251,68.6038111,42.4616625,34.981583,25.1543864,19.9989343,39.1919078,4.3264883,32.2048457,23.6710566\r\n835,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8412002,1.916784,21.3097903,64.2003251,64.4061097,57.2977738,30.066615,4.9205489,13.3684904,68.3187957,41.5884988,35.3902749,25.2196718,19.9297621,40.2065861,4.2678809,32.3236628,26.4476014,1.9207522,2.0050711,21.7091528,64.1457192,64.7725134,58.2597015,30.8881177,4.7645518,14.140251,68.6038111,42.4616625,34.981583,25.1543864,19.9989343,39.1919078,4.3264883,32.2048457,23.6710566,1.9058168,1.945328,22.2210738,66.1694055,65.9178989,59.4430416,31.6543753,4.9120736,15.3843209,68.2159111,43.8256778,35.191993,26.0717163,20.6166436,38.7578842,4.2079089,32.7114196,24.0795083\r\n836,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9207522,2.0050711,21.7091528,64.1457192,64.7725134,58.2597015,30.8881177,4.7645518,14.140251,68.6038111,42.4616625,34.981583,25.1543864,19.9989343,39.1919078,4.3264883,32.2048457,23.6710566,1.9058168,1.945328,22.2210738,66.1694055,65.9178989,59.4430416,31.6543753,4.9120736,15.3843209,68.2159111,43.8256778,35.191993,26.0717163,20.6166436,38.7578842,4.2079089,32.7114196,24.0795083,2.0214726,2.0477559,22.9753524,66.0990469,66.0915759,60.9608904,30.7627754,4.666173,15.1010841,68.5938981,44.0555205,34.5712637,26.568854,21.4008616,38.9270673,3.7233098,32.7403486,24.7463609\r\n837,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9058168,1.945328,22.2210738,66.1694055,65.9178989,59.4430416,31.6543753,4.9120736,15.3843209,68.2159111,43.8256778,35.191993,26.0717163,20.6166436,38.7578842,4.2079089,32.7114196,24.0795083,2.0214726,2.0477559,22.9753524,66.0990469,66.0915759,60.9608904,30.7627754,4.666173,15.1010841,68.5938981,44.0555205,34.5712637,26.568854,21.4008616,38.9270673,3.7233098,32.7403486,24.7463609,1.849902,1.8659635,22.5437138,64.7046572,65.2793462,61.5330935,30.3959963,4.6018794,15.3162736,68.3321404,43.9850374,34.6742639,27.0292364,21.3849005,38.4214653,3.7018097,33.1301489,22.5472718\r\n838,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0214726,2.0477559,22.9753524,66.0990469,66.0915759,60.9608904,30.7627754,4.666173,15.1010841,68.5938981,44.0555205,34.5712637,26.568854,21.4008616,38.9270673,3.7233098,32.7403486,24.7463609,1.849902,1.8659635,22.5437138,64.7046572,65.2793462,61.5330935,30.3959963,4.6018794,15.3162736,68.3321404,43.9850374,34.6742639,27.0292364,21.3849005,38.4214653,3.7018097,33.1301489,22.5472718,1.7332326,1.7497289,23.0502287,64.8548923,65.9724501,62.549901,29.9453558,4.2963127,16.3035889,67.5690827,41.8636101,35.3097383,26.8745561,21.746298,39.6306182,3.6657081,34.2391149,21.8062189\r\n839,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.849902,1.8659635,22.5437138,64.7046572,65.2793462,61.5330935,30.3959963,4.6018794,15.3162736,68.3321404,43.9850374,34.6742639,27.0292364,21.3849005,38.4214653,3.7018097,33.1301489,22.5472718,1.7332326,1.7497289,23.0502287,64.8548923,65.9724501,62.549901,29.9453558,4.2963127,16.3035889,67.5690827,41.8636101,35.3097383,26.8745561,21.746298,39.6306182,3.6657081,34.2391149,21.8062189,1.874172,1.8905835,23.4240831,65.4654387,66.2854886,62.8292147,30.3397799,4.3709225,17.3708588,67.7132317,41.194885,37.1116586,27.3732086,22.4852957,40.5181299,3.3093703,33.1889718,22.2784724\r\n840,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7332326,1.7497289,23.0502287,64.8548923,65.9724501,62.549901,29.9453558,4.2963127,16.3035889,67.5690827,41.8636101,35.3097383,26.8745561,21.746298,39.6306182,3.6657081,34.2391149,21.8062189,1.874172,1.8905835,23.4240831,65.4654387,66.2854886,62.8292147,30.3397799,4.3709225,17.3708588,67.7132317,41.194885,37.1116586,27.3732086,22.4852957,40.5181299,3.3093703,33.1889718,22.2784724,1.9117176,1.9232815,24.1004033,65.8697452,66.5584907,62.6225758,28.3077386,4.9075436,17.9144896,66.7754055,40.2086353,36.2014261,28.731424,23.5857917,40.9707363,3.0925535,33.2489053,22.2767239\r\n841,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.874172,1.8905835,23.4240831,65.4654387,66.2854886,62.8292147,30.3397799,4.3709225,17.3708588,67.7132317,41.194885,37.1116586,27.3732086,22.4852957,40.5181299,3.3093703,33.1889718,22.2784724,1.9117176,1.9232815,24.1004033,65.8697452,66.5584907,62.6225758,28.3077386,4.9075436,17.9144896,66.7754055,40.2086353,36.2014261,28.731424,23.5857917,40.9707363,3.0925535,33.2489053,22.2767239,1.8644767,1.8240277,24.7096738,65.5285775,65.7741299,61.6008493,27.732744,5.4100754,17.1856696,66.1916896,38.9708197,35.3901538,29.7952723,24.3833215,41.2201329,3.1852296,34.4880469,23.1501405\r\n842,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9117176,1.9232815,24.1004033,65.8697452,66.5584907,62.6225758,28.3077386,4.9075436,17.9144896,66.7754055,40.2086353,36.2014261,28.731424,23.5857917,40.9707363,3.0925535,33.2489053,22.2767239,1.8644767,1.8240277,24.7096738,65.5285775,65.7741299,61.6008493,27.732744,5.4100754,17.1856696,66.1916896,38.9708197,35.3901538,29.7952723,24.3833215,41.2201329,3.1852296,34.4880469,23.1501405,2.1281216,2.0901068,24.0430242,64.1689396,64.4133218,60.0783307,26.689957,5.1677131,16.7035599,66.5974651,37.4434102,35.2224513,28.9616679,23.7135742,41.2377689,3.1861395,34.0933836,24.3863877\r\n843,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8644767,1.8240277,24.7096738,65.5285775,65.7741299,61.6008493,27.732744,5.4100754,17.1856696,66.1916896,38.9708197,35.3901538,29.7952723,24.3833215,41.2201329,3.1852296,34.4880469,23.1501405,2.1281216,2.0901068,24.0430242,64.1689396,64.4133218,60.0783307,26.689957,5.1677131,16.7035599,66.5974651,37.4434102,35.2224513,28.9616679,23.7135742,41.2377689,3.1861395,34.0933836,24.3863877,2.1071436,2.0797743,24.1478241,63.4614782,64.4457295,58.3853522,27.6844767,5.6106639,16.8918304,66.4561885,37.6928598,36.8201095,29.3261181,23.6719303,41.0408851,3.6627196,34.1161612,23.4461029\r\n844,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1281216,2.0901068,24.0430242,64.1689396,64.4133218,60.0783307,26.689957,5.1677131,16.7035599,66.5974651,37.4434102,35.2224513,28.9616679,23.7135742,41.2377689,3.1861395,34.0933836,24.3863877,2.1071436,2.0797743,24.1478241,63.4614782,64.4457295,58.3853522,27.6844767,5.6106639,16.8918304,66.4561885,37.6928598,36.8201095,29.3261181,23.6719303,41.0408851,3.6627196,34.1161612,23.4461029,2.349847,2.3105497,23.6844463,62.2124056,63.0991971,57.9123202,28.2904717,5.4413839,16.6423261,67.7597517,37.5673696,36.1986815,28.7776248,23.2671508,40.7172694,3.6922345,34.3914928,26.8087569\r\n845,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1071436,2.0797743,24.1478241,63.4614782,64.4457295,58.3853522,27.6844767,5.6106639,16.8918304,66.4561885,37.6928598,36.8201095,29.3261181,23.6719303,41.0408851,3.6627196,34.1161612,23.4461029,2.349847,2.3105497,23.6844463,62.2124056,63.0991971,57.9123202,28.2904717,5.4413839,16.6423261,67.7597517,37.5673696,36.1986815,28.7776248,23.2671508,40.7172694,3.6922345,34.3914928,26.8087569,2.2334538,2.253338,23.9724271,62.2384361,62.4931321,58.1243896,31.0894738,4.8801826,15.5312432,69.359111,38.8684658,34.9853692,29.4898858,23.2693525,40.2399006,3.7542005,33.3509611,24.5587855\r\n846,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.349847,2.3105497,23.6844463,62.2124056,63.0991971,57.9123202,28.2904717,5.4413839,16.6423261,67.7597517,37.5673696,36.1986815,28.7776248,23.2671508,40.7172694,3.6922345,34.3914928,26.8087569,2.2334538,2.253338,23.9724271,62.2384361,62.4931321,58.1243896,31.0894738,4.8801826,15.5312432,69.359111,38.8684658,34.9853692,29.4898858,23.2693525,40.2399006,3.7542005,33.3509611,24.5587855,2.1884896,2.208366,22.9582808,63.324613,62.2534179,58.5932203,32.851036,5.1837507,14.7970875,69.0112842,39.6619611,35.048919,28.328013,22.2634165,39.3769264,3.5720682,32.8188371,23.1446649\r\n847,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2334538,2.253338,23.9724271,62.2384361,62.4931321,58.1243896,31.0894738,4.8801826,15.5312432,69.359111,38.8684658,34.9853692,29.4898858,23.2693525,40.2399006,3.7542005,33.3509611,24.5587855,2.1884896,2.208366,22.9582808,63.324613,62.2534179,58.5932203,32.851036,5.1837507,14.7970875,69.0112842,39.6619611,35.048919,28.328013,22.2634165,39.3769264,3.5720682,32.8188371,23.1446649,2.1117085,2.1814906,21.6235644,65.6118796,63.4034985,62.2162373,34.0642587,5.299412,14.27256,67.4779111,40.4618165,36.1535185,26.8606441,21.112916,39.058352,3.8185048,32.4543323,22.9588925\r\n848,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1884896,2.208366,22.9582808,63.324613,62.2534179,58.5932203,32.851036,5.1837507,14.7970875,69.0112842,39.6619611,35.048919,28.328013,22.2634165,39.3769264,3.5720682,32.8188371,23.1446649,2.1117085,2.1814906,21.6235644,65.6118796,63.4034985,62.2162373,34.0642587,5.299412,14.27256,67.4779111,40.4618165,36.1535185,26.8606441,21.112916,39.058352,3.8185048,32.4543323,22.9588925,2.2376659,2.3284026,21.3986363,66.452029,63.6298091,63.0998845,35.0396922,4.697362,14.866769,67.5232865,40.687446,36.8490801,26.6266628,20.9785039,39.1817831,3.4607332,31.5592904,23.1343485\r\n849,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1117085,2.1814906,21.6235644,65.6118796,63.4034985,62.2162373,34.0642587,5.299412,14.27256,67.4779111,40.4618165,36.1535185,26.8606441,21.112916,39.058352,3.8185048,32.4543323,22.9588925,2.2376659,2.3284026,21.3986363,66.452029,63.6298091,63.0998845,35.0396922,4.697362,14.866769,67.5232865,40.687446,36.8490801,26.6266628,20.9785039,39.1817831,3.4607332,31.5592904,23.1343485,2.0159907,2.1041136,21.9900364,65.807712,62.9569581,62.2849191,36.0906636,4.565962,14.6885582,67.5849716,41.1520434,37.1008623,27.3417084,21.75918,38.6443884,3.3534306,32.6827647,23.1834442\r\n850,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2376659,2.3284026,21.3986363,66.452029,63.6298091,63.0998845,35.0396922,4.697362,14.866769,67.5232865,40.687446,36.8490801,26.6266628,20.9785039,39.1817831,3.4607332,31.5592904,23.1343485,2.0159907,2.1041136,21.9900364,65.807712,62.9569581,62.2849191,36.0906636,4.565962,14.6885582,67.5849716,41.1520434,37.1008623,27.3417084,21.75918,38.6443884,3.3534306,32.6827647,23.1834442,2.2393948,2.3275162,21.6909892,65.4317029,62.1542804,63.2069044,35.9198942,4.5851012,13.6506609,66.6629515,40.4574961,37.4560217,27.4107237,21.886452,38.8681606,3.1702949,33.7958999,23.7299288\r\n851,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0159907,2.1041136,21.9900364,65.807712,62.9569581,62.2849191,36.0906636,4.565962,14.6885582,67.5849716,41.1520434,37.1008623,27.3417084,21.75918,38.6443884,3.3534306,32.6827647,23.1834442,2.2393948,2.3275162,21.6909892,65.4317029,62.1542804,63.2069044,35.9198942,4.5851012,13.6506609,66.6629515,40.4574961,37.4560217,27.4107237,21.886452,38.8681606,3.1702949,33.7958999,23.7299288,2.1045032,2.1916846,21.357036,67.7623366,64.0695585,64.111887,34.1314119,4.6480703,14.1477511,64.8306736,39.6103746,37.5707671,27.3921067,21.9353168,39.2621202,3.0164914,35.7805675,21.6183508\r\n852,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2393948,2.3275162,21.6909892,65.4317029,62.1542804,63.2069044,35.9198942,4.5851012,13.6506609,66.6629515,40.4574961,37.4560217,27.4107237,21.886452,38.8681606,3.1702949,33.7958999,23.7299288,2.1045032,2.1916846,21.357036,67.7623366,64.0695585,64.111887,34.1314119,4.6480703,14.1477511,64.8306736,39.6103746,37.5707671,27.3921067,21.9353168,39.2621202,3.0164914,35.7805675,21.6183508,2.1948617,2.2262226,21.50834,68.2730026,64.6459173,64.0384905,32.3008656,4.7645656,13.4327286,63.6709331,39.8077825,38.1193502,26.8698268,21.649794,39.9459249,3.142666,36.3651932,24.6464306\r\n853,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1045032,2.1916846,21.357036,67.7623366,64.0695585,64.111887,34.1314119,4.6480703,14.1477511,64.8306736,39.6103746,37.5707671,27.3921067,21.9353168,39.2621202,3.0164914,35.7805675,21.6183508,2.1948617,2.2262226,21.50834,68.2730026,64.6459173,64.0384905,32.3008656,4.7645656,13.4327286,63.6709331,39.8077825,38.1193502,26.8698268,21.649794,39.9459249,3.142666,36.3651932,24.6464306,2.1286406,2.1495126,21.4973945,66.4472789,63.8335632,62.0227762,30.8583402,4.5921826,12.4224144,65.0585741,39.7308636,37.93395,27.6213127,22.1359696,40.5287448,3.1732754,37.7574148,25.529229\r\n854,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1948617,2.2262226,21.50834,68.2730026,64.6459173,64.0384905,32.3008656,4.7645656,13.4327286,63.6709331,39.8077825,38.1193502,26.8698268,21.649794,39.9459249,3.142666,36.3651932,24.6464306,2.1286406,2.1495126,21.4973945,66.4472789,63.8335632,62.0227762,30.8583402,4.5921826,12.4224144,65.0585741,39.7308636,37.93395,27.6213127,22.1359696,40.5287448,3.1732754,37.7574148,25.529229,2.2524367,2.2524367,23.2798035,64.4953977,64.4602409,60.5384655,30.5051124,4.571789,12.9605679,65.9864947,38.8242321,37.0660091,29.0513647,23.5309065,41.0201976,3.1171356,38.2957375,26.5676057\r\n855,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1286406,2.1495126,21.4973945,66.4472789,63.8335632,62.0227762,30.8583402,4.5921826,12.4224144,65.0585741,39.7308636,37.93395,27.6213127,22.1359696,40.5287448,3.1732754,37.7574148,25.529229,2.2524367,2.2524367,23.2798035,64.4953977,64.4602409,60.5384655,30.5051124,4.571789,12.9605679,65.9864947,38.8242321,37.0660091,29.0513647,23.5309065,41.0201976,3.1171356,38.2957375,26.5676057,2.3692414,2.390026,24.3809811,64.9952597,64.7113331,60.0399064,29.043721,5.65105,12.6224492,66.2584488,39.2815352,37.1771151,29.7077458,24.1776863,41.7052004,3.375209,39.0775682,27.3335473\r\n856,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2524367,2.2524367,23.2798035,64.4953977,64.4602409,60.5384655,30.5051124,4.571789,12.9605679,65.9864947,38.8242321,37.0660091,29.0513647,23.5309065,41.0201976,3.1171356,38.2957375,26.5676057,2.3692414,2.390026,24.3809811,64.9952597,64.7113331,60.0399064,29.043721,5.65105,12.6224492,66.2584488,39.2815352,37.1771151,29.7077458,24.1776863,41.7052004,3.375209,39.0775682,27.3335473,2.3231144,2.343839,24.9640055,66.2941054,66.6722215,60.6996134,27.8572488,5.4279973,12.9451784,65.5279563,39.267265,38.0872879,29.817541,24.3871452,42.6183887,3.3171414,37.3399151,28.2475359\r\n857,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3692414,2.390026,24.3809811,64.9952597,64.7113331,60.0399064,29.043721,5.65105,12.6224492,66.2584488,39.2815352,37.1771151,29.7077458,24.1776863,41.7052004,3.375209,39.0775682,27.3335473,2.3231144,2.343839,24.9640055,66.2941054,66.6722215,60.6996134,27.8572488,5.4279973,12.9451784,65.5279563,39.267265,38.0872879,29.817541,24.3871452,42.6183887,3.3171414,37.3399151,28.2475359,2.2024471,2.2126692,25.1418286,67.7215259,68.8631705,61.2439203,28.3035476,5.3035122,13.8973001,66.4568276,39.4821854,36.9544355,29.9894062,24.3628472,42.7237119,3.1288253,36.7041199,27.1680136\r\n858,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3231144,2.343839,24.9640055,66.2941054,66.6722215,60.6996134,27.8572488,5.4279973,12.9451784,65.5279563,39.267265,38.0872879,29.817541,24.3871452,42.6183887,3.3171414,37.3399151,28.2475359,2.2024471,2.2126692,25.1418286,67.7215259,68.8631705,61.2439203,28.3035476,5.3035122,13.8973001,66.4568276,39.4821854,36.9544355,29.9894062,24.3628472,42.7237119,3.1288253,36.7041199,27.1680136,2.2986752,2.3293042,26.4248817,66.9752699,68.0081395,60.9417365,28.9698923,5.5174359,13.3614256,67.1544233,40.6756061,38.2452633,30.3490583,24.8933939,42.666267,3.247495,33.8456812,25.7984624\r\n859,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2024471,2.2126692,25.1418286,67.7215259,68.8631705,61.2439203,28.3035476,5.3035122,13.8973001,66.4568276,39.4821854,36.9544355,29.9894062,24.3628472,42.7237119,3.1288253,36.7041199,27.1680136,2.2986752,2.3293042,26.4248817,66.9752699,68.0081395,60.9417365,28.9698923,5.5174359,13.3614256,67.1544233,40.6756061,38.2452633,30.3490583,24.8933939,42.666267,3.247495,33.8456812,25.7984624,2.4712886,2.5016328,25.5819551,66.6811339,68.1106707,60.9828423,28.9499092,5.8598789,14.4434363,68.1989197,40.6748039,39.1605659,30.6373185,25.1091068,42.0591478,3.3116992,34.2260902,24.9204049\r\n860,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2986752,2.3293042,26.4248817,66.9752699,68.0081395,60.9417365,28.9698923,5.5174359,13.3614256,67.1544233,40.6756061,38.2452633,30.3490583,24.8933939,42.666267,3.247495,33.8456812,25.7984624,2.4712886,2.5016328,25.5819551,66.6811339,68.1106707,60.9828423,28.9499092,5.8598789,14.4434363,68.1989197,40.6748039,39.1605659,30.6373185,25.1091068,42.0591478,3.3116992,34.2260902,24.9204049,2.6978391,2.748431,25.9951926,66.6505623,67.2196421,60.9593625,28.7826166,5.6977289,15.3213936,67.8556383,40.3538423,38.4889654,30.7744123,25.3228796,42.4362855,3.4503934,33.0495525,25.8098416\r\n861,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4712886,2.5016328,25.5819551,66.6811339,68.1106707,60.9828423,28.9499092,5.8598789,14.4434363,68.1989197,40.6748039,39.1605659,30.6373185,25.1091068,42.0591478,3.3116992,34.2260902,24.9204049,2.6978391,2.748431,25.9951926,66.6505623,67.2196421,60.9593625,28.7826166,5.6977289,15.3213936,67.8556383,40.3538423,38.4889654,30.7744123,25.3228796,42.4362855,3.4503934,33.0495525,25.8098416,2.6250555,2.6556439,26.2617236,67.6201902,66.8872314,61.75925,29.3662848,5.6131208,15.5831529,68.4461206,40.2879869,39.7556347,31.0712043,25.1299689,42.1623488,3.2685913,32.8973147,26.7025161\r\n862,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6978391,2.748431,25.9951926,66.6505623,67.2196421,60.9593625,28.7826166,5.6977289,15.3213936,67.8556383,40.3538423,38.4889654,30.7744123,25.3228796,42.4362855,3.4503934,33.0495525,25.8098416,2.6250555,2.6556439,26.2617236,67.6201902,66.8872314,61.75925,29.3662848,5.6131208,15.5831529,68.4461206,40.2879869,39.7556347,31.0712043,25.1299689,42.1623488,3.2685913,32.8973147,26.7025161,2.4262169,2.4573009,25.4709705,66.1415453,66.5805173,62.7870939,30.6315319,4.6024944,15.2627334,68.9117299,39.5502564,39.0203008,30.7480375,24.6025444,42.0307796,3.1419702,32.9293042,26.2323851\r\n863,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6250555,2.6556439,26.2617236,67.6201902,66.8872314,61.75925,29.3662848,5.6131208,15.5831529,68.4461206,40.2879869,39.7556347,31.0712043,25.1299689,42.1623488,3.2685913,32.8973147,26.7025161,2.4262169,2.4573009,25.4709705,66.1415453,66.5805173,62.7870939,30.6315319,4.6024944,15.2627334,68.9117299,39.5502564,39.0203008,30.7480375,24.6025444,42.0307796,3.1419702,32.9293042,26.2323851,2.5398977,2.6132478,25.2629947,65.4722929,66.1776266,64.2437035,31.2101257,4.90513,15.9285859,68.456082,38.4774092,37.4189901,30.8429165,24.4641717,41.9813461,3.2675093,33.4725757,26.286755\r\n864,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4262169,2.4573009,25.4709705,66.1415453,66.5805173,62.7870939,30.6315319,4.6024944,15.2627334,68.9117299,39.5502564,39.0203008,30.7480375,24.6025444,42.0307796,3.1419702,32.9293042,26.2323851,2.5398977,2.6132478,25.2629947,65.4722929,66.1776266,64.2437035,31.2101257,4.90513,15.9285859,68.456082,38.4774092,37.4189901,30.8429165,24.4641717,41.9813461,3.2675093,33.4725757,26.286755,2.4170435,2.4907695,24.6670253,64.5161209,64.320578,64.0393833,31.0233876,4.7396245,15.1462903,67.7196839,38.0918563,37.8473388,30.5106138,24.3941084,42.1744965,3.1183901,33.3733535,27.0909091\r\n865,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5398977,2.6132478,25.2629947,65.4722929,66.1776266,64.2437035,31.2101257,4.90513,15.9285859,68.456082,38.4774092,37.4189901,30.8429165,24.4641717,41.9813461,3.2675093,33.4725757,26.286755,2.4170435,2.4907695,24.6670253,64.5161209,64.320578,64.0393833,31.0233876,4.7396245,15.1462903,67.7196839,38.0918563,37.8473388,30.5106138,24.3941084,42.1744965,3.1183901,33.3733535,27.0909091,2.2877365,2.3421634,25.0093872,65.229369,65.210925,64.2611707,31.3769233,4.570674,15.6315024,67.6442397,37.9378777,37.8837978,30.7329775,24.2496787,42.4240667,2.9901564,34.4314176,28.7594093\r\n866,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4170435,2.4907695,24.6670253,64.5161209,64.320578,64.0393833,31.0233876,4.7396245,15.1462903,67.7196839,38.0918563,37.8473388,30.5106138,24.3941084,42.1744965,3.1183901,33.3733535,27.0909091,2.2877365,2.3421634,25.0093872,65.229369,65.210925,64.2611707,31.3769233,4.570674,15.6315024,67.6442397,37.9378777,37.8837978,30.7329775,24.2496787,42.4240667,2.9901564,34.4314176,28.7594093,2.1127696,2.1236455,24.889063,64.2005204,64.3484263,64.8529319,30.6222443,4.8637014,15.2322225,67.0459661,38.4708468,37.5286854,30.2546517,24.1336663,41.7885238,3.1328641,33.9130906,26.9927634\r\n867,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2877365,2.3421634,25.0093872,65.229369,65.210925,64.2611707,31.3769233,4.570674,15.6315024,67.6442397,37.9378777,37.8837978,30.7329775,24.2496787,42.4240667,2.9901564,34.4314176,28.7594093,2.1127696,2.1236455,24.889063,64.2005204,64.3484263,64.8529319,30.6222443,4.8637014,15.2322225,67.0459661,38.4708468,37.5286854,30.2546517,24.1336663,41.7885238,3.1328641,33.9130906,26.9927634,2.0223672,2.0223672,25.8650683,65.1518972,64.9100257,64.5595842,30.6828849,4.8103433,15.0490135,67.5394775,39.0876424,37.2651263,30.6310352,24.8824289,41.5326069,3.0993246,34.2775544,24.4107826\r\n868,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1127696,2.1236455,24.889063,64.2005204,64.3484263,64.8529319,30.6222443,4.8637014,15.2322225,67.0459661,38.4708468,37.5286854,30.2546517,24.1336663,41.7885238,3.1328641,33.9130906,26.9927634,2.0223672,2.0223672,25.8650683,65.1518972,64.9100257,64.5595842,30.6828849,4.8103433,15.0490135,67.5394775,39.0876424,37.2651263,30.6310352,24.8824289,41.5326069,3.0993246,34.2775544,24.4107826,2.2542532,2.2542532,25.5557661,64.7219897,64.220912,63.6468914,31.0264076,5.5508814,15.1496123,67.5475587,39.4793246,37.9548473,30.7350246,24.9528563,41.6386528,3.1344323,34.1061737,24.4548204\r\n869,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0223672,2.0223672,25.8650683,65.1518972,64.9100257,64.5595842,30.6828849,4.8103433,15.0490135,67.5394775,39.0876424,37.2651263,30.6310352,24.8824289,41.5326069,3.0993246,34.2775544,24.4107826,2.2542532,2.2542532,25.5557661,64.7219897,64.220912,63.6468914,31.0264076,5.5508814,15.1496123,67.5475587,39.4793246,37.9548473,30.7350246,24.9528563,41.6386528,3.1344323,34.1061737,24.4548204,2.1634119,2.1634119,25.592274,66.1931061,65.6690045,63.3491039,30.5889486,5.6063028,15.4726429,66.6655942,39.2614189,39.4513394,30.7702239,25.2490357,41.535172,3.306823,33.7964212,24.5996983\r\n870,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2542532,2.2542532,25.5557661,64.7219897,64.220912,63.6468914,31.0264076,5.5508814,15.1496123,67.5475587,39.4793246,37.9548473,30.7350246,24.9528563,41.6386528,3.1344323,34.1061737,24.4548204,2.1634119,2.1634119,25.592274,66.1931061,65.6690045,63.3491039,30.5889486,5.6063028,15.4726429,66.6655942,39.2614189,39.4513394,30.7702239,25.2490357,41.535172,3.306823,33.7964212,24.5996983,2.1600918,2.1179575,25.3580401,66.2374353,66.1503999,60.9605218,31.1173204,5.2030363,14.0526328,68.4935824,40.7408999,41.4767436,31.0575366,25.6115056,41.0582364,3.4310806,34.7570284,24.4607753\r\n871,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1634119,2.1634119,25.592274,66.1931061,65.6690045,63.3491039,30.5889486,5.6063028,15.4726429,66.6655942,39.2614189,39.4513394,30.7702239,25.2490357,41.535172,3.306823,33.7964212,24.5996983,2.1600918,2.1179575,25.3580401,66.2374353,66.1503999,60.9605218,31.1173204,5.2030363,14.0526328,68.4935824,40.7408999,41.4767436,31.0575366,25.6115056,41.0582364,3.4310806,34.7570284,24.4607753,2.5392878,2.4973319,26.7372537,65.2308278,65.6604018,59.3865802,30.3710268,5.0939138,13.4792473,68.8812712,41.2664409,40.5699374,32.0916081,26.2666634,41.0979255,4.0403048,33.8456971,22.4435146\r\n872,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1600918,2.1179575,25.3580401,66.2374353,66.1503999,60.9605218,31.1173204,5.2030363,14.0526328,68.4935824,40.7408999,41.4767436,31.0575366,25.6115056,41.0582364,3.4310806,34.7570284,24.4607753,2.5392878,2.4973319,26.7372537,65.2308278,65.6604018,59.3865802,30.3710268,5.0939138,13.4792473,68.8812712,41.2664409,40.5699374,32.0916081,26.2666634,41.0979255,4.0403048,33.8456971,22.4435146,2.782317,2.7425623,25.596634,64.778346,65.8342958,60.3918895,28.8123883,5.0803481,13.5893749,68.8724368,40.5783021,41.3525235,31.9006215,26.1174902,41.8510365,3.923871,34.104473,22.3054682\r\n873,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5392878,2.4973319,26.7372537,65.2308278,65.6604018,59.3865802,30.3710268,5.0939138,13.4792473,68.8812712,41.2664409,40.5699374,32.0916081,26.2666634,41.0979255,4.0403048,33.8456971,22.4435146,2.782317,2.7425623,25.596634,64.778346,65.8342958,60.3918895,28.8123883,5.0803481,13.5893749,68.8724368,40.5783021,41.3525235,31.9006215,26.1174902,41.8510365,3.923871,34.104473,22.3054682,2.7253767,2.7253767,25.8538204,64.7021057,65.4071212,59.9369714,28.7532339,4.8061473,13.7745552,69.7812934,39.9187116,41.006885,32.2489556,26.3714602,42.9191403,3.6498033,34.3396259,21.9812041\r\n874,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.782317,2.7425623,25.596634,64.778346,65.8342958,60.3918895,28.8123883,5.0803481,13.5893749,68.8724368,40.5783021,41.3525235,31.9006215,26.1174902,41.8510365,3.923871,34.104473,22.3054682,2.7253767,2.7253767,25.8538204,64.7021057,65.4071212,59.9369714,28.7532339,4.8061473,13.7745552,69.7812934,39.9187116,41.006885,32.2489556,26.3714602,42.9191403,3.6498033,34.3396259,21.9812041,2.8133472,2.8461958,26.9922521,64.336885,66.1189649,60.7268253,29.2181881,4.6199169,14.3692452,68.8202933,37.9112385,42.5288966,33.2634718,27.13802,43.3158971,3.4997982,34.2378666,22.4325436\r\n875,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7253767,2.7253767,25.8538204,64.7021057,65.4071212,59.9369714,28.7532339,4.8061473,13.7745552,69.7812934,39.9187116,41.006885,32.2489556,26.3714602,42.9191403,3.6498033,34.3396259,21.9812041,2.8133472,2.8461958,26.9922521,64.336885,66.1189649,60.7268253,29.2181881,4.6199169,14.3692452,68.8202933,37.9112385,42.5288966,33.2634718,27.13802,43.3158971,3.4997982,34.2378666,22.4325436,2.8972995,2.929932,27.6014179,64.2021809,66.7719992,60.1104801,28.5753647,4.0734731,13.9380707,67.2738675,36.155798,43.0681171,33.2906524,27.4874868,43.859837,3.4281182,33.6209673,20.1654562\r\n876,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8133472,2.8461958,26.9922521,64.336885,66.1189649,60.7268253,29.2181881,4.6199169,14.3692452,68.8202933,37.9112385,42.5288966,33.2634718,27.13802,43.3158971,3.4997982,34.2378666,22.4325436,2.8972995,2.929932,27.6014179,64.2021809,66.7719992,60.1104801,28.5753647,4.0734731,13.9380707,67.2738675,36.155798,43.0681171,33.2906524,27.4874868,43.859837,3.4281182,33.6209673,20.1654562,2.8861741,2.9694497,27.8505204,63.6322955,65.4848809,59.9488763,28.3225268,4.3459143,13.6886278,66.2157147,34.838692,42.0136251,33.382136,27.4844813,43.9351116,3.0892824,32.6699734,18.6031569\r\n877,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8972995,2.929932,27.6014179,64.2021809,66.7719992,60.1104801,28.5753647,4.0734731,13.9380707,67.2738675,36.155798,43.0681171,33.2906524,27.4874868,43.859837,3.4281182,33.6209673,20.1654562,2.8861741,2.9694497,27.8505204,63.6322955,65.4848809,59.9488763,28.3225268,4.3459143,13.6886278,66.2157147,34.838692,42.0136251,33.382136,27.4844813,43.9351116,3.0892824,32.6699734,18.6031569,2.9759886,3.0997682,28.9255232,62.973778,62.2813346,60.5306186,28.9648497,4.3295723,13.4867065,65.5431451,34.3295483,40.8251422,33.8760233,27.6747305,44.2266845,3.0688853,31.6949715,18.3046482\r\n878,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8861741,2.9694497,27.8505204,63.6322955,65.4848809,59.9488763,28.3225268,4.3459143,13.6886278,66.2157147,34.838692,42.0136251,33.382136,27.4844813,43.9351116,3.0892824,32.6699734,18.6031569,2.9759886,3.0997682,28.9255232,62.973778,62.2813346,60.5306186,28.9648497,4.3295723,13.4867065,65.5431451,34.3295483,40.8251422,33.8760233,27.6747305,44.2266845,3.0688853,31.6949715,18.3046482,3.0165898,3.1180096,28.4671989,64.8151037,63.0127155,63.2965112,28.6962152,4.9251516,13.8411306,63.9527284,32.9716085,42.639509,33.4599724,27.4234846,44.4341827,2.4928,30.8754504,19.461673\r\n879,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9759886,3.0997682,28.9255232,62.973778,62.2813346,60.5306186,28.9648497,4.3295723,13.4867065,65.5431451,34.3295483,40.8251422,33.8760233,27.6747305,44.2266845,3.0688853,31.6949715,18.3046482,3.0165898,3.1180096,28.4671989,64.8151037,63.0127155,63.2965112,28.6962152,4.9251516,13.8411306,63.9527284,32.9716085,42.639509,33.4599724,27.4234846,44.4341827,2.4928,30.8754504,19.461673,3.0820481,3.1823618,29.2515064,65.3268303,61.7434397,63.1288015,30.0550838,4.7565557,13.3996043,64.3180415,33.5033056,41.6495851,34.1054173,28.179851,44.1336363,2.6705486,31.1617582,21.4039773\r\n880,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6466416,1.6356321,18.6933324,66.4954912,69.2026158,54.8880473,28.6158115,9.1206816,19.4805293,68.4460711,39.0849492,39.1869811,24.0346406,19.3619811,52.6723705,3.9345083,35.6083028,12.1795299,1.4895585,1.5038972,19.5319102,67.6567354,69.6397266,53.6219912,28.8621867,9.4356658,20.4503869,68.9967939,39.1762896,39.4425834,23.4853464,19.5489568,52.5467539,3.643447,35.0848178,12.8378829,1.4651852,1.5201542,21.3103102,64.7367027,68.4505479,54.0597078,29.5077289,9.6960317,20.8949785,68.3813612,39.2443693,38.0541547,23.6420838,20.1644795,51.1974154,3.71556,35.6707404,12.0283547\r\n881,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4895585,1.5038972,19.5319102,67.6567354,69.6397266,53.6219912,28.8621867,9.4356658,20.4503869,68.9967939,39.1762896,39.4425834,23.4853464,19.5489568,52.5467539,3.643447,35.0848178,12.8378829,1.4651852,1.5201542,21.3103102,64.7367027,68.4505479,54.0597078,29.5077289,9.6960317,20.8949785,68.3813612,39.2443693,38.0541547,23.6420838,20.1644795,51.1974154,3.71556,35.6707404,12.0283547,1.4498108,1.4690398,20.9607079,64.7950611,67.0376224,53.9193536,29.6890092,9.278903,20.1072596,68.987961,39.9817842,37.2706762,24.0629317,20.7477142,50.984346,3.3391452,35.3113956,11.2440245\r\n882,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4651852,1.5201542,21.3103102,64.7367027,68.4505479,54.0597078,29.5077289,9.6960317,20.8949785,68.3813612,39.2443693,38.0541547,23.6420838,20.1644795,51.1974154,3.71556,35.6707404,12.0283547,1.4498108,1.4690398,20.9607079,64.7950611,67.0376224,53.9193536,29.6890092,9.278903,20.1072596,68.987961,39.9817842,37.2706762,24.0629317,20.7477142,50.984346,3.3391452,35.3113956,11.2440245,1.4670636,1.5392234,20.1964922,64.7638555,67.5688067,54.0091157,30.2290711,9.6406025,20.0933265,69.75934,40.4223984,36.5183327,23.6133793,20.1726526,51.1946275,3.1233067,35.8412289,11.6666722\r\n883,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4498108,1.4690398,20.9607079,64.7950611,67.0376224,53.9193536,29.6890092,9.278903,20.1072596,68.987961,39.9817842,37.2706762,24.0629317,20.7477142,50.984346,3.3391452,35.3113956,11.2440245,1.4670636,1.5392234,20.1964922,64.7638555,67.5688067,54.0091157,30.2290711,9.6406025,20.0933265,69.75934,40.4223984,36.5183327,23.6133793,20.1726526,51.1946275,3.1233067,35.8412289,11.6666722,1.3126887,1.3919722,19.5878063,63.0937125,66.8127964,52.7139608,30.031094,8.8369256,19.422905,70.0285063,40.6453006,36.5553835,23.1870885,19.4481395,50.234868,3.2472282,37.1310359,10.6965227\r\n884,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4670636,1.5392234,20.1964922,64.7638555,67.5688067,54.0091157,30.2290711,9.6406025,20.0933265,69.75934,40.4223984,36.5183327,23.6133793,20.1726526,51.1946275,3.1233067,35.8412289,11.6666722,1.3126887,1.3919722,19.5878063,63.0937125,66.8127964,52.7139608,30.031094,8.8369256,19.422905,70.0285063,40.6453006,36.5553835,23.1870885,19.4481395,50.234868,3.2472282,37.1310359,10.6965227,1.2964385,1.3776097,19.2402148,64.1503902,68.3241201,53.8377171,29.6164022,9.8174765,20.2055393,68.5699134,39.347129,37.9118906,22.554748,19.1985631,50.7189815,3.1890945,36.9331623,9.7368524\r\n885,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3126887,1.3919722,19.5878063,63.0937125,66.8127964,52.7139608,30.031094,8.8369256,19.422905,70.0285063,40.6453006,36.5553835,23.1870885,19.4481395,50.234868,3.2472282,37.1310359,10.6965227,1.2964385,1.3776097,19.2402148,64.1503902,68.3241201,53.8377171,29.6164022,9.8174765,20.2055393,68.5699134,39.347129,37.9118906,22.554748,19.1985631,50.7189815,3.1890945,36.9331623,9.7368524,1.3835328,1.4381478,18.9720649,65.4680508,68.5382761,55.4832695,27.4156023,11.458597,20.0156761,67.556938,39.775615,38.1654212,22.3790067,18.9803994,51.0593072,3.04553,36.1246788,10.3723459\r\n886,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2964385,1.3776097,19.2402148,64.1503902,68.3241201,53.8377171,29.6164022,9.8174765,20.2055393,68.5699134,39.347129,37.9118906,22.554748,19.1985631,50.7189815,3.1890945,36.9331623,9.7368524,1.3835328,1.4381478,18.9720649,65.4680508,68.5382761,55.4832695,27.4156023,11.458597,20.0156761,67.556938,39.775615,38.1654212,22.3790067,18.9803994,51.0593072,3.04553,36.1246788,10.3723459,1.6184877,1.6751129,18.6782751,64.5353718,68.7838321,57.0973038,26.6272661,10.7605458,17.9644249,67.0616885,38.6339429,35.9455267,23.0838029,18.8921958,50.7901458,3.1711775,36.7721359,11.0215113\r\n887,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3835328,1.4381478,18.9720649,65.4680508,68.5382761,55.4832695,27.4156023,11.458597,20.0156761,67.556938,39.775615,38.1654212,22.3790067,18.9803994,51.0593072,3.04553,36.1246788,10.3723459,1.6184877,1.6751129,18.6782751,64.5353718,68.7838321,57.0973038,26.6272661,10.7605458,17.9644249,67.0616885,38.6339429,35.9455267,23.0838029,18.8921958,50.7901458,3.1711775,36.7721359,11.0215113,1.7670812,1.8216383,17.3021312,67.4435971,70.4357439,58.2629918,25.3799222,10.5817258,18.1275263,67.1655079,39.0883524,38.3419083,22.6731492,18.3051985,51.6963393,2.9900316,37.0035963,12.7499936\r\n888,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6184877,1.6751129,18.6782751,64.5353718,68.7838321,57.0973038,26.6272661,10.7605458,17.9644249,67.0616885,38.6339429,35.9455267,23.0838029,18.8921958,50.7901458,3.1711775,36.7721359,11.0215113,1.7670812,1.8216383,17.3021312,67.4435971,70.4357439,58.2629918,25.3799222,10.5817258,18.1275263,67.1655079,39.0883524,38.3419083,22.6731492,18.3051985,51.6963393,2.9900316,37.0035963,12.7499936,1.7890567,1.846234,17.0540463,67.449323,71.1619454,57.4281912,25.6290884,10.8948811,18.770633,66.655245,39.0892833,38.3446405,21.9790909,17.4690306,50.7913804,3.4218291,37.3756063,11.7800985\r\n889,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7670812,1.8216383,17.3021312,67.4435971,70.4357439,58.2629918,25.3799222,10.5817258,18.1275263,67.1655079,39.0883524,38.3419083,22.6731492,18.3051985,51.6963393,2.9900316,37.0035963,12.7499936,1.7890567,1.846234,17.0540463,67.449323,71.1619454,57.4281912,25.6290884,10.8948811,18.770633,66.655245,39.0892833,38.3446405,21.9790909,17.4690306,50.7913804,3.4218291,37.3756063,11.7800985,1.8608174,1.8608174,17.2216251,66.1904226,69.1491142,57.0001935,26.6222578,10.3477751,18.8260916,68.6231188,40.2016854,38.2442013,22.0219229,17.5858559,51.4267328,3.5161985,36.9466003,12.0947549\r\n890,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7890567,1.846234,17.0540463,67.449323,71.1619454,57.4281912,25.6290884,10.8948811,18.770633,66.655245,39.0892833,38.3446405,21.9790909,17.4690306,50.7913804,3.4218291,37.3756063,11.7800985,1.8608174,1.8608174,17.2216251,66.1904226,69.1491142,57.0001935,26.6222578,10.3477751,18.8260916,68.6231188,40.2016854,38.2442013,22.0219229,17.5858559,51.4267328,3.5161985,36.9466003,12.0947549,2.0108014,2.0108014,17.9790892,65.9920654,69.1036299,56.546495,26.7990931,10.5120566,19.5451474,69.0963759,40.4294122,38.3891732,22.8452319,18.7337497,51.9008562,3.4053306,36.3192678,14.3248554\r\n891,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8608174,1.8608174,17.2216251,66.1904226,69.1491142,57.0001935,26.6222578,10.3477751,18.8260916,68.6231188,40.2016854,38.2442013,22.0219229,17.5858559,51.4267328,3.5161985,36.9466003,12.0947549,2.0108014,2.0108014,17.9790892,65.9920654,69.1036299,56.546495,26.7990931,10.5120566,19.5451474,69.0963759,40.4294122,38.3891732,22.8452319,18.7337497,51.9008562,3.4053306,36.3192678,14.3248554,1.8877277,1.8877277,17.7322042,66.1821808,69.4768741,56.5504675,25.6496694,8.9300349,19.8809997,68.4833805,42.2790854,36.6602396,22.2114776,18.1365851,51.4286017,3.2313677,36.7013338,15.1757371\r\n892,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0108014,2.0108014,17.9790892,65.9920654,69.1036299,56.546495,26.7990931,10.5120566,19.5451474,69.0963759,40.4294122,38.3891732,22.8452319,18.7337497,51.9008562,3.4053306,36.3192678,14.3248554,1.8877277,1.8877277,17.7322042,66.1821808,69.4768741,56.5504675,25.6496694,8.9300349,19.8809997,68.4833805,42.2790854,36.6602396,22.2114776,18.1365851,51.4286017,3.2313677,36.7013338,15.1757371,1.9077988,1.9077988,16.3622142,63.3980566,66.4397346,54.5508656,26.1800863,7.0989902,18.4642699,69.0198469,42.3742364,34.8670932,21.6284643,17.1324657,50.2840969,3.5143346,37.6687485,17.9844089\r\n893,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8877277,1.8877277,17.7322042,66.1821808,69.4768741,56.5504675,25.6496694,8.9300349,19.8809997,68.4833805,42.2790854,36.6602396,22.2114776,18.1365851,51.4286017,3.2313677,36.7013338,15.1757371,1.9077988,1.9077988,16.3622142,63.3980566,66.4397346,54.5508656,26.1800863,7.0989902,18.4642699,69.0198469,42.3742364,34.8670932,21.6284643,17.1324657,50.2840969,3.5143346,37.6687485,17.9844089,2.0582575,2.0582575,15.3398976,63.6687549,66.1251485,53.4335384,27.9162561,8.3157848,19.2423896,68.7941862,44.3711231,36.4190097,21.0108464,16.6205229,49.4942687,3.7103218,36.8442148,17.3432896\r\n894,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9077988,1.9077988,16.3622142,63.3980566,66.4397346,54.5508656,26.1800863,7.0989902,18.4642699,69.0198469,42.3742364,34.8670932,21.6284643,17.1324657,50.2840969,3.5143346,37.6687485,17.9844089,2.0582575,2.0582575,15.3398976,63.6687549,66.1251485,53.4335384,27.9162561,8.3157848,19.2423896,68.7941862,44.3711231,36.4190097,21.0108464,16.6205229,49.4942687,3.7103218,36.8442148,17.3432896,1.8767105,1.8935674,15.1304229,64.2586255,66.9195699,52.7121664,29.0851199,7.8181717,18.7968195,69.3719819,44.7711298,36.2710038,21.03157,16.4053388,49.0458838,3.8767298,35.4800865,13.8267209\r\n895,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0582575,2.0582575,15.3398976,63.6687549,66.1251485,53.4335384,27.9162561,8.3157848,19.2423896,68.7941862,44.3711231,36.4190097,21.0108464,16.6205229,49.4942687,3.7103218,36.8442148,17.3432896,1.8767105,1.8935674,15.1304229,64.2586255,66.9195699,52.7121664,29.0851199,7.8181717,18.7968195,69.3719819,44.7711298,36.2710038,21.03157,16.4053388,49.0458838,3.8767298,35.4800865,13.8267209,1.6552858,1.6721996,14.7887648,64.674113,66.8063939,54.4200503,29.7212791,8.4393709,19.1410811,69.9309254,44.8435831,37.0976259,21.1520147,15.9266403,48.4225043,3.7590299,35.0974134,14.1272384\r\n896,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8767105,1.8935674,15.1304229,64.2586255,66.9195699,52.7121664,29.0851199,7.8181717,18.7968195,69.3719819,44.7711298,36.2710038,21.03157,16.4053388,49.0458838,3.8767298,35.4800865,13.8267209,1.6552858,1.6721996,14.7887648,64.674113,66.8063939,54.4200503,29.7212791,8.4393709,19.1410811,69.9309254,44.8435831,37.0976259,21.1520147,15.9266403,48.4225043,3.7590299,35.0974134,14.1272384,1.4710131,1.5014169,14.910033,65.7527157,68.8670737,56.1112836,28.6170903,8.1949092,18.697383,68.0497376,44.5903417,37.6015871,20.933931,15.9411727,47.9709018,3.6262833,34.7842732,12.8675284\r\n897,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6552858,1.6721996,14.7887648,64.674113,66.8063939,54.4200503,29.7212791,8.4393709,19.1410811,69.9309254,44.8435831,37.0976259,21.1520147,15.9266403,48.4225043,3.7590299,35.0974134,14.1272384,1.4710131,1.5014169,14.910033,65.7527157,68.8670737,56.1112836,28.6170903,8.1949092,18.697383,68.0497376,44.5903417,37.6015871,20.933931,15.9411727,47.9709018,3.6262833,34.7842732,12.8675284,1.4801522,1.510352,14.5028354,66.033389,68.7293465,55.405362,28.5270179,8.3059561,16.9604005,66.7067992,44.3611387,38.067734,21.3324214,15.7613219,47.747698,3.5067814,34.3025545,10.3570936\r\n898,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4710131,1.5014169,14.910033,65.7527157,68.8670737,56.1112836,28.6170903,8.1949092,18.697383,68.0497376,44.5903417,37.6015871,20.933931,15.9411727,47.9709018,3.6262833,34.7842732,12.8675284,1.4801522,1.510352,14.5028354,66.033389,68.7293465,55.405362,28.5270179,8.3059561,16.9604005,66.7067992,44.3611387,38.067734,21.3324214,15.7613219,47.747698,3.5067814,34.3025545,10.3570936,1.5636339,1.6056229,13.9635819,67.0960709,68.6312655,56.292978,30.1223523,9.0450678,15.7440901,68.3639271,43.9934104,40.3993689,21.3421202,15.5360175,48.1307164,3.8784762,34.6607986,9.3102951\r\n899,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4801522,1.510352,14.5028354,66.033389,68.7293465,55.405362,28.5270179,8.3059561,16.9604005,66.7067992,44.3611387,38.067734,21.3324214,15.7613219,47.747698,3.5067814,34.3025545,10.3570936,1.5636339,1.6056229,13.9635819,67.0960709,68.6312655,56.292978,30.1223523,9.0450678,15.7440901,68.3639271,43.9934104,40.3993689,21.3421202,15.5360175,48.1307164,3.8784762,34.6607986,9.3102951,1.4921476,1.5316842,14.7594225,68.8732235,71.0977042,56.9273204,30.2698428,9.5201217,17.2567544,67.3027503,43.3385904,42.0903981,21.2103914,15.6081481,48.9028814,3.4586254,33.6500955,7.5642656\r\n900,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5636339,1.6056229,13.9635819,67.0960709,68.6312655,56.292978,30.1223523,9.0450678,15.7440901,68.3639271,43.9934104,40.3993689,21.3421202,15.5360175,48.1307164,3.8784762,34.6607986,9.3102951,1.4921476,1.5316842,14.7594225,68.8732235,71.0977042,56.9273204,30.2698428,9.5201217,17.2567544,67.3027503,43.3385904,42.0903981,21.2103914,15.6081481,48.9028814,3.4586254,33.6500955,7.5642656,1.2753672,1.3529529,15.6561415,72.1478366,73.924411,58.7316254,29.124812,8.5991574,17.5482324,67.2658917,42.3064235,44.2359805,21.6747874,16.2155541,49.7738937,3.2393715,33.8562579,9.8785063\r\n901,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4921476,1.5316842,14.7594225,68.8732235,71.0977042,56.9273204,30.2698428,9.5201217,17.2567544,67.3027503,43.3385904,42.0903981,21.2103914,15.6081481,48.9028814,3.4586254,33.6500955,7.5642656,1.2753672,1.3529529,15.6561415,72.1478366,73.924411,58.7316254,29.124812,8.5991574,17.5482324,67.2658917,42.3064235,44.2359805,21.6747874,16.2155541,49.7738937,3.2393715,33.8562579,9.8785063,1.473774,1.5343096,16.0645612,70.332802,72.9794312,59.2114891,28.9935511,8.9115613,18.8313889,66.3592826,42.9605569,43.128109,21.8463849,16.5104853,48.907574,3.290403,34.9974681,13.3500502\r\n902,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2753672,1.3529529,15.6561415,72.1478366,73.924411,58.7316254,29.124812,8.5991574,17.5482324,67.2658917,42.3064235,44.2359805,21.6747874,16.2155541,49.7738937,3.2393715,33.8562579,9.8785063,1.473774,1.5343096,16.0645612,70.332802,72.9794312,59.2114891,28.9935511,8.9115613,18.8313889,66.3592826,42.9605569,43.128109,21.8463849,16.5104853,48.907574,3.290403,34.9974681,13.3500502,1.639968,1.6990288,16.6440035,69.1809687,73.6874252,58.4978847,28.4239986,8.3174399,19.0213586,66.4165465,43.0789517,42.0441584,21.8106238,17.1959977,49.5723585,3.3354618,35.3753546,13.7403438\r\n903,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.473774,1.5343096,16.0645612,70.332802,72.9794312,59.2114891,28.9935511,8.9115613,18.8313889,66.3592826,42.9605569,43.128109,21.8463849,16.5104853,48.907574,3.290403,34.9974681,13.3500502,1.639968,1.6990288,16.6440035,69.1809687,73.6874252,58.4978847,28.4239986,8.3174399,19.0213586,66.4165465,43.0789517,42.0441584,21.8106238,17.1959977,49.5723585,3.3354618,35.3753546,13.7403438,1.4414394,1.4866261,16.0494699,68.8696903,72.7210686,57.1911225,27.9472871,8.3044805,18.5844403,66.1276077,42.6065585,41.9579674,21.1876731,16.4595954,50.3744063,3.307124,35.1291045,15.40302\r\n904,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.639968,1.6990288,16.6440035,69.1809687,73.6874252,58.4978847,28.4239986,8.3174399,19.0213586,66.4165465,43.0789517,42.0441584,21.8106238,17.1959977,49.5723585,3.3354618,35.3753546,13.7403438,1.4414394,1.4866261,16.0494699,68.8696903,72.7210686,57.1911225,27.9472871,8.3044805,18.5844403,66.1276077,42.6065585,41.9579674,21.1876731,16.4595954,50.3744063,3.307124,35.1291045,15.40302,1.3649463,1.4084964,16.3515765,67.9791414,72.253719,56.8604155,28.8544108,7.7373414,19.7574523,66.8274189,42.80997,40.3030603,20.987129,16.4222486,49.5814267,3.3755262,36.848712,16.5735022\r\n905,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4414394,1.4866261,16.0494699,68.8696903,72.7210686,57.1911225,27.9472871,8.3044805,18.5844403,66.1276077,42.6065585,41.9579674,21.1876731,16.4595954,50.3744063,3.307124,35.1291045,15.40302,1.3649463,1.4084964,16.3515765,67.9791414,72.253719,56.8604155,28.8544108,7.7373414,19.7574523,66.8274189,42.80997,40.3030603,20.987129,16.4222486,49.5814267,3.3755262,36.848712,16.5735022,1.2853757,1.3184765,16.8600311,66.1159149,71.618426,55.2645891,29.1726323,8.5606079,20.3497675,66.7352811,42.8269174,38.8681631,20.9223987,16.4813139,49.6996599,3.2685066,36.5207885,15.7433718\r\n906,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3649463,1.4084964,16.3515765,67.9791414,72.253719,56.8604155,28.8544108,7.7373414,19.7574523,66.8274189,42.80997,40.3030603,20.987129,16.4222486,49.5814267,3.3755262,36.848712,16.5735022,1.2853757,1.3184765,16.8600311,66.1159149,71.618426,55.2645891,29.1726323,8.5606079,20.3497675,66.7352811,42.8269174,38.8681631,20.9223987,16.4813139,49.6996599,3.2685066,36.5207885,15.7433718,1.1938822,1.2282457,18.4037725,67.2556739,73.4135864,56.6598602,28.2980156,9.1386539,21.517031,64.4681223,39.8864671,38.5756696,20.9507406,16.8313816,50.1684443,2.9477795,37.156858,14.6385857\r\n907,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2853757,1.3184765,16.8600311,66.1159149,71.618426,55.2645891,29.1726323,8.5606079,20.3497675,66.7352811,42.8269174,38.8681631,20.9223987,16.4813139,49.6996599,3.2685066,36.5207885,15.7433718,1.1938822,1.2282457,18.4037725,67.2556739,73.4135864,56.6598602,28.2980156,9.1386539,21.517031,64.4681223,39.8864671,38.5756696,20.9507406,16.8313816,50.1684443,2.9477795,37.156858,14.6385857,1.0909599,1.0909599,18.0354868,64.350503,71.4963757,55.3214471,29.583413,9.6672129,20.7843596,64.4576166,40.1905145,35.0075706,20.5777847,16.5432436,50.2236355,3.0884779,36.7878181,13.2000892\r\n908,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1938822,1.2282457,18.4037725,67.2556739,73.4135864,56.6598602,28.2980156,9.1386539,21.517031,64.4681223,39.8864671,38.5756696,20.9507406,16.8313816,50.1684443,2.9477795,37.156858,14.6385857,1.0909599,1.0909599,18.0354868,64.350503,71.4963757,55.3214471,29.583413,9.6672129,20.7843596,64.4576166,40.1905145,35.0075706,20.5777847,16.5432436,50.2236355,3.0884779,36.7878181,13.2000892,0.8664722,0.8664722,18.5978996,64.6196753,71.1216803,55.1876309,30.4430308,9.1421703,18.7160278,64.837685,39.5644319,35.4721407,21.4204134,17.402697,50.8244372,3.2756656,36.5623192,11.9862573\r\n909,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0909599,1.0909599,18.0354868,64.350503,71.4963757,55.3214471,29.583413,9.6672129,20.7843596,64.4576166,40.1905145,35.0075706,20.5777847,16.5432436,50.2236355,3.0884779,36.7878181,13.2000892,0.8664722,0.8664722,18.5978996,64.6196753,71.1216803,55.1876309,30.4430308,9.1421703,18.7160278,64.837685,39.5644319,35.4721407,21.4204134,17.402697,50.8244372,3.2756656,36.5623192,11.9862573,0.7840019,0.7840019,18.148464,65.7851163,70.0636304,55.9876035,30.4260376,8.8337955,17.3259957,63.8188708,39.2033678,36.5355224,21.222263,16.6246335,50.4601388,3.1305716,36.0151858,13.8395248\r\n910,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8664722,0.8664722,18.5978996,64.6196753,71.1216803,55.1876309,30.4430308,9.1421703,18.7160278,64.837685,39.5644319,35.4721407,21.4204134,17.402697,50.8244372,3.2756656,36.5623192,11.9862573,0.7840019,0.7840019,18.148464,65.7851163,70.0636304,55.9876035,30.4260376,8.8337955,17.3259957,63.8188708,39.2033678,36.5355224,21.222263,16.6246335,50.4601388,3.1305716,36.0151858,13.8395248,0.8867916,0.8867916,18.607585,66.151822,71.6457345,55.6410744,31.1795972,8.8158879,17.7623855,63.9818912,40.0055812,35.7764459,21.7421396,17.044007,49.9159374,3.2625357,34.923452,13.6339426\r\n911,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7840019,0.7840019,18.148464,65.7851163,70.0636304,55.9876035,30.4260376,8.8337955,17.3259957,63.8188708,39.2033678,36.5355224,21.222263,16.6246335,50.4601388,3.1305716,36.0151858,13.8395248,0.8867916,0.8867916,18.607585,66.151822,71.6457345,55.6410744,31.1795972,8.8158879,17.7623855,63.9818912,40.0055812,35.7764459,21.7421396,17.044007,49.9159374,3.2625357,34.923452,13.6339426,0.9381452,0.9381452,18.4323085,66.0661357,69.8927636,58.4260512,30.5178901,9.7568873,16.5313446,64.3862157,40.5321755,36.9148138,21.3030072,16.838667,50.2673187,3.3050693,33.5435544,13.6339343\r\n912,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8867916,0.8867916,18.607585,66.151822,71.6457345,55.6410744,31.1795972,8.8158879,17.7623855,63.9818912,40.0055812,35.7764459,21.7421396,17.044007,49.9159374,3.2625357,34.923452,13.6339426,0.9381452,0.9381452,18.4323085,66.0661357,69.8927636,58.4260512,30.5178901,9.7568873,16.5313446,64.3862157,40.5321755,36.9148138,21.3030072,16.838667,50.2673187,3.3050693,33.5435544,13.6339343,1.235343,1.3005615,18.327793,66.8950266,68.9131094,58.8149942,30.3171433,8.8925925,15.8226282,65.0447069,40.2048278,36.9245343,22.3733542,17.3477635,50.0355729,3.3070738,32.3645775,14.3234689\r\n913,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9381452,0.9381452,18.4323085,66.0661357,69.8927636,58.4260512,30.5178901,9.7568873,16.5313446,64.3862157,40.5321755,36.9148138,21.3030072,16.838667,50.2673187,3.3050693,33.5435544,13.6339343,1.235343,1.3005615,18.327793,66.8950266,68.9131094,58.8149942,30.3171433,8.8925925,15.8226282,65.0447069,40.2048278,36.9245343,22.3733542,17.3477635,50.0355729,3.3070738,32.3645775,14.3234689,1.5829989,1.646412,17.2770586,65.6643054,66.943412,58.873754,30.5819916,9.1667967,14.1042584,67.9351702,42.9984801,35.7737037,23.5283311,17.7090217,48.6187136,3.7799843,31.4893927,15.193345\r\n914,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.235343,1.3005615,18.327793,66.8950266,68.9131094,58.8149942,30.3171433,8.8925925,15.8226282,65.0447069,40.2048278,36.9245343,22.3733542,17.3477635,50.0355729,3.3070738,32.3645775,14.3234689,1.5829989,1.646412,17.2770586,65.6643054,66.943412,58.873754,30.5819916,9.1667967,14.1042584,67.9351702,42.9984801,35.7737037,23.5283311,17.7090217,48.6187136,3.7799843,31.4893927,15.193345,1.6961456,1.7589166,17.8353188,65.5207722,67.1748499,57.932753,28.1517638,9.5978767,13.7199745,67.1902684,41.6848194,38.203662,23.605366,17.8329902,48.2923547,3.8871535,32.7135172,14.9999395\r\n915,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5829989,1.646412,17.2770586,65.6643054,66.943412,58.873754,30.5819916,9.1667967,14.1042584,67.9351702,42.9984801,35.7737037,23.5283311,17.7090217,48.6187136,3.7799843,31.4893927,15.193345,1.6961456,1.7589166,17.8353188,65.5207722,67.1748499,57.932753,28.1517638,9.5978767,13.7199745,67.1902684,41.6848194,38.203662,23.605366,17.8329902,48.2923547,3.8871535,32.7135172,14.9999395,1.6915663,1.7288193,16.800223,66.5552678,67.6845958,57.5291217,26.9642238,9.7986436,13.7799437,67.55956,40.952623,38.7875541,22.2306091,16.7871887,48.2122402,3.5405028,33.4120134,16.5788947\r\n916,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6961456,1.7589166,17.8353188,65.5207722,67.1748499,57.932753,28.1517638,9.5978767,13.7199745,67.1902684,41.6848194,38.203662,23.605366,17.8329902,48.2923547,3.8871535,32.7135172,14.9999395,1.6915663,1.7288193,16.800223,66.5552678,67.6845958,57.5291217,26.9642238,9.7986436,13.7799437,67.55956,40.952623,38.7875541,22.2306091,16.7871887,48.2122402,3.5405028,33.4120134,16.5788947,1.8315102,1.868723,17.5165131,66.7066154,68.5767358,58.2420967,26.5890051,10.6658664,13.6940179,67.2165878,40.2908371,39.3020869,22.5889855,17.4794998,47.6623791,3.4249208,33.4482494,13.7499863\r\n917,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6915663,1.7288193,16.800223,66.5552678,67.6845958,57.5291217,26.9642238,9.7986436,13.7799437,67.55956,40.952623,38.7875541,22.2306091,16.7871887,48.2122402,3.5405028,33.4120134,16.5788947,1.8315102,1.868723,17.5165131,66.7066154,68.5767358,58.2420967,26.5890051,10.6658664,13.6940179,67.2165878,40.2908371,39.3020869,22.5889855,17.4794998,47.6623791,3.4249208,33.4482494,13.7499863,1.9758589,2.0131098,16.9597185,66.2965805,66.8571489,58.8912126,26.0287833,10.9222005,14.4687474,67.090822,39.0658154,38.5524069,22.1861464,17.0180876,47.1363869,3.0943354,34.5402965,14.3216008\r\n918,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8315102,1.868723,17.5165131,66.7066154,68.5767358,58.2420967,26.5890051,10.6658664,13.6940179,67.2165878,40.2908371,39.3020869,22.5889855,17.4794998,47.6623791,3.4249208,33.4482494,13.7499863,1.9758589,2.0131098,16.9597185,66.2965805,66.8571489,58.8912126,26.0287833,10.9222005,14.4687474,67.090822,39.0658154,38.5524069,22.1861464,17.0180876,47.1363869,3.0943354,34.5402965,14.3216008,1.9442509,1.9823892,17.9152201,67.511025,68.5168802,58.7094859,26.1077286,10.9838475,15.383891,67.678747,38.6945678,38.1779898,22.9584071,17.8494721,46.6311599,3.2214381,35.0530486,14.4669977\r\n919,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9758589,2.0131098,16.9597185,66.2965805,66.8571489,58.8912126,26.0287833,10.9222005,14.4687474,67.090822,39.0658154,38.5524069,22.1861464,17.0180876,47.1363869,3.0943354,34.5402965,14.3216008,1.9442509,1.9823892,17.9152201,67.511025,68.5168802,58.7094859,26.1077286,10.9838475,15.383891,67.678747,38.6945678,38.1779898,22.9584071,17.8494721,46.6311599,3.2214381,35.0530486,14.4669977,1.6915655,1.7177295,17.8036628,69.5444254,70.7824356,58.8601547,25.4382591,11.0276828,16.8568103,66.8416316,38.5067247,37.5890024,22.2912875,17.6183163,46.6907369,3.2486401,35.8740995,15.1595664\r\n920,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9442509,1.9823892,17.9152201,67.511025,68.5168802,58.7094859,26.1077286,10.9838475,15.383891,67.678747,38.6945678,38.1779898,22.9584071,17.8494721,46.6311599,3.2214381,35.0530486,14.4669977,1.6915655,1.7177295,17.8036628,69.5444254,70.7824356,58.8601547,25.4382591,11.0276828,16.8568103,66.8416316,38.5067247,37.5890024,22.2912875,17.6183163,46.6907369,3.2486401,35.8740995,15.1595664,1.4613182,1.5791528,17.0998458,70.5657136,71.7386488,58.292991,26.0925912,10.2265015,16.486728,66.4589438,38.2136629,38.9268972,21.3833089,17.1231518,47.583101,3.1467023,37.1001502,15.526324\r\n921,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6915655,1.7177295,17.8036628,69.5444254,70.7824356,58.8601547,25.4382591,11.0276828,16.8568103,66.8416316,38.5067247,37.5890024,22.2912875,17.6183163,46.6907369,3.2486401,35.8740995,15.1595664,1.4613182,1.5791528,17.0998458,70.5657136,71.7386488,58.292991,26.0925912,10.2265015,16.486728,66.4589438,38.2136629,38.9268972,21.3833089,17.1231518,47.583101,3.1467023,37.1001502,15.526324,1.3708069,1.4906929,17.1588393,69.9372619,70.7263881,58.9280473,28.4834891,10.5013539,17.7351255,68.4663282,40.6473858,37.7160509,21.7663431,17.453134,46.8239474,3.070129,36.1111646,15.4450624\r\n922,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4613182,1.5791528,17.0998458,70.5657136,71.7386488,58.292991,26.0925912,10.2265015,16.486728,66.4589438,38.2136629,38.9268972,21.3833089,17.1231518,47.583101,3.1467023,37.1001502,15.526324,1.3708069,1.4906929,17.1588393,69.9372619,70.7263881,58.9280473,28.4834891,10.5013539,17.7351255,68.4663282,40.6473858,37.7160509,21.7663431,17.453134,46.8239474,3.070129,36.1111646,15.4450624,1.4612195,1.629078,17.2551558,69.0621694,69.9460841,57.1882226,29.6671204,11.6009149,17.9318471,67.5621682,41.3499529,36.3068471,22.5791655,17.9656328,46.4273376,2.8954779,34.801018,15.8602518\r\n923,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3708069,1.4906929,17.1588393,69.9372619,70.7263881,58.9280473,28.4834891,10.5013539,17.7351255,68.4663282,40.6473858,37.7160509,21.7663431,17.453134,46.8239474,3.070129,36.1111646,15.4450624,1.4612195,1.629078,17.2551558,69.0621694,69.9460841,57.1882226,29.6671204,11.6009149,17.9318471,67.5621682,41.3499529,36.3068471,22.5791655,17.9656328,46.4273376,2.8954779,34.801018,15.8602518,1.2359542,1.4055964,16.4962375,68.3104909,69.3846899,55.6760257,30.4061141,10.3872001,17.6530041,68.7882785,42.1888487,34.8059673,22.2768599,17.9088493,47.4053409,3.094953,34.5553212,17.7966001\r\n924,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4612195,1.629078,17.2551558,69.0621694,69.9460841,57.1882226,29.6671204,11.6009149,17.9318471,67.5621682,41.3499529,36.3068471,22.5791655,17.9656328,46.4273376,2.8954779,34.801018,15.8602518,1.2359542,1.4055964,16.4962375,68.3104909,69.3846899,55.6760257,30.4061141,10.3872001,17.6530041,68.7882785,42.1888487,34.8059673,22.2768599,17.9088493,47.4053409,3.094953,34.5553212,17.7966001,1.2926432,1.4653767,17.0687346,66.8379223,70.2768493,55.4828827,31.4618805,9.7148525,17.2813567,69.3581695,44.178699,35.0374618,22.5159814,18.589815,46.6357523,3.3820849,34.2980549,14.9717345\r\n925,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2359542,1.4055964,16.4962375,68.3104909,69.3846899,55.6760257,30.4061141,10.3872001,17.6530041,68.7882785,42.1888487,34.8059673,22.2768599,17.9088493,47.4053409,3.094953,34.5553212,17.7966001,1.2926432,1.4653767,17.0687346,66.8379223,70.2768493,55.4828827,31.4618805,9.7148525,17.2813567,69.3581695,44.178699,35.0374618,22.5159814,18.589815,46.6357523,3.3820849,34.2980549,14.9717345,1.6014428,1.7735857,17.3058007,67.0374794,71.2231458,53.7788107,31.5909494,10.0621789,16.7389655,68.7373101,44.3615599,34.2616094,22.9191491,18.8168883,46.3158648,3.3697031,33.8856466,16.4062415\r\n926,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2926432,1.4653767,17.0687346,66.8379223,70.2768493,55.4828827,31.4618805,9.7148525,17.2813567,69.3581695,44.178699,35.0374618,22.5159814,18.589815,46.6357523,3.3820849,34.2980549,14.9717345,1.6014428,1.7735857,17.3058007,67.0374794,71.2231458,53.7788107,31.5909494,10.0621789,16.7389655,68.7373101,44.3615599,34.2616094,22.9191491,18.8168883,46.3158648,3.3697031,33.8856466,16.4062415,1.8331238,1.9484508,18.2302617,63.2329993,68.8683725,54.9805061,32.0962568,9.2785774,15.0246409,69.4590183,44.2148348,35.2921617,23.604506,19.3883476,45.2768933,3.5691844,34.5720044,16.4141753\r\n927,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6014428,1.7735857,17.3058007,67.0374794,71.2231458,53.7788107,31.5909494,10.0621789,16.7389655,68.7373101,44.3615599,34.2616094,22.9191491,18.8168883,46.3158648,3.3697031,33.8856466,16.4062415,1.8331238,1.9484508,18.2302617,63.2329993,68.8683725,54.9805061,32.0962568,9.2785774,15.0246409,69.4590183,44.2148348,35.2921617,23.604506,19.3883476,45.2768933,3.5691844,34.5720044,16.4141753,1.8428417,1.8617908,18.2498432,62.6547138,67.4118839,54.5305912,32.5515708,8.9242325,15.2895269,69.4640128,44.8602838,33.6409361,24.1368834,19.7321146,44.040104,3.3965113,33.5146854,16.8449018\r\n928,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8331238,1.9484508,18.2302617,63.2329993,68.8683725,54.9805061,32.0962568,9.2785774,15.0246409,69.4590183,44.2148348,35.2921617,23.604506,19.3883476,45.2768933,3.5691844,34.5720044,16.4141753,1.8428417,1.8617908,18.2498432,62.6547138,67.4118839,54.5305912,32.5515708,8.9242325,15.2895269,69.4640128,44.8602838,33.6409361,24.1368834,19.7321146,44.040104,3.3965113,33.5146854,16.8449018,2.0681501,2.0586863,18.1635696,63.5558431,67.2147996,55.3793055,31.4323679,7.8499835,14.9850375,68.0109946,42.514375,33.5085944,24.0418977,19.4909921,44.9866649,3.0943068,33.5935533,16.944435\r\n929,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8428417,1.8617908,18.2498432,62.6547138,67.4118839,54.5305912,32.5515708,8.9242325,15.2895269,69.4640128,44.8602838,33.6409361,24.1368834,19.7321146,44.040104,3.3965113,33.5146854,16.8449018,2.0681501,2.0586863,18.1635696,63.5558431,67.2147996,55.3793055,31.4323679,7.8499835,14.9850375,68.0109946,42.514375,33.5085944,24.0418977,19.4909921,44.9866649,3.0943068,33.5935533,16.944435,1.9413526,1.9320162,18.5625472,63.5225958,67.3233322,58.4732241,29.8241366,7.5857073,16.6487468,68.675169,41.4188178,33.3090543,23.5089067,19.2509938,45.8271664,3.4659396,35.0875763,15.7753926\r\n930,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0681501,2.0586863,18.1635696,63.5558431,67.2147996,55.3793055,31.4323679,7.8499835,14.9850375,68.0109946,42.514375,33.5085944,24.0418977,19.4909921,44.9866649,3.0943068,33.5935533,16.944435,1.9413526,1.9320162,18.5625472,63.5225958,67.3233322,58.4732241,29.8241366,7.5857073,16.6487468,68.675169,41.4188178,33.3090543,23.5089067,19.2509938,45.8271664,3.4659396,35.0875763,15.7753926,2.0105187,2.0012963,19.2840721,63.5917988,68.3431533,59.4078165,28.1554005,8.2145566,17.3476049,68.515513,40.211957,34.1097901,23.5676476,19.1764674,45.0982181,3.4388716,35.5530572,17.4731183\r\n931,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9413526,1.9320162,18.5625472,63.5225958,67.3233322,58.4732241,29.8241366,7.5857073,16.6487468,68.675169,41.4188178,33.3090543,23.5089067,19.2509938,45.8271664,3.4659396,35.0875763,15.7753926,2.0105187,2.0012963,19.2840721,63.5917988,68.3431533,59.4078165,28.1554005,8.2145566,17.3476049,68.515513,40.211957,34.1097901,23.5676476,19.1764674,45.0982181,3.4388716,35.5530572,17.4731183,1.7569541,1.7477266,19.4959455,64.6113445,67.9450329,60.0991407,27.0966052,8.7192875,16.0379053,69.5979896,38.7874372,34.2472797,24.1430312,19.4836577,46.634937,3.4409301,35.1773773,17.4479258\r\n932,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0105187,2.0012963,19.2840721,63.5917988,68.3431533,59.4078165,28.1554005,8.2145566,17.3476049,68.515513,40.211957,34.1097901,23.5676476,19.1764674,45.0982181,3.4388716,35.5530572,17.4731183,1.7569541,1.7477266,19.4959455,64.6113445,67.9450329,60.0991407,27.0966052,8.7192875,16.0379053,69.5979896,38.7874372,34.2472797,24.1430312,19.4836577,46.634937,3.4409301,35.1773773,17.4479258,1.6225941,1.6130721,18.6397005,62.6360197,65.0641339,60.7758628,25.8316869,9.3434283,18.2823147,69.0673341,37.6073714,34.5747855,23.5572944,18.8040649,47.3355993,3.1768774,35.7758797,15.4029659\r\n933,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7569541,1.7477266,19.4959455,64.6113445,67.9450329,60.0991407,27.0966052,8.7192875,16.0379053,69.5979896,38.7874372,34.2472797,24.1430312,19.4836577,46.634937,3.4409301,35.1773773,17.4479258,1.6225941,1.6130721,18.6397005,62.6360197,65.0641339,60.7758628,25.8316869,9.3434283,18.2823147,69.0673341,37.6073714,34.5747855,23.5572944,18.8040649,47.3355993,3.1768774,35.7758797,15.4029659,1.4651743,1.487949,18.5650976,64.4947279,66.6385953,62.211378,26.7227276,9.3991077,19.286502,67.7513699,36.9761273,32.9513184,23.5749206,18.5299664,47.7571805,3.0366448,35.8641836,17.1026168\r\n934,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6225941,1.6130721,18.6397005,62.6360197,65.0641339,60.7758628,25.8316869,9.3434283,18.2823147,69.0673341,37.6073714,34.5747855,23.5572944,18.8040649,47.3355993,3.1768774,35.7758797,15.4029659,1.4651743,1.487949,18.5650976,64.4947279,66.6385953,62.211378,26.7227276,9.3991077,19.286502,67.7513699,36.9761273,32.9513184,23.5749206,18.5299664,47.7571805,3.0366448,35.8641836,17.1026168,1.443613,1.4660671,18.4882093,63.6471657,66.6748079,63.2496223,26.4549299,9.4473266,19.3643931,68.4452927,36.0956143,34.0532312,23.8598371,18.8214902,48.6040849,3.1605222,38.0170107,15.7745039\r\n935,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4651743,1.487949,18.5650976,64.4947279,66.6385953,62.211378,26.7227276,9.3991077,19.286502,67.7513699,36.9761273,32.9513184,23.5749206,18.5299664,47.7571805,3.0366448,35.8641836,17.1026168,1.443613,1.4660671,18.4882093,63.6471657,66.6748079,63.2496223,26.4549299,9.4473266,19.3643931,68.4452927,36.0956143,34.0532312,23.8598371,18.8214902,48.6040849,3.1605222,38.0170107,15.7745039,1.3288495,1.3977735,18.2198461,62.9055391,66.1436045,63.379232,26.4091896,9.5084458,19.9254208,69.0967627,35.7465142,34.6268174,23.8398335,18.4902329,48.173738,3.1021887,38.9555549,16.8180518\r\n936,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.443613,1.4660671,18.4882093,63.6471657,66.6748079,63.2496223,26.4549299,9.4473266,19.3643931,68.4452927,36.0956143,34.0532312,23.8598371,18.8214902,48.6040849,3.1605222,38.0170107,15.7745039,1.3288495,1.3977735,18.2198461,62.9055391,66.1436045,63.379232,26.4091896,9.5084458,19.9254208,69.0967627,35.7465142,34.6268174,23.8398335,18.4902329,48.173738,3.1021887,38.9555549,16.8180518,1.5005272,1.55088,18.3207781,63.8897309,67.5945258,62.8637437,27.3770261,8.3545864,18.5946048,68.3603565,35.788212,35.7113799,24.6317481,18.7600633,48.4850464,3.2206693,38.8228405,17.3401144\r\n937,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3288495,1.3977735,18.2198461,62.9055391,66.1436045,63.379232,26.4091896,9.5084458,19.9254208,69.0967627,35.7465142,34.6268174,23.8398335,18.4902329,48.173738,3.1021887,38.9555549,16.8180518,1.5005272,1.55088,18.3207781,63.8897309,67.5945258,62.8637437,27.3770261,8.3545864,18.5946048,68.3603565,35.788212,35.7113799,24.6317481,18.7600633,48.4850464,3.2206693,38.8228405,17.3401144,1.6074983,1.7411857,18.6284718,64.4043123,66.6412933,61.5878464,27.7989028,7.7889117,18.50229,66.2204378,36.4325205,35.33632,24.9845359,18.9648744,49.2642707,3.0708006,38.7647025,16.1745282\r\n938,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5005272,1.55088,18.3207781,63.8897309,67.5945258,62.8637437,27.3770261,8.3545864,18.5946048,68.3603565,35.788212,35.7113799,24.6317481,18.7600633,48.4850464,3.2206693,38.8228405,17.3401144,1.6074983,1.7411857,18.6284718,64.4043123,66.6412933,61.5878464,27.7989028,7.7889117,18.50229,66.2204378,36.4325205,35.33632,24.9845359,18.9648744,49.2642707,3.0708006,38.7647025,16.1745282,1.7834693,1.9727544,18.4239425,65.0059569,66.5880353,61.9121959,27.8877785,7.6209226,18.7250639,64.5520867,36.1743958,35.5570739,25.0574747,18.6983018,48.5889746,3.0147688,40.1514919,17.582635\r\n939,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6074983,1.7411857,18.6284718,64.4043123,66.6412933,61.5878464,27.7989028,7.7889117,18.50229,66.2204378,36.4325205,35.33632,24.9845359,18.9648744,49.2642707,3.0708006,38.7647025,16.1745282,1.7834693,1.9727544,18.4239425,65.0059569,66.5880353,61.9121959,27.8877785,7.6209226,18.7250639,64.5520867,36.1743958,35.5570739,25.0574747,18.6983018,48.5889746,3.0147688,40.1514919,17.582635,1.7547355,1.9975508,19.5982005,65.9714588,67.9417122,61.4308411,29.3056013,6.4298305,16.7204159,64.5507088,37.7028762,35.6933775,25.8686169,19.4956109,47.6426297,3.345118,40.6612834,17.7824984\r\n940,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7834693,1.9727544,18.4239425,65.0059569,66.5880353,61.9121959,27.8877785,7.6209226,18.7250639,64.5520867,36.1743958,35.5570739,25.0574747,18.6983018,48.5889746,3.0147688,40.1514919,17.582635,1.7547355,1.9975508,19.5982005,65.9714588,67.9417122,61.4308411,29.3056013,6.4298305,16.7204159,64.5507088,37.7028762,35.6933775,25.8686169,19.4956109,47.6426297,3.345118,40.6612834,17.7824984,1.959139,2.1168903,20.0655089,66.4309554,68.1300489,60.8832713,28.5208919,6.3926061,17.0367733,65.7943121,38.9760141,36.73333,26.0649287,19.9938133,47.8662765,3.3791298,40.1054192,18.0498375\r\n941,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7547355,1.9975508,19.5982005,65.9714588,67.9417122,61.4308411,29.3056013,6.4298305,16.7204159,64.5507088,37.7028762,35.6933775,25.8686169,19.4956109,47.6426297,3.345118,40.6612834,17.7824984,1.959139,2.1168903,20.0655089,66.4309554,68.1300489,60.8832713,28.5208919,6.3926061,17.0367733,65.7943121,38.9760141,36.73333,26.0649287,19.9938133,47.8662765,3.3791298,40.1054192,18.0498375,2.1761941,2.335267,21.7009753,67.0823037,67.2379353,59.918958,28.7750012,6.2293472,16.1311241,64.675453,39.5400189,38.4636466,26.3461788,20.4918521,47.9963437,3.3574035,39.5356381,20.2869268\r\n942,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.959139,2.1168903,20.0655089,66.4309554,68.1300489,60.8832713,28.5208919,6.3926061,17.0367733,65.7943121,38.9760141,36.73333,26.0649287,19.9938133,47.8662765,3.3791298,40.1054192,18.0498375,2.1761941,2.335267,21.7009753,67.0823037,67.2379353,59.918958,28.7750012,6.2293472,16.1311241,64.675453,39.5400189,38.4636466,26.3461788,20.4918521,47.9963437,3.3574035,39.5356381,20.2869268,2.4642757,2.6051085,23.4174148,67.4197432,67.958488,59.1341258,29.5616232,6.8040573,15.3339701,64.744965,40.6933429,39.3703174,27.7554984,22.186968,48.4278795,3.7762911,39.6916733,20.528497\r\n943,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1761941,2.335267,21.7009753,67.0823037,67.2379353,59.918958,28.7750012,6.2293472,16.1311241,64.675453,39.5400189,38.4636466,26.3461788,20.4918521,47.9963437,3.3574035,39.5356381,20.2869268,2.4642757,2.6051085,23.4174148,67.4197432,67.958488,59.1341258,29.5616232,6.8040573,15.3339701,64.744965,40.6933429,39.3703174,27.7554984,22.186968,48.4278795,3.7762911,39.6916733,20.528497,2.2705453,2.4696176,24.0033492,66.4771782,67.2226199,57.5810451,29.3581925,6.6055795,15.6576606,64.8094333,40.5681545,39.4572491,28.3888114,23.1352614,47.5435833,3.643465,39.9134246,21.2446625\r\n944,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4642757,2.6051085,23.4174148,67.4197432,67.958488,59.1341258,29.5616232,6.8040573,15.3339701,64.744965,40.6933429,39.3703174,27.7554984,22.186968,48.4278795,3.7762911,39.6916733,20.528497,2.2705453,2.4696176,24.0033492,66.4771782,67.2226199,57.5810451,29.3581925,6.6055795,15.6576606,64.8094333,40.5681545,39.4572491,28.3888114,23.1352614,47.5435833,3.643465,39.9134246,21.2446625,2.2744262,2.3314013,23.8180369,64.7254178,65.9095195,58.9271683,29.1962114,7.053808,15.8857194,65.283213,40.5167729,40.5674774,28.5508889,23.5391285,48.2467385,3.9027371,40.5272528,22.0454746\r\n945,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2705453,2.4696176,24.0033492,66.4771782,67.2226199,57.5810451,29.3581925,6.6055795,15.6576606,64.8094333,40.5681545,39.4572491,28.3888114,23.1352614,47.5435833,3.643465,39.9134246,21.2446625,2.2744262,2.3314013,23.8180369,64.7254178,65.9095195,58.9271683,29.1962114,7.053808,15.8857194,65.283213,40.5167729,40.5674774,28.5508889,23.5391285,48.2467385,3.9027371,40.5272528,22.0454746,2.2246449,2.2246449,25.0443216,64.9591482,65.8850648,59.1963191,29.2351669,6.8442214,15.9703879,65.5359668,41.5066552,41.7760645,29.42068,24.5717239,47.8105254,3.9670687,39.5904721,23.4913692\r\n946,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2744262,2.3314013,23.8180369,64.7254178,65.9095195,58.9271683,29.1962114,7.053808,15.8857194,65.283213,40.5167729,40.5674774,28.5508889,23.5391285,48.2467385,3.9027371,40.5272528,22.0454746,2.2246449,2.2246449,25.0443216,64.9591482,65.8850648,59.1963191,29.2351669,6.8442214,15.9703879,65.5359668,41.5066552,41.7760645,29.42068,24.5717239,47.8105254,3.9670687,39.5904721,23.4913692,2.142179,2.0866923,24.4570089,65.0601763,66.0376275,59.675575,29.8848996,6.9740039,17.0174756,65.8205549,41.3848152,42.5846813,29.9124606,24.7665208,49.7846317,4.044124,38.3010344,22.8033282\r\n947,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2246449,2.2246449,25.0443216,64.9591482,65.8850648,59.1963191,29.2351669,6.8442214,15.9703879,65.5359668,41.5066552,41.7760645,29.42068,24.5717239,47.8105254,3.9670687,39.5904721,23.4913692,2.142179,2.0866923,24.4570089,65.0601763,66.0376275,59.675575,29.8848996,6.9740039,17.0174756,65.8205549,41.3848152,42.5846813,29.9124606,24.7665208,49.7846317,4.044124,38.3010344,22.8033282,2.0016922,2.0295581,24.7302465,64.6143784,65.1688993,57.5288611,29.7600697,7.1757348,17.4171756,64.8717841,40.545077,44.3706954,30.840526,25.6178755,49.6885892,4.1336892,37.7205921,22.9338559\r\n948,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.142179,2.0866923,24.4570089,65.0601763,66.0376275,59.675575,29.8848996,6.9740039,17.0174756,65.8205549,41.3848152,42.5846813,29.9124606,24.7665208,49.7846317,4.044124,38.3010344,22.8033282,2.0016922,2.0295581,24.7302465,64.6143784,65.1688993,57.5288611,29.7600697,7.1757348,17.4171756,64.8717841,40.545077,44.3706954,30.840526,25.6178755,49.6885892,4.1336892,37.7205921,22.9338559,1.93657,1.9785361,24.9002756,65.5344962,67.5923387,57.971967,27.8314178,7.1324848,18.187932,65.627318,39.0210014,42.0706344,31.7201103,26.3212294,49.4689049,4.0326208,37.0604485,22.2457344\r\n949,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0016922,2.0295581,24.7302465,64.6143784,65.1688993,57.5288611,29.7600697,7.1757348,17.4171756,64.8717841,40.545077,44.3706954,30.840526,25.6178755,49.6885892,4.1336892,37.7205921,22.9338559,1.93657,1.9785361,24.9002756,65.5344962,67.5923387,57.971967,27.8314178,7.1324848,18.187932,65.627318,39.0210014,42.0706344,31.7201103,26.3212294,49.4689049,4.0326208,37.0604485,22.2457344,1.8700935,1.8747382,25.0600176,64.5327512,67.5799655,58.3380883,27.5617058,7.225063,19.1023506,65.9073374,39.2419683,42.4582153,31.8587725,26.1731517,49.2847902,3.7763192,36.1031771,22.340397\r\n950,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.93657,1.9785361,24.9002756,65.5344962,67.5923387,57.971967,27.8314178,7.1324848,18.187932,65.627318,39.0210014,42.0706344,31.7201103,26.3212294,49.4689049,4.0326208,37.0604485,22.2457344,1.8700935,1.8747382,25.0600176,64.5327512,67.5799655,58.3380883,27.5617058,7.225063,19.1023506,65.9073374,39.2419683,42.4582153,31.8587725,26.1731517,49.2847902,3.7763192,36.1031771,22.340397,1.9321991,1.9089755,24.6022558,64.7005308,67.3248106,58.5696683,27.9021325,7.3813452,18.8130706,66.1497531,39.1463676,42.5732974,31.4853946,25.6170532,50.0917819,3.6488558,35.5157442,24.703528\r\n951,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8700935,1.8747382,25.0600176,64.5327512,67.5799655,58.3380883,27.5617058,7.225063,19.1023506,65.9073374,39.2419683,42.4582153,31.8587725,26.1731517,49.2847902,3.7763192,36.1031771,22.340397,1.9321991,1.9089755,24.6022558,64.7005308,67.3248106,58.5696683,27.9021325,7.3813452,18.8130706,66.1497531,39.1463676,42.5732974,31.4853946,25.6170532,50.0917819,3.6488558,35.5157442,24.703528,1.8609046,1.9207852,24.9888024,66.4752361,69.2550313,57.5364224,29.037592,7.7317508,18.4022242,67.274984,39.9018063,41.6720292,31.8505375,25.4516875,49.0449516,3.4347825,34.0514381,23.2341835\r\n952,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9321991,1.9089755,24.6022558,64.7005308,67.3248106,58.5696683,27.9021325,7.3813452,18.8130706,66.1497531,39.1463676,42.5732974,31.4853946,25.6170532,50.0917819,3.6488558,35.5157442,24.703528,1.8609046,1.9207852,24.9888024,66.4752361,69.2550313,57.5364224,29.037592,7.7317508,18.4022242,67.274984,39.9018063,41.6720292,31.8505375,25.4516875,49.0449516,3.4347825,34.0514381,23.2341835,1.9584153,2.0186313,24.4975737,67.2866522,69.9095176,55.8893581,29.5822551,9.3960723,17.5644933,68.0594202,39.2085,41.5687717,31.2037606,24.9575212,49.6578877,3.8948821,33.9610977,20.6439394\r\n953,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8609046,1.9207852,24.9888024,66.4752361,69.2550313,57.5364224,29.037592,7.7317508,18.4022242,67.274984,39.9018063,41.6720292,31.8505375,25.4516875,49.0449516,3.4347825,34.0514381,23.2341835,1.9584153,2.0186313,24.4975737,67.2866522,69.9095176,55.8893581,29.5822551,9.3960723,17.5644933,68.0594202,39.2085,41.5687717,31.2037606,24.9575212,49.6578877,3.8948821,33.9610977,20.6439394,2.0511881,2.1136613,25.1084056,68.8792871,71.4324057,55.9919954,27.8389039,8.9049989,16.5267238,69.0660543,37.2856271,41.4528381,31.0888468,25.1675061,49.7098383,3.47304,34.6491228,22.0648267\r\n954,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9584153,2.0186313,24.4975737,67.2866522,69.9095176,55.8893581,29.5822551,9.3960723,17.5644933,68.0594202,39.2085,41.5687717,31.2037606,24.9575212,49.6578877,3.8948821,33.9610977,20.6439394,2.0511881,2.1136613,25.1084056,68.8792871,71.4324057,55.9919954,27.8389039,8.9049989,16.5267238,69.0660543,37.2856271,41.4528381,31.0888468,25.1675061,49.7098383,3.47304,34.6491228,22.0648267,1.8670249,1.8996302,24.6600524,68.8349734,72.0804936,56.6550733,28.1670104,9.5732395,14.5963437,69.0240501,38.8336254,40.5706233,29.9660738,24.2251113,49.3493249,3.4159064,35.149038,21.5164521\r\n955,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0511881,2.1136613,25.1084056,68.8792871,71.4324057,55.9919954,27.8389039,8.9049989,16.5267238,69.0660543,37.2856271,41.4528381,31.0888468,25.1675061,49.7098383,3.47304,34.6491228,22.0648267,1.8670249,1.8996302,24.6600524,68.8349734,72.0804936,56.6550733,28.1670104,9.5732395,14.5963437,69.0240501,38.8336254,40.5706233,29.9660738,24.2251113,49.3493249,3.4159064,35.149038,21.5164521,1.8009012,1.8191552,24.106737,68.7392893,71.275674,57.1460691,29.9116317,10.0949025,14.829073,69.2091817,40.0411207,41.2889853,29.4619127,23.7821519,49.4839516,3.7091396,36.3711823,21.9262975\r\n956,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8670249,1.8996302,24.6600524,68.8349734,72.0804936,56.6550733,28.1670104,9.5732395,14.5963437,69.0240501,38.8336254,40.5706233,29.9660738,24.2251113,49.3493249,3.4159064,35.149038,21.5164521,1.8009012,1.8191552,24.106737,68.7392893,71.275674,57.1460691,29.9116317,10.0949025,14.829073,69.2091817,40.0411207,41.2889853,29.4619127,23.7821519,49.4839516,3.7091396,36.3711823,21.9262975,1.7277077,1.7548363,23.5095202,69.466425,71.5549431,58.1351528,30.1182546,9.5558782,14.8653683,68.7733504,39.2658377,41.4438014,29.0564119,23.4788217,49.6070696,3.6959793,37.0589398,22.5610438\r\n957,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8009012,1.8191552,24.106737,68.7392893,71.275674,57.1460691,29.9116317,10.0949025,14.829073,69.2091817,40.0411207,41.2889853,29.4619127,23.7821519,49.4839516,3.7091396,36.3711823,21.9262975,1.7277077,1.7548363,23.5095202,69.466425,71.5549431,58.1351528,30.1182546,9.5558782,14.8653683,68.7733504,39.2658377,41.4438014,29.0564119,23.4788217,49.6070696,3.6959793,37.0589398,22.5610438,1.9644585,1.9777411,24.866137,69.8811995,71.1479158,60.0957531,30.2683367,9.994129,15.3637114,69.5467421,39.5725234,42.1632305,30.1756872,24.6389618,50.174606,3.7411833,36.8372723,16.4032275\r\n958,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7277077,1.7548363,23.5095202,69.466425,71.5549431,58.1351528,30.1182546,9.5558782,14.8653683,68.7733504,39.2658377,41.4438014,29.0564119,23.4788217,49.6070696,3.6959793,37.0589398,22.5610438,1.9644585,1.9777411,24.866137,69.8811995,71.1479158,60.0957531,30.2683367,9.994129,15.3637114,69.5467421,39.5725234,42.1632305,30.1756872,24.6389618,50.174606,3.7411833,36.8372723,16.4032275,2.2120306,2.1987827,25.4443766,70.0737272,70.7330641,60.3556128,30.0756865,9.6301017,15.8438984,71.0748853,40.0166474,42.5623589,30.9128824,25.4665142,50.6795946,3.8214783,37.3890512,17.4000609\r\n959,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9644585,1.9777411,24.866137,69.8811995,71.1479158,60.0957531,30.2683367,9.994129,15.3637114,69.5467421,39.5725234,42.1632305,30.1756872,24.6389618,50.174606,3.7411833,36.8372723,16.4032275,2.2120306,2.1987827,25.4443766,70.0737272,70.7330641,60.3556128,30.0756865,9.6301017,15.8438984,71.0748853,40.0166474,42.5623589,30.9128824,25.4665142,50.6795946,3.8214783,37.3890512,17.4000609,2.1024654,2.0895858,25.5843016,69.8110375,69.722298,62.7196024,29.8001441,7.9359352,16.1633685,71.4206118,40.1006117,44.235811,31.4200543,25.6980048,51.1862924,3.2175428,38.1514796,18.9655318\r\n960,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2120306,2.1987827,25.4443766,70.0737272,70.7330641,60.3556128,30.0756865,9.6301017,15.8438984,71.0748853,40.0166474,42.5623589,30.9128824,25.4665142,50.6795946,3.8214783,37.3890512,17.4000609,2.1024654,2.0895858,25.5843016,69.8110375,69.722298,62.7196024,29.8001441,7.9359352,16.1633685,71.4206118,40.1006117,44.235811,31.4200543,25.6980048,51.1862924,3.2175428,38.1514796,18.9655318,1.9845585,2.0209818,25.6585943,68.8665277,68.8808401,62.2510265,30.0317641,7.4049683,16.0947712,70.783044,41.3959781,45.2772776,31.6706881,25.773362,50.8130357,3.2421809,36.8490004,16.5551782\r\n961,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1024654,2.0895858,25.5843016,69.8110375,69.722298,62.7196024,29.8001441,7.9359352,16.1633685,71.4206118,40.1006117,44.235811,31.4200543,25.6980048,51.1862924,3.2175428,38.1514796,18.9655318,1.9845585,2.0209818,25.6585943,68.8665277,68.8808401,62.2510265,30.0317641,7.4049683,16.0947712,70.783044,41.3959781,45.2772776,31.6706881,25.773362,50.8130357,3.2421809,36.8490004,16.5551782,2.1580358,2.1948357,27.142037,69.0205454,68.4509111,62.9312635,30.0713034,7.9264303,17.4670346,72.0997814,40.9193804,46.2696041,32.981737,27.065826,51.8691051,3.2844762,36.4603538,16.8239102\r\n962,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9845585,2.0209818,25.6585943,68.8665277,68.8808401,62.2510265,30.0317641,7.4049683,16.0947712,70.783044,41.3959781,45.2772776,31.6706881,25.773362,50.8130357,3.2421809,36.8490004,16.5551782,2.1580358,2.1948357,27.142037,69.0205454,68.4509111,62.9312635,30.0713034,7.9264303,17.4670346,72.0997814,40.9193804,46.2696041,32.981737,27.065826,51.8691051,3.2844762,36.4603538,16.8239102,2.1175441,2.1970244,27.0970343,67.6213743,68.0593591,60.8053197,29.7160304,7.6441035,17.5125957,72.3403335,40.9105519,46.7880939,32.9800837,27.2971007,51.5460505,3.0807007,35.476951,17.7469211\r\n963,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1580358,2.1948357,27.142037,69.0205454,68.4509111,62.9312635,30.0713034,7.9264303,17.4670346,72.0997814,40.9193804,46.2696041,32.981737,27.065826,51.8691051,3.2844762,36.4603538,16.8239102,2.1175441,2.1970244,27.0970343,67.6213743,68.0593591,60.8053197,29.7160304,7.6441035,17.5125957,72.3403335,40.9105519,46.7880939,32.9800837,27.2971007,51.5460505,3.0807007,35.476951,17.7469211,2.3260166,2.433963,27.6729593,67.6153152,66.7619616,59.76628,29.6597393,8.0696649,16.0974506,70.570616,40.9065402,46.6527802,33.6558702,27.7491399,52.074063,3.1301111,35.0472721,16.3716857\r\n964,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1175441,2.1970244,27.0970343,67.6213743,68.0593591,60.8053197,29.7160304,7.6441035,17.5125957,72.3403335,40.9105519,46.7880939,32.9800837,27.2971007,51.5460505,3.0807007,35.476951,17.7469211,2.3260166,2.433963,27.6729593,67.6153152,66.7619616,59.76628,29.6597393,8.0696649,16.0974506,70.570616,40.9065402,46.6527802,33.6558702,27.7491399,52.074063,3.1301111,35.0472721,16.3716857,2.3756732,2.4319341,27.2835413,67.5507898,66.7001624,58.8365975,29.5759827,8.3985289,15.402093,69.2109815,41.3277052,45.983474,34.0500996,27.5351084,50.0554437,3.2844767,34.2709227,17.5900244\r\n965,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3260166,2.433963,27.6729593,67.6153152,66.7619616,59.76628,29.6597393,8.0696649,16.0974506,70.570616,40.9065402,46.6527802,33.6558702,27.7491399,52.074063,3.1301111,35.0472721,16.3716857,2.3756732,2.4319341,27.2835413,67.5507898,66.7001624,58.8365975,29.5759827,8.3985289,15.402093,69.2109815,41.3277052,45.983474,34.0500996,27.5351084,50.0554437,3.2844767,34.2709227,17.5900244,2.3922251,2.4478063,27.427247,67.5717529,67.3877055,58.9154569,28.7287207,8.3174128,15.3212607,67.007282,39.9965446,46.9585038,34.5343995,27.8473234,50.1341977,2.8089922,34.6023217,18.0989653\r\n966,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3756732,2.4319341,27.2835413,67.5507898,66.7001624,58.8365975,29.5759827,8.3985289,15.402093,69.2109815,41.3277052,45.983474,34.0500996,27.5351084,50.0554437,3.2844767,34.2709227,17.5900244,2.3922251,2.4478063,27.427247,67.5717529,67.3877055,58.9154569,28.7287207,8.3174128,15.3212607,67.007282,39.9965446,46.9585038,34.5343995,27.8473234,50.1341977,2.8089922,34.6023217,18.0989653,2.7400106,2.7948462,28.9491884,67.3114148,68.0443016,59.2175929,28.1632496,8.8623393,16.1395823,65.2558035,39.0825927,45.9212665,36.2764376,29.603128,50.2127279,2.8623541,34.2820616,18.8564798\r\n967,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3922251,2.4478063,27.427247,67.5717529,67.3877055,58.9154569,28.7287207,8.3174128,15.3212607,67.007282,39.9965446,46.9585038,34.5343995,27.8473234,50.1341977,2.8089922,34.6023217,18.0989653,2.7400106,2.7948462,28.9491884,67.3114148,68.0443016,59.2175929,28.1632496,8.8623393,16.1395823,65.2558035,39.0825927,45.9212665,36.2764376,29.603128,50.2127279,2.8623541,34.2820616,18.8564798,3.2862599,3.2854775,30.4869395,68.1567358,68.3254532,59.6817507,27.7817168,9.3871005,15.7232496,63.5613566,38.4872004,45.5178093,37.6627985,30.6121584,50.6910214,2.9244354,35.5402144,21.8292812\r\n968,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8933913,1.9307063,25.0328938,66.7998579,69.5198974,51.2752542,22.5820547,10.7977214,18.8817699,65.6321889,35.09764,49.1586112,29.0773334,24.7185553,62.9852205,3.0391064,40.098353,15.7944346,1.707824,1.723144,23.8722927,66.8432408,68.7373978,49.7934228,21.7959359,10.6179229,19.0166304,65.8099849,35.2764761,46.8761651,28.1083354,23.8389025,62.5362029,3.06956,40.0979964,15.77168,1.569801,1.5774643,23.044624,65.9895654,69.1467972,49.909473,21.7321774,11.0746454,18.7477539,65.786858,34.5064135,47.3933191,27.852337,23.5075333,61.9622569,3.0350794,39.8477579,15.3870079\r\n969,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.707824,1.723144,23.8722927,66.8432408,68.7373978,49.7934228,21.7959359,10.6179229,19.0166304,65.8099849,35.2764761,46.8761651,28.1083354,23.8389025,62.5362029,3.06956,40.0979964,15.77168,1.569801,1.5774643,23.044624,65.9895654,69.1467972,49.909473,21.7321774,11.0746454,18.7477539,65.786858,34.5064135,47.3933191,27.852337,23.5075333,61.9622569,3.0350794,39.8477579,15.3870079,1.5038508,1.5117825,22.8541106,65.359636,69.0258847,49.6940158,21.9489731,10.8245961,16.9372149,65.7063068,34.4004427,47.5145721,27.7393112,23.2385563,61.2956959,3.2402708,40.1856821,15.9574969\r\n970,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.569801,1.5774643,23.044624,65.9895654,69.1467972,49.909473,21.7321774,11.0746454,18.7477539,65.786858,34.5064135,47.3933191,27.852337,23.5075333,61.9622569,3.0350794,39.8477579,15.3870079,1.5038508,1.5117825,22.8541106,65.359636,69.0258847,49.6940158,21.9489731,10.8245961,16.9372149,65.7063068,34.4004427,47.5145721,27.7393112,23.2385563,61.2956959,3.2402708,40.1856821,15.9574969,1.2774997,1.3106073,22.8034013,66.2165488,68.8088491,49.6646466,23.0203722,10.4353516,17.0771991,66.3796976,34.1964182,47.7851547,28.3257197,23.3112502,61.1360935,3.2615445,40.1336171,17.2374547\r\n971,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5038508,1.5117825,22.8541106,65.359636,69.0258847,49.6940158,21.9489731,10.8245961,16.9372149,65.7063068,34.4004427,47.5145721,27.7393112,23.2385563,61.2956959,3.2402708,40.1856821,15.9574969,1.2774997,1.3106073,22.8034013,66.2165488,68.8088491,49.6646466,23.0203722,10.4353516,17.0771991,66.3796976,34.1964182,47.7851547,28.3257197,23.3112502,61.1360935,3.2615445,40.1336171,17.2374547,1.2943387,1.3149108,23.109742,66.4013357,69.5221708,48.8773333,22.2559801,11.0669708,17.0879415,66.430936,33.8632467,48.5121556,28.4783436,23.6503775,60.8602673,3.0507004,39.8342663,17.4575346\r\n972,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2774997,1.3106073,22.8034013,66.2165488,68.8088491,49.6646466,23.0203722,10.4353516,17.0771991,66.3796976,34.1964182,47.7851547,28.3257197,23.3112502,61.1360935,3.2615445,40.1336171,17.2374547,1.2943387,1.3149108,23.109742,66.4013357,69.5221708,48.8773333,22.2559801,11.0669708,17.0879415,66.430936,33.8632467,48.5121556,28.4783436,23.6503775,60.8602673,3.0507004,39.8342663,17.4575346,1.250094,1.2621571,22.7108296,66.0657088,69.9406044,50.3234584,21.530214,9.7289004,16.3011612,65.7519123,32.7490156,50.2161991,28.1639321,23.3048016,60.3062723,3.1607745,39.782665,17.4495551\r\n973,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2943387,1.3149108,23.109742,66.4013357,69.5221708,48.8773333,22.2559801,11.0669708,17.0879415,66.430936,33.8632467,48.5121556,28.4783436,23.6503775,60.8602673,3.0507004,39.8342663,17.4575346,1.250094,1.2621571,22.7108296,66.0657088,69.9406044,50.3234584,21.530214,9.7289004,16.3011612,65.7519123,32.7490156,50.2161991,28.1639321,23.3048016,60.3062723,3.1607745,39.782665,17.4495551,1.2334115,1.2456293,21.7412313,66.8498551,71.1291217,52.0105404,21.5766228,9.192008,17.187261,66.7808411,34.0166899,50.5520517,27.8399384,22.9941869,59.4654258,3.4380683,40.3826678,16.8319718\r\n974,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.250094,1.2621571,22.7108296,66.0657088,69.9406044,50.3234584,21.530214,9.7289004,16.3011612,65.7519123,32.7490156,50.2161991,28.1639321,23.3048016,60.3062723,3.1607745,39.782665,17.4495551,1.2334115,1.2456293,21.7412313,66.8498551,71.1291217,52.0105404,21.5766228,9.192008,17.187261,66.7808411,34.0166899,50.5520517,27.8399384,22.9941869,59.4654258,3.4380683,40.3826678,16.8319718,1.2440707,1.2567213,21.6701528,67.4445628,71.3696,52.3177978,21.5810383,8.6926725,16.4120889,65.9447001,33.0871928,51.2387424,28.211903,23.1106961,59.4917031,3.6145187,41.29,16.311999\r\n975,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2334115,1.2456293,21.7412313,66.8498551,71.1291217,52.0105404,21.5766228,9.192008,17.187261,66.7808411,34.0166899,50.5520517,27.8399384,22.9941869,59.4654258,3.4380683,40.3826678,16.8319718,1.2440707,1.2567213,21.6701528,67.4445628,71.3696,52.3177978,21.5810383,8.6926725,16.4120889,65.9447001,33.0871928,51.2387424,28.211903,23.1106961,59.4917031,3.6145187,41.29,16.311999,1.3453674,1.3217918,20.3607368,67.9648626,71.1075117,52.7728235,22.3776809,9.1108755,16.1138565,66.0000091,33.9091677,50.4028937,27.5016958,22.1554955,59.6755099,3.7914764,41.7341599,16.6228942\r\n976,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2440707,1.2567213,21.6701528,67.4445628,71.3696,52.3177978,21.5810383,8.6926725,16.4120889,65.9447001,33.0871928,51.2387424,28.211903,23.1106961,59.4917031,3.6145187,41.29,16.311999,1.3453674,1.3217918,20.3607368,67.9648626,71.1075117,52.7728235,22.3776809,9.1108755,16.1138565,66.0000091,33.9091677,50.4028937,27.5016958,22.1554955,59.6755099,3.7914764,41.7341599,16.6228942,1.4699167,1.4540694,19.9818776,67.6669416,71.1656408,53.3009873,22.8443593,9.417286,17.1309242,66.0484579,35.1155269,50.4803108,27.0866551,21.9683489,59.3676264,3.804387,41.5305181,15.5993058\r\n977,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3453674,1.3217918,20.3607368,67.9648626,71.1075117,52.7728235,22.3776809,9.1108755,16.1138565,66.0000091,33.9091677,50.4028937,27.5016958,22.1554955,59.6755099,3.7914764,41.7341599,16.6228942,1.4699167,1.4540694,19.9818776,67.6669416,71.1656408,53.3009873,22.8443593,9.417286,17.1309242,66.0484579,35.1155269,50.4803108,27.0866551,21.9683489,59.3676264,3.804387,41.5305181,15.5993058,1.5172135,1.4864882,19.2872084,65.624045,69.0487378,53.2516709,22.2932979,9.2504493,16.6704785,66.5065566,36.1237162,48.5668848,26.0416102,21.0809238,58.5518124,3.6793527,41.2166905,14.7501661\r\n978,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4699167,1.4540694,19.9818776,67.6669416,71.1656408,53.3009873,22.8443593,9.417286,17.1309242,66.0484579,35.1155269,50.4803108,27.0866551,21.9683489,59.3676264,3.804387,41.5305181,15.5993058,1.5172135,1.4864882,19.2872084,65.624045,69.0487378,53.2516709,22.2932979,9.2504493,16.6704785,66.5065566,36.1237162,48.5668848,26.0416102,21.0809238,58.5518124,3.6793527,41.2166905,14.7501661,1.4238842,1.3916543,19.4108911,65.2549484,67.5999178,53.0078737,22.9125244,8.3849655,16.9982876,67.7394951,37.0687951,45.4548461,25.6658124,20.6538947,58.0096674,4.0017392,40.6257281,14.1325737\r\n979,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5172135,1.4864882,19.2872084,65.624045,69.0487378,53.2516709,22.2932979,9.2504493,16.6704785,66.5065566,36.1237162,48.5668848,26.0416102,21.0809238,58.5518124,3.6793527,41.2166905,14.7501661,1.4238842,1.3916543,19.4108911,65.2549484,67.5999178,53.0078737,22.9125244,8.3849655,16.9982876,67.7394951,37.0687951,45.4548461,25.6658124,20.6538947,58.0096674,4.0017392,40.6257281,14.1325737,1.5125499,1.4354784,19.7450358,66.4451403,69.3099252,52.1090946,24.0011101,9.3414488,16.150703,68.9831536,37.521121,44.3700446,25.6611146,20.5399731,58.5205066,3.8637596,40.6950737,14.0875154\r\n980,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4238842,1.3916543,19.4108911,65.2549484,67.5999178,53.0078737,22.9125244,8.3849655,16.9982876,67.7394951,37.0687951,45.4548461,25.6658124,20.6538947,58.0096674,4.0017392,40.6257281,14.1325737,1.5125499,1.4354784,19.7450358,66.4451403,69.3099252,52.1090946,24.0011101,9.3414488,16.150703,68.9831536,37.521121,44.3700446,25.6611146,20.5399731,58.5205066,3.8637596,40.6950737,14.0875154,1.6380888,1.5669755,19.7710583,66.0553942,69.0252976,50.7934217,24.4006278,8.586859,14.6899082,68.1873211,36.3740669,43.5327135,25.3707086,19.984968,59.0367031,3.5694241,41.5902259,15.180629\r\n981,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5125499,1.4354784,19.7450358,66.4451403,69.3099252,52.1090946,24.0011101,9.3414488,16.150703,68.9831536,37.521121,44.3700446,25.6611146,20.5399731,58.5205066,3.8637596,40.6950737,14.0875154,1.6380888,1.5669755,19.7710583,66.0553942,69.0252976,50.7934217,24.4006278,8.586859,14.6899082,68.1873211,36.3740669,43.5327135,25.3707086,19.984968,59.0367031,3.5694241,41.5902259,15.180629,1.7200124,1.6306665,19.9808492,66.0277346,69.2086035,50.0098792,25.8467419,9.3255102,16.1328863,69.0625008,37.1010005,43.6692347,25.062947,19.7991112,58.8920549,3.231071,40.5733063,15.1181839\r\n982,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6380888,1.5669755,19.7710583,66.0553942,69.0252976,50.7934217,24.4006278,8.586859,14.6899082,68.1873211,36.3740669,43.5327135,25.3707086,19.984968,59.0367031,3.5694241,41.5902259,15.180629,1.7200124,1.6306665,19.9808492,66.0277346,69.2086035,50.0098792,25.8467419,9.3255102,16.1328863,69.0625008,37.1010005,43.6692347,25.062947,19.7991112,58.8920549,3.231071,40.5733063,15.1181839,1.5766803,1.5340636,19.6517681,66.5882179,69.8020641,50.0322011,25.8898451,9.287044,17.577948,68.7533267,37.887982,44.922635,24.8215433,19.7567556,59.0689495,2.8927924,41.4319728,14.5317039\r\n983,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7200124,1.6306665,19.9808492,66.0277346,69.2086035,50.0098792,25.8467419,9.3255102,16.1328863,69.0625008,37.1010005,43.6692347,25.062947,19.7991112,58.8920549,3.231071,40.5733063,15.1181839,1.5766803,1.5340636,19.6517681,66.5882179,69.8020641,50.0322011,25.8898451,9.287044,17.577948,68.7533267,37.887982,44.922635,24.8215433,19.7567556,59.0689495,2.8927924,41.4319728,14.5317039,1.3558893,1.3006785,19.6373102,66.3971547,70.7974829,50.6459376,25.1167488,8.6836749,17.6638368,68.5167048,37.6383511,43.6910683,24.8588295,19.7548724,59.3207204,2.7129737,41.0193503,13.6031175\r\n984,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5766803,1.5340636,19.6517681,66.5882179,69.8020641,50.0322011,25.8898451,9.287044,17.577948,68.7533267,37.887982,44.922635,24.8215433,19.7567556,59.0689495,2.8927924,41.4319728,14.5317039,1.3558893,1.3006785,19.6373102,66.3971547,70.7974829,50.6459376,25.1167488,8.6836749,17.6638368,68.5167048,37.6383511,43.6910683,24.8588295,19.7548724,59.3207204,2.7129737,41.0193503,13.6031175,1.3653413,1.3109335,20.4366389,68.2648097,72.1711673,53.342648,24.4353474,10.2364382,18.3329899,67.6770041,36.3533014,45.2557984,25.2031818,20.2692603,59.5637766,2.5470363,42.1572892,14.0977285\r\n985,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3558893,1.3006785,19.6373102,66.3971547,70.7974829,50.6459376,25.1167488,8.6836749,17.6638368,68.5167048,37.6383511,43.6910683,24.8588295,19.7548724,59.3207204,2.7129737,41.0193503,13.6031175,1.3653413,1.3109335,20.4366389,68.2648097,72.1711673,53.342648,24.4353474,10.2364382,18.3329899,67.6770041,36.3533014,45.2557984,25.2031818,20.2692603,59.5637766,2.5470363,42.1572892,14.0977285,1.4564123,1.4024692,19.4291049,68.1632725,72.9791648,54.5633176,24.2290529,10.8234542,18.3570657,66.81641,35.5226506,47.1542101,24.8609829,19.7624932,59.6197061,2.6341087,43.1545796,15.4545342\r\n986,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3653413,1.3109335,20.4366389,68.2648097,72.1711673,53.342648,24.4353474,10.2364382,18.3329899,67.6770041,36.3533014,45.2557984,25.2031818,20.2692603,59.5637766,2.5470363,42.1572892,14.0977285,1.4564123,1.4024692,19.4291049,68.1632725,72.9791648,54.5633176,24.2290529,10.8234542,18.3570657,66.81641,35.5226506,47.1542101,24.8609829,19.7624932,59.6197061,2.6341087,43.1545796,15.4545342,1.3814225,1.3753811,18.448633,66.6968587,71.5067936,55.0932183,23.9236834,9.8508709,19.6089558,66.3612242,35.9097423,47.1818731,23.7031342,18.7559321,59.2000754,2.3120685,42.9203521,14.311589\r\n987,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4564123,1.4024692,19.4291049,68.1632725,72.9791648,54.5633176,24.2290529,10.8234542,18.3570657,66.81641,35.5226506,47.1542101,24.8609829,19.7624932,59.6197061,2.6341087,43.1545796,15.4545342,1.3814225,1.3753811,18.448633,66.6968587,71.5067936,55.0932183,23.9236834,9.8508709,19.6089558,66.3612242,35.9097423,47.1818731,23.7031342,18.7559321,59.2000754,2.3120685,42.9203521,14.311589,1.2700022,1.2553181,17.6917994,66.7781846,71.1485672,54.805812,23.9173162,10.473215,21.0601191,67.1037221,35.652979,48.1331785,22.7715175,18.3610989,58.4240817,2.2966983,43.1386164,13.6362463\r\n988,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3814225,1.3753811,18.448633,66.6968587,71.5067936,55.0932183,23.9236834,9.8508709,19.6089558,66.3612242,35.9097423,47.1818731,23.7031342,18.7559321,59.2000754,2.3120685,42.9203521,14.311589,1.2700022,1.2553181,17.6917994,66.7781846,71.1485672,54.805812,23.9173162,10.473215,21.0601191,67.1037221,35.652979,48.1331785,22.7715175,18.3610989,58.4240817,2.2966983,43.1386164,13.6362463,1.3106285,1.3106285,17.2975704,65.8047795,70.8804521,56.8200847,23.7025217,10.3618504,19.2764027,66.8285319,36.0775793,47.2164528,22.579849,18.1506021,58.6200217,2.6775245,43.8509865,13.6041314\r\n989,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2700022,1.2553181,17.6917994,66.7781846,71.1485672,54.805812,23.9173162,10.473215,21.0601191,67.1037221,35.652979,48.1331785,22.7715175,18.3610989,58.4240817,2.2966983,43.1386164,13.6362463,1.3106285,1.3106285,17.2975704,65.8047795,70.8804521,56.8200847,23.7025217,10.3618504,19.2764027,66.8285319,36.0775793,47.2164528,22.579849,18.1506021,58.6200217,2.6775245,43.8509865,13.6041314,1.2415181,1.2520266,18.2436037,65.0194067,68.877333,56.184406,23.8694261,9.4860043,17.3769284,66.9896084,35.7175304,47.1896948,22.5154202,18.2563034,57.0859158,2.8815152,42.1273205,12.6688157\r\n990,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3106285,1.3106285,17.2975704,65.8047795,70.8804521,56.8200847,23.7025217,10.3618504,19.2764027,66.8285319,36.0775793,47.2164528,22.579849,18.1506021,58.6200217,2.6775245,43.8509865,13.6041314,1.2415181,1.2520266,18.2436037,65.0194067,68.877333,56.184406,23.8694261,9.4860043,17.3769284,66.9896084,35.7175304,47.1896948,22.5154202,18.2563034,57.0859158,2.8815152,42.1273205,12.6688157,1.4245009,1.4346757,17.946388,65.0421782,67.2831783,56.6013225,24.7001169,9.8024943,17.0697459,66.8338155,35.6964155,47.346307,21.8805095,17.6636168,57.2762059,3.048523,42.4283059,13.606428\r\n991,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2415181,1.2520266,18.2436037,65.0194067,68.877333,56.184406,23.8694261,9.4860043,17.3769284,66.9896084,35.7175304,47.1896948,22.5154202,18.2563034,57.0859158,2.8815152,42.1273205,12.6688157,1.4245009,1.4346757,17.946388,65.0421782,67.2831783,56.6013225,24.7001169,9.8024943,17.0697459,66.8338155,35.6964155,47.346307,21.8805095,17.6636168,57.2762059,3.048523,42.4283059,13.606428,1.3680963,1.3840909,17.1642485,64.7430096,67.4231566,56.1151012,25.187344,9.4781936,16.3344768,67.3185924,36.2115641,46.3069752,21.1820648,16.9172179,57.1089928,3.1696205,42.3209588,11.7186475\r\n992,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4245009,1.4346757,17.946388,65.0421782,67.2831783,56.6013225,24.7001169,9.8024943,17.0697459,66.8338155,35.6964155,47.346307,21.8805095,17.6636168,57.2762059,3.048523,42.4283059,13.606428,1.3680963,1.3840909,17.1642485,64.7430096,67.4231566,56.1151012,25.187344,9.4781936,16.3344768,67.3185924,36.2115641,46.3069752,21.1820648,16.9172179,57.1089928,3.1696205,42.3209588,11.7186475,1.215266,1.2307167,16.8328671,64.3641018,66.5390652,56.8425991,25.8497832,8.6495695,17.4181757,67.7524722,37.0720678,45.0086624,20.5642065,16.4002976,56.3679886,3.01902,41.9880847,10.7370797\r\n993,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3680963,1.3840909,17.1642485,64.7430096,67.4231566,56.1151012,25.187344,9.4781936,16.3344768,67.3185924,36.2115641,46.3069752,21.1820648,16.9172179,57.1089928,3.1696205,42.3209588,11.7186475,1.215266,1.2307167,16.8328671,64.3641018,66.5390652,56.8425991,25.8497832,8.6495695,17.4181757,67.7524722,37.0720678,45.0086624,20.5642065,16.4002976,56.3679886,3.01902,41.9880847,10.7370797,1.2030292,1.2281627,16.5412224,65.3818381,67.408411,58.3232344,26.5273979,8.8806242,16.8895539,68.8875508,37.9765042,44.7797819,20.4007188,16.3245928,55.6932658,3.2259594,41.8434988,11.0575575\r\n994,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.215266,1.2307167,16.8328671,64.3641018,66.5390652,56.8425991,25.8497832,8.6495695,17.4181757,67.7524722,37.0720678,45.0086624,20.5642065,16.4002976,56.3679886,3.01902,41.9880847,10.7370797,1.2030292,1.2281627,16.5412224,65.3818381,67.408411,58.3232344,26.5273979,8.8806242,16.8895539,68.8875508,37.9765042,44.7797819,20.4007188,16.3245928,55.6932658,3.2259594,41.8434988,11.0575575,1.3095737,1.3131286,16.9056938,64.2241918,67.1733622,58.6355353,26.6584903,9.0609852,16.1368541,68.2531086,38.342951,43.50173,21.0300839,16.5337477,55.5247864,3.02837,41.1357594,12.2221626\r\n995,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2030292,1.2281627,16.5412224,65.3818381,67.408411,58.3232344,26.5273979,8.8806242,16.8895539,68.8875508,37.9765042,44.7797819,20.4007188,16.3245928,55.6932658,3.2259594,41.8434988,11.0575575,1.3095737,1.3131286,16.9056938,64.2241918,67.1733622,58.6355353,26.6584903,9.0609852,16.1368541,68.2531086,38.342951,43.50173,21.0300839,16.5337477,55.5247864,3.02837,41.1357594,12.2221626,1.2673874,1.2219243,17.3691568,63.8905722,66.1902293,58.0012971,27.0741483,9.1744415,16.4961903,68.9253997,38.5756913,42.9398282,21.4729077,16.8759388,55.1247971,2.9930902,41.1552664,11.4146945\r\n996,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3095737,1.3131286,16.9056938,64.2241918,67.1733622,58.6355353,26.6584903,9.0609852,16.1368541,68.2531086,38.342951,43.50173,21.0300839,16.5337477,55.5247864,3.02837,41.1357594,12.2221626,1.2673874,1.2219243,17.3691568,63.8905722,66.1902293,58.0012971,27.0741483,9.1744415,16.4961903,68.9253997,38.5756913,42.9398282,21.4729077,16.8759388,55.1247971,2.9930902,41.1552664,11.4146945,1.4091645,1.3145115,16.5371171,65.0766849,68.4463066,59.2703157,27.7400233,9.3661633,17.5065396,69.3047837,39.115304,41.8693341,21.0838564,16.4639416,55.3522679,2.7832706,41.7049783,11.8332158\r\n997,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2673874,1.2219243,17.3691568,63.8905722,66.1902293,58.0012971,27.0741483,9.1744415,16.4961903,68.9253997,38.5756913,42.9398282,21.4729077,16.8759388,55.1247971,2.9930902,41.1552664,11.4146945,1.4091645,1.3145115,16.5371171,65.0766849,68.4463066,59.2703157,27.7400233,9.3661633,17.5065396,69.3047837,39.115304,41.8693341,21.0838564,16.4639416,55.3522679,2.7832706,41.7049783,11.8332158,1.354072,1.2243862,16.5569254,64.017216,67.116453,57.0685068,28.3257407,9.0248045,18.7287252,69.7203739,39.7579458,41.6576109,21.2565608,16.4686516,54.4554922,2.6447084,42.1832984,11.2793717\r\n998,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4091645,1.3145115,16.5371171,65.0766849,68.4463066,59.2703157,27.7400233,9.3661633,17.5065396,69.3047837,39.115304,41.8693341,21.0838564,16.4639416,55.3522679,2.7832706,41.7049783,11.8332158,1.354072,1.2243862,16.5569254,64.017216,67.116453,57.0685068,28.3257407,9.0248045,18.7287252,69.7203739,39.7579458,41.6576109,21.2565608,16.4686516,54.4554922,2.6447084,42.1832984,11.2793717,1.2880074,1.1558758,16.2826831,64.5154106,68.1708611,55.3308314,29.7663967,8.1784607,19.102977,69.4664921,40.2620725,41.9085922,21.1281354,16.3749377,53.785764,2.8304095,42.0456289,11.6320261\r\n999,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.354072,1.2243862,16.5569254,64.017216,67.116453,57.0685068,28.3257407,9.0248045,18.7287252,69.7203739,39.7579458,41.6576109,21.2565608,16.4686516,54.4554922,2.6447084,42.1832984,11.2793717,1.2880074,1.1558758,16.2826831,64.5154106,68.1708611,55.3308314,29.7663967,8.1784607,19.102977,69.4664921,40.2620725,41.9085922,21.1281354,16.3749377,53.785764,2.8304095,42.0456289,11.6320261,1.280233,1.1454612,15.8959743,64.8123334,68.5254243,54.5560084,29.3361211,8.5531349,17.8970205,68.9947953,39.9776344,41.5181737,20.9046995,16.2047634,53.8905868,3.0550348,41.8310476,11.4437498\r\n1000,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2880074,1.1558758,16.2826831,64.5154106,68.1708611,55.3308314,29.7663967,8.1784607,19.102977,69.4664921,40.2620725,41.9085922,21.1281354,16.3749377,53.785764,2.8304095,42.0456289,11.6320261,1.280233,1.1454612,15.8959743,64.8123334,68.5254243,54.5560084,29.3361211,8.5531349,17.8970205,68.9947953,39.9776344,41.5181737,20.9046995,16.2047634,53.8905868,3.0550348,41.8310476,11.4437498,1.2266451,1.0825338,15.7008587,64.0922235,67.7589906,53.1896012,28.8242849,9.1822422,18.3031033,67.86089,38.9795019,41.3786153,21.0124717,16.1181772,54.0130095,3.2195272,41.7904371,12.2341799\r\n1001,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.280233,1.1454612,15.8959743,64.8123334,68.5254243,54.5560084,29.3361211,8.5531349,17.8970205,68.9947953,39.9776344,41.5181737,20.9046995,16.2047634,53.8905868,3.0550348,41.8310476,11.4437498,1.2266451,1.0825338,15.7008587,64.0922235,67.7589906,53.1896012,28.8242849,9.1822422,18.3031033,67.86089,38.9795019,41.3786153,21.0124717,16.1181772,54.0130095,3.2195272,41.7904371,12.2341799,1.1483491,1.0266474,15.5434938,64.4089755,67.7801796,54.6582362,28.7230428,9.1691071,18.9532882,68.0652041,38.5811805,41.8570411,21.2261683,16.1449847,53.9061924,3.3647632,41.0112559,10.8248447\r\n1002,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2266451,1.0825338,15.7008587,64.0922235,67.7589906,53.1896012,28.8242849,9.1822422,18.3031033,67.86089,38.9795019,41.3786153,21.0124717,16.1181772,54.0130095,3.2195272,41.7904371,12.2341799,1.1483491,1.0266474,15.5434938,64.4089755,67.7801796,54.6582362,28.7230428,9.1691071,18.9532882,68.0652041,38.5811805,41.8570411,21.2261683,16.1449847,53.9061924,3.3647632,41.0112559,10.8248447,1.1324037,1.0714853,15.0414384,65.6259606,68.9252138,54.5907448,28.1680219,10.0311546,20.4127395,67.0651836,38.219593,42.3330943,21.0471076,15.8175573,54.3141704,3.4103061,40.0393204,11.5121632\r\n1003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1483491,1.0266474,15.5434938,64.4089755,67.7801796,54.6582362,28.7230428,9.1691071,18.9532882,68.0652041,38.5811805,41.8570411,21.2261683,16.1449847,53.9061924,3.3647632,41.0112559,10.8248447,1.1324037,1.0714853,15.0414384,65.6259606,68.9252138,54.5907448,28.1680219,10.0311546,20.4127395,67.0651836,38.219593,42.3330943,21.0471076,15.8175573,54.3141704,3.4103061,40.0393204,11.5121632,1.1416049,1.1225151,15.8016268,65.2151625,67.7505238,52.9513518,26.8484487,10.9327326,21.0472583,66.5364721,37.7523451,41.9876884,22.064664,16.4079228,54.2752024,3.6249517,40.1064374,11.953027\r\n1004,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1324037,1.0714853,15.0414384,65.6259606,68.9252138,54.5907448,28.1680219,10.0311546,20.4127395,67.0651836,38.219593,42.3330943,21.0471076,15.8175573,54.3141704,3.4103061,40.0393204,11.5121632,1.1416049,1.1225151,15.8016268,65.2151625,67.7505238,52.9513518,26.8484487,10.9327326,21.0472583,66.5364721,37.7523451,41.9876884,22.064664,16.4079228,54.2752024,3.6249517,40.1064374,11.953027,1.1784668,1.2369694,16.9056711,67.0000678,69.7232595,55.8954363,26.5430867,11.3591478,19.8257719,67.6724606,36.9230528,41.5634869,22.5968006,17.0736619,53.8647522,4.0349499,39.7054618,11.5642414\r\n1005,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1416049,1.1225151,15.8016268,65.2151625,67.7505238,52.9513518,26.8484487,10.9327326,21.0472583,66.5364721,37.7523451,41.9876884,22.064664,16.4079228,54.2752024,3.6249517,40.1064374,11.953027,1.1784668,1.2369694,16.9056711,67.0000678,69.7232595,55.8954363,26.5430867,11.3591478,19.8257719,67.6724606,36.9230528,41.5634869,22.5968006,17.0736619,53.8647522,4.0349499,39.7054618,11.5642414,1.3985756,1.4469067,17.2641401,66.1555019,68.6421096,57.292289,25.7585438,11.489243,20.3799294,67.7487214,36.4805335,40.8467499,23.1472183,17.2065505,54.0160786,3.962045,39.4761672,12.2123014\r\n1006,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1784668,1.2369694,16.9056711,67.0000678,69.7232595,55.8954363,26.5430867,11.3591478,19.8257719,67.6724606,36.9230528,41.5634869,22.5968006,17.0736619,53.8647522,4.0349499,39.7054618,11.5642414,1.3985756,1.4469067,17.2641401,66.1555019,68.6421096,57.292289,25.7585438,11.489243,20.3799294,67.7487214,36.4805335,40.8467499,23.1472183,17.2065505,54.0160786,3.962045,39.4761672,12.2123014,1.5528363,1.6139385,17.5210809,64.9627163,67.9997844,57.3005456,25.5907026,11.9107687,20.6896438,68.0886356,36.1868485,40.7616113,23.8750223,17.6080056,53.9466449,3.7895565,39.1472895,12.8896007\r\n1007,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3985756,1.4469067,17.2641401,66.1555019,68.6421096,57.292289,25.7585438,11.489243,20.3799294,67.7487214,36.4805335,40.8467499,23.1472183,17.2065505,54.0160786,3.962045,39.4761672,12.2123014,1.5528363,1.6139385,17.5210809,64.9627163,67.9997844,57.3005456,25.5907026,11.9107687,20.6896438,68.0886356,36.1868485,40.7616113,23.8750223,17.6080056,53.9466449,3.7895565,39.1472895,12.8896007,1.6355076,1.6582003,18.325334,65.1406642,67.814078,58.1368238,26.681919,11.775939,20.2512287,69.1096374,36.8356131,40.933793,23.9585017,17.640061,54.0978675,3.5813501,38.9516242,11.6041268\r\n1008,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5528363,1.6139385,17.5210809,64.9627163,67.9997844,57.3005456,25.5907026,11.9107687,20.6896438,68.0886356,36.1868485,40.7616113,23.8750223,17.6080056,53.9466449,3.7895565,39.1472895,12.8896007,1.6355076,1.6582003,18.325334,65.1406642,67.814078,58.1368238,26.681919,11.775939,20.2512287,69.1096374,36.8356131,40.933793,23.9585017,17.640061,54.0978675,3.5813501,38.9516242,11.6041268,1.560828,1.5839068,17.8208378,65.9187117,67.8321965,57.7979257,26.8425189,11.6023043,20.1146659,69.3780499,38.4659362,39.5737747,23.328112,17.2889526,54.2106952,3.8636816,38.7120138,11.7887913\r\n1009,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6355076,1.6582003,18.325334,65.1406642,67.814078,58.1368238,26.681919,11.775939,20.2512287,69.1096374,36.8356131,40.933793,23.9585017,17.640061,54.0978675,3.5813501,38.9516242,11.6041268,1.560828,1.5839068,17.8208378,65.9187117,67.8321965,57.7979257,26.8425189,11.6023043,20.1146659,69.3780499,38.4659362,39.5737747,23.328112,17.2889526,54.2106952,3.8636816,38.7120138,11.7887913,1.6107206,1.6240155,18.2661274,65.5901388,68.2608445,59.1039263,27.2117943,10.0951385,18.6037009,70.4242668,39.5600421,39.4157949,23.2700746,17.3294377,53.6524376,3.6428988,38.4355993,10.9876579\r\n1010,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.560828,1.5839068,17.8208378,65.9187117,67.8321965,57.7979257,26.8425189,11.6023043,20.1146659,69.3780499,38.4659362,39.5737747,23.328112,17.2889526,54.2106952,3.8636816,38.7120138,11.7887913,1.6107206,1.6240155,18.2661274,65.5901388,68.2608445,59.1039263,27.2117943,10.0951385,18.6037009,70.4242668,39.5600421,39.4157949,23.2700746,17.3294377,53.6524376,3.6428988,38.4355993,10.9876579,1.446556,1.4625205,17.5883529,66.5708407,69.5883034,61.0032211,28.0209511,9.4204579,17.7618297,69.6890697,39.2829868,39.9276638,22.6286828,16.9660805,54.3246676,3.6113838,38.4382852,10.7992758\r\n1011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6107206,1.6240155,18.2661274,65.5901388,68.2608445,59.1039263,27.2117943,10.0951385,18.6037009,70.4242668,39.5600421,39.4157949,23.2700746,17.3294377,53.6524376,3.6428988,38.4355993,10.9876579,1.446556,1.4625205,17.5883529,66.5708407,69.5883034,61.0032211,28.0209511,9.4204579,17.7618297,69.6890697,39.2829868,39.9276638,22.6286828,16.9660805,54.3246676,3.6113838,38.4382852,10.7992758,1.3334094,1.3092661,15.506626,66.4008122,69.1509118,60.5927712,28.2682131,9.9778544,19.4926115,68.6279418,39.0772091,40.8086031,21.0213202,15.3756013,54.327359,3.3200401,38.7508978,11.0527943\r\n1012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.446556,1.4625205,17.5883529,66.5708407,69.5883034,61.0032211,28.0209511,9.4204579,17.7618297,69.6890697,39.2829868,39.9276638,22.6286828,16.9660805,54.3246676,3.6113838,38.4382852,10.7992758,1.3334094,1.3092661,15.506626,66.4008122,69.1509118,60.5927712,28.2682131,9.9778544,19.4926115,68.6279418,39.0772091,40.8086031,21.0213202,15.3756013,54.327359,3.3200401,38.7508978,11.0527943,1.2577212,1.2334618,15.5479191,64.7122817,67.6167631,59.2188363,29.2863512,9.5018618,19.3485863,69.7990754,39.9781793,39.4273194,21.3068738,16.0462436,54.2670285,3.5248059,39.7880525,10.9758358\r\n1013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3334094,1.3092661,15.506626,66.4008122,69.1509118,60.5927712,28.2682131,9.9778544,19.4926115,68.6279418,39.0772091,40.8086031,21.0213202,15.3756013,54.327359,3.3200401,38.7508978,11.0527943,1.2577212,1.2334618,15.5479191,64.7122817,67.6167631,59.2188363,29.2863512,9.5018618,19.3485863,69.7990754,39.9781793,39.4273194,21.3068738,16.0462436,54.2670285,3.5248059,39.7880525,10.9758358,1.2161523,1.1886601,15.70201,66.5263788,69.003534,59.8449313,29.0003386,9.3575077,18.8296092,69.1159904,40.6720476,40.547508,21.3286531,16.3722858,54.6421008,3.4159864,40.6556821,10.6783439\r\n1014,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2577212,1.2334618,15.5479191,64.7122817,67.6167631,59.2188363,29.2863512,9.5018618,19.3485863,69.7990754,39.9781793,39.4273194,21.3068738,16.0462436,54.2670285,3.5248059,39.7880525,10.9758358,1.2161523,1.1886601,15.70201,66.5263788,69.003534,59.8449313,29.0003386,9.3575077,18.8296092,69.1159904,40.6720476,40.547508,21.3286531,16.3722858,54.6421008,3.4159864,40.6556821,10.6783439,1.102788,1.1236755,15.9332911,67.0079014,70.1060084,60.1351626,28.0930528,9.210319,18.9165615,67.0997916,39.4585789,40.1668204,21.6945637,16.9520175,54.6544269,3.5072422,40.7306409,11.8127142\r\n1015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2161523,1.1886601,15.70201,66.5263788,69.003534,59.8449313,29.0003386,9.3575077,18.8296092,69.1159904,40.6720476,40.547508,21.3286531,16.3722858,54.6421008,3.4159864,40.6556821,10.6783439,1.102788,1.1236755,15.9332911,67.0079014,70.1060084,60.1351626,28.0930528,9.210319,18.9165615,67.0997916,39.4585789,40.1668204,21.6945637,16.9520175,54.6544269,3.5072422,40.7306409,11.8127142,1.2993831,1.3202201,16.2030368,65.6829402,69.3539129,59.2082695,27.9831751,9.1158333,18.2826215,67.333406,38.5302503,40.6640109,21.9877572,17.0509343,54.2864081,3.2339833,41.8224078,12.3399936\r\n1016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.102788,1.1236755,15.9332911,67.0079014,70.1060084,60.1351626,28.0930528,9.210319,18.9165615,67.0997916,39.4585789,40.1668204,21.6945637,16.9520175,54.6544269,3.5072422,40.7306409,11.8127142,1.2993831,1.3202201,16.2030368,65.6829402,69.3539129,59.2082695,27.9831751,9.1158333,18.2826215,67.333406,38.5302503,40.6640109,21.9877572,17.0509343,54.2864081,3.2339833,41.8224078,12.3399936,1.344094,1.3786424,16.3391016,64.7795149,68.3395654,57.6061492,27.1734788,9.1993876,18.0220367,66.1658978,37.737291,40.1653105,22.277391,17.2083481,53.9346229,3.311948,42.9168846,13.36646\r\n1017,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2993831,1.3202201,16.2030368,65.6829402,69.3539129,59.2082695,27.9831751,9.1158333,18.2826215,67.333406,38.5302503,40.6640109,21.9877572,17.0509343,54.2864081,3.2339833,41.8224078,12.3399936,1.344094,1.3786424,16.3391016,64.7795149,68.3395654,57.6061492,27.1734788,9.1993876,18.0220367,66.1658978,37.737291,40.1653105,22.277391,17.2083481,53.9346229,3.311948,42.9168846,13.36646,1.5300264,1.570273,16.7669258,63.8391022,67.9366727,57.4227195,26.9003832,9.3055328,18.4537307,66.2925822,38.2221117,39.3521033,22.2439044,17.438577,53.3806411,3.4099584,42.999317,14.2141803\r\n1018,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.344094,1.3786424,16.3391016,64.7795149,68.3395654,57.6061492,27.1734788,9.1993876,18.0220367,66.1658978,37.737291,40.1653105,22.277391,17.2083481,53.9346229,3.311948,42.9168846,13.36646,1.5300264,1.570273,16.7669258,63.8391022,67.9366727,57.4227195,26.9003832,9.3055328,18.4537307,66.2925822,38.2221117,39.3521033,22.2439044,17.438577,53.3806411,3.4099584,42.999317,14.2141803,1.7038155,1.7441,18.6198252,62.540194,66.4670127,55.7446468,26.8371471,8.6353172,17.2349529,66.8634667,38.7413332,38.126311,23.8270447,18.9294135,54.1921113,3.7274929,41.7192821,14.4951985\r\n1019,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5300264,1.570273,16.7669258,63.8391022,67.9366727,57.4227195,26.9003832,9.3055328,18.4537307,66.2925822,38.2221117,39.3521033,22.2439044,17.438577,53.3806411,3.4099584,42.999317,14.2141803,1.7038155,1.7441,18.6198252,62.540194,66.4670127,55.7446468,26.8371471,8.6353172,17.2349529,66.8634667,38.7413332,38.126311,23.8270447,18.9294135,54.1921113,3.7274929,41.7192821,14.4951985,1.8003015,1.8492025,18.4607512,63.075458,66.5316255,55.3843845,25.9752668,8.5443651,16.7829666,66.0644467,38.1452966,39.5351838,23.3150023,18.5127032,54.2691232,3.4867039,41.1010618,15.0662569\r\n1020,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7038155,1.7441,18.6198252,62.540194,66.4670127,55.7446468,26.8371471,8.6353172,17.2349529,66.8634667,38.7413332,38.126311,23.8270447,18.9294135,54.1921113,3.7274929,41.7192821,14.4951985,1.8003015,1.8492025,18.4607512,63.075458,66.5316255,55.3843845,25.9752668,8.5443651,16.7829666,66.0644467,38.1452966,39.5351838,23.3150023,18.5127032,54.2691232,3.4867039,41.1010618,15.0662569,1.6969716,1.7574864,18.1601935,63.5203571,66.7747198,56.4617768,27.4011018,8.321338,17.3211236,66.7437347,37.3897882,39.9865577,23.0947093,18.2439275,54.0784947,3.7049997,40.1969153,15.3196511\r\n1021,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8003015,1.8492025,18.4607512,63.075458,66.5316255,55.3843845,25.9752668,8.5443651,16.7829666,66.0644467,38.1452966,39.5351838,23.3150023,18.5127032,54.2691232,3.4867039,41.1010618,15.0662569,1.6969716,1.7574864,18.1601935,63.5203571,66.7747198,56.4617768,27.4011018,8.321338,17.3211236,66.7437347,37.3897882,39.9865577,23.0947093,18.2439275,54.0784947,3.7049997,40.1969153,15.3196511,1.7782345,1.8401028,17.915813,63.7077628,65.8973676,55.0808351,28.5684994,7.9932754,17.2380413,66.7994146,36.8456477,38.950904,23.7101173,18.5806513,53.8857739,3.7470337,40.4264839,14.5970867\r\n1022,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6969716,1.7574864,18.1601935,63.5203571,66.7747198,56.4617768,27.4011018,8.321338,17.3211236,66.7437347,37.3897882,39.9865577,23.0947093,18.2439275,54.0784947,3.7049997,40.1969153,15.3196511,1.7782345,1.8401028,17.915813,63.7077628,65.8973676,55.0808351,28.5684994,7.9932754,17.2380413,66.7994146,36.8456477,38.950904,23.7101173,18.5806513,53.8857739,3.7470337,40.4264839,14.5970867,1.7169808,1.7776669,18.9175922,64.8894462,66.2015804,56.3889954,29.2463632,7.4912319,17.1953387,65.2217542,36.4772093,39.1281986,23.9982489,19.0093809,54.124478,3.5882596,40.6369237,14.5482529\r\n1023,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7782345,1.8401028,17.915813,63.7077628,65.8973676,55.0808351,28.5684994,7.9932754,17.2380413,66.7994146,36.8456477,38.950904,23.7101173,18.5806513,53.8857739,3.7470337,40.4264839,14.5970867,1.7169808,1.7776669,18.9175922,64.8894462,66.2015804,56.3889954,29.2463632,7.4912319,17.1953387,65.2217542,36.4772093,39.1281986,23.9982489,19.0093809,54.124478,3.5882596,40.6369237,14.5482529,1.7127153,1.7585905,18.6552117,64.9206913,65.4864043,58.1573894,30.715144,8.1192394,18.2802687,66.2347229,36.4294122,39.6518266,24.3270861,18.9415578,53.6613125,3.7238012,41.4829165,14.0321754\r\n1024,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7169808,1.7776669,18.9175922,64.8894462,66.2015804,56.3889954,29.2463632,7.4912319,17.1953387,65.2217542,36.4772093,39.1281986,23.9982489,19.0093809,54.124478,3.5882596,40.6369237,14.5482529,1.7127153,1.7585905,18.6552117,64.9206913,65.4864043,58.1573894,30.715144,8.1192394,18.2802687,66.2347229,36.4294122,39.6518266,24.3270861,18.9415578,53.6613125,3.7238012,41.4829165,14.0321754,1.6087374,1.6857347,18.7489958,64.8564447,64.1130052,58.9162807,31.3036801,7.9477631,18.0416345,66.2051206,35.287097,40.2371521,24.1300589,18.7233741,54.0981114,3.5265492,41.0526018,13.0362491\r\n1025,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7127153,1.7585905,18.6552117,64.9206913,65.4864043,58.1573894,30.715144,8.1192394,18.2802687,66.2347229,36.4294122,39.6518266,24.3270861,18.9415578,53.6613125,3.7238012,41.4829165,14.0321754,1.6087374,1.6857347,18.7489958,64.8564447,64.1130052,58.9162807,31.3036801,7.9477631,18.0416345,66.2051206,35.287097,40.2371521,24.1300589,18.7233741,54.0981114,3.5265492,41.0526018,13.0362491,1.5249662,1.6104745,17.9768973,64.8268025,65.2825636,59.598317,31.539318,8.5339465,18.6588191,65.5722048,35.2732607,41.1000358,24.1948317,18.5909579,53.2459104,3.0459762,41.2909026,12.3355101\r\n1026,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6087374,1.6857347,18.7489958,64.8564447,64.1130052,58.9162807,31.3036801,7.9477631,18.0416345,66.2051206,35.287097,40.2371521,24.1300589,18.7233741,54.0981114,3.5265492,41.0526018,13.0362491,1.5249662,1.6104745,17.9768973,64.8268025,65.2825636,59.598317,31.539318,8.5339465,18.6588191,65.5722048,35.2732607,41.1000358,24.1948317,18.5909579,53.2459104,3.0459762,41.2909026,12.3355101,1.4362265,1.5274111,19.098859,65.4096782,67.1935528,61.3458374,32.1162844,8.5384978,20.4304317,65.3733627,35.5695124,41.9171161,25.2395355,19.38809,52.8201201,3.100453,41.4495711,12.7831508\r\n1027,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5249662,1.6104745,17.9768973,64.8268025,65.2825636,59.598317,31.539318,8.5339465,18.6588191,65.5722048,35.2732607,41.1000358,24.1948317,18.5909579,53.2459104,3.0459762,41.2909026,12.3355101,1.4362265,1.5274111,19.098859,65.4096782,67.1935528,61.3458374,32.1162844,8.5384978,20.4304317,65.3733627,35.5695124,41.9171161,25.2395355,19.38809,52.8201201,3.100453,41.4495711,12.7831508,1.6279317,1.6995487,20.1101094,64.5384722,67.6192485,59.3288832,30.5330597,8.2902046,19.930767,63.9063801,35.0453982,42.0542086,25.9367476,19.9624492,53.0565941,3.0127458,40.6542666,13.4069189\r\n1028,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4362265,1.5274111,19.098859,65.4096782,67.1935528,61.3458374,32.1162844,8.5384978,20.4304317,65.3733627,35.5695124,41.9171161,25.2395355,19.38809,52.8201201,3.100453,41.4495711,12.7831508,1.6279317,1.6995487,20.1101094,64.5384722,67.6192485,59.3288832,30.5330597,8.2902046,19.930767,63.9063801,35.0453982,42.0542086,25.9367476,19.9624492,53.0565941,3.0127458,40.6542666,13.4069189,1.7189559,1.7810251,20.3233402,64.9117709,68.3454456,60.2495698,28.74238,8.2590387,20.2957003,64.9171485,35.7463854,43.8554325,26.0298117,19.9706166,52.8496178,3.0269599,39.7242099,13.8628886\r\n1029,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6279317,1.6995487,20.1101094,64.5384722,67.6192485,59.3288832,30.5330597,8.2902046,19.930767,63.9063801,35.0453982,42.0542086,25.9367476,19.9624492,53.0565941,3.0127458,40.6542666,13.4069189,1.7189559,1.7810251,20.3233402,64.9117709,68.3454456,60.2495698,28.74238,8.2590387,20.2957003,64.9171485,35.7463854,43.8554325,26.0298117,19.9706166,52.8496178,3.0269599,39.7242099,13.8628886,2.0354365,2.0983618,19.8919226,64.2754625,68.1310059,59.9848867,28.8021306,8.6551466,20.2226626,65.8530829,35.113213,44.5823282,26.5607734,20.0926692,53.2484674,3.1923503,38.8742262,14.1744237\r\n1030,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7189559,1.7810251,20.3233402,64.9117709,68.3454456,60.2495698,28.74238,8.2590387,20.2957003,64.9171485,35.7463854,43.8554325,26.0298117,19.9706166,52.8496178,3.0269599,39.7242099,13.8628886,2.0354365,2.0983618,19.8919226,64.2754625,68.1310059,59.9848867,28.8021306,8.6551466,20.2226626,65.8530829,35.113213,44.5823282,26.5607734,20.0926692,53.2484674,3.1923503,38.8742262,14.1744237,2.0065064,2.0165324,19.6319913,65.3470095,69.0193257,57.6136949,27.7563279,8.0978203,18.9454938,65.943084,35.4023895,44.2779604,26.1443561,20.1841624,54.7683906,3.0406515,38.587549,14.7248963\r\n1031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0354365,2.0983618,19.8919226,64.2754625,68.1310059,59.9848867,28.8021306,8.6551466,20.2226626,65.8530829,35.113213,44.5823282,26.5607734,20.0926692,53.2484674,3.1923503,38.8742262,14.1744237,2.0065064,2.0165324,19.6319913,65.3470095,69.0193257,57.6136949,27.7563279,8.0978203,18.9454938,65.943084,35.4023895,44.2779604,26.1443561,20.1841624,54.7683906,3.0406515,38.587549,14.7248963,2.2019531,2.1851096,19.424622,65.3664657,69.7897815,56.9230836,26.8863365,8.0854485,18.3366205,66.3830127,35.6043612,44.5047688,26.7444902,20.4040652,54.3683947,3.2013105,39.0916815,16.0193683\r\n1032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0065064,2.0165324,19.6319913,65.3470095,69.0193257,57.6136949,27.7563279,8.0978203,18.9454938,65.943084,35.4023895,44.2779604,26.1443561,20.1841624,54.7683906,3.0406515,38.587549,14.7248963,2.2019531,2.1851096,19.424622,65.3664657,69.7897815,56.9230836,26.8863365,8.0854485,18.3366205,66.3830127,35.6043612,44.5047688,26.7444902,20.4040652,54.3683947,3.2013105,39.0916815,16.0193683,2.2227707,2.1952244,19.5544046,66.3621745,70.5578848,55.9008596,26.4586019,7.819079,17.8468206,66.7176135,35.485215,45.1525266,26.8496402,20.6988381,55.0534712,3.3282242,40.5356719,16.1129289\r\n1033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2019531,2.1851096,19.424622,65.3664657,69.7897815,56.9230836,26.8863365,8.0854485,18.3366205,66.3830127,35.6043612,44.5047688,26.7444902,20.4040652,54.3683947,3.2013105,39.0916815,16.0193683,2.2227707,2.1952244,19.5544046,66.3621745,70.5578848,55.9008596,26.4586019,7.819079,17.8468206,66.7176135,35.485215,45.1525266,26.8496402,20.6988381,55.0534712,3.3282242,40.5356719,16.1129289,2.1488883,2.1244899,20.746624,68.2001333,69.3327735,56.9520835,25.2216863,8.9200165,16.3200862,65.5140015,34.8782697,45.4623508,26.9135107,20.7507347,54.6090154,3.0911114,39.7586407,15.6040216\r\n1034,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2227707,2.1952244,19.5544046,66.3621745,70.5578848,55.9008596,26.4586019,7.819079,17.8468206,66.7176135,35.485215,45.1525266,26.8496402,20.6988381,55.0534712,3.3282242,40.5356719,16.1129289,2.1488883,2.1244899,20.746624,68.2001333,69.3327735,56.9520835,25.2216863,8.9200165,16.3200862,65.5140015,34.8782697,45.4623508,26.9135107,20.7507347,54.6090154,3.0911114,39.7586407,15.6040216,2.0966648,2.0722663,21.1665047,68.1022205,67.954996,57.2653628,24.8440759,9.6754233,15.9101297,65.7432119,35.0178282,45.6512721,27.199215,20.9440103,54.8241513,3.0856285,40.6717362,15.3979345\r\n1035,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1488883,2.1244899,20.746624,68.2001333,69.3327735,56.9520835,25.2216863,8.9200165,16.3200862,65.5140015,34.8782697,45.4623508,26.9135107,20.7507347,54.6090154,3.0911114,39.7586407,15.6040216,2.0966648,2.0722663,21.1665047,68.1022205,67.954996,57.2653628,24.8440759,9.6754233,15.9101297,65.7432119,35.0178282,45.6512721,27.199215,20.9440103,54.8241513,3.0856285,40.6717362,15.3979345,1.9246037,1.8999414,21.1758123,66.9087726,66.8641637,56.4204704,26.1703648,9.2051185,15.1020858,65.2012411,35.1662295,44.7647198,27.2378662,20.9907826,54.9475713,3.0661672,41.9535469,15.1042171\r\n1036,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0966648,2.0722663,21.1665047,68.1022205,67.954996,57.2653628,24.8440759,9.6754233,15.9101297,65.7432119,35.0178282,45.6512721,27.199215,20.9440103,54.8241513,3.0856285,40.6717362,15.3979345,1.9246037,1.8999414,21.1758123,66.9087726,66.8641637,56.4204704,26.1703648,9.2051185,15.1020858,65.2012411,35.1662295,44.7647198,27.2378662,20.9907826,54.9475713,3.0661672,41.9535469,15.1042171,1.6819874,1.6564585,21.9808126,67.4393448,67.0345929,56.5725366,25.201148,8.9395614,15.9861091,65.5040115,35.6366513,44.7178949,27.4625747,21.4855348,55.1500833,3.0468666,42.885303,13.8112431\r\n1037,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9246037,1.8999414,21.1758123,66.9087726,66.8641637,56.4204704,26.1703648,9.2051185,15.1020858,65.2012411,35.1662295,44.7647198,27.2378662,20.9907826,54.9475713,3.0661672,41.9535469,15.1042171,1.6819874,1.6564585,21.9808126,67.4393448,67.0345929,56.5725366,25.201148,8.9395614,15.9861091,65.5040115,35.6366513,44.7178949,27.4625747,21.4855348,55.1500833,3.0468666,42.885303,13.8112431,1.6897231,1.7359796,22.5817335,66.6439998,66.4376708,58.4239947,26.9579545,8.9782288,16.7481231,66.091939,36.2303984,45.8735863,28.4280615,22.2590293,55.0656133,3.1584871,41.5083353,12.6198524\r\n1038,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6819874,1.6564585,21.9808126,67.4393448,67.0345929,56.5725366,25.201148,8.9395614,15.9861091,65.5040115,35.6366513,44.7178949,27.4625747,21.4855348,55.1500833,3.0468666,42.885303,13.8112431,1.6897231,1.7359796,22.5817335,66.6439998,66.4376708,58.4239947,26.9579545,8.9782288,16.7481231,66.091939,36.2303984,45.8735863,28.4280615,22.2590293,55.0656133,3.1584871,41.5083353,12.6198524,1.7296814,1.7178858,23.1072775,67.3420196,66.8276246,59.2368789,27.8978421,8.6326875,17.908437,66.5330895,37.0556763,46.1236048,28.9408397,23.0913263,56.0076386,3.1248062,41.7402894,13.2811838\r\n1039,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6897231,1.7359796,22.5817335,66.6439998,66.4376708,58.4239947,26.9579545,8.9782288,16.7481231,66.091939,36.2303984,45.8735863,28.4280615,22.2590293,55.0656133,3.1584871,41.5083353,12.6198524,1.7296814,1.7178858,23.1072775,67.3420196,66.8276246,59.2368789,27.8978421,8.6326875,17.908437,66.5330895,37.0556763,46.1236048,28.9408397,23.0913263,56.0076386,3.1248062,41.7402894,13.2811838,1.7389139,1.7527948,23.5935874,67.5439461,65.3773921,59.9230536,28.5007064,7.4604608,18.6265563,66.2412266,37.4815805,44.9563403,28.906992,22.9630354,55.3079441,3.2799663,40.6587397,13.2046677\r\n1040,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7296814,1.7178858,23.1072775,67.3420196,66.8276246,59.2368789,27.8978421,8.6326875,17.908437,66.5330895,37.0556763,46.1236048,28.9408397,23.0913263,56.0076386,3.1248062,41.7402894,13.2811838,1.7389139,1.7527948,23.5935874,67.5439461,65.3773921,59.9230536,28.5007064,7.4604608,18.6265563,66.2412266,37.4815805,44.9563403,28.906992,22.9630354,55.3079441,3.2799663,40.6587397,13.2046677,1.9624132,1.9586818,21.9247088,66.502181,66.3913551,57.4106923,29.4982595,5.9482933,18.7878066,67.7983541,37.932733,44.310333,28.3532354,22.6024191,56.0431242,3.6440455,41.2100158,14.0172317\r\n1041,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7389139,1.7527948,23.5935874,67.5439461,65.3773921,59.9230536,28.5007064,7.4604608,18.6265563,66.2412266,37.4815805,44.9563403,28.906992,22.9630354,55.3079441,3.2799663,40.6587397,13.2046677,1.9624132,1.9586818,21.9247088,66.502181,66.3913551,57.4106923,29.4982595,5.9482933,18.7878066,67.7983541,37.932733,44.310333,28.3532354,22.6024191,56.0431242,3.6440455,41.2100158,14.0172317,1.9213414,1.9240793,21.6861448,66.9274094,67.245552,58.085017,30.4045678,6.0141407,18.5040781,68.8030138,38.0763058,43.5613023,27.4539799,22.0261429,54.6153289,3.7416112,41.3954057,14.4774866\r\n1042,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9624132,1.9586818,21.9247088,66.502181,66.3913551,57.4106923,29.4982595,5.9482933,18.7878066,67.7983541,37.932733,44.310333,28.3532354,22.6024191,56.0431242,3.6440455,41.2100158,14.0172317,1.9213414,1.9240793,21.6861448,66.9274094,67.245552,58.085017,30.4045678,6.0141407,18.5040781,68.8030138,38.0763058,43.5613023,27.4539799,22.0261429,54.6153289,3.7416112,41.3954057,14.4774866,2.1531673,2.1558401,22.636908,66.8451153,67.8358726,59.1173743,29.8340444,6.3425904,18.9626776,69.1940206,39.0981917,44.0007488,27.1467812,22.2298304,54.3696022,3.6989287,41.793504,15.1196066\r\n1043,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9213414,1.9240793,21.6861448,66.9274094,67.245552,58.085017,30.4045678,6.0141407,18.5040781,68.8030138,38.0763058,43.5613023,27.4539799,22.0261429,54.6153289,3.7416112,41.3954057,14.4774866,2.1531673,2.1558401,22.636908,66.8451153,67.8358726,59.1173743,29.8340444,6.3425904,18.9626776,69.1940206,39.0981917,44.0007488,27.1467812,22.2298304,54.3696022,3.6989287,41.793504,15.1196066,2.2249683,2.2061335,22.5601271,66.3458229,67.0996463,58.9695213,29.9745735,6.9333829,17.7288267,68.8593614,39.6752823,43.5084895,26.2417708,21.6362897,53.8029784,3.7591412,40.1412733,15.4177119\r\n1044,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1531673,2.1558401,22.636908,66.8451153,67.8358726,59.1173743,29.8340444,6.3425904,18.9626776,69.1940206,39.0981917,44.0007488,27.1467812,22.2298304,54.3696022,3.6989287,41.793504,15.1196066,2.2249683,2.2061335,22.5601271,66.3458229,67.0996463,58.9695213,29.9745735,6.9333829,17.7288267,68.8593614,39.6752823,43.5084895,26.2417708,21.6362897,53.8029784,3.7591412,40.1412733,15.4177119,2.1593939,2.1268111,23.4272126,68.1015583,66.4166223,57.6995931,29.2868665,7.0807922,17.8774433,68.2363122,38.2447674,43.7732488,25.7091614,21.2103908,53.4092857,3.7372505,41.2291097,18.0352969\r\n1045,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2249683,2.2061335,22.5601271,66.3458229,67.0996463,58.9695213,29.9745735,6.9333829,17.7288267,68.8593614,39.6752823,43.5084895,26.2417708,21.6362897,53.8029784,3.7591412,40.1412733,15.4177119,2.1593939,2.1268111,23.4272126,68.1015583,66.4166223,57.6995931,29.2868665,7.0807922,17.8774433,68.2363122,38.2447674,43.7732488,25.7091614,21.2103908,53.4092857,3.7372505,41.2291097,18.0352969,2.0538792,2.0494411,23.1852653,66.4887786,65.0156102,54.751696,28.6675453,7.2690417,16.7583307,68.373914,37.9700833,43.5594052,25.7396969,20.821721,52.5666248,3.561749,40.6084818,17.9600443\r\n1046,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1593939,2.1268111,23.4272126,68.1015583,66.4166223,57.6995931,29.2868665,7.0807922,17.8774433,68.2363122,38.2447674,43.7732488,25.7091614,21.2103908,53.4092857,3.7372505,41.2291097,18.0352969,2.0538792,2.0494411,23.1852653,66.4887786,65.0156102,54.751696,28.6675453,7.2690417,16.7583307,68.373914,37.9700833,43.5594052,25.7396969,20.821721,52.5666248,3.561749,40.6084818,17.9600443,1.9630297,1.958637,23.657185,67.4534008,66.3860545,54.7877434,27.7767438,7.3891262,15.377351,68.7194991,37.2881588,45.8664827,26.2062928,21.2369226,53.1373758,3.7626945,40.7996127,18.1951083\r\n1047,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0538792,2.0494411,23.1852653,66.4887786,65.0156102,54.751696,28.6675453,7.2690417,16.7583307,68.373914,37.9700833,43.5594052,25.7396969,20.821721,52.5666248,3.561749,40.6084818,17.9600443,1.9630297,1.958637,23.657185,67.4534008,66.3860545,54.7877434,27.7767438,7.3891262,15.377351,68.7194991,37.2881588,45.8664827,26.2062928,21.2369226,53.1373758,3.7626945,40.7996127,18.1951083,1.8838216,1.8795436,23.9561579,65.9638231,64.8638987,54.9232481,26.3516491,7.9768544,14.8661058,69.3806934,37.0332436,45.6094061,26.8410419,21.5030516,53.0544278,3.7455711,41.3611348,16.6037875\r\n1048,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9630297,1.958637,23.657185,67.4534008,66.3860545,54.7877434,27.7767438,7.3891262,15.377351,68.7194991,37.2881588,45.8664827,26.2062928,21.2369226,53.1373758,3.7626945,40.7996127,18.1951083,1.8838216,1.8795436,23.9561579,65.9638231,64.8638987,54.9232481,26.3516491,7.9768544,14.8661058,69.3806934,37.0332436,45.6094061,26.8410419,21.5030516,53.0544278,3.7455711,41.3611348,16.6037875,2.1067992,2.1353812,24.6975183,66.3645545,65.0911553,55.654677,26.5720578,7.3230754,15.9657712,68.9670119,37.3905809,46.1668019,28.1046176,22.7283052,54.0123246,3.6347174,42.0102447,15.6583483\r\n1049,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8838216,1.8795436,23.9561579,65.9638231,64.8638987,54.9232481,26.3516491,7.9768544,14.8661058,69.3806934,37.0332436,45.6094061,26.8410419,21.5030516,53.0544278,3.7455711,41.3611348,16.6037875,2.1067992,2.1353812,24.6975183,66.3645545,65.0911553,55.654677,26.5720578,7.3230754,15.9657712,68.9670119,37.3905809,46.1668019,28.1046176,22.7283052,54.0123246,3.6347174,42.0102447,15.6583483,2.1761594,2.2050687,24.4958004,67.5603577,66.3219218,56.1818307,25.9776691,7.3857807,16.3725689,69.937648,36.018739,46.6244183,29.0275218,22.9883785,54.0506196,3.3848028,40.9300663,16.7328242\r\n1050,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1067992,2.1353812,24.6975183,66.3645545,65.0911553,55.654677,26.5720578,7.3230754,15.9657712,68.9670119,37.3905809,46.1668019,28.1046176,22.7283052,54.0123246,3.6347174,42.0102447,15.6583483,2.1761594,2.2050687,24.4958004,67.5603577,66.3219218,56.1818307,25.9776691,7.3857807,16.3725689,69.937648,36.018739,46.6244183,29.0275218,22.9883785,54.0506196,3.3848028,40.9300663,16.7328242,2.3046534,2.3143714,25.6903141,67.8083205,67.6308769,54.9761882,26.0802987,8.1402681,17.2816459,69.4854519,34.6399035,47.5430092,30.8544043,24.1358497,54.3585984,3.1635932,41.3572125,17.8999439\r\n1051,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1761594,2.2050687,24.4958004,67.5603577,66.3219218,56.1818307,25.9776691,7.3857807,16.3725689,69.937648,36.018739,46.6244183,29.0275218,22.9883785,54.0506196,3.3848028,40.9300663,16.7328242,2.3046534,2.3143714,25.6903141,67.8083205,67.6308769,54.9761882,26.0802987,8.1402681,17.2816459,69.4854519,34.6399035,47.5430092,30.8544043,24.1358497,54.3585984,3.1635932,41.3572125,17.8999439,2.4465618,2.4936074,25.5967971,65.987292,67.809426,55.4724742,26.3488961,7.9349455,17.2315653,68.261369,34.1518758,47.3568657,31.6294746,24.8425315,53.9891213,2.9248094,39.8046877,15.7703704\r\n1052,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3046534,2.3143714,25.6903141,67.8083205,67.6308769,54.9761882,26.0802987,8.1402681,17.2816459,69.4854519,34.6399035,47.5430092,30.8544043,24.1358497,54.3585984,3.1635932,41.3572125,17.8999439,2.4465618,2.4936074,25.5967971,65.987292,67.809426,55.4724742,26.3488961,7.9349455,17.2315653,68.261369,34.1518758,47.3568657,31.6294746,24.8425315,53.9891213,2.9248094,39.8046877,15.7703704,2.3331489,2.3910619,27.5751586,67.5499686,68.2837258,58.4147465,26.5292703,7.4669232,17.4185376,67.6422646,33.2409998,48.5653059,32.6637753,26.3723157,53.9510396,2.8662793,40.7122235,14.5626329\r\n1053,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4465618,2.4936074,25.5967971,65.987292,67.809426,55.4724742,26.3488961,7.9349455,17.2315653,68.261369,34.1518758,47.3568657,31.6294746,24.8425315,53.9891213,2.9248094,39.8046877,15.7703704,2.3331489,2.3910619,27.5751586,67.5499686,68.2837258,58.4147465,26.5292703,7.4669232,17.4185376,67.6422646,33.2409998,48.5653059,32.6637753,26.3723157,53.9510396,2.8662793,40.7122235,14.5626329,2.6523928,2.6794399,28.181329,65.7929176,67.2739119,59.1088111,27.3754785,7.6547497,17.6115508,66.7420752,33.5207083,47.3651534,33.7122993,27.3361322,53.55129,2.8134179,40.2026215,15.7718649\r\n1054,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3331489,2.3910619,27.5751586,67.5499686,68.2837258,58.4147465,26.5292703,7.4669232,17.4185376,67.6422646,33.2409998,48.5653059,32.6637753,26.3723157,53.9510396,2.8662793,40.7122235,14.5626329,2.6523928,2.6794399,28.181329,65.7929176,67.2739119,59.1088111,27.3754785,7.6547497,17.6115508,66.7420752,33.5207083,47.3651534,33.7122993,27.3361322,53.55129,2.8134179,40.2026215,15.7718649,2.9401691,3.0014794,28.7230387,67.3651594,68.448493,59.9372819,28.6245887,8.2054912,18.1723913,65.2951138,33.3408687,48.8504203,34.7360994,27.9510869,53.1008743,2.7982779,39.9097936,16.6334888\r\n1055,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6523928,2.6794399,28.181329,65.7929176,67.2739119,59.1088111,27.3754785,7.6547497,17.6115508,66.7420752,33.5207083,47.3651534,33.7122993,27.3361322,53.55129,2.8134179,40.2026215,15.7718649,2.9401691,3.0014794,28.7230387,67.3651594,68.448493,59.9372819,28.6245887,8.2054912,18.1723913,65.2951138,33.3408687,48.8504203,34.7360994,27.9510869,53.1008743,2.7982779,39.9097936,16.6334888,2.9557583,2.9728069,29.4146859,66.4508041,67.2187812,58.9831242,27.6192779,8.28564,17.6366432,64.4180941,32.4596038,48.509225,35.935062,28.8789823,53.4417155,2.8492067,38.8993588,17.1140351\r\n1056,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.108392,1.1791113,15.1888796,64.809513,67.0275552,47.8301186,23.4873988,30.8490531,22.3515042,68.2656177,33.3321797,45.7278794,19.3245654,14.8992762,74.4680657,3.3898467,41.3348952,11.0197368,1.0257441,1.0969008,14.5670993,66.0018848,67.8538761,48.3638684,23.0947829,30.3615996,21.4215246,68.2660879,33.7760059,46.088882,18.6217129,14.4508671,74.4063314,3.049424,42.3247253,11.2068966,1.1121333,1.1979836,14.2266155,66.4191612,67.773157,49.406659,24.7089844,30.4993556,22.9308102,68.8385023,33.6776922,45.0951351,18.9216619,14.339523,73.9247369,3.2379913,43.6664325,11.0909091\r\n1057,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0257441,1.0969008,14.5670993,66.0018848,67.8538761,48.3638684,23.0947829,30.3615996,21.4215246,68.2660879,33.7760059,46.088882,18.6217129,14.4508671,74.4063314,3.049424,42.3247253,11.2068966,1.1121333,1.1979836,14.2266155,66.4191612,67.773157,49.406659,24.7089844,30.4993556,22.9308102,68.8385023,33.6776922,45.0951351,18.9216619,14.339523,73.9247369,3.2379913,43.6664325,11.0909091,1.2239692,1.3097078,14.0430637,65.9313938,67.8427894,50.6726889,25.1244433,30.6459008,22.0504675,68.6818155,34.9839433,44.7068291,18.3216787,13.8074025,73.6120641,3.4994709,44.8749474,12.3616236\r\n1058,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1121333,1.1979836,14.2266155,66.4191612,67.773157,49.406659,24.7089844,30.4993556,22.9308102,68.8385023,33.6776922,45.0951351,18.9216619,14.339523,73.9247369,3.2379913,43.6664325,11.0909091,1.2239692,1.3097078,14.0430637,65.9313938,67.8427894,50.6726889,25.1244433,30.6459008,22.0504675,68.6818155,34.9839433,44.7068291,18.3216787,13.8074025,73.6120641,3.4994709,44.8749474,12.3616236,1.3121414,1.3545863,14.415447,65.7433763,68.0081436,50.7197633,25.5583563,30.1281843,22.2403268,69.7351905,35.7833724,44.3968433,18.3653539,13.7234337,72.489376,3.8207544,45.144864,11.9791708\r\n1059,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2239692,1.3097078,14.0430637,65.9313938,67.8427894,50.6726889,25.1244433,30.6459008,22.0504675,68.6818155,34.9839433,44.7068291,18.3216787,13.8074025,73.6120641,3.4994709,44.8749474,12.3616236,1.3121414,1.3545863,14.415447,65.7433763,68.0081436,50.7197633,25.5583563,30.1281843,22.2403268,69.7351905,35.7833724,44.3968433,18.3653539,13.7234337,72.489376,3.8207544,45.144864,11.9791708,1.3344591,1.3773181,13.8549212,65.443665,67.1579052,51.1822915,25.1788324,29.9848925,21.1324975,68.5487293,35.2304139,44.3315846,17.9424553,13.1569758,72.2663236,3.5945946,45.0467901,12.8333333\r\n1060,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3121414,1.3545863,14.415447,65.7433763,68.0081436,50.7197633,25.5583563,30.1281843,22.2403268,69.7351905,35.7833724,44.3968433,18.3653539,13.7234337,72.489376,3.8207544,45.144864,11.9791708,1.3344591,1.3773181,13.8549212,65.443665,67.1579052,51.1822915,25.1788324,29.9848925,21.1324975,68.5487293,35.2304139,44.3315846,17.9424553,13.1569758,72.2663236,3.5945946,45.0467901,12.8333333,1.2018672,1.2583654,13.7718423,64.7481915,65.6210071,51.5956266,25.2689032,29.5539732,20.6854864,68.0734966,35.2267817,45.147007,17.2808674,12.576777,72.6874165,3.6964441,44.0016593,12.4172185\r\n1061,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3344591,1.3773181,13.8549212,65.443665,67.1579052,51.1822915,25.1788324,29.9848925,21.1324975,68.5487293,35.2304139,44.3315846,17.9424553,13.1569758,72.2663236,3.5945946,45.0467901,12.8333333,1.2018672,1.2583654,13.7718423,64.7481915,65.6210071,51.5956266,25.2689032,29.5539732,20.6854864,68.0734966,35.2267817,45.147007,17.2808674,12.576777,72.6874165,3.6964441,44.0016593,12.4172185,1.1112188,1.1700825,12.3487389,64.0720748,67.369004,53.2670894,26.3867377,29.2097803,20.1035517,68.8469396,37.3248851,44.5810377,16.5333512,11.8377806,72.2661755,3.8515322,43.3333145,12.4561404\r\n1062,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2018672,1.2583654,13.7718423,64.7481915,65.6210071,51.5956266,25.2689032,29.5539732,20.6854864,68.0734966,35.2267817,45.147007,17.2808674,12.576777,72.6874165,3.6964441,44.0016593,12.4172185,1.1112188,1.1700825,12.3487389,64.0720748,67.369004,53.2670894,26.3867377,29.2097803,20.1035517,68.8469396,37.3248851,44.5810377,16.5333512,11.8377806,72.2661755,3.8515322,43.3333145,12.4561404,1.2753781,1.3585119,11.9370096,62.9468182,66.2766678,52.0310449,26.5597175,28.6525138,19.9118546,68.7882984,36.9941151,43.6364021,16.7169516,11.9406783,71.9720567,4.2278458,41.6753243,12.3728772\r\n1063,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1112188,1.1700825,12.3487389,64.0720748,67.369004,53.2670894,26.3867377,29.2097803,20.1035517,68.8469396,37.3248851,44.5810377,16.5333512,11.8377806,72.2661755,3.8515322,43.3333145,12.4561404,1.2753781,1.3585119,11.9370096,62.9468182,66.2766678,52.0310449,26.5597175,28.6525138,19.9118546,68.7882984,36.9941151,43.6364021,16.7169516,11.9406783,71.9720567,4.2278458,41.6753243,12.3728772,1.169214,1.2268952,12.531643,62.8661163,67.0830415,51.1594531,24.4151505,27.9872151,19.1076778,67.2430067,36.4977338,44.5520517,17.0383037,12.3848836,72.7477619,3.8311384,41.5346378,11.9426637\r\n1064,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2753781,1.3585119,11.9370096,62.9468182,66.2766678,52.0310449,26.5597175,28.6525138,19.9118546,68.7882984,36.9941151,43.6364021,16.7169516,11.9406783,71.9720567,4.2278458,41.6753243,12.3728772,1.169214,1.2268952,12.531643,62.8661163,67.0830415,51.1594531,24.4151505,27.9872151,19.1076778,67.2430067,36.4977338,44.5520517,17.0383037,12.3848836,72.7477619,3.8311384,41.5346378,11.9426637,1.2929462,1.3537365,12.3237958,61.33533,66.9956723,49.8860007,25.1630772,27.1556738,19.8418943,68.6287552,37.3202484,44.0998487,17.4192007,12.4422877,71.8418426,3.9200421,41.1180878,9.468426\r\n1065,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.169214,1.2268952,12.531643,62.8661163,67.0830415,51.1594531,24.4151505,27.9872151,19.1076778,67.2430067,36.4977338,44.5520517,17.0383037,12.3848836,72.7477619,3.8311384,41.5346378,11.9426637,1.2929462,1.3537365,12.3237958,61.33533,66.9956723,49.8860007,25.1630772,27.1556738,19.8418943,68.6287552,37.3202484,44.0998487,17.4192007,12.4422877,71.8418426,3.9200421,41.1180878,9.468426,1.2648798,1.3295535,11.7834084,62.7006749,67.40533,50.677167,25.6797828,28.1430814,18.8885313,69.2284119,38.1313685,44.9287191,16.8032887,12.1038339,72.5861306,3.8504157,40.8287313,9.2105125\r\n1066,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2929462,1.3537365,12.3237958,61.33533,66.9956723,49.8860007,25.1630772,27.1556738,19.8418943,68.6287552,37.3202484,44.0998487,17.4192007,12.4422877,71.8418426,3.9200421,41.1180878,9.468426,1.2648798,1.3295535,11.7834084,62.7006749,67.40533,50.677167,25.6797828,28.1430814,18.8885313,69.2284119,38.1313685,44.9287191,16.8032887,12.1038339,72.5861306,3.8504157,40.8287313,9.2105125,1.4636837,1.5311044,11.3337025,62.8637131,67.2213909,50.2228339,26.6096707,28.2842862,19.7114314,70.9341479,38.7897788,42.7977275,16.894587,11.6524256,71.6104348,4.1593955,39.8052623,9.4298122\r\n1067,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2648798,1.3295535,11.7834084,62.7006749,67.40533,50.677167,25.6797828,28.1430814,18.8885313,69.2284119,38.1313685,44.9287191,16.8032887,12.1038339,72.5861306,3.8504157,40.8287313,9.2105125,1.4636837,1.5311044,11.3337025,62.8637131,67.2213909,50.2228339,26.6096707,28.2842862,19.7114314,70.9341479,38.7897788,42.7977275,16.894587,11.6524256,71.6104348,4.1593955,39.8052623,9.4298122,1.6067483,1.6342208,11.2318779,61.7587447,68.2105702,49.6430014,25.6525242,27.8855645,18.804124,70.2320385,39.2821236,42.3681128,17.0753551,11.6925893,71.1132,4.1360307,41.2860556,10.4650649\r\n1068,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4636837,1.5311044,11.3337025,62.8637131,67.2213909,50.2228339,26.6096707,28.2842862,19.7114314,70.9341479,38.7897788,42.7977275,16.894587,11.6524256,71.6104348,4.1593955,39.8052623,9.4298122,1.6067483,1.6342208,11.2318779,61.7587447,68.2105702,49.6430014,25.6525242,27.8855645,18.804124,70.2320385,39.2821236,42.3681128,17.0753551,11.6925893,71.1132,4.1360307,41.2860556,10.4650649,1.6814075,1.7094974,12.4509813,62.4387016,68.0470567,48.0731553,24.9502422,26.1445796,18.6998029,70.7324307,38.4128913,43.3873279,18.0572489,12.8197375,70.7028897,4.2559915,41.8704117,11.6666135\r\n1069,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6067483,1.6342208,11.2318779,61.7587447,68.2105702,49.6430014,25.6525242,27.8855645,18.804124,70.2320385,39.2821236,42.3681128,17.0753551,11.6925893,71.1132,4.1360307,41.2860556,10.4650649,1.6814075,1.7094974,12.4509813,62.4387016,68.0470567,48.0731553,24.9502422,26.1445796,18.6998029,70.7324307,38.4128913,43.3873279,18.0572489,12.8197375,70.7028897,4.2559915,41.8704117,11.6666135,1.5491241,1.5294352,12.5110595,63.0508126,68.3462524,48.2833654,24.1437744,28.0218377,20.2005391,70.4425212,37.9211601,44.1901266,18.4176816,12.8443355,70.1618328,4.2220756,42.829201,12.0512308\r\n1070,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6814075,1.7094974,12.4509813,62.4387016,68.0470567,48.0731553,24.9502422,26.1445796,18.6998029,70.7324307,38.4128913,43.3873279,18.0572489,12.8197375,70.7028897,4.2559915,41.8704117,11.6666135,1.5491241,1.5294352,12.5110595,63.0508126,68.3462524,48.2833654,24.1437744,28.0218377,20.2005391,70.4425212,37.9211601,44.1901266,18.4176816,12.8443355,70.1618328,4.2220756,42.829201,12.0512308,1.5644109,1.5337172,12.3794462,65.1370699,69.3119087,49.1849171,25.033782,28.9812706,20.9639658,72.4754003,38.2519658,45.0027253,18.3121991,12.7751778,70.6559661,4.5141307,41.7590178,11.081039\r\n1071,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5491241,1.5294352,12.5110595,63.0508126,68.3462524,48.2833654,24.1437744,28.0218377,20.2005391,70.4425212,37.9211601,44.1901266,18.4176816,12.8443355,70.1618328,4.2220756,42.829201,12.0512308,1.5644109,1.5337172,12.3794462,65.1370699,69.3119087,49.1849171,25.033782,28.9812706,20.9639658,72.4754003,38.2519658,45.0027253,18.3121991,12.7751778,70.6559661,4.5141307,41.7590178,11.081039,1.3594406,1.3533094,12.1450007,66.6108693,68.572241,49.7754975,23.9888408,31.1838935,22.2768867,70.5825717,37.774052,44.3868504,18.2211665,12.6915241,71.147205,4.5918383,42.7871408,11.684741\r\n1072,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5644109,1.5337172,12.3794462,65.1370699,69.3119087,49.1849171,25.033782,28.9812706,20.9639658,72.4754003,38.2519658,45.0027253,18.3121991,12.7751778,70.6559661,4.5141307,41.7590178,11.081039,1.3594406,1.3533094,12.1450007,66.6108693,68.572241,49.7754975,23.9888408,31.1838935,22.2768867,70.5825717,37.774052,44.3868504,18.2211665,12.6915241,71.147205,4.5918383,42.7871408,11.684741,1.3932031,1.4170126,12.1677016,67.0006033,69.8496292,50.3990042,24.5440912,31.8971112,22.1045182,69.9901596,37.5264279,43.8826276,18.7540187,12.8792642,71.1835929,4.4010606,44.7586544,9.6858166\r\n1073,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3594406,1.3533094,12.1450007,66.6108693,68.572241,49.7754975,23.9888408,31.1838935,22.2768867,70.5825717,37.774052,44.3868504,18.2211665,12.6915241,71.147205,4.5918383,42.7871408,11.684741,1.3932031,1.4170126,12.1677016,67.0006033,69.8496292,50.3990042,24.5440912,31.8971112,22.1045182,69.9901596,37.5264279,43.8826276,18.7540187,12.8792642,71.1835929,4.4010606,44.7586544,9.6858166,1.271313,1.2949957,12.5762,65.9690925,69.912222,50.5342747,24.311135,31.0188655,21.2543077,69.6286558,38.0590778,44.3615268,17.9347651,12.9475569,71.2609025,4.1064402,44.5291136,8.7499544\r\n1074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3932031,1.4170126,12.1677016,67.0006033,69.8496292,50.3990042,24.5440912,31.8971112,22.1045182,69.9901596,37.5264279,43.8826276,18.7540187,12.8792642,71.1835929,4.4010606,44.7586544,9.6858166,1.271313,1.2949957,12.5762,65.9690925,69.912222,50.5342747,24.311135,31.0188655,21.2543077,69.6286558,38.0590778,44.3615268,17.9347651,12.9475569,71.2609025,4.1064402,44.5291136,8.7499544,1.2485846,1.2713737,12.6685787,68.1247966,69.759227,51.5775464,24.8738358,31.4791979,22.3693463,70.013414,37.0034926,44.5448355,17.6940738,13.000353,70.8463398,3.9907372,44.7820231,7.8947368\r\n1075,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.271313,1.2949957,12.5762,65.9690925,69.912222,50.5342747,24.311135,31.0188655,21.2543077,69.6286558,38.0590778,44.3615268,17.9347651,12.9475569,71.2609025,4.1064402,44.5291136,8.7499544,1.2485846,1.2713737,12.6685787,68.1247966,69.759227,51.5775464,24.8738358,31.4791979,22.3693463,70.013414,37.0034926,44.5448355,17.6940738,13.000353,70.8463398,3.9907372,44.7820231,7.8947368,1.2442225,1.2660658,11.5878918,68.2267902,69.8108353,52.1673988,25.365862,32.4348232,22.8516456,70.1176827,37.6541234,43.4354752,16.5566246,12.188736,70.9685921,3.9358607,44.709604,7.3113208\r\n1076,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2485846,1.2713737,12.6685787,68.1247966,69.759227,51.5775464,24.8738358,31.4791979,22.3693463,70.013414,37.0034926,44.5448355,17.6940738,13.000353,70.8463398,3.9907372,44.7820231,7.8947368,1.2442225,1.2660658,11.5878918,68.2267902,69.8108353,52.1673988,25.365862,32.4348232,22.8516456,70.1176827,37.6541234,43.4354752,16.5566246,12.188736,70.9685921,3.9358607,44.709604,7.3113208,1.2378452,1.2762351,12.0163277,67.8289808,70.019682,54.1674433,27.8919365,30.4089637,23.2267274,70.7465693,39.3957354,42.7546863,16.25822,12.1156283,70.686035,4.4011441,45.6343518,7.7830189\r\n1077,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2442225,1.2660658,11.5878918,68.2267902,69.8108353,52.1673988,25.365862,32.4348232,22.8516456,70.1176827,37.6541234,43.4354752,16.5566246,12.188736,70.9685921,3.9358607,44.709604,7.3113208,1.2378452,1.2762351,12.0163277,67.8289808,70.019682,54.1674433,27.8919365,30.4089637,23.2267274,70.7465693,39.3957354,42.7546863,16.25822,12.1156283,70.686035,4.4011441,45.6343518,7.7830189,1.218955,1.2644044,10.8329732,65.3948885,68.9591641,54.7796715,28.73688,29.3383079,22.4331966,69.4242079,39.7654374,41.3383251,15.2420194,11.0826088,69.5443525,4.1870369,46.3054959,8.4474847\r\n1078,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2378452,1.2762351,12.0163277,67.8289808,70.019682,54.1674433,27.8919365,30.4089637,23.2267274,70.7465693,39.3957354,42.7546863,16.25822,12.1156283,70.686035,4.4011441,45.6343518,7.7830189,1.218955,1.2644044,10.8329732,65.3948885,68.9591641,54.7796715,28.73688,29.3383079,22.4331966,69.4242079,39.7654374,41.3383251,15.2420194,11.0826088,69.5443525,4.1870369,46.3054959,8.4474847,1.2819213,1.3308875,10.8587953,64.8092011,68.915438,53.8224598,30.4392433,26.9522481,19.3365143,70.3010069,39.7089603,42.1877699,14.9266876,10.7759456,69.3531056,4.1797349,45.530375,9.6982717\r\n1079,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.218955,1.2644044,10.8329732,65.3948885,68.9591641,54.7796715,28.73688,29.3383079,22.4331966,69.4242079,39.7654374,41.3383251,15.2420194,11.0826088,69.5443525,4.1870369,46.3054959,8.4474847,1.2819213,1.3308875,10.8587953,64.8092011,68.915438,53.8224598,30.4392433,26.9522481,19.3365143,70.3010069,39.7089603,42.1877699,14.9266876,10.7759456,69.3531056,4.1797349,45.530375,9.6982717,1.2494978,1.2731808,10.5949158,64.0493044,68.2001302,53.5327174,30.503367,26.8318612,20.3639144,70.4327273,39.4394214,42.1962871,13.9047666,10.1383511,68.1581883,4.3914696,43.859418,10.1239628\r\n1080,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2819213,1.3308875,10.8587953,64.8092011,68.915438,53.8224598,30.4392433,26.9522481,19.3365143,70.3010069,39.7089603,42.1877699,14.9266876,10.7759456,69.3531056,4.1797349,45.530375,9.6982717,1.2494978,1.2731808,10.5949158,64.0493044,68.2001302,53.5327174,30.503367,26.8318612,20.3639144,70.4327273,39.4394214,42.1962871,13.9047666,10.1383511,68.1581883,4.3914696,43.859418,10.1239628,1.1427078,1.1800565,10.3440052,66.1209366,68.5468496,55.0670905,31.2839252,27.5872859,21.14926,68.8235574,38.9456082,42.7438675,14.4133411,10.3649203,67.7526194,4.2606963,43.0559101,8.7209269\r\n1081,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2494978,1.2731808,10.5949158,64.0493044,68.2001302,53.5327174,30.503367,26.8318612,20.3639144,70.4327273,39.4394214,42.1962871,13.9047666,10.1383511,68.1581883,4.3914696,43.859418,10.1239628,1.1427078,1.1800565,10.3440052,66.1209366,68.5468496,55.0670905,31.2839252,27.5872859,21.14926,68.8235574,38.9456082,42.7438675,14.4133411,10.3649203,67.7526194,4.2606963,43.0559101,8.7209269,1.0950658,1.1320535,10.2586931,64.4126846,67.8697373,53.3538749,32.1594424,27.396001,20.4331675,68.9267351,40.1656781,42.2980494,13.7524166,9.9951855,67.4321055,4.6958554,42.6158162,8.2692339\r\n1082,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1427078,1.1800565,10.3440052,66.1209366,68.5468496,55.0670905,31.2839252,27.5872859,21.14926,68.8235574,38.9456082,42.7438675,14.4133411,10.3649203,67.7526194,4.2606963,43.0559101,8.7209269,1.0950658,1.1320535,10.2586931,64.4126846,67.8697373,53.3538749,32.1594424,27.396001,20.4331675,68.9267351,40.1656781,42.2980494,13.7524166,9.9951855,67.4321055,4.6958554,42.6158162,8.2692339,0.9712401,1.0080807,9.9561711,65.494471,68.0837159,54.092752,31.8564799,26.3438045,20.0647408,67.4376276,38.6017352,43.3233615,13.4606171,9.4973488,67.4160131,4.5940611,42.0573941,7.5645784\r\n1083,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0950658,1.1320535,10.2586931,64.4126846,67.8697373,53.3538749,32.1594424,27.396001,20.4331675,68.9267351,40.1656781,42.2980494,13.7524166,9.9951855,67.4321055,4.6958554,42.6158162,8.2692339,0.9712401,1.0080807,9.9561711,65.494471,68.0837159,54.092752,31.8564799,26.3438045,20.0647408,67.4376276,38.6017352,43.3233615,13.4606171,9.4973488,67.4160131,4.5940611,42.0573941,7.5645784,0.9745482,1.0108713,9.8886656,64.8895139,67.6649752,52.2845623,31.3590204,26.2110275,19.438942,67.0919437,38.2473809,41.8947038,13.4256304,9.6712076,67.1132998,4.2300187,40.8873742,5.9782609\r\n1084,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9712401,1.0080807,9.9561711,65.494471,68.0837159,54.092752,31.8564799,26.3438045,20.0647408,67.4376276,38.6017352,43.3233615,13.4606171,9.4973488,67.4160131,4.5940611,42.0573941,7.5645784,0.9745482,1.0108713,9.8886656,64.8895139,67.6649752,52.2845623,31.3590204,26.2110275,19.438942,67.0919437,38.2473809,41.8947038,13.4256304,9.6712076,67.1132998,4.2300187,40.8873742,5.9782609,1.0231073,1.0798533,10.16915,63.6540395,67.3934455,50.8293904,31.898683,25.1701138,21.0698703,67.1701699,38.6785507,41.1202061,13.7976496,10.2231314,65.8822723,4.751135,40.281796,5.7620839\r\n1085,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9745482,1.0108713,9.8886656,64.8895139,67.6649752,52.2845623,31.3590204,26.2110275,19.438942,67.0919437,38.2473809,41.8947038,13.4256304,9.6712076,67.1132998,4.2300187,40.8873742,5.9782609,1.0231073,1.0798533,10.16915,63.6540395,67.3934455,50.8293904,31.898683,25.1701138,21.0698703,67.1701699,38.6785507,41.1202061,13.7976496,10.2231314,65.8822723,4.751135,40.281796,5.7620839,0.8964142,0.9312399,10.3168301,63.8219863,68.0096296,52.6750479,31.8974617,24.0996422,22.2824716,66.9711489,39.3934057,40.4934705,13.5852433,10.6246641,64.9398012,4.6042095,39.9325414,4.5275608\r\n1086,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0231073,1.0798533,10.16915,63.6540395,67.3934455,50.8293904,31.898683,25.1701138,21.0698703,67.1701699,38.6785507,41.1202061,13.7976496,10.2231314,65.8822723,4.751135,40.281796,5.7620839,0.8964142,0.9312399,10.3168301,63.8219863,68.0096296,52.6750479,31.8974617,24.0996422,22.2824716,66.9711489,39.3934057,40.4934705,13.5852433,10.6246641,64.9398012,4.6042095,39.9325414,4.5275608,0.857541,0.8690726,10.554079,61.6671168,65.2694105,50.2232014,32.4574759,21.0698806,21.2576868,67.6820997,40.3643713,38.7450545,13.8809466,10.9357718,63.8536562,4.3890005,39.4400685,4.1338599\r\n1087,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8964142,0.9312399,10.3168301,63.8219863,68.0096296,52.6750479,31.8974617,24.0996422,22.2824716,66.9711489,39.3934057,40.4934705,13.5852433,10.6246641,64.9398012,4.6042095,39.9325414,4.5275608,0.857541,0.8690726,10.554079,61.6671168,65.2694105,50.2232014,32.4574759,21.0698806,21.2576868,67.6820997,40.3643713,38.7450545,13.8809466,10.9357718,63.8536562,4.3890005,39.4400685,4.1338599,0.7977176,0.8095993,10.8404838,60.4372506,65.2145151,48.9009565,32.0915724,19.1502279,20.7736802,69.2227566,41.3670114,38.4059971,13.4670258,10.7186542,62.6377977,4.5656593,40.6857709,5.0813008\r\n1088,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.857541,0.8690726,10.554079,61.6671168,65.2694105,50.2232014,32.4574759,21.0698806,21.2576868,67.6820997,40.3643713,38.7450545,13.8809466,10.9357718,63.8536562,4.3890005,39.4400685,4.1338599,0.7977176,0.8095993,10.8404838,60.4372506,65.2145151,48.9009565,32.0915724,19.1502279,20.7736802,69.2227566,41.3670114,38.4059971,13.4670258,10.7186542,62.6377977,4.5656593,40.6857709,5.0813008,0.597619,0.6096388,10.3345207,61.051995,66.0481844,48.5384033,32.0870629,18.212265,20.7182346,69.098923,41.5636637,36.8270727,13.6328071,10.6088954,61.1731365,4.5191974,39.4179936,5.1229487\r\n1089,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7977176,0.8095993,10.8404838,60.4372506,65.2145151,48.9009565,32.0915724,19.1502279,20.7736802,69.2227566,41.3670114,38.4059971,13.4670258,10.7186542,62.6377977,4.5656593,40.6857709,5.0813008,0.597619,0.6096388,10.3345207,61.051995,66.0481844,48.5384033,32.0870629,18.212265,20.7182346,69.098923,41.5636637,36.8270727,13.6328071,10.6088954,61.1731365,4.5191974,39.4179936,5.1229487,0.6254252,0.6653603,10.3121825,57.8028045,63.3855419,46.1747374,32.657669,16.3955254,20.6367953,70.8721039,43.2453768,34.5961071,14.1095817,10.8631331,58.80753,4.9814558,39.1142133,5.6722269\r\n1090,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.597619,0.6096388,10.3345207,61.051995,66.0481844,48.5384033,32.0870629,18.212265,20.7182346,69.098923,41.5636637,36.8270727,13.6328071,10.6088954,61.1731365,4.5191974,39.4179936,5.1229487,0.6254252,0.6653603,10.3121825,57.8028045,63.3855419,46.1747374,32.657669,16.3955254,20.6367953,70.8721039,43.2453768,34.5961071,14.1095817,10.8631331,58.80753,4.9814558,39.1142133,5.6722269,0.6328785,0.6890344,9.771548,58.4196251,64.6396645,46.173412,32.3302328,14.9576086,19.602625,71.6257037,44.1114889,36.1549965,14.0141915,10.1621932,57.427055,5.4683429,39.2439038,7.0280779\r\n1091,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6254252,0.6653603,10.3121825,57.8028045,63.3855419,46.1747374,32.657669,16.3955254,20.6367953,70.8721039,43.2453768,34.5961071,14.1095817,10.8631331,58.80753,4.9814558,39.1142133,5.6722269,0.6328785,0.6890344,9.771548,58.4196251,64.6396645,46.173412,32.3302328,14.9576086,19.602625,71.6257037,44.1114889,36.1549965,14.0141915,10.1621932,57.427055,5.4683429,39.2439038,7.0280779,0.540963,0.5754224,9.8272631,60.6556318,65.1054966,47.1826767,31.8723798,13.9123184,17.5520778,72.7119837,43.7920751,36.8056701,13.6802035,9.9746233,56.0969119,5.3085799,40.4131613,8.1348874\r\n1092,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6328785,0.6890344,9.771548,58.4196251,64.6396645,46.173412,32.3302328,14.9576086,19.602625,71.6257037,44.1114889,36.1549965,14.0141915,10.1621932,57.427055,5.4683429,39.2439038,7.0280779,0.540963,0.5754224,9.8272631,60.6556318,65.1054966,47.1826767,31.8723798,13.9123184,17.5520778,72.7119837,43.7920751,36.8056701,13.6802035,9.9746233,56.0969119,5.3085799,40.4131613,8.1348874,0.630993,0.6655299,9.9892314,61.2021722,65.5594655,46.8157828,31.8869261,13.0518145,16.6384233,73.0607318,43.5030121,37.6636411,14.0493212,9.7965587,55.0177791,5.4850337,41.0053021,8.3333366\r\n1093,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.540963,0.5754224,9.8272631,60.6556318,65.1054966,47.1826767,31.8723798,13.9123184,17.5520778,72.7119837,43.7920751,36.8056701,13.6802035,9.9746233,56.0969119,5.3085799,40.4131613,8.1348874,0.630993,0.6655299,9.9892314,61.2021722,65.5594655,46.8157828,31.8869261,13.0518145,16.6384233,73.0607318,43.5030121,37.6636411,14.0493212,9.7965587,55.0177791,5.4850337,41.0053021,8.3333366,0.5866896,0.6472004,10.0345475,62.3369529,67.1671195,48.9257346,31.4961383,12.046124,16.4823634,71.7673982,42.3850743,38.309988,14.3466978,9.7270131,54.2725423,5.9239667,40.351821,9.1085307\r\n1094,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.630993,0.6655299,9.9892314,61.2021722,65.5594655,46.8157828,31.8869261,13.0518145,16.6384233,73.0607318,43.5030121,37.6636411,14.0493212,9.7965587,55.0177791,5.4850337,41.0053021,8.3333366,0.5866896,0.6472004,10.0345475,62.3369529,67.1671195,48.9257346,31.4961383,12.046124,16.4823634,71.7673982,42.3850743,38.309988,14.3466978,9.7270131,54.2725423,5.9239667,40.351821,9.1085307,0.6687199,0.7137365,9.0697894,62.0975467,66.7994156,49.2639989,30.3768706,12.6705648,16.787081,71.3454909,41.1269752,38.5634708,13.6303648,8.974834,52.9861649,5.8202397,40.5789539,9.8393653\r\n1095,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5866896,0.6472004,10.0345475,62.3369529,67.1671195,48.9257346,31.4961383,12.046124,16.4823634,71.7673982,42.3850743,38.309988,14.3466978,9.7270131,54.2725423,5.9239667,40.351821,9.1085307,0.6687199,0.7137365,9.0697894,62.0975467,66.7994156,49.2639989,30.3768706,12.6705648,16.787081,71.3454909,41.1269752,38.5634708,13.6303648,8.974834,52.9861649,5.8202397,40.5789539,9.8393653,0.7229833,0.7704116,9.4044311,63.0827525,67.430244,50.4591481,29.1359018,12.4271892,17.1232001,71.6018088,40.5022104,39.3666037,13.9407254,9.2334657,53.5780189,5.3480598,42.014634,9.9190364\r\n1096,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6687199,0.7137365,9.0697894,62.0975467,66.7994156,49.2639989,30.3768706,12.6705648,16.787081,71.3454909,41.1269752,38.5634708,13.6303648,8.974834,52.9861649,5.8202397,40.5789539,9.8393653,0.7229833,0.7704116,9.4044311,63.0827525,67.430244,50.4591481,29.1359018,12.4271892,17.1232001,71.6018088,40.5022104,39.3666037,13.9407254,9.2334657,53.5780189,5.3480598,42.014634,9.9190364,0.79695,0.8157021,10.0249531,64.8998986,67.8861513,51.9861848,29.5952737,13.1751564,17.9949095,70.6093054,39.5043477,38.8464791,13.9490675,9.1499502,53.05088,5.1932368,42.5341893,9.0726246\r\n1097,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7229833,0.7704116,9.4044311,63.0827525,67.430244,50.4591481,29.1359018,12.4271892,17.1232001,71.6018088,40.5022104,39.3666037,13.9407254,9.2334657,53.5780189,5.3480598,42.014634,9.9190364,0.79695,0.8157021,10.0249531,64.8998986,67.8861513,51.9861848,29.5952737,13.1751564,17.9949095,70.6093054,39.5043477,38.8464791,13.9490675,9.1499502,53.05088,5.1932368,42.5341893,9.0726246,0.7472226,0.7497183,10.6676478,65.3718681,67.913968,51.516609,30.2770455,13.6632659,19.3008843,70.1688208,39.1338023,39.6786163,13.9939787,9.6798335,52.9131345,4.4270378,42.3780586,7.4468479\r\n1098,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.79695,0.8157021,10.0249531,64.8998986,67.8861513,51.9861848,29.5952737,13.1751564,17.9949095,70.6093054,39.5043477,38.8464791,13.9490675,9.1499502,53.05088,5.1932368,42.5341893,9.0726246,0.7472226,0.7497183,10.6676478,65.3718681,67.913968,51.516609,30.2770455,13.6632659,19.3008843,70.1688208,39.1338023,39.6786163,13.9939787,9.6798335,52.9131345,4.4270378,42.3780586,7.4468479,0.8054191,0.80794,10.9070447,64.3624061,67.8296701,51.6016727,30.612564,13.3686971,18.6989398,70.0834358,39.7752277,38.5140762,14.0384721,9.7481772,52.6958607,4.0180236,40.8516543,6.1966213\r\n1099,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7472226,0.7497183,10.6676478,65.3718681,67.913968,51.516609,30.2770455,13.6632659,19.3008843,70.1688208,39.1338023,39.6786163,13.9939787,9.6798335,52.9131345,4.4270378,42.3780586,7.4468479,0.8054191,0.80794,10.9070447,64.3624061,67.8296701,51.6016727,30.612564,13.3686971,18.6989398,70.0834358,39.7752277,38.5140762,14.0384721,9.7481772,52.6958607,4.0180236,40.8516543,6.1966213,0.842845,0.8454489,10.5702949,63.7472676,66.9133508,51.1677448,29.9153854,13.0322457,18.3880276,69.0599669,38.8739317,38.1310983,13.5583959,9.5722797,51.4181072,3.8523338,40.0694491,5.7692308\r\n1100,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8054191,0.80794,10.9070447,64.3624061,67.8296701,51.6016727,30.612564,13.3686971,18.6989398,70.0834358,39.7752277,38.5140762,14.0384721,9.7481772,52.6958607,4.0180236,40.8516543,6.1966213,0.842845,0.8454489,10.5702949,63.7472676,66.9133508,51.1677448,29.9153854,13.0322457,18.3880276,69.0599669,38.8739317,38.1310983,13.5583959,9.5722797,51.4181072,3.8523338,40.0694491,5.7692308,1.1237132,1.1263654,10.5246599,64.2709427,66.8016632,50.2198663,29.6906155,13.6916525,18.9849788,69.1408921,39.2409732,37.8996032,14.0834195,9.8383155,52.2539979,3.6914651,41.3043671,5.5066079\r\n1101,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.842845,0.8454489,10.5702949,63.7472676,66.9133508,51.1677448,29.9153854,13.0322457,18.3880276,69.0599669,38.8739317,38.1310983,13.5583959,9.5722797,51.4181072,3.8523338,40.0694491,5.7692308,1.1237132,1.1263654,10.5246599,64.2709427,66.8016632,50.2198663,29.6906155,13.6916525,18.9849788,69.1408921,39.2409732,37.8996032,14.0834195,9.8383155,52.2539979,3.6914651,41.3043671,5.5066079,1.210932,1.2832357,11.0908466,63.4447619,65.7896919,49.6281339,31.1172914,12.5090428,17.5014235,70.2007929,40.914877,36.7429953,14.9419428,10.3661493,52.9750351,3.5833365,41.8580731,4.6460156\r\n1102,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1237132,1.1263654,10.5246599,64.2709427,66.8016632,50.2198663,29.6906155,13.6916525,18.9849788,69.1408921,39.2409732,37.8996032,14.0834195,9.8383155,52.2539979,3.6914651,41.3043671,5.5066079,1.210932,1.2832357,11.0908466,63.4447619,65.7896919,49.6281339,31.1172914,12.5090428,17.5014235,70.2007929,40.914877,36.7429953,14.9419428,10.3661493,52.9750351,3.5833365,41.8580731,4.6460156,1.2255369,1.2964503,11.2698093,62.4297698,64.8901128,49.4399945,31.3097827,11.286163,16.504767,69.7047741,40.4955421,37.1372865,15.1857122,10.6328835,51.6513432,3.7108852,42.050288,4.2222185\r\n1103,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.210932,1.2832357,11.0908466,63.4447619,65.7896919,49.6281339,31.1172914,12.5090428,17.5014235,70.2007929,40.914877,36.7429953,14.9419428,10.3661493,52.9750351,3.5833365,41.8580731,4.6460156,1.2255369,1.2964503,11.2698093,62.4297698,64.8901128,49.4399945,31.3097827,11.286163,16.504767,69.7047741,40.4955421,37.1372865,15.1857122,10.6328835,51.6513432,3.7108852,42.050288,4.2222185,1.2479668,1.3186088,11.1583402,62.2110939,65.4329844,50.2995849,30.6805599,10.6018415,14.8565355,69.7352714,41.1754915,37.1067587,14.9594991,10.767397,50.9468374,3.5248879,41.6697357,4.7727229\r\n1104,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2255369,1.2964503,11.2698093,62.4297698,64.8901128,49.4399945,31.3097827,11.286163,16.504767,69.7047741,40.4955421,37.1372865,15.1857122,10.6328835,51.6513432,3.7108852,42.050288,4.2222185,1.2479668,1.3186088,11.1583402,62.2110939,65.4329844,50.2995849,30.6805599,10.6018415,14.8565355,69.7352714,41.1754915,37.1067587,14.9594991,10.767397,50.9468374,3.5248879,41.6697357,4.7727229,1.1875771,1.2577812,10.1663072,61.8322822,64.9221795,51.0779305,31.2582199,10.2435851,14.3478031,70.4478928,41.6813421,35.5576036,14.4100934,10.1467595,50.2397222,3.6786399,40.9765047,5.3488347\r\n1105,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2479668,1.3186088,11.1583402,62.2110939,65.4329844,50.2995849,30.6805599,10.6018415,14.8565355,69.7352714,41.1754915,37.1067587,14.9594991,10.767397,50.9468374,3.5248879,41.6697357,4.7727229,1.1875771,1.2577812,10.1663072,61.8322822,64.9221795,51.0779305,31.2582199,10.2435851,14.3478031,70.4478928,41.6813421,35.5576036,14.4100934,10.1467595,50.2397222,3.6786399,40.9765047,5.3488347,1.0604879,1.1300692,9.8099536,64.3040682,64.4132925,51.1760327,30.4216521,9.9588037,15.729322,69.251177,40.6132618,37.0770718,14.3043151,9.5830499,51.1144482,3.8214348,42.2749373,5.4762329\r\n1106,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1875771,1.2577812,10.1663072,61.8322822,64.9221795,51.0779305,31.2582199,10.2435851,14.3478031,70.4478928,41.6813421,35.5576036,14.4100934,10.1467595,50.2397222,3.6786399,40.9765047,5.3488347,1.0604879,1.1300692,9.8099536,64.3040682,64.4132925,51.1760327,30.4216521,9.9588037,15.729322,69.251177,40.6132618,37.0770718,14.3043151,9.5830499,51.1144482,3.8214348,42.2749373,5.4762329,1.1118874,1.1940436,10.5504988,65.1061022,66.377949,52.8282695,29.645806,10.0226004,16.1652077,70.1482487,40.9159178,35.7425016,14.8391725,9.9207236,50.7389049,3.9499845,41.7883364,5.693116\r\n1107,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0604879,1.1300692,9.8099536,64.3040682,64.4132925,51.1760327,30.4216521,9.9588037,15.729322,69.251177,40.6132618,37.0770718,14.3043151,9.5830499,51.1144482,3.8214348,42.2749373,5.4762329,1.1118874,1.1940436,10.5504988,65.1061022,66.377949,52.8282695,29.645806,10.0226004,16.1652077,70.1482487,40.9159178,35.7425016,14.8391725,9.9207236,50.7389049,3.9499845,41.7883364,5.693116,1.0145417,1.0978652,10.6083576,65.6351239,66.3306555,55.515238,29.6282646,9.605848,15.4155276,72.1338934,40.3502115,35.6437951,14.3774007,10.010295,49.9757118,4.0077604,40.810172,6.2189521\r\n1108,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1118874,1.1940436,10.5504988,65.1061022,66.377949,52.8282695,29.645806,10.0226004,16.1652077,70.1482487,40.9159178,35.7425016,14.8391725,9.9207236,50.7389049,3.9499845,41.7883364,5.693116,1.0145417,1.0978652,10.6083576,65.6351239,66.3306555,55.515238,29.6282646,9.605848,15.4155276,72.1338934,40.3502115,35.6437951,14.3774007,10.010295,49.9757118,4.0077604,40.810172,6.2189521,0.9523789,0.9660534,10.8782879,66.2891285,67.0202111,55.7546889,29.7993823,10.4900304,16.6278999,72.1301682,40.8183895,37.0797613,14.9629592,10.4179913,48.61868,4.1560901,38.7920589,7.5980882\r\n1109,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0145417,1.0978652,10.6083576,65.6351239,66.3306555,55.515238,29.6282646,9.605848,15.4155276,72.1338934,40.3502115,35.6437951,14.3774007,10.010295,49.9757118,4.0077604,40.810172,6.2189521,0.9523789,0.9660534,10.8782879,66.2891285,67.0202111,55.7546889,29.7993823,10.4900304,16.6278999,72.1301682,40.8183895,37.0797613,14.9629592,10.4179913,48.61868,4.1560901,38.7920589,7.5980882,1.0543886,1.0680855,11.0846863,66.8409709,66.9433028,56.3067759,32.1951305,10.887141,17.8801663,73.1207604,41.2483311,36.9447693,14.8951426,10.0579023,49.2294482,4.1814605,36.7866279,7.8283333\r\n1110,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9523789,0.9660534,10.8782879,66.2891285,67.0202111,55.7546889,29.7993823,10.4900304,16.6278999,72.1301682,40.8183895,37.0797613,14.9629592,10.4179913,48.61868,4.1560901,38.7920589,7.5980882,1.0543886,1.0680855,11.0846863,66.8409709,66.9433028,56.3067759,32.1951305,10.887141,17.8801663,73.1207604,41.2483311,36.9447693,14.8951426,10.0579023,49.2294482,4.1814605,36.7866279,7.8283333,1.2095199,1.2228604,11.296069,67.019435,68.1050477,55.1343615,32.685984,11.738414,18.3514877,72.1834849,40.1868252,38.5511409,15.2459979,10.2116627,49.7562551,4.0274499,36.7506424,7.0048792\r\n1111,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0543886,1.0680855,11.0846863,66.8409709,66.9433028,56.3067759,32.1951305,10.887141,17.8801663,73.1207604,41.2483311,36.9447693,14.8951426,10.0579023,49.2294482,4.1814605,36.7866279,7.8283333,1.2095199,1.2228604,11.296069,67.019435,68.1050477,55.1343615,32.685984,11.738414,18.3514877,72.1834849,40.1868252,38.5511409,15.2459979,10.2116627,49.7562551,4.0274499,36.7506424,7.0048792,1.2775565,1.2905487,11.8054084,66.9452682,67.9468493,55.3867929,31.991932,11.390093,17.8868518,71.7817834,39.4140682,39.105701,16.1066571,10.8587249,48.9809019,3.9960714,37.68068,6.8720853\r\n1112,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2095199,1.2228604,11.296069,67.019435,68.1050477,55.1343615,32.685984,11.738414,18.3514877,72.1834849,40.1868252,38.5511409,15.2459979,10.2116627,49.7562551,4.0274499,36.7506424,7.0048792,1.2775565,1.2905487,11.8054084,66.9452682,67.9468493,55.3867929,31.991932,11.390093,17.8868518,71.7817834,39.4140682,39.105701,16.1066571,10.8587249,48.9809019,3.9960714,37.68068,6.8720853,1.5348715,1.547857,11.8916681,63.9788328,69.0274539,54.8313027,33.0043242,11.5515668,16.7894721,72.3054016,39.9516462,38.2004833,17.196205,11.4361697,47.991112,4.414737,37.8920689,6.6820307\r\n1113,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2775565,1.2905487,11.8054084,66.9452682,67.9468493,55.3867929,31.991932,11.390093,17.8868518,71.7817834,39.4140682,39.105701,16.1066571,10.8587249,48.9809019,3.9960714,37.68068,6.8720853,1.5348715,1.547857,11.8916681,63.9788328,69.0274539,54.8313027,33.0043242,11.5515668,16.7894721,72.3054016,39.9516462,38.2004833,17.196205,11.4361697,47.991112,4.414737,37.8920689,6.6820307,1.5105745,1.5105745,11.1479638,64.9406921,68.2885641,54.1466293,33.9937229,11.3740092,16.9796319,72.7925559,40.1782771,39.8481524,17.1857501,11.3749308,48.6851056,4.7191902,39.3693992,7.2093023\r\n1114,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5348715,1.547857,11.8916681,63.9788328,69.0274539,54.8313027,33.0043242,11.5515668,16.7894721,72.3054016,39.9516462,38.2004833,17.196205,11.4361697,47.991112,4.414737,37.8920689,6.6820307,1.5105745,1.5105745,11.1479638,64.9406921,68.2885641,54.1466293,33.9937229,11.3740092,16.9796319,72.7925559,40.1782771,39.8481524,17.1857501,11.3749308,48.6851056,4.7191902,39.3693992,7.2093023,1.5046717,1.5046717,10.873956,63.7239895,68.8667622,52.3462523,34.8080571,10.7712328,17.1046142,71.5433894,41.554189,40.5726043,17.2480696,11.1354988,48.191879,4.7276256,40.7898871,7.1428571\r\n1115,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5105745,1.5105745,11.1479638,64.9406921,68.2885641,54.1466293,33.9937229,11.3740092,16.9796319,72.7925559,40.1782771,39.8481524,17.1857501,11.3749308,48.6851056,4.7191902,39.3693992,7.2093023,1.5046717,1.5046717,10.873956,63.7239895,68.8667622,52.3462523,34.8080571,10.7712328,17.1046142,71.5433894,41.554189,40.5726043,17.2480696,11.1354988,48.191879,4.7276256,40.7898871,7.1428571,1.6262617,1.6262617,10.8393084,64.0817072,69.7429383,52.117239,33.9424657,10.3308025,17.1133505,71.1735807,39.42286,40.264788,17.0516001,10.8933553,48.0916801,4.6891229,41.2764007,5.9808612\r\n1116,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5046717,1.5046717,10.873956,63.7239895,68.8667622,52.3462523,34.8080571,10.7712328,17.1046142,71.5433894,41.554189,40.5726043,17.2480696,11.1354988,48.191879,4.7276256,40.7898871,7.1428571,1.6262617,1.6262617,10.8393084,64.0817072,69.7429383,52.117239,33.9424657,10.3308025,17.1133505,71.1735807,39.42286,40.264788,17.0516001,10.8933553,48.0916801,4.6891229,41.2764007,5.9808612,1.6159674,1.6159674,10.8798025,65.2503558,70.4417449,53.9636199,31.904044,10.95913,18.0742255,69.6433511,38.2901477,42.137051,17.4696571,11.1918992,48.0089157,4.7802467,42.571566,6.3380252\r\n1117,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6262617,1.6262617,10.8393084,64.0817072,69.7429383,52.117239,33.9424657,10.3308025,17.1133505,71.1735807,39.42286,40.264788,17.0516001,10.8933553,48.0916801,4.6891229,41.2764007,5.9808612,1.6159674,1.6159674,10.8798025,65.2503558,70.4417449,53.9636199,31.904044,10.95913,18.0742255,69.6433511,38.2901477,42.137051,17.4696571,11.1918992,48.0089157,4.7802467,42.571566,6.3380252,1.5243866,1.5243866,10.7208682,66.0386326,69.5157179,55.2805667,30.9133597,11.3177945,18.506383,70.1254715,38.9192516,41.4305739,17.3613937,11.4240621,47.8832903,4.9355644,41.6199168,6.281407\r\n1118,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6159674,1.6159674,10.8798025,65.2503558,70.4417449,53.9636199,31.904044,10.95913,18.0742255,69.6433511,38.2901477,42.137051,17.4696571,11.1918992,48.0089157,4.7802467,42.571566,6.3380252,1.5243866,1.5243866,10.7208682,66.0386326,69.5157179,55.2805667,30.9133597,11.3177945,18.506383,70.1254715,38.9192516,41.4305739,17.3613937,11.4240621,47.8832903,4.9355644,41.6199168,6.281407,1.4350994,1.4350994,10.8476824,65.1504237,69.1651415,55.138463,31.6541329,10.8614262,18.5880775,69.4723877,39.7536903,39.6024958,17.2239001,11.3108131,48.4030657,5.1393846,42.0163114,5.3795145\r\n1119,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5243866,1.5243866,10.7208682,66.0386326,69.5157179,55.2805667,30.9133597,11.3177945,18.506383,70.1254715,38.9192516,41.4305739,17.3613937,11.4240621,47.8832903,4.9355644,41.6199168,6.281407,1.4350994,1.4350994,10.8476824,65.1504237,69.1651415,55.138463,31.6541329,10.8614262,18.5880775,69.4723877,39.7536903,39.6024958,17.2239001,11.3108131,48.4030657,5.1393846,42.0163114,5.3795145,1.2031475,1.2031475,10.6363487,66.0704849,68.5092975,55.1068209,30.6040072,10.9415108,19.2179495,68.996418,38.9988502,40.3223308,16.2597643,10.9223835,48.3346436,5.0187964,40.4117602,6.27781\r\n1120,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4350994,1.4350994,10.8476824,65.1504237,69.1651415,55.138463,31.6541329,10.8614262,18.5880775,69.4723877,39.7536903,39.6024958,17.2239001,11.3108131,48.4030657,5.1393846,42.0163114,5.3795145,1.2031475,1.2031475,10.6363487,66.0704849,68.5092975,55.1068209,30.6040072,10.9415108,19.2179495,68.996418,38.9988502,40.3223308,16.2597643,10.9223835,48.3346436,5.0187964,40.4117602,6.27781,1.1931503,1.1931503,10.9075792,64.2674789,66.5178032,54.8050769,30.6817138,11.3736872,19.0418399,68.3046874,38.7514289,42.4939026,16.3316622,10.8601464,48.7603561,4.6139793,39.4097173,5.0215424\r\n1121,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2031475,1.2031475,10.6363487,66.0704849,68.5092975,55.1068209,30.6040072,10.9415108,19.2179495,68.996418,38.9988502,40.3223308,16.2597643,10.9223835,48.3346436,5.0187964,40.4117602,6.27781,1.1931503,1.1931503,10.9075792,64.2674789,66.5178032,54.8050769,30.6817138,11.3736872,19.0418399,68.3046874,38.7514289,42.4939026,16.3316622,10.8601464,48.7603561,4.6139793,39.4097173,5.0215424,1.0892437,1.0892437,11.2627408,64.6570254,65.6219176,55.4526213,29.7225435,11.9421347,18.8170397,67.8860619,37.0260591,42.0439145,16.4093017,10.9851956,49.751023,4.2955599,38.8068017,4.0719928\r\n1122,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1931503,1.1931503,10.9075792,64.2674789,66.5178032,54.8050769,30.6817138,11.3736872,19.0418399,68.3046874,38.7514289,42.4939026,16.3316622,10.8601464,48.7603561,4.6139793,39.4097173,5.0215424,1.0892437,1.0892437,11.2627408,64.6570254,65.6219176,55.4526213,29.7225435,11.9421347,18.8170397,67.8860619,37.0260591,42.0439145,16.4093017,10.9851956,49.751023,4.2955599,38.8068017,4.0719928,0.9316208,0.9571281,11.4219258,64.3993543,65.5030995,55.4165305,29.3590724,11.8811763,19.3934685,67.2671301,37.0855732,41.6861955,16.4067401,11.2052816,50.344382,4.1247133,39.0824314,3.9024918\r\n1123,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0892437,1.0892437,11.2627408,64.6570254,65.6219176,55.4526213,29.7225435,11.9421347,18.8170397,67.8860619,37.0260591,42.0439145,16.4093017,10.9851956,49.751023,4.2955599,38.8068017,4.0719928,0.9316208,0.9571281,11.4219258,64.3993543,65.5030995,55.4165305,29.3590724,11.8811763,19.3934685,67.2671301,37.0855732,41.6861955,16.4067401,11.2052816,50.344382,4.1247133,39.0824314,3.9024918,0.948856,0.9744547,10.7557113,63.1956193,65.0735748,53.3914886,29.2721505,12.1200671,18.0736271,67.4315968,37.1896804,40.1413326,16.1300601,11.0392713,51.0804139,4.076118,38.4124975,5.1424004\r\n1124,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9316208,0.9571281,11.4219258,64.3993543,65.5030995,55.4165305,29.3590724,11.8811763,19.3934685,67.2671301,37.0855732,41.6861955,16.4067401,11.2052816,50.344382,4.1247133,39.0824314,3.9024918,0.948856,0.9744547,10.7557113,63.1956193,65.0735748,53.3914886,29.2721505,12.1200671,18.0736271,67.4315968,37.1896804,40.1413326,16.1300601,11.0392713,51.0804139,4.076118,38.4124975,5.1424004,0.9330817,0.9592429,11.0398035,62.2086063,64.9274033,53.6697659,30.7146189,11.8948904,19.0732233,66.7820779,37.3718591,38.8943812,16.8809906,11.3009712,50.437837,4.1638662,38.7039396,6.0920662\r\n1125,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.948856,0.9744547,10.7557113,63.1956193,65.0735748,53.3914886,29.2721505,12.1200671,18.0736271,67.4315968,37.1896804,40.1413326,16.1300601,11.0392713,51.0804139,4.076118,38.4124975,5.1424004,0.9330817,0.9592429,11.0398035,62.2086063,64.9274033,53.6697659,30.7146189,11.8948904,19.0732233,66.7820779,37.3718591,38.8943812,16.8809906,11.3009712,50.437837,4.1638662,38.7039396,6.0920662,1.1113984,1.1374265,10.5544212,62.9436618,64.8765418,53.2559463,29.7101282,12.9576349,19.5681296,66.4172335,36.0513318,40.646005,17.1340402,11.0768418,51.4409401,4.2090358,37.395972,7.3991065\r\n1126,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9330817,0.9592429,11.0398035,62.2086063,64.9274033,53.6697659,30.7146189,11.8948904,19.0732233,66.7820779,37.3718591,38.8943812,16.8809906,11.3009712,50.437837,4.1638662,38.7039396,6.0920662,1.1113984,1.1374265,10.5544212,62.9436618,64.8765418,53.2559463,29.7101282,12.9576349,19.5681296,66.4172335,36.0513318,40.646005,17.1340402,11.0768418,51.4409401,4.2090358,37.395972,7.3991065,1.2964397,1.3226041,11.5474967,62.6364754,65.1480641,53.2311924,30.7352173,14.4345153,19.2598397,66.5684413,37.3920363,40.8413027,17.8794784,11.9670315,51.1554136,4.5712627,37.8106659,7.2614168\r\n1127,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1113984,1.1374265,10.5544212,62.9436618,64.8765418,53.2559463,29.7101282,12.9576349,19.5681296,66.4172335,36.0513318,40.646005,17.1340402,11.0768418,51.4409401,4.2090358,37.395972,7.3991065,1.2964397,1.3226041,11.5474967,62.6364754,65.1480641,53.2311924,30.7352173,14.4345153,19.2598397,66.5684413,37.3920363,40.8413027,17.8794784,11.9670315,51.1554136,4.5712627,37.8106659,7.2614168,1.1068379,1.133349,11.2407598,63.1774085,66.1368492,52.0970649,30.3477201,14.393543,19.89647,66.6679981,37.4035351,39.1135151,17.4525602,11.7596367,50.7353151,4.4347791,37.8166664,7.7405923\r\n1128,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2964397,1.3226041,11.5474967,62.6364754,65.1480641,53.2311924,30.7352173,14.4345153,19.2598397,66.5684413,37.3920363,40.8413027,17.8794784,11.9670315,51.1554136,4.5712627,37.8106659,7.2614168,1.1068379,1.133349,11.2407598,63.1774085,66.1368492,52.0970649,30.3477201,14.393543,19.89647,66.6679981,37.4035351,39.1135151,17.4525602,11.7596367,50.7353151,4.4347791,37.8166664,7.7405923,1.2030523,1.2300614,12.1801035,63.6661644,67.0216676,52.103217,31.084014,14.0393728,20.1663411,67.0054694,37.3638465,40.3475237,17.9223742,12.078479,50.2655067,4.4287669,38.4383894,8.1932911\r\n1129,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1068379,1.133349,11.2407598,63.1774085,66.1368492,52.0970649,30.3477201,14.393543,19.89647,66.6679981,37.4035351,39.1135151,17.4525602,11.7596367,50.7353151,4.4347791,37.8166664,7.7405923,1.2030523,1.2300614,12.1801035,63.6661644,67.0216676,52.103217,31.084014,14.0393728,20.1663411,67.0054694,37.3638465,40.3475237,17.9223742,12.078479,50.2655067,4.4287669,38.4383894,8.1932911,1.2711036,1.2711036,11.9424313,64.1041716,67.7671159,52.6563127,31.7249284,13.49175,18.8975673,67.8160169,38.3857791,40.533913,17.7413474,12.1232774,50.3010812,4.7858147,39.8254691,8.9130551\r\n1130,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2030523,1.2300614,12.1801035,63.6661644,67.0216676,52.103217,31.084014,14.0393728,20.1663411,67.0054694,37.3638465,40.3475237,17.9223742,12.078479,50.2655067,4.4287669,38.4383894,8.1932911,1.2711036,1.2711036,11.9424313,64.1041716,67.7671159,52.6563127,31.7249284,13.49175,18.8975673,67.8160169,38.3857791,40.533913,17.7413474,12.1232774,50.3010812,4.7858147,39.8254691,8.9130551,1.3522192,1.3522192,12.2634008,63.8112194,67.6788044,53.7039949,33.4424611,12.0247539,18.7302606,69.3660598,39.7586631,39.8970584,17.9551238,12.3268531,49.4228491,4.9521331,40.7714264,8.8235374\r\n1131,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2711036,1.2711036,11.9424313,64.1041716,67.7671159,52.6563127,31.7249284,13.49175,18.8975673,67.8160169,38.3857791,40.533913,17.7413474,12.1232774,50.3010812,4.7858147,39.8254691,8.9130551,1.3522192,1.3522192,12.2634008,63.8112194,67.6788044,53.7039949,33.4424611,12.0247539,18.7302606,69.3660598,39.7586631,39.8970584,17.9551238,12.3268531,49.4228491,4.9521331,40.7714264,8.8235374,1.3133432,1.3401464,13.3861608,63.9029631,68.0933977,52.1801093,32.6751236,12.392279,17.5191592,71.1064344,39.3059039,42.0531402,17.7647452,12.7252713,49.9284329,4.765134,42.1117906,9.3181903\r\n1132,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3522192,1.3522192,12.2634008,63.8112194,67.6788044,53.7039949,33.4424611,12.0247539,18.7302606,69.3660598,39.7586631,39.8970584,17.9551238,12.3268531,49.4228491,4.9521331,40.7714264,8.8235374,1.3133432,1.3401464,13.3861608,63.9029631,68.0933977,52.1801093,32.6751236,12.392279,17.5191592,71.1064344,39.3059039,42.0531402,17.7647452,12.7252713,49.9284329,4.765134,42.1117906,9.3181903,1.2278008,1.2716732,14.7900663,64.558411,68.4116979,53.7488884,33.0840338,12.49023,17.5065916,70.9250373,39.2308199,43.1310868,18.8985932,13.672432,48.9158704,4.6632684,42.2517309,8.6448679\r\n1133,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3133432,1.3401464,13.3861608,63.9029631,68.0933977,52.1801093,32.6751236,12.392279,17.5191592,71.1064344,39.3059039,42.0531402,17.7647452,12.7252713,49.9284329,4.765134,42.1117906,9.3181903,1.2278008,1.2716732,14.7900663,64.558411,68.4116979,53.7488884,33.0840338,12.49023,17.5065916,70.9250373,39.2308199,43.1310868,18.8985932,13.672432,48.9158704,4.6632684,42.2517309,8.6448679,1.2301199,1.2737168,15.4350722,65.8134503,68.8248763,55.6217417,32.8452912,11.5876964,18.637479,71.7996357,38.5684015,45.7406876,19.4367297,14.023321,50.2870657,4.049974,42.4422058,8.6046552\r\n1134,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2278008,1.2716732,14.7900663,64.558411,68.4116979,53.7488884,33.0840338,12.49023,17.5065916,70.9250373,39.2308199,43.1310868,18.8985932,13.672432,48.9158704,4.6632684,42.2517309,8.6448679,1.2301199,1.2737168,15.4350722,65.8134503,68.8248763,55.6217417,32.8452912,11.5876964,18.637479,71.7996357,38.5684015,45.7406876,19.4367297,14.023321,50.2870657,4.049974,42.4422058,8.6046552,1.3988046,1.4665931,15.8533614,64.3164665,68.7970713,56.6877698,33.1237087,12.4531327,18.5249336,70.9639258,38.9099178,44.9681245,19.5694257,14.3426377,51.2236938,4.1251875,43.1640897,9.4298287\r\n1135,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2301199,1.2737168,15.4350722,65.8134503,68.8248763,55.6217417,32.8452912,11.5876964,18.637479,71.7996357,38.5684015,45.7406876,19.4367297,14.023321,50.2870657,4.049974,42.4422058,8.6046552,1.3988046,1.4665931,15.8533614,64.3164665,68.7970713,56.6877698,33.1237087,12.4531327,18.5249336,70.9639258,38.9099178,44.9681245,19.5694257,14.3426377,51.2236938,4.1251875,43.1640897,9.4298287,1.5268529,1.5679915,15.76525,65.807834,70.0038867,57.0373603,31.4744126,12.865509,20.1550843,71.1483508,39.3071104,44.5772044,20.4930101,14.9355982,51.6720978,3.8939861,41.9746085,11.302648\r\n1136,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3988046,1.4665931,15.8533614,64.3164665,68.7970713,56.6877698,33.1237087,12.4531327,18.5249336,70.9639258,38.9099178,44.9681245,19.5694257,14.3426377,51.2236938,4.1251875,43.1640897,9.4298287,1.5268529,1.5679915,15.76525,65.807834,70.0038867,57.0373603,31.4744126,12.865509,20.1550843,71.1483508,39.3071104,44.5772044,20.4930101,14.9355982,51.6720978,3.8939861,41.9746085,11.302648,1.6854827,1.8111236,17.5495132,66.3637416,69.8068321,57.722491,30.1791426,12.5896265,20.4446993,69.5916528,38.0877177,44.4760348,22.4204487,16.2757781,52.3413252,3.7000172,40.9632384,13.0952085\r\n1137,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5268529,1.5679915,15.76525,65.807834,70.0038867,57.0373603,31.4744126,12.865509,20.1550843,71.1483508,39.3071104,44.5772044,20.4930101,14.9355982,51.6720978,3.8939861,41.9746085,11.302648,1.6854827,1.8111236,17.5495132,66.3637416,69.8068321,57.722491,30.1791426,12.5896265,20.4446993,69.5916528,38.0877177,44.4760348,22.4204487,16.2757781,52.3413252,3.7000172,40.9632384,13.0952085,1.8215573,1.9441809,19.5049844,66.2911218,69.5185199,57.9787014,29.2569447,13.1934656,20.3809024,69.3300046,37.1945876,45.4042962,24.1907104,17.9016196,52.5611911,3.6095841,40.8009181,15.4220829\r\n1138,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6854827,1.8111236,17.5495132,66.3637416,69.8068321,57.722491,30.1791426,12.5896265,20.4446993,69.5916528,38.0877177,44.4760348,22.4204487,16.2757781,52.3413252,3.7000172,40.9632384,13.0952085,1.8215573,1.9441809,19.5049844,66.2911218,69.5185199,57.9787014,29.2569447,13.1934656,20.3809024,69.3300046,37.1945876,45.4042962,24.1907104,17.9016196,52.5611911,3.6095841,40.8009181,15.4220829,2.2906487,2.3917211,20.2211898,67.0641183,69.7542399,59.4063122,28.7539955,12.9140061,21.1406363,67.516084,36.7132233,46.8167491,25.6471918,18.7778547,53.5711464,4.0391243,40.8137284,17.3716065\r\n1139,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8215573,1.9441809,19.5049844,66.2911218,69.5185199,57.9787014,29.2569447,13.1934656,20.3809024,69.3300046,37.1945876,45.4042962,24.1907104,17.9016196,52.5611911,3.6095841,40.8009181,15.4220829,2.2906487,2.3917211,20.2211898,67.0641183,69.7542399,59.4063122,28.7539955,12.9140061,21.1406363,67.516084,36.7132233,46.8167491,25.6471918,18.7778547,53.5711464,4.0391243,40.8137284,17.3716065,2.4931177,2.5765771,21.3147497,66.4340325,69.6310207,57.8893465,28.637457,12.8797902,20.4107263,66.8177062,35.7877739,46.633377,26.6863376,20.0208697,54.518064,4.0748021,40.95904,19.4822941\r\n1140,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2906487,2.3917211,20.2211898,67.0641183,69.7542399,59.4063122,28.7539955,12.9140061,21.1406363,67.516084,36.7132233,46.8167491,25.6471918,18.7778547,53.5711464,4.0391243,40.8137284,17.3716065,2.4931177,2.5765771,21.3147497,66.4340325,69.6310207,57.8893465,28.637457,12.8797902,20.4107263,66.8177062,35.7877739,46.633377,26.6863376,20.0208697,54.518064,4.0748021,40.95904,19.4822941,2.8495491,2.9450225,22.8971499,65.5629787,69.2791499,56.9423576,28.1076115,12.951003,20.0132604,65.4324408,34.662842,44.475233,29.3894051,22.5599437,54.4751504,3.8855223,40.9106799,22.5537047\r\n1141,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4931177,2.5765771,21.3147497,66.4340325,69.6310207,57.8893465,28.637457,12.8797902,20.4107263,66.8177062,35.7877739,46.633377,26.6863376,20.0208697,54.518064,4.0748021,40.95904,19.4822941,2.8495491,2.9450225,22.8971499,65.5629787,69.2791499,56.9423576,28.1076115,12.951003,20.0132604,65.4324408,34.662842,44.475233,29.3894051,22.5599437,54.4751504,3.8855223,40.9106799,22.5537047,3.2976465,3.3739097,26.7719082,66.9101002,69.1659155,55.8425498,28.0862173,12.685894,19.8172182,65.6907215,33.603061,46.4042413,33.7073608,26.6290213,54.201512,4.2022829,40.1516959,23.4607156\r\n1142,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8495491,2.9450225,22.8971499,65.5629787,69.2791499,56.9423576,28.1076115,12.951003,20.0132604,65.4324408,34.662842,44.475233,29.3894051,22.5599437,54.4751504,3.8855223,40.9106799,22.5537047,3.2976465,3.3739097,26.7719082,66.9101002,69.1659155,55.8425498,28.0862173,12.685894,19.8172182,65.6907215,33.603061,46.4042413,33.7073608,26.6290213,54.201512,4.2022829,40.1516959,23.4607156,3.9295355,4.0093099,29.1798091,65.8586441,69.1670853,56.311807,28.7743786,11.7723529,17.7771702,64.3108991,33.8911812,48.5915336,36.4543555,28.9579301,54.0274797,4.1663346,41.455674,24.8069449\r\n1143,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2976465,3.3739097,26.7719082,66.9101002,69.1659155,55.8425498,28.0862173,12.685894,19.8172182,65.6907215,33.603061,46.4042413,33.7073608,26.6290213,54.201512,4.2022829,40.1516959,23.4607156,3.9295355,4.0093099,29.1798091,65.8586441,69.1670853,56.311807,28.7743786,11.7723529,17.7771702,64.3108991,33.8911812,48.5915336,36.4543555,28.9579301,54.0274797,4.1663346,41.455674,24.8069449,4.8049712,4.8387294,31.6721775,66.4591686,68.8826439,56.3176047,29.0257416,12.4742382,18.3093184,64.1212174,33.7006558,50.1580889,39.1470788,31.8411324,54.8918953,4.2278278,41.667221,28.0809782\r\n1144,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1774248,1.2426819,18.911866,76.6625687,76.6303415,69.5708276,20.2469643,14.2560614,21.9608529,70.2625155,29.3183593,48.7482721,21.7303006,18.5621446,59.9739809,4.2271563,34.2477876,12.4161074,0.96365,0.9906187,19.0614015,76.6213354,77.3396486,71.3915222,19.732801,15.8821237,22.4135707,70.9802099,30.3016787,48.015544,21.4525609,18.68178,61.2053571,4.4337138,33.7719298,11.0,0.8875107,0.967351,19.4791251,78.1580192,79.0366055,71.5971679,18.1665483,13.8664299,21.574361,71.0520885,29.5257522,50.8943392,21.4666667,18.1777778,61.5710254,4.6672828,33.5477941,13.2653061\r\n1145,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.96365,0.9906187,19.0614015,76.6213354,77.3396486,71.3915222,19.732801,15.8821237,22.4135707,70.9802099,30.3016787,48.015544,21.4525609,18.68178,61.2053571,4.4337138,33.7719298,11.0,0.8875107,0.967351,19.4791251,78.1580192,79.0366055,71.5971679,18.1665483,13.8664299,21.574361,71.0520885,29.5257522,50.8943392,21.4666667,18.1777778,61.5710254,4.6672828,33.5477941,13.2653061,0.9431306,1.0219595,19.5534684,77.3810397,79.6359532,71.9398063,17.8133839,14.2162179,22.1732029,71.650229,30.8557452,51.6334927,21.2588028,18.1778169,61.105948,4.2738971,31.8262411,14.3333333\r\n1146,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8875107,0.967351,19.4791251,78.1580192,79.0366055,71.5971679,18.1665483,13.8664299,21.574361,71.0520885,29.5257522,50.8943392,21.4666667,18.1777778,61.5710254,4.6672828,33.5477941,13.2653061,0.9431306,1.0219595,19.5534684,77.3810397,79.6359532,71.9398063,17.8133839,14.2162179,22.1732029,71.650229,30.8557452,51.6334927,21.2588028,18.1778169,61.105948,4.2738971,31.8262411,14.3333333,1.0504202,1.1288515,19.3620688,75.6891871,77.8465785,69.1010197,16.4860722,15.0517479,22.6439576,70.8594746,28.731791,49.6633568,20.8150745,17.572305,60.5601469,3.870674,33.3633094,15.2027027\r\n1147,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9431306,1.0219595,19.5534684,77.3810397,79.6359532,71.9398063,17.8133839,14.2162179,22.1732029,71.650229,30.8557452,51.6334927,21.2588028,18.1778169,61.105948,4.2738971,31.8262411,14.3333333,1.0504202,1.1288515,19.3620688,75.6891871,77.8465785,69.1010197,16.4860722,15.0517479,22.6439576,70.8594746,28.731791,49.6633568,20.8150745,17.572305,60.5601469,3.870674,33.3633094,15.2027027,0.9365281,1.0156913,18.1040327,76.1548345,79.5678762,72.1422569,15.9704389,13.6266933,22.7147194,70.0800297,29.4380515,50.9295133,20.1676964,17.1668138,60.0277264,3.525641,31.9746377,14.9305556\r\n1148,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0504202,1.1288515,19.3620688,75.6891871,77.8465785,69.1010197,16.4860722,15.0517479,22.6439576,70.8594746,28.731791,49.6633568,20.8150745,17.572305,60.5601469,3.870674,33.3633094,15.2027027,0.9365281,1.0156913,18.1040327,76.1548345,79.5678762,72.1422569,15.9704389,13.6266933,22.7147194,70.0800297,29.4380515,50.9295133,20.1676964,17.1668138,60.0277264,3.525641,31.9746377,14.9305556,1.0779617,1.1302265,19.1462028,76.5152071,78.6876877,72.2861334,15.5481484,12.8026462,22.6722931,70.5828467,30.5562494,48.3612422,21.1222628,17.6551095,59.7261568,3.4080299,30.8876812,16.0447761\r\n1149,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9365281,1.0156913,18.1040327,76.1548345,79.5678762,72.1422569,15.9704389,13.6266933,22.7147194,70.0800297,29.4380515,50.9295133,20.1676964,17.1668138,60.0277264,3.525641,31.9746377,14.9305556,1.0779617,1.1302265,19.1462028,76.5152071,78.6876877,72.2861334,15.5481484,12.8026462,22.6722931,70.5828467,30.5562494,48.3612422,21.1222628,17.6551095,59.7261568,3.4080299,30.8876812,16.0447761,1.4353073,1.4880778,21.1844179,75.3993916,77.4961134,73.7648706,16.8508047,12.7425938,21.6693029,70.1840431,32.2778337,47.2569217,21.6129032,17.9262673,60.1807802,3.6184211,32.0840951,15.2985075\r\n1150,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0779617,1.1302265,19.1462028,76.5152071,78.6876877,72.2861334,15.5481484,12.8026462,22.6722931,70.5828467,30.5562494,48.3612422,21.1222628,17.6551095,59.7261568,3.4080299,30.8876812,16.0447761,1.4353073,1.4880778,21.1844179,75.3993916,77.4961134,73.7648706,16.8508047,12.7425938,21.6693029,70.1840431,32.2778337,47.2569217,21.6129032,17.9262673,60.1807802,3.6184211,32.0840951,15.2985075,1.5272773,1.5813313,20.4596291,74.3234884,75.8993696,71.6025237,16.4880014,10.9428097,22.4732736,69.782257,31.1432032,46.1912266,21.0151803,17.2201139,58.4307992,4.0057915,32.5426945,16.796875\r\n1151,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4353073,1.4880778,21.1844179,75.3993916,77.4961134,73.7648706,16.8508047,12.7425938,21.6693029,70.1840431,32.2778337,47.2569217,21.6129032,17.9262673,60.1807802,3.6184211,32.0840951,15.2985075,1.5272773,1.5813313,20.4596291,74.3234884,75.8993696,71.6025237,16.4880014,10.9428097,22.4732736,69.782257,31.1432032,46.1912266,21.0151803,17.2201139,58.4307992,4.0057915,32.5426945,16.796875,1.5648378,1.6517943,19.1931467,73.3305289,75.8747094,71.299983,17.3469977,10.8320062,21.8460996,69.8920014,30.8982593,43.6094191,20.6152433,16.4830119,57.5117371,4.4144981,32.3315118,15.1162791\r\n1152,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5272773,1.5813313,20.4596291,74.3234884,75.8993696,71.6025237,16.4880014,10.9428097,22.4732736,69.782257,31.1432032,46.1912266,21.0151803,17.2201139,58.4307992,4.0057915,32.5426945,16.796875,1.5648378,1.6517943,19.1931467,73.3305289,75.8747094,71.299983,17.3469977,10.8320062,21.8460996,69.8920014,30.8982593,43.6094191,20.6152433,16.4830119,57.5117371,4.4144981,32.3315118,15.1162791,1.7782485,1.8709269,19.3379019,73.2860074,75.4535576,71.9461354,18.5071153,9.7247831,21.3640378,69.4545302,30.6801701,40.5571718,21.2047013,16.6993144,56.5458207,4.7123016,35.1272016,12.8099174\r\n1153,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5648378,1.6517943,19.1931467,73.3305289,75.8747094,71.299983,17.3469977,10.8320062,21.8460996,69.8920014,30.8982593,43.6094191,20.6152433,16.4830119,57.5117371,4.4144981,32.3315118,15.1162791,1.7782485,1.8709269,19.3379019,73.2860074,75.4535576,71.9461354,18.5071153,9.7247831,21.3640378,69.4545302,30.6801701,40.5571718,21.2047013,16.6993144,56.5458207,4.7123016,35.1272016,12.8099174,1.8618971,1.9102063,19.9481453,74.288514,78.1269965,73.1274149,19.3345681,8.5939735,20.6678402,69.5876006,32.0929213,41.3144198,21.8654434,16.9724771,55.374078,5.4235537,35.110664,11.637931\r\n1154,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7782485,1.8709269,19.3379019,73.2860074,75.4535576,71.9461354,18.5071153,9.7247831,21.3640378,69.4545302,30.6801701,40.5571718,21.2047013,16.6993144,56.5458207,4.7123016,35.1272016,12.8099174,1.8618971,1.9102063,19.9481453,74.288514,78.1269965,73.1274149,19.3345681,8.5939735,20.6678402,69.5876006,32.0929213,41.3144198,21.8654434,16.9724771,55.374078,5.4235537,35.110664,11.637931,2.1459066,2.1964627,20.4900614,73.2070286,76.8203665,70.6873964,20.692451,9.7674932,21.6362455,70.4737167,31.4634973,42.386563,22.4193548,17.1505376,56.7403315,5.7837838,36.4107884,13.7168142\r\n1155,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8618971,1.9102063,19.9481453,74.288514,78.1269965,73.1274149,19.3345681,8.5939735,20.6678402,69.5876006,32.0929213,41.3144198,21.8654434,16.9724771,55.374078,5.4235537,35.110664,11.637931,2.1459066,2.1964627,20.4900614,73.2070286,76.8203665,70.6873964,20.692451,9.7674932,21.6362455,70.4737167,31.4634973,42.386563,22.4193548,17.1505376,56.7403315,5.7837838,36.4107884,13.7168142,2.1148507,2.1662911,19.9640271,73.642327,75.8580259,69.2466066,19.8093211,9.6360642,21.0721802,70.6149224,30.7011242,43.0425663,22.0588235,17.1568627,56.5388952,5.7032115,37.9569892,11.3636364\r\n1156,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1459066,2.1964627,20.4900614,73.2070286,76.8203665,70.6873964,20.692451,9.7674932,21.6362455,70.4737167,31.4634973,42.386563,22.4193548,17.1505376,56.7403315,5.7837838,36.4107884,13.7168142,2.1148507,2.1662911,19.9640271,73.642327,75.8580259,69.2466066,19.8093211,9.6360642,21.0721802,70.6149224,30.7011242,43.0425663,22.0588235,17.1568627,56.5388952,5.7032115,37.9569892,11.3636364,1.6593105,1.7108038,19.2143472,71.6970825,75.3264895,67.2673391,19.8725765,9.6549419,21.7593626,70.7724276,30.0355392,42.0820103,21.8309859,17.6056338,55.4360136,5.5986696,37.7944325,10.2678571\r\n1157,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1148507,2.1662911,19.9640271,73.642327,75.8580259,69.2466066,19.8093211,9.6360642,21.0721802,70.6149224,30.7011242,43.0425663,22.0588235,17.1568627,56.5388952,5.7032115,37.9569892,11.3636364,1.6593105,1.7108038,19.2143472,71.6970825,75.3264895,67.2673391,19.8725765,9.6549419,21.7593626,70.7724276,30.0355392,42.0820103,21.8309859,17.6056338,55.4360136,5.5986696,37.7944325,10.2678571,1.9714489,2.024697,19.3860137,72.2950957,76.7868477,65.7274114,20.3451247,11.2626226,23.0659362,69.9882984,30.7610289,42.9482348,21.9933185,17.4276169,56.257379,5.4849885,39.4854586,11.4678899\r\n1158,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6593105,1.7108038,19.2143472,71.6970825,75.3264895,67.2673391,19.8725765,9.6549419,21.7593626,70.7724276,30.0355392,42.0820103,21.8309859,17.6056338,55.4360136,5.5986696,37.7944325,10.2678571,1.9714489,2.024697,19.3860137,72.2950957,76.7868477,65.7274114,20.3451247,11.2626226,23.0659362,69.9882984,30.7610289,42.9482348,21.9933185,17.4276169,56.257379,5.4849885,39.4854586,11.4678899,2.0543991,2.1100164,20.4391363,72.6593013,76.7240651,67.1517885,20.7569447,11.3994931,22.1977556,68.7395381,32.3734438,41.6745812,22.1900348,18.1344148,57.1517413,4.7878788,38.9534884,11.9047619\r\n1159,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9714489,2.024697,19.3860137,72.2950957,76.7868477,65.7274114,20.3451247,11.2626226,23.0659362,69.9882984,30.7610289,42.9482348,21.9933185,17.4276169,56.257379,5.4849885,39.4854586,11.4678899,2.0543991,2.1100164,20.4391363,72.6593013,76.7240651,67.1517885,20.7569447,11.3994931,22.1977556,68.7395381,32.3734438,41.6745812,22.1900348,18.1344148,57.1517413,4.7878788,38.9534884,11.9047619,1.8472547,1.929222,20.3654748,72.7383253,76.9965584,67.831875,19.193816,12.4813231,21.83101,66.6015484,31.5349317,43.5840582,21.9748858,18.2077626,57.7818627,4.4749403,39.7959184,14.2201835\r\n1160,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0543991,2.1100164,20.4391363,72.6593013,76.7240651,67.1517885,20.7569447,11.3994931,22.1977556,68.7395381,32.3734438,41.6745812,22.1900348,18.1344148,57.1517413,4.7878788,38.9534884,11.9047619,1.8472547,1.929222,20.3654748,72.7383253,76.9965584,67.831875,19.193816,12.4813231,21.83101,66.6015484,31.5349317,43.5840582,21.9748858,18.2077626,57.7818627,4.4749403,39.7959184,14.2201835,1.6557595,1.7954243,19.2344282,70.8470613,76.7020889,67.7421832,19.5741936,13.3000543,22.1445383,66.8457383,30.6653081,44.440535,21.7770035,17.7119628,58.1467662,3.6835749,38.9772727,13.3027523\r\n1161,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8472547,1.929222,20.3654748,72.7383253,76.9965584,67.831875,19.193816,12.4813231,21.83101,66.6015484,31.5349317,43.5840582,21.9748858,18.2077626,57.7818627,4.4749403,39.7959184,14.2201835,1.6557595,1.7954243,19.2344282,70.8470613,76.7020889,67.7421832,19.5741936,13.3000543,22.1445383,66.8457383,30.6653081,44.440535,21.7770035,17.7119628,58.1467662,3.6835749,38.9772727,13.3027523,1.4170338,1.554699,18.3274878,71.5798647,75.9162455,71.7601976,18.1369444,11.2088416,20.0170512,65.2186483,30.9258758,45.5332466,22.0251716,17.791762,57.4142157,3.3888228,38.3826879,10.6837607\r\n1162,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6557595,1.7954243,19.2344282,70.8470613,76.7020889,67.7421832,19.5741936,13.3000543,22.1445383,66.8457383,30.6653081,44.440535,21.7770035,17.7119628,58.1467662,3.6835749,38.9772727,13.3027523,1.4170338,1.554699,18.3274878,71.5798647,75.9162455,71.7601976,18.1369444,11.2088416,20.0170512,65.2186483,30.9258758,45.5332466,22.0251716,17.791762,57.4142157,3.3888228,38.3826879,10.6837607,1.2664532,1.4745642,18.2465485,71.4334013,76.3578858,72.8284865,18.2946102,11.5620192,19.4554621,63.9161955,29.4024066,45.2730819,22.0555556,17.7222222,58.3333333,3.1392694,38.3333333,12.3015873\r\n1163,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4170338,1.554699,18.3274878,71.5798647,75.9162455,71.7601976,18.1369444,11.2088416,20.0170512,65.2186483,30.9258758,45.5332466,22.0251716,17.791762,57.4142157,3.3888228,38.3826879,10.6837607,1.2664532,1.4745642,18.2465485,71.4334013,76.3578858,72.8284865,18.2946102,11.5620192,19.4554621,63.9161955,29.4024066,45.2730819,22.0555556,17.7222222,58.3333333,3.1392694,38.3333333,12.3015873,1.2174818,1.4203954,17.6095054,72.4177305,75.757972,71.5999568,19.5524627,12.5951122,19.358133,64.1754811,29.2863527,45.8039856,22.3612622,17.4646355,59.0700344,3.1666667,37.5273523,12.5\r\n1164,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2664532,1.4745642,18.2465485,71.4334013,76.3578858,72.8284865,18.2946102,11.5620192,19.4554621,63.9161955,29.4024066,45.2730819,22.0555556,17.7222222,58.3333333,3.1392694,38.3333333,12.3015873,1.2174818,1.4203954,17.6095054,72.4177305,75.757972,71.5999568,19.5524627,12.5951122,19.358133,64.1754811,29.2863527,45.8039856,22.3612622,17.4646355,59.0700344,3.1666667,37.5273523,12.5,1.0197044,1.2118227,17.558123,73.0046319,75.6857084,74.5831582,20.9290104,11.7362608,16.9267814,66.7144108,30.1045523,47.2814011,21.8944099,17.1325052,60.4864865,3.4031414,35.4674797,12.962963\r\n1165,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2174818,1.4203954,17.6095054,72.4177305,75.757972,71.5999568,19.5524627,12.5951122,19.358133,64.1754811,29.2863527,45.8039856,22.3612622,17.4646355,59.0700344,3.1666667,37.5273523,12.5,1.0197044,1.2118227,17.558123,73.0046319,75.6857084,74.5831582,20.9290104,11.7362608,16.9267814,66.7144108,30.1045523,47.2814011,21.8944099,17.1325052,60.4864865,3.4031414,35.4674797,12.962963,1.0820204,1.1700649,16.9918767,71.939616,74.7374501,72.7852,21.3966822,12.329504,18.8966782,68.6213588,29.6183869,48.6374267,21.588694,17.1052632,60.2719033,3.388998,35.8949416,12.7737226\r\n1166,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0197044,1.2118227,17.558123,73.0046319,75.6857084,74.5831582,20.9290104,11.7362608,16.9267814,66.7144108,30.1045523,47.2814011,21.8944099,17.1325052,60.4864865,3.4031414,35.4674797,12.962963,1.0820204,1.1700649,16.9918767,71.939616,74.7374501,72.7852,21.3966822,12.329504,18.8966782,68.6213588,29.6183869,48.6374267,21.588694,17.1052632,60.2719033,3.388998,35.8949416,12.7737226,1.1429216,1.2060415,16.4848506,70.8279072,73.4273911,71.912135,22.3742224,12.5425195,18.9665326,71.3560172,30.7060157,47.1874839,21.2335217,16.8079096,60.4752667,3.2857143,34.0155945,13.5036496\r\n1167,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0820204,1.1700649,16.9918767,71.939616,74.7374501,72.7852,21.3966822,12.329504,18.8966782,68.6213588,29.6183869,48.6374267,21.588694,17.1052632,60.2719033,3.388998,35.8949416,12.7737226,1.1429216,1.2060415,16.4848506,70.8279072,73.4273911,71.912135,22.3742224,12.5425195,18.9665326,71.3560172,30.7060157,47.1874839,21.2335217,16.8079096,60.4752667,3.2857143,34.0155945,13.5036496,1.2871641,1.3471984,17.4652332,70.7076786,71.1059175,72.4005099,22.3055089,13.8012546,18.7821668,71.4690719,32.8136838,46.6794878,21.2298025,17.1903052,60.3240741,3.9545455,33.6158192,15.1408451\r\n1168,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1429216,1.2060415,16.4848506,70.8279072,73.4273911,71.912135,22.3742224,12.5425195,18.9665326,71.3560172,30.7060157,47.1874839,21.2335217,16.8079096,60.4752667,3.2857143,34.0155945,13.5036496,1.2871641,1.3471984,17.4652332,70.7076786,71.1059175,72.4005099,22.3055089,13.8012546,18.7821668,71.4690719,32.8136838,46.6794878,21.2298025,17.1903052,60.3240741,3.9545455,33.6158192,15.1408451,1.2944128,1.3513697,18.1603407,70.459698,71.9040953,71.7720765,22.5447377,15.3173927,19.6416837,72.3725177,32.2493055,45.368985,20.6530958,17.0907549,59.8852604,4.2137272,33.3638026,16.2068966\r\n1169,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2871641,1.3471984,17.4652332,70.7076786,71.1059175,72.4005099,22.3055089,13.8012546,18.7821668,71.4690719,32.8136838,46.6794878,21.2298025,17.1903052,60.3240741,3.9545455,33.6158192,15.1408451,1.2944128,1.3513697,18.1603407,70.459698,71.9040953,71.7720765,22.5447377,15.3173927,19.6416837,72.3725177,32.2493055,45.368985,20.6530958,17.0907549,59.8852604,4.2137272,33.3638026,16.2068966,1.2321994,1.2321994,17.7937521,71.0745716,73.7308944,72.0939585,22.9977048,15.1822424,20.6136271,72.6649476,32.4858103,45.6226729,19.9590164,16.6803279,60.1468048,4.0494459,33.7147887,15.5172414\r\n1170,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2944128,1.3513697,18.1603407,70.459698,71.9040953,71.7720765,22.5447377,15.3173927,19.6416837,72.3725177,32.2493055,45.368985,20.6530958,17.0907549,59.8852604,4.2137272,33.3638026,16.2068966,1.2321994,1.2321994,17.7937521,71.0745716,73.7308944,72.0939585,22.9977048,15.1822424,20.6136271,72.6649476,32.4858103,45.6226729,19.9590164,16.6803279,60.1468048,4.0494459,33.7147887,15.5172414,1.2570949,1.2570949,18.3899597,72.772907,73.5141203,74.9750162,21.4268753,13.628157,20.0650118,72.0418872,32.5924589,45.4140274,20.2974277,16.9212219,60.5307498,3.8717735,33.4767642,15.5629139\r\n1171,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2321994,1.2321994,17.7937521,71.0745716,73.7308944,72.0939585,22.9977048,15.1822424,20.6136271,72.6649476,32.4858103,45.6226729,19.9590164,16.6803279,60.1468048,4.0494459,33.7147887,15.5172414,1.2570949,1.2570949,18.3899597,72.772907,73.5141203,74.9750162,21.4268753,13.628157,20.0650118,72.0418872,32.5924589,45.4140274,20.2974277,16.9212219,60.5307498,3.8717735,33.4767642,15.5629139,1.2114792,1.2885208,18.9945472,72.1529665,73.6581041,74.7398462,19.6477089,14.4139409,21.6307211,70.4997733,31.4041087,44.3666316,21.6334661,18.0478088,59.535865,3.3806344,33.6521739,12.7329193\r\n1172,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2570949,1.2570949,18.3899597,72.772907,73.5141203,74.9750162,21.4268753,13.628157,20.0650118,72.0418872,32.5924589,45.4140274,20.2974277,16.9212219,60.5307498,3.8717735,33.4767642,15.5629139,1.2114792,1.2885208,18.9945472,72.1529665,73.6581041,74.7398462,19.6477089,14.4139409,21.6307211,70.4997733,31.4041087,44.3666316,21.6334661,18.0478088,59.535865,3.3806344,33.6521739,12.7329193,1.1033951,1.1805556,19.1414852,72.3003025,73.8465807,73.7425795,17.8510774,14.4621662,21.4560657,69.396995,30.8775502,44.950595,22.7418066,18.4252598,60.3477523,3.8139145,32.8924162,12.1301775\r\n1173,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2114792,1.2885208,18.9945472,72.1529665,73.6581041,74.7398462,19.6477089,14.4139409,21.6307211,70.4997733,31.4041087,44.3666316,21.6334661,18.0478088,59.535865,3.3806344,33.6521739,12.7329193,1.1033951,1.1805556,19.1414852,72.3003025,73.8465807,73.7425795,17.8510774,14.4621662,21.4560657,69.396995,30.8775502,44.950595,22.7418066,18.4252598,60.3477523,3.8139145,32.8924162,12.1301775,0.9140201,0.9914795,18.2284867,72.7381844,74.3688296,74.7153846,18.6485662,13.9706356,24.0104903,69.4660218,30.7581727,46.2149926,21.842317,17.5784393,60.3316327,4.1666667,32.0603908,9.1176471\r\n1174,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1033951,1.1805556,19.1414852,72.3003025,73.8465807,73.7425795,17.8510774,14.4621662,21.4560657,69.396995,30.8775502,44.950595,22.7418066,18.4252598,60.3477523,3.8139145,32.8924162,12.1301775,0.9140201,0.9914795,18.2284867,72.7381844,74.3688296,74.7153846,18.6485662,13.9706356,24.0104903,69.4660218,30.7581727,46.2149926,21.842317,17.5784393,60.3316327,4.1666667,32.0603908,9.1176471,0.7947531,0.8719136,18.5830799,73.832092,75.6084948,74.5522944,18.8483425,13.3013261,23.5387836,70.273719,29.190145,45.5269291,22.1910112,18.0176565,60.3114478,3.3919598,32.4778761,9.1715976\r\n1175,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9140201,0.9914795,18.2284867,72.7381844,74.3688296,74.7153846,18.6485662,13.9706356,24.0104903,69.4660218,30.7581727,46.2149926,21.842317,17.5784393,60.3316327,4.1666667,32.0603908,9.1176471,0.7947531,0.8719136,18.5830799,73.832092,75.6084948,74.5522944,18.8483425,13.3013261,23.5387836,70.273719,29.190145,45.5269291,22.1910112,18.0176565,60.3114478,3.3919598,32.4778761,9.1715976,0.7452852,0.8443922,17.5901255,72.4672978,74.4205058,72.356539,18.6526906,12.6474282,21.6660799,70.0326547,30.2132216,44.0665647,22.1216361,17.5732623,60.4965418,3.1190626,32.2898032,9.6273292\r\n1176,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7947531,0.8719136,18.5830799,73.832092,75.6084948,74.5522944,18.8483425,13.3013261,23.5387836,70.273719,29.190145,45.5269291,22.1910112,18.0176565,60.3114478,3.3919598,32.4778761,9.1715976,0.7452852,0.8443922,17.5901255,72.4672978,74.4205058,72.356539,18.6526906,12.6474282,21.6660799,70.0326547,30.2132216,44.0665647,22.1216361,17.5732623,60.4965418,3.1190626,32.2898032,9.6273292,0.9702398,1.0699795,20.1637031,70.6846181,71.9238229,71.2294441,18.2096575,12.4545025,20.690262,68.9661611,31.5079759,42.8859117,22.6774719,18.3340887,60.2215428,3.8157355,30.9139785,10.8024691\r\n1177,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7452852,0.8443922,17.5901255,72.4672978,74.4205058,72.356539,18.6526906,12.6474282,21.6660799,70.0326547,30.2132216,44.0665647,22.1216361,17.5732623,60.4965418,3.1190626,32.2898032,9.6273292,0.9702398,1.0699795,20.1637031,70.6846181,71.9238229,71.2294441,18.2096575,12.4545025,20.690262,68.9661611,31.5079759,42.8859117,22.6774719,18.3340887,60.2215428,3.8157355,30.9139785,10.8024691,0.9631053,1.0645447,19.9506632,71.1567477,73.9678581,70.5922998,17.6666036,13.2011446,20.1401755,70.0064578,31.2599348,43.3631249,22.8806163,18.4821244,59.1873042,3.5457162,31.3419118,11.8589744\r\n1178,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9702398,1.0699795,20.1637031,70.6846181,71.9238229,71.2294441,18.2096575,12.4545025,20.690262,68.9661611,31.5079759,42.8859117,22.6774719,18.3340887,60.2215428,3.8157355,30.9139785,10.8024691,0.9631053,1.0645447,19.9506632,71.1567477,73.9678581,70.5922998,17.6666036,13.2011446,20.1401755,70.0064578,31.2599348,43.3631249,22.8806163,18.4821244,59.1873042,3.5457162,31.3419118,11.8589744,0.9940013,1.0140935,19.8623406,72.0631474,74.8200576,71.0852363,18.3142354,12.834043,19.3330245,70.6541459,31.6022829,44.7093665,22.3907545,18.3578982,59.3581515,3.726793,32.9422383,15.9375\r\n1179,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9631053,1.0645447,19.9506632,71.1567477,73.9678581,70.5922998,17.6666036,13.2011446,20.1401755,70.0064578,31.2599348,43.3631249,22.8806163,18.4821244,59.1873042,3.5457162,31.3419118,11.8589744,0.9940013,1.0140935,19.8623406,72.0631474,74.8200576,71.0852363,18.3142354,12.834043,19.3330245,70.6541459,31.6022829,44.7093665,22.3907545,18.3578982,59.3581515,3.726793,32.9422383,15.9375,1.0011251,1.0213147,20.7677082,72.8423228,75.9768158,73.7471384,19.2919464,12.4009182,18.2969758,70.5403562,31.7503083,45.9140032,22.7191607,19.0942111,59.4749463,3.6599331,34.078712,15.3594771\r\n1180,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9940013,1.0140935,19.8623406,72.0631474,74.8200576,71.0852363,18.3142354,12.834043,19.3330245,70.6541459,31.6022829,44.7093665,22.3907545,18.3578982,59.3581515,3.726793,32.9422383,15.9375,1.0011251,1.0213147,20.7677082,72.8423228,75.9768158,73.7471384,19.2919464,12.4009182,18.2969758,70.5403562,31.7503083,45.9140032,22.7191607,19.0942111,59.4749463,3.6599331,34.078712,15.3594771,1.1020613,1.1622286,22.3623928,73.054048,76.3701491,72.4743904,18.6146233,12.533362,15.4349998,69.5876756,30.5862924,46.6088945,24.0665942,20.2865008,59.6906593,3.3661518,33.4760274,15.5063291\r\n1181,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0011251,1.0213147,20.7677082,72.8423228,75.9768158,73.7471384,19.2919464,12.4009182,18.2969758,70.5403562,31.7503083,45.9140032,22.7191607,19.0942111,59.4749463,3.6599331,34.078712,15.3594771,1.1020613,1.1622286,22.3623928,73.054048,76.3701491,72.4743904,18.6146233,12.533362,15.4349998,69.5876756,30.5862924,46.6088945,24.0665942,20.2865008,59.6906593,3.3661518,33.4760274,15.5063291,1.2782798,1.4173316,21.8317034,71.1833613,75.0055632,70.7507784,18.0739395,11.8419588,15.3534384,69.3003837,30.3880724,45.1952498,23.8264179,20.1672124,60.3154223,4.0239001,33.5334477,15.6441718\r\n1182,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1020613,1.1622286,22.3623928,73.054048,76.3701491,72.4743904,18.6146233,12.533362,15.4349998,69.5876756,30.5862924,46.6088945,24.0665942,20.2865008,59.6906593,3.3661518,33.4760274,15.5063291,1.2782798,1.4173316,21.8317034,71.1833613,75.0055632,70.7507784,18.0739395,11.8419588,15.3534384,69.3003837,30.3880724,45.1952498,23.8264179,20.1672124,60.3154223,4.0239001,33.5334477,15.6441718,1.3639544,1.4431145,23.1093095,71.5423666,74.5692458,70.3496389,18.030922,12.6131247,18.3093833,69.7833266,30.3979701,45.3167775,24.3746314,20.9812192,61.7095278,4.0920556,34.0443686,15.1428571\r\n1183,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2782798,1.4173316,21.8317034,71.1833613,75.0055632,70.7507784,18.0739395,11.8419588,15.3534384,69.3003837,30.3880724,45.1952498,23.8264179,20.1672124,60.3154223,4.0239001,33.5334477,15.6441718,1.3639544,1.4431145,23.1093095,71.5423666,74.5692458,70.3496389,18.030922,12.6131247,18.3093833,69.7833266,30.3979701,45.3167775,24.3746314,20.9812192,61.7095278,4.0920556,34.0443686,15.1428571,1.5314941,1.6125798,22.0734531,73.0664404,76.6011463,71.7717524,18.182497,13.2438659,18.6551396,70.6155946,29.6955358,47.4432315,25.2077964,21.2119568,61.924108,3.3183265,34.0747331,14.8255814\r\n1184,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3639544,1.4431145,23.1093095,71.5423666,74.5692458,70.3496389,18.030922,12.6131247,18.3093833,69.7833266,30.3979701,45.3167775,24.3746314,20.9812192,61.7095278,4.0920556,34.0443686,15.1428571,1.5314941,1.6125798,22.0734531,73.0664404,76.6011463,71.7717524,18.182497,13.2438659,18.6551396,70.6155946,29.6955358,47.4432315,25.2077964,21.2119568,61.924108,3.3183265,34.0747331,14.8255814,1.8681855,2.0299635,23.4134256,71.3341463,76.7761836,71.7112948,17.8090836,13.9246733,20.2537717,70.1803095,29.9905317,47.597375,25.5893746,22.0246856,62.4548267,3.4579227,34.0669014,14.5714286\r\n1185,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5314941,1.6125798,22.0734531,73.0664404,76.6011463,71.7717524,18.182497,13.2438659,18.6551396,70.6155946,29.6955358,47.4432315,25.2077964,21.2119568,61.924108,3.3183265,34.0747331,14.8255814,1.8681855,2.0299635,23.4134256,71.3341463,76.7761836,71.7112948,17.8090836,13.9246733,20.2537717,70.1803095,29.9905317,47.597375,25.5893746,22.0246856,62.4548267,3.4579227,34.0669014,14.5714286,1.9786371,2.1443012,23.541238,71.1687999,76.6727291,69.8674135,17.5822581,13.5710587,20.9141566,69.0279212,30.6394483,47.1991383,26.5369867,22.3675092,62.8948816,3.2946081,34.8181818,12.7329193\r\n1186,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8681855,2.0299635,23.4134256,71.3341463,76.7761836,71.7112948,17.8090836,13.9246733,20.2537717,70.1803095,29.9905317,47.597375,25.5893746,22.0246856,62.4548267,3.4579227,34.0669014,14.5714286,1.9786371,2.1443012,23.541238,71.1687999,76.6727291,69.8674135,17.5822581,13.5710587,20.9141566,69.0279212,30.6394483,47.1991383,26.5369867,22.3675092,62.8948816,3.2946081,34.8181818,12.7329193,2.3015835,2.4379427,23.3128667,70.5733503,76.3798731,68.8289328,18.7588143,14.7275625,22.2752654,68.8340919,30.8420961,46.6954954,26.515918,22.4035947,61.7707889,3.265915,34.8731884,15.2694611\r\n1187,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9786371,2.1443012,23.541238,71.1687999,76.6727291,69.8674135,17.5822581,13.5710587,20.9141566,69.0279212,30.6394483,47.1991383,26.5369867,22.3675092,62.8948816,3.2946081,34.8181818,12.7329193,2.3015835,2.4379427,23.3128667,70.5733503,76.3798731,68.8289328,18.7588143,14.7275625,22.2752654,68.8340919,30.8420961,46.6954954,26.515918,22.4035947,61.7707889,3.265915,34.8731884,15.2694611,2.4019032,2.4978462,24.4483302,70.4488562,76.7643877,70.0312807,18.1764155,14.6723094,22.4743114,68.7818881,30.5789175,46.1193743,27.7300086,23.516767,60.9148551,3.3890845,35.6610801,17.6300578\r\n1188,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3015835,2.4379427,23.3128667,70.5733503,76.3798731,68.8289328,18.7588143,14.7275625,22.2752654,68.8340919,30.8420961,46.6954954,26.515918,22.4035947,61.7707889,3.265915,34.8731884,15.2694611,2.4019032,2.4978462,24.4483302,70.4488562,76.7643877,70.0312807,18.1764155,14.6723094,22.4743114,68.7818881,30.5789175,46.1193743,27.7300086,23.516767,60.9148551,3.3890845,35.6610801,17.6300578,2.3629905,2.3769608,24.233065,72.4024639,78.0229774,71.0461499,18.3922775,15.1348854,22.5819823,68.5125556,31.5516721,48.9247794,28.3027122,24.015748,61.3657195,3.1810036,35.6880734,18.4210526\r\n1189,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4019032,2.4978462,24.4483302,70.4488562,76.7643877,70.0312807,18.1764155,14.6723094,22.4743114,68.7818881,30.5789175,46.1193743,27.7300086,23.516767,60.9148551,3.3890845,35.6610801,17.6300578,2.3629905,2.3769608,24.233065,72.4024639,78.0229774,71.0461499,18.3922775,15.1348854,22.5819823,68.5125556,31.5516721,48.9247794,28.3027122,24.015748,61.3657195,3.1810036,35.6880734,18.4210526,2.3168729,2.3729424,23.8149188,73.833905,78.8030267,73.9406474,18.4482919,14.3404738,20.1484101,69.5934827,32.1974712,49.5973833,28.7028922,24.1454864,60.5407883,3.1895777,34.5505618,19.2073171\r\n1190,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3629905,2.3769608,24.233065,72.4024639,78.0229774,71.0461499,18.3922775,15.1348854,22.5819823,68.5125556,31.5516721,48.9247794,28.3027122,24.015748,61.3657195,3.1810036,35.6880734,18.4210526,2.3168729,2.3729424,23.8149188,73.833905,78.8030267,73.9406474,18.4482919,14.3404738,20.1484101,69.5934827,32.1974712,49.5973833,28.7028922,24.1454864,60.5407883,3.1895777,34.5505618,19.2073171,2.0317321,2.0868166,22.9643831,74.9565431,79.5290696,75.028594,19.7031048,14.1558052,19.6373383,69.8988717,32.8731869,48.5343197,28.3099448,24.2011417,60.3045502,3.7669844,34.1964286,18.6781609\r\n1191,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3168729,2.3729424,23.8149188,73.833905,78.8030267,73.9406474,18.4482919,14.3404738,20.1484101,69.5934827,32.1974712,49.5973833,28.7028922,24.1454864,60.5407883,3.1895777,34.5505618,19.2073171,2.0317321,2.0868166,22.9643831,74.9565431,79.5290696,75.028594,19.7031048,14.1558052,19.6373383,69.8988717,32.8731869,48.5343197,28.3099448,24.2011417,60.3045502,3.7669844,34.1964286,18.6781609,1.788724,1.8027383,22.0840327,76.0570682,79.6112485,76.1374082,20.1707021,14.7454712,19.6759084,69.5212913,30.6245996,48.5264346,27.9321428,23.2292253,61.2373329,3.8453764,34.5470693,17.6630435\r\n1192,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0317321,2.0868166,22.9643831,74.9565431,79.5290696,75.028594,19.7031048,14.1558052,19.6373383,69.8988717,32.8731869,48.5343197,28.3099448,24.2011417,60.3045502,3.7669844,34.1964286,18.6781609,1.788724,1.8027383,22.0840327,76.0570682,79.6112485,76.1374082,20.1707021,14.7454712,19.6759084,69.5212913,30.6245996,48.5264346,27.9321428,23.2292253,61.2373329,3.8453764,34.5470693,17.6630435,1.7462417,1.7735359,22.704872,73.1178725,76.0953385,76.4350356,19.6790022,15.5297046,18.6838115,71.0285919,31.43469,46.9327275,28.1438686,23.7453767,60.2489112,3.9268515,32.9525483,18.1578947\r\n1193,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.788724,1.8027383,22.0840327,76.0570682,79.6112485,76.1374082,20.1707021,14.7454712,19.6759084,69.5212913,30.6245996,48.5264346,27.9321428,23.2292253,61.2373329,3.8453764,34.5470693,17.6630435,1.7462417,1.7735359,22.704872,73.1178725,76.0953385,76.4350356,19.6790022,15.5297046,18.6838115,71.0285919,31.43469,46.9327275,28.1438686,23.7453767,60.2489112,3.9268515,32.9525483,18.1578947,1.5826883,1.6440672,22.9612378,73.1908017,75.2460838,75.8541923,17.9043496,15.0691083,17.6779911,70.6677331,30.9584747,46.1972747,28.0285414,23.5067744,60.5819734,4.1117588,32.9642249,19.2307692\r\n1194,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7462417,1.7735359,22.704872,73.1178725,76.0953385,76.4350356,19.6790022,15.5297046,18.6838115,71.0285919,31.43469,46.9327275,28.1438686,23.7453767,60.2489112,3.9268515,32.9525483,18.1578947,1.5826883,1.6440672,22.9612378,73.1908017,75.2460838,75.8541923,17.9043496,15.0691083,17.6779911,70.6677331,30.9584747,46.1972747,28.0285414,23.5067744,60.5819734,4.1117588,32.9642249,19.2307692,1.6770519,1.7375002,22.1264012,73.0678909,74.6465073,74.9035215,17.5353674,14.5822684,18.9437872,70.0771021,31.786375,46.7023268,27.2973183,22.6068227,61.4898118,4.2824795,34.4166667,19.4300518\r\n1195,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5826883,1.6440672,22.9612378,73.1908017,75.2460838,75.8541923,17.9043496,15.0691083,17.6779911,70.6677331,30.9584747,46.1972747,28.0285414,23.5067744,60.5819734,4.1117588,32.9642249,19.2307692,1.6770519,1.7375002,22.1264012,73.0678909,74.6465073,74.9035215,17.5353674,14.5822684,18.9437872,70.0771021,31.786375,46.7023268,27.2973183,22.6068227,61.4898118,4.2824795,34.4166667,19.4300518,1.5342867,1.5954049,23.9813948,70.2821048,73.3172843,72.8455399,17.805886,13.6339494,17.63151,70.1909253,31.1903653,46.3840987,28.1929587,23.6151447,61.2336331,3.9933125,34.6336783,19.4300518\r\n1196,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6770519,1.7375002,22.1264012,73.0678909,74.6465073,74.9035215,17.5353674,14.5822684,18.9437872,70.0771021,31.786375,46.7023268,27.2973183,22.6068227,61.4898118,4.2824795,34.4166667,19.4300518,1.5342867,1.5954049,23.9813948,70.2821048,73.3172843,72.8455399,17.805886,13.6339494,17.63151,70.1909253,31.1903653,46.3840987,28.1929587,23.6151447,61.2336331,3.9933125,34.6336783,19.4300518,1.5477346,1.6098551,25.3108627,70.833058,73.4658575,71.5163713,20.3040076,14.6103087,18.7076268,70.5581309,30.8383552,47.8260478,28.1015121,24.0352551,60.788954,4.3328057,35.1529689,19.4300518\r\n1197,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5342867,1.5954049,23.9813948,70.2821048,73.3172843,72.8455399,17.805886,13.6339494,17.63151,70.1909253,31.1903653,46.3840987,28.1929587,23.6151447,61.2336331,3.9933125,34.6336783,19.4300518,1.5477346,1.6098551,25.3108627,70.833058,73.4658575,71.5163713,20.3040076,14.6103087,18.7076268,70.5581309,30.8383552,47.8260478,28.1015121,24.0352551,60.788954,4.3328057,35.1529689,19.4300518,1.6539536,1.7575207,25.4682414,68.7742925,71.2156846,69.4574496,20.9941806,14.4166198,19.1631323,69.8135638,30.454567,47.4689064,28.4259588,23.9937253,60.7309156,4.1658503,36.0350428,17.75\r\n1198,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5477346,1.6098551,25.3108627,70.833058,73.4658575,71.5163713,20.3040076,14.6103087,18.7076268,70.5581309,30.8383552,47.8260478,28.1015121,24.0352551,60.788954,4.3328057,35.1529689,19.4300518,1.6539536,1.7575207,25.4682414,68.7742925,71.2156846,69.4574496,20.9941806,14.4166198,19.1631323,69.8135638,30.454567,47.4689064,28.4259588,23.9937253,60.7309156,4.1658503,36.0350428,17.75,1.6742971,1.7480441,25.7865416,70.3608355,70.9189668,70.5597716,21.0259141,13.7300162,19.2034127,69.4400331,30.9069465,48.875416,28.9009404,24.8720753,61.0029245,4.1374366,34.4051849,18.25\r\n1199,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6539536,1.7575207,25.4682414,68.7742925,71.2156846,69.4574496,20.9941806,14.4166198,19.1631323,69.8135638,30.454567,47.4689064,28.4259588,23.9937253,60.7309156,4.1658503,36.0350428,17.75,1.6742971,1.7480441,25.7865416,70.3608355,70.9189668,70.5597716,21.0259141,13.7300162,19.2034127,69.4400331,30.9069465,48.875416,28.9009404,24.8720753,61.0029245,4.1374366,34.4051849,18.25,1.5959066,1.6552069,25.0127726,72.8430351,73.8132993,71.2529065,21.9461635,12.4426389,18.2878213,67.2827173,29.3019205,50.2682418,27.7768224,23.8170562,61.4849945,3.9667733,33.7128009,18.9497717\r\n1200,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6742971,1.7480441,25.7865416,70.3608355,70.9189668,70.5597716,21.0259141,13.7300162,19.2034127,69.4400331,30.9069465,48.875416,28.9009404,24.8720753,61.0029245,4.1374366,34.4051849,18.25,1.5959066,1.6552069,25.0127726,72.8430351,73.8132993,71.2529065,21.9461635,12.4426389,18.2878213,67.2827173,29.3019205,50.2682418,27.7768224,23.8170562,61.4849945,3.9667733,33.7128009,18.9497717,1.6233541,1.773855,24.2034097,73.8749055,75.1371337,72.9193783,22.9254373,12.014468,18.059254,67.3082098,28.331282,51.125737,27.1742498,23.2080734,61.4584092,3.4978391,33.1048128,16.7431193\r\n1201,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5959066,1.6552069,25.0127726,72.8430351,73.8132993,71.2529065,21.9461635,12.4426389,18.2878213,67.2827173,29.3019205,50.2682418,27.7768224,23.8170562,61.4849945,3.9667733,33.7128009,18.9497717,1.6233541,1.773855,24.2034097,73.8749055,75.1371337,72.9193783,22.9254373,12.014468,18.059254,67.3082098,28.331282,51.125737,27.1742498,23.2080734,61.4584092,3.4978391,33.1048128,16.7431193,1.4308385,1.5844438,26.4460908,73.5492288,72.3643902,71.6447186,23.7285183,12.8737352,20.7058227,68.8762408,27.5771102,51.973979,27.5052986,23.9506107,60.3440117,3.391518,32.2136569,16.0465116\r\n1202,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6233541,1.773855,24.2034097,73.8749055,75.1371337,72.9193783,22.9254373,12.014468,18.059254,67.3082098,28.331282,51.125737,27.1742498,23.2080734,61.4584092,3.4978391,33.1048128,16.7431193,1.4308385,1.5844438,26.4460908,73.5492288,72.3643902,71.6447186,23.7285183,12.8737352,20.7058227,68.8762408,27.5771102,51.973979,27.5052986,23.9506107,60.3440117,3.391518,32.2136569,16.0465116,1.8291641,1.9814589,25.7717981,74.2790972,72.2871964,73.6267996,23.3981008,15.1778632,21.7085727,68.3231018,26.693472,51.5295443,27.2251033,23.3677334,60.6830588,3.4572633,31.0070671,15.158371\r\n1203,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4308385,1.5844438,26.4460908,73.5492288,72.3643902,71.6447186,23.7285183,12.8737352,20.7058227,68.8762408,27.5771102,51.973979,27.5052986,23.9506107,60.3440117,3.391518,32.2136569,16.0465116,1.8291641,1.9814589,25.7717981,74.2790972,72.2871964,73.6267996,23.3981008,15.1778632,21.7085727,68.3231018,26.693472,51.5295443,27.2251033,23.3677334,60.6830588,3.4572633,31.0070671,15.158371,1.7921003,1.9403889,25.6603535,73.045169,73.3370275,73.0204011,20.7237841,15.2407232,22.100658,65.5139408,24.9054006,51.0900538,27.5100468,23.1080987,61.8398029,3.12905,31.207483,13.7554585\r\n1204,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8291641,1.9814589,25.7717981,74.2790972,72.2871964,73.6267996,23.3981008,15.1778632,21.7085727,68.3231018,26.693472,51.5295443,27.2251033,23.3677334,60.6830588,3.4572633,31.0070671,15.158371,1.7921003,1.9403889,25.6603535,73.045169,73.3370275,73.0204011,20.7237841,15.2407232,22.100658,65.5139408,24.9054006,51.0900538,27.5100468,23.1080987,61.8398029,3.12905,31.207483,13.7554585,1.6568506,1.7648674,26.1163984,74.7582262,74.19467,73.8025032,18.5644513,16.2776661,22.9488012,65.6572463,24.4120566,52.403235,27.5709947,23.3138197,62.8844904,2.995617,30.6587838,17.6086957\r\n1205,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7921003,1.9403889,25.6603535,73.045169,73.3370275,73.0204011,20.7237841,15.2407232,22.100658,65.5139408,24.9054006,51.0900538,27.5100468,23.1080987,61.8398029,3.12905,31.207483,13.7554585,1.6568506,1.7648674,26.1163984,74.7582262,74.19467,73.8025032,18.5644513,16.2776661,22.9488012,65.6572463,24.4120566,52.403235,27.5709947,23.3138197,62.8844904,2.995617,30.6587838,17.6086957,1.5996067,1.6968432,26.2617709,73.6610682,74.2443004,72.4728083,19.489554,18.1632759,22.2279148,66.1459486,24.5861618,51.8472051,28.0873505,23.7129214,63.8667916,3.0532517,31.8576389,16.7391304\r\n1206,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6568506,1.7648674,26.1163984,74.7582262,74.19467,73.8025032,18.5644513,16.2776661,22.9488012,65.6572463,24.4120566,52.403235,27.5709947,23.3138197,62.8844904,2.995617,30.6587838,17.6086957,1.5996067,1.6968432,26.2617709,73.6610682,74.2443004,72.4728083,19.489554,18.1632759,22.2279148,66.1459486,24.5861618,51.8472051,28.0873505,23.7129214,63.8667916,3.0532517,31.8576389,16.7391304,1.6421731,1.7615749,26.7232811,74.89756,75.3262816,74.5970698,18.7231954,17.7352416,22.5665884,65.3705902,23.0934085,53.1316816,28.6076487,24.2895131,64.8037658,3.3754239,33.125,15.5405405\r\n1207,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5996067,1.6968432,26.2617709,73.6610682,74.2443004,72.4728083,19.489554,18.1632759,22.2279148,66.1459486,24.5861618,51.8472051,28.0873505,23.7129214,63.8667916,3.0532517,31.8576389,16.7391304,1.6421731,1.7615749,26.7232811,74.89756,75.3262816,74.5970698,18.7231954,17.7352416,22.5665884,65.3705902,23.0934085,53.1316816,28.6076487,24.2895131,64.8037658,3.3754239,33.125,15.5405405,1.7453933,1.7655666,27.6278582,73.8788029,74.339876,73.4523549,17.8789124,18.3459813,22.1516769,66.0010697,25.0214356,53.2250261,29.3689256,24.8896362,65.0699671,3.2687618,34.4919786,14.9553571\r\n1208,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6421731,1.7615749,26.7232811,74.89756,75.3262816,74.5970698,18.7231954,17.7352416,22.5665884,65.3705902,23.0934085,53.1316816,28.6076487,24.2895131,64.8037658,3.3754239,33.125,15.5405405,1.7453933,1.7655666,27.6278582,73.8788029,74.339876,73.4523549,17.8789124,18.3459813,22.1516769,66.0010697,25.0214356,53.2250261,29.3689256,24.8896362,65.0699671,3.2687618,34.4919786,14.9553571,1.7189175,1.7390139,26.1509059,74.2884931,76.8031488,74.8459207,17.3702202,18.0587477,18.9513086,64.2915098,24.6408428,52.5256756,29.6624473,24.8523207,67.1005386,3.1822145,35.3723404,16.3755459\r\n1209,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7453933,1.7655666,27.6278582,73.8788029,74.339876,73.4523549,17.8789124,18.3459813,22.1516769,66.0010697,25.0214356,53.2250261,29.3689256,24.8896362,65.0699671,3.2687618,34.4919786,14.9553571,1.7189175,1.7390139,26.1509059,74.2884931,76.8031488,74.8459207,17.3702202,18.0587477,18.9513086,64.2915098,24.6408428,52.5256756,29.6624473,24.8523207,67.1005386,3.1822145,35.3723404,16.3755459,1.6824769,1.7022398,25.6620002,75.5225241,77.8424355,76.3692409,17.4050044,16.676487,20.9791891,64.141662,25.7646462,52.4998218,29.2874896,24.5650373,66.7690957,3.1887755,35.9618718,15.0224215\r\n1210,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7189175,1.7390139,26.1509059,74.2884931,76.8031488,74.8459207,17.3702202,18.0587477,18.9513086,64.2915098,24.6408428,52.5256756,29.6624473,24.8523207,67.1005386,3.1822145,35.3723404,16.3755459,1.6824769,1.7022398,25.6620002,75.5225241,77.8424355,76.3692409,17.4050044,16.676487,20.9791891,64.141662,25.7646462,52.4998218,29.2874896,24.5650373,66.7690957,3.1887755,35.9618718,15.0224215,1.6731669,1.6926677,25.7641954,76.259882,77.0960751,76.9378054,18.1440522,17.2812417,20.9699013,66.0920538,26.2630747,52.3256854,29.8452769,25.3664495,66.6809239,3.0366057,35.4651163,18.3189655\r\n1211,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6824769,1.7022398,25.6620002,75.5225241,77.8424355,76.3692409,17.4050044,16.676487,20.9791891,64.141662,25.7646462,52.4998218,29.2874896,24.5650373,66.7690957,3.1887755,35.9618718,15.0224215,1.6731669,1.6926677,25.7641954,76.259882,77.0960751,76.9378054,18.1440522,17.2812417,20.9699013,66.0920538,26.2630747,52.3256854,29.8452769,25.3664495,66.6809239,3.0366057,35.4651163,18.3189655,1.5639445,1.5832049,25.6696423,75.4563507,76.8371203,75.1948106,18.4135843,20.0156709,20.2526934,66.1005641,25.8791229,53.9714768,29.9355359,25.5842063,66.2299239,2.7572016,36.4478114,15.560166\r\n1212,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6731669,1.6926677,25.7641954,76.259882,77.0960751,76.9378054,18.1440522,17.2812417,20.9699013,66.0920538,26.2630747,52.3256854,29.8452769,25.3664495,66.6809239,3.0366057,35.4651163,18.3189655,1.5639445,1.5832049,25.6696423,75.4563507,76.8371203,75.1948106,18.4135843,20.0156709,20.2526934,66.1005641,25.8791229,53.9714768,29.9355359,25.5842063,66.2299239,2.7572016,36.4478114,15.560166,1.9598337,1.9782839,25.9782143,75.0567627,76.2691586,75.6449201,18.8123813,17.9861739,19.7344157,66.0016527,26.9194318,53.2358393,29.0409899,24.7873163,65.2936378,3.201581,36.8044515,16.0416667\r\n1213,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5639445,1.5832049,25.6696423,75.4563507,76.8371203,75.1948106,18.4135843,20.0156709,20.2526934,66.1005641,25.8791229,53.9714768,29.9355359,25.5842063,66.2299239,2.7572016,36.4478114,15.560166,1.9598337,1.9782839,25.9782143,75.0567627,76.2691586,75.6449201,18.8123813,17.9861739,19.7344157,66.0016527,26.9194318,53.2358393,29.0409899,24.7873163,65.2936378,3.201581,36.8044515,16.0416667,1.9999327,1.9999327,25.8599008,73.7416447,74.8433293,73.8877749,19.7189339,19.1543409,20.8680707,67.2085155,28.7314012,50.9059953,28.7739464,24.4061303,65.4878049,3.115142,36.4,16.3755459\r\n1214,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9598337,1.9782839,25.9782143,75.0567627,76.2691586,75.6449201,18.8123813,17.9861739,19.7344157,66.0016527,26.9194318,53.2358393,29.0409899,24.7873163,65.2936378,3.201581,36.8044515,16.0416667,1.9999327,1.9999327,25.8599008,73.7416447,74.8433293,73.8877749,19.7189339,19.1543409,20.8680707,67.2085155,28.7314012,50.9059953,28.7739464,24.4061303,65.4878049,3.115142,36.4,16.3755459,1.8535926,1.8177246,25.8336889,73.3351963,74.1690536,73.2686321,20.258928,18.8640212,21.582663,68.0978548,27.8644255,49.7142229,28.4482759,24.4752624,65.7539683,3.642638,36.1586314,17.3245614\r\n1215,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9999327,1.9999327,25.8599008,73.7416447,74.8433293,73.8877749,19.7189339,19.1543409,20.8680707,67.2085155,28.7314012,50.9059953,28.7739464,24.4061303,65.4878049,3.115142,36.4,16.3755459,1.8535926,1.8177246,25.8336889,73.3351963,74.1690536,73.2686321,20.258928,18.8640212,21.582663,68.0978548,27.8644255,49.7142229,28.4482759,24.4752624,65.7539683,3.642638,36.1586314,17.3245614,2.1351594,2.0996984,25.6499341,73.5653964,75.3334714,73.7515263,20.5834453,19.5128512,21.2993549,68.425651,28.4226967,50.957151,29.0861813,24.9257058,65.1848938,3.831563,37.3484848,17.4568966\r\n1216,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8535926,1.8177246,25.8336889,73.3351963,74.1690536,73.2686321,20.258928,18.8640212,21.582663,68.0978548,27.8644255,49.7142229,28.4482759,24.4752624,65.7539683,3.642638,36.1586314,17.3245614,2.1351594,2.0996984,25.6499341,73.5653964,75.3334714,73.7515263,20.5834453,19.5128512,21.2993549,68.425651,28.4226967,50.957151,29.0861813,24.9257058,65.1848938,3.831563,37.3484848,17.4568966,2.2691077,2.2334444,27.2895887,73.1577324,75.1782564,74.0036549,21.2434062,19.8592446,20.2583651,68.7064061,28.3617272,49.7755088,30.104712,25.6918474,65.8333333,4.0933435,37.6712329,19.4560669\r\n1217,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1351594,2.0996984,25.6499341,73.5653964,75.3334714,73.7515263,20.5834453,19.5128512,21.2993549,68.425651,28.4226967,50.957151,29.0861813,24.9257058,65.1848938,3.831563,37.3484848,17.4568966,2.2691077,2.2334444,27.2895887,73.1577324,75.1782564,74.0036549,21.2434062,19.8592446,20.2583651,68.7064061,28.3617272,49.7755088,30.104712,25.6918474,65.8333333,4.0933435,37.6712329,19.4560669,2.3256462,2.2886091,26.7717597,72.1868434,74.2429775,73.840079,21.7045775,21.431701,22.1067248,67.9811868,28.4253233,50.5566529,29.7349961,25.2143414,66.1290323,4.1167066,38.7704918,17.8111588\r\n1218,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2691077,2.2334444,27.2895887,73.1577324,75.1782564,74.0036549,21.2434062,19.8592446,20.2583651,68.7064061,28.3617272,49.7755088,30.104712,25.6918474,65.8333333,4.0933435,37.6712329,19.4560669,2.3256462,2.2886091,26.7717597,72.1868434,74.2429775,73.840079,21.7045775,21.431701,22.1067248,67.9811868,28.4253233,50.5566529,29.7349961,25.2143414,66.1290323,4.1167066,38.7704918,17.8111588,2.5140953,2.4765859,26.7165534,71.7898043,73.597209,76.3699487,22.6549932,18.2165256,22.3217533,69.4351961,28.8981518,49.5577721,29.7543582,25.1584786,66.2343096,4.1700405,37.0340357,18.0803571\r\n1219,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3256462,2.2886091,26.7717597,72.1868434,74.2429775,73.840079,21.7045775,21.431701,22.1067248,67.9811868,28.4253233,50.5566529,29.7349961,25.2143414,66.1290323,4.1167066,38.7704918,17.8111588,2.5140953,2.4765859,26.7165534,71.7898043,73.597209,76.3699487,22.6549932,18.2165256,22.3217533,69.4351961,28.8981518,49.5577721,29.7543582,25.1584786,66.2343096,4.1700405,37.0340357,18.0803571,2.1987962,2.1616215,26.4871098,73.235722,75.0924301,76.9730765,21.1421981,18.1676413,23.1158058,68.8989993,29.9019438,52.4429424,29.280688,24.511337,65.6685808,3.7909018,37.5811688,20.0413223\r\n1220,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5140953,2.4765859,26.7165534,71.7898043,73.597209,76.3699487,22.6549932,18.2165256,22.3217533,69.4351961,28.8981518,49.5577721,29.7543582,25.1584786,66.2343096,4.1700405,37.0340357,18.0803571,2.1987962,2.1616215,26.4871098,73.235722,75.0924301,76.9730765,21.1421981,18.1676413,23.1158058,68.8989993,29.9019438,52.4429424,29.280688,24.511337,65.6685808,3.7909018,37.5811688,20.0413223,2.1292615,2.0918717,27.3159226,74.4907382,75.5070495,76.5620197,18.9674989,19.4236408,21.8001762,68.3875573,28.6551232,53.7906253,30.2318152,25.0153451,65.3536565,3.5508434,38.5645123,19.9604743\r\n1221,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1987962,2.1616215,26.4871098,73.235722,75.0924301,76.9730765,21.1421981,18.1676413,23.1158058,68.8989993,29.9019438,52.4429424,29.280688,24.511337,65.6685808,3.7909018,37.5811688,20.0413223,2.1292615,2.0918717,27.3159226,74.4907382,75.5070495,76.5620197,18.9674989,19.4236408,21.8001762,68.3875573,28.6551232,53.7906253,30.2318152,25.0153451,65.3536565,3.5508434,38.5645123,19.9604743,1.9716621,1.9716621,28.6226197,76.2404085,78.1397775,78.1530328,17.3944082,21.0635697,22.5846137,67.0110067,28.0411025,55.3302123,31.4128228,26.2631797,66.888477,2.8531854,38.8389715,18.9453125\r\n1222,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1292615,2.0918717,27.3159226,74.4907382,75.5070495,76.5620197,18.9674989,19.4236408,21.8001762,68.3875573,28.6551232,53.7906253,30.2318152,25.0153451,65.3536565,3.5508434,38.5645123,19.9604743,1.9716621,1.9716621,28.6226197,76.2404085,78.1397775,78.1530328,17.3944082,21.0635697,22.5846137,67.0110067,28.0411025,55.3302123,31.4128228,26.2631797,66.888477,2.8531854,38.8389715,18.9453125,1.8304097,1.8304097,27.1091628,75.2794931,77.3453305,76.4000214,16.5864702,21.2493678,22.7584331,66.6504709,27.2646528,53.7874359,29.846113,24.9956307,67.2176287,2.9194782,37.9763335,18.7984496\r\n1223,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9716621,1.9716621,28.6226197,76.2404085,78.1397775,78.1530328,17.3944082,21.0635697,22.5846137,67.0110067,28.0411025,55.3302123,31.4128228,26.2631797,66.888477,2.8531854,38.8389715,18.9453125,1.8304097,1.8304097,27.1091628,75.2794931,77.3453305,76.4000214,16.5864702,21.2493678,22.7584331,66.6504709,27.2646528,53.7874359,29.846113,24.9956307,67.2176287,2.9194782,37.9763335,18.7984496,1.334291,1.334291,24.7032007,75.2728626,76.9344601,76.5039167,15.2937883,22.2243849,22.8618497,67.5821967,27.7677801,53.7435364,28.17979,23.8327046,66.9357804,2.7729535,39.4304623,18.164794\r\n1224,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8304097,1.8304097,27.1091628,75.2794931,77.3453305,76.4000214,16.5864702,21.2493678,22.7584331,66.6504709,27.2646528,53.7874359,29.846113,24.9956307,67.2176287,2.9194782,37.9763335,18.7984496,1.334291,1.334291,24.7032007,75.2728626,76.9344601,76.5039167,15.2937883,22.2243849,22.8618497,67.5821967,27.7677801,53.7435364,28.17979,23.8327046,66.9357804,2.7729535,39.4304623,18.164794,1.4944619,1.4944619,24.8366359,76.4842814,78.4932886,77.4200686,14.8997564,21.3106948,20.5070166,67.5371616,28.2303832,55.4606485,27.8346473,23.7792682,67.0054758,3.1410282,39.2279203,18.3274021\r\n1225,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.334291,1.334291,24.7032007,75.2728626,76.9344601,76.5039167,15.2937883,22.2243849,22.8618497,67.5821967,27.7677801,53.7435364,28.17979,23.8327046,66.9357804,2.7729535,39.4304623,18.164794,1.4944619,1.4944619,24.8366359,76.4842814,78.4932886,77.4200686,14.8997564,21.3106948,20.5070166,67.5371616,28.2303832,55.4606485,27.8346473,23.7792682,67.0054758,3.1410282,39.2279203,18.3274021,1.716848,1.716848,25.6784441,75.8429576,79.0197421,75.5790144,13.8338885,21.9604137,20.678124,66.8396367,28.219423,55.4114614,27.6682319,23.5961663,67.5173101,3.2750515,39.8782272,18.9530686\r\n1226,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4944619,1.4944619,24.8366359,76.4842814,78.4932886,77.4200686,14.8997564,21.3106948,20.5070166,67.5371616,28.2303832,55.4606485,27.8346473,23.7792682,67.0054758,3.1410282,39.2279203,18.3274021,1.716848,1.716848,25.6784441,75.8429576,79.0197421,75.5790144,13.8338885,21.9604137,20.678124,66.8396367,28.219423,55.4114614,27.6682319,23.5961663,67.5173101,3.2750515,39.8782272,18.9530686,1.81579,1.8523594,24.6837776,73.8520276,76.4606495,72.1292133,15.2846369,23.1680139,19.9635874,67.0102612,26.6289221,51.1142106,28.3107282,23.738336,67.5101208,3.05744,39.119707,16.6666667\r\n1227,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.716848,1.716848,25.6784441,75.8429576,79.0197421,75.5790144,13.8338885,21.9604137,20.678124,66.8396367,28.219423,55.4114614,27.6682319,23.5961663,67.5173101,3.2750515,39.8782272,18.9530686,1.81579,1.8523594,24.6837776,73.8520276,76.4606495,72.1292133,15.2846369,23.1680139,19.9635874,67.0102612,26.6289221,51.1142106,28.3107282,23.738336,67.5101208,3.05744,39.119707,16.6666667,1.9188087,1.9739964,24.3946271,72.1693629,75.3067232,70.1611699,17.3526602,22.3135513,19.9287598,66.3642087,27.194612,52.0965936,28.0963303,23.9678899,68.4102142,3.1752412,38.4680135,16.0211268\r\n1228,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.81579,1.8523594,24.6837776,73.8520276,76.4606495,72.1292133,15.2846369,23.1680139,19.9635874,67.0102612,26.6289221,51.1142106,28.3107282,23.738336,67.5101208,3.05744,39.119707,16.6666667,1.9188087,1.9739964,24.3946271,72.1693629,75.3067232,70.1611699,17.3526602,22.3135513,19.9287598,66.3642087,27.194612,52.0965936,28.0963303,23.9678899,68.4102142,3.1752412,38.4680135,16.0211268,2.0536244,2.1274251,22.3478461,72.0928686,72.0066212,69.4064643,19.8374152,20.7606883,18.4476473,66.0796609,27.7947981,53.5445938,27.5057383,23.0680949,68.2976974,3.4081796,37.5210793,16.1129568\r\n1229,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9188087,1.9739964,24.3946271,72.1693629,75.3067232,70.1611699,17.3526602,22.3135513,19.9287598,66.3642087,27.194612,52.0965936,28.0963303,23.9678899,68.4102142,3.1752412,38.4680135,16.0211268,2.0536244,2.1274251,22.3478461,72.0928686,72.0066212,69.4064643,19.8374152,20.7606883,18.4476473,66.0796609,27.7947981,53.5445938,27.5057383,23.0680949,68.2976974,3.4081796,37.5210793,16.1129568,1.8582502,1.9311897,23.037728,72.7578555,72.3472113,70.7554523,20.6117022,20.358819,17.4915839,66.1806089,28.6485194,53.8948015,27.8409091,23.5984848,68.0209171,3.0458861,36.1754967,14.0776699\r\n1230,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0536244,2.1274251,22.3478461,72.0928686,72.0066212,69.4064643,19.8374152,20.7606883,18.4476473,66.0796609,27.7947981,53.5445938,27.5057383,23.0680949,68.2976974,3.4081796,37.5210793,16.1129568,1.8582502,1.9311897,23.037728,72.7578555,72.3472113,70.7554523,20.6117022,20.358819,17.4915839,66.1806089,28.6485194,53.8948015,27.8409091,23.5984848,68.0209171,3.0458861,36.1754967,14.0776699,2.1724521,2.246362,24.4279513,73.8080272,72.848546,70.8885155,20.6075505,20.2003591,17.5781478,64.6948275,26.8197482,56.9077851,29.3687452,24.5188607,67.5864909,2.8675283,35.6410256,14.0264026\r\n1231,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,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8582502,1.9311897,23.037728,72.7578555,72.3472113,70.7554523,20.6117022,20.358819,17.4915839,66.1806089,28.6485194,53.8948015,27.8409091,23.5984848,68.0209171,3.0458861,36.1754967,14.0776699,2.1724521,2.246362,24.4279513,73.8080272,72.848546,70.8885155,20.6075505,20.2003591,17.5781478,64.6948275,26.8197482,56.9077851,29.3687452,24.5188607,67.5864909,2.8675283,35.6410256,14.0264026,2.3623853,2.5463441,25.0333431,74.2802592,72.3849099,69.5282964,20.0614376,19.2651758,17.8582053,64.7443977,26.4554496,55.236589,30.5832694,25.3645434,67.3076923,2.6020817,35.9766277,13.9802632\r\n1232,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7048961,0.7048961,11.4606475,82.3724,81.3120696,75.4547318,18.8606694,38.2447812,26.2391156,63.8024676,29.5471151,56.6149289,14.8111305,11.550692,75.0700841,6.9054236,33.4276503,6.4560457,0.8229019,0.8476207,11.3175561,82.126638,81.488372,74.7228726,18.7994769,38.4624864,27.1077608,64.293452,29.7017953,56.6977909,14.9759374,11.6479527,74.9494551,7.2171163,33.6475466,7.2237981,0.8741383,0.9010634,10.774753,81.9856313,81.7122724,75.4818864,20.2245476,39.1017874,26.4664567,64.6770963,31.1673068,56.6010341,15.2479093,11.6937217,74.0211204,6.5812363,32.9626363,7.0977918\r\n1233,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8229019,0.8476207,11.3175561,82.126638,81.488372,74.7228726,18.7994769,38.4624864,27.1077608,64.293452,29.7017953,56.6977909,14.9759374,11.6479527,74.9494551,7.2171163,33.6475466,7.2237981,0.8741383,0.9010634,10.774753,81.9856313,81.7122724,75.4818864,20.2245476,39.1017874,26.4664567,64.6770963,31.1673068,56.6010341,15.2479093,11.6937217,74.0211204,6.5812363,32.9626363,7.0977918,0.8996953,0.9077565,11.2095412,80.7413934,80.451777,73.7350574,21.166274,37.7362704,25.9928619,64.7338616,31.0273229,55.1812079,16.2428685,12.2533932,73.1616078,6.5349564,33.1395348,5.7632399\r\n1234,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8741383,0.9010634,10.774753,81.9856313,81.7122724,75.4818864,20.2245476,39.1017874,26.4664567,64.6770963,31.1673068,56.6010341,15.2479093,11.6937217,74.0211204,6.5812363,32.9626363,7.0977918,0.8996953,0.9077565,11.2095412,80.7413934,80.451777,73.7350574,21.166274,37.7362704,25.9928619,64.7338616,31.0273229,55.1812079,16.2428685,12.2533932,73.1616078,6.5349564,33.1395348,5.7632399,0.9670147,0.9749449,11.6396884,80.9381518,80.0481223,74.7392912,21.5621487,37.8419679,25.9101358,63.8485884,31.4692648,54.7993568,16.9896592,12.7260956,73.3030754,6.3488698,32.6737083,5.945122\r\n1235,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8996953,0.9077565,11.2095412,80.7413934,80.451777,73.7350574,21.166274,37.7362704,25.9928619,64.7338616,31.0273229,55.1812079,16.2428685,12.2533932,73.1616078,6.5349564,33.1395348,5.7632399,0.9670147,0.9749449,11.6396884,80.9381518,80.0481223,74.7392912,21.5621487,37.8419679,25.9101358,63.8485884,31.4692648,54.7993568,16.9896592,12.7260956,73.3030754,6.3488698,32.6737083,5.945122,1.0311911,1.0391719,11.6930773,79.5470314,78.9451496,74.7759599,22.0130002,40.5972712,26.3812166,64.0207655,31.594695,53.10704,16.5943564,12.4728834,73.2421984,6.553506,33.1395467,6.4954683\r\n1236,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9670147,0.9749449,11.6396884,80.9381518,80.0481223,74.7392912,21.5621487,37.8419679,25.9101358,63.8485884,31.4692648,54.7993568,16.9896592,12.7260956,73.3030754,6.3488698,32.6737083,5.945122,1.0311911,1.0391719,11.6930773,79.5470314,78.9451496,74.7759599,22.0130002,40.5972712,26.3812166,64.0207655,31.594695,53.10704,16.5943564,12.4728834,73.2421984,6.553506,33.1395467,6.4954683,1.0076505,1.0222879,12.3723445,79.8117876,80.2614373,75.4406929,22.4581789,40.5008026,25.9829157,64.3900851,32.3471971,51.2273549,17.0567832,12.8521908,73.1087045,6.4384182,32.4577199,7.4923547\r\n1237,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0311911,1.0391719,11.6930773,79.5470314,78.9451496,74.7759599,22.0130002,40.5972712,26.3812166,64.0207655,31.594695,53.10704,16.5943564,12.4728834,73.2421984,6.553506,33.1395467,6.4954683,1.0076505,1.0222879,12.3723445,79.8117876,80.2614373,75.4406929,22.4581789,40.5008026,25.9829157,64.3900851,32.3471971,51.2273549,17.0567832,12.8521908,73.1087045,6.4384182,32.4577199,7.4923547,1.031729,1.0467133,12.2103999,79.3747586,79.5372972,73.6266914,23.655553,39.9448513,25.9166539,63.7371733,32.332885,50.9555036,16.7774868,12.6994748,72.5914451,6.3768786,32.9301282,7.9710145\r\n1238,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0076505,1.0222879,12.3723445,79.8117876,80.2614373,75.4406929,22.4581789,40.5008026,25.9829157,64.3900851,32.3471971,51.2273549,17.0567832,12.8521908,73.1087045,6.4384182,32.4577199,7.4923547,1.031729,1.0467133,12.2103999,79.3747586,79.5372972,73.6266914,23.655553,39.9448513,25.9166539,63.7371733,32.332885,50.9555036,16.7774868,12.6994748,72.5914451,6.3768786,32.9301282,7.9710145,1.0011854,0.9885325,12.6927725,79.3152744,78.5022999,73.60422,23.5669203,39.2513787,25.2683861,63.6782772,32.1602971,51.1865568,17.0548023,13.173522,73.4174364,6.1820677,33.1297085,7.1637427\r\n1239,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.031729,1.0467133,12.2103999,79.3747586,79.5372972,73.6266914,23.655553,39.9448513,25.9166539,63.7371733,32.332885,50.9555036,16.7774868,12.6994748,72.5914451,6.3768786,32.9301282,7.9710145,1.0011854,0.9885325,12.6927725,79.3152744,78.5022999,73.60422,23.5669203,39.2513787,25.2683861,63.6782772,32.1602971,51.1865568,17.0548023,13.173522,73.4174364,6.1820677,33.1297085,7.1637427,0.911503,0.9392587,12.3392772,78.8291617,78.1681937,72.935967,22.7617378,39.5517624,24.962416,63.6581381,31.9599096,50.0721649,16.2446429,12.6824094,73.5649628,6.5856806,32.7280865,6.7723343\r\n1240,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0011854,0.9885325,12.6927725,79.3152744,78.5022999,73.60422,23.5669203,39.2513787,25.2683861,63.6782772,32.1602971,51.1865568,17.0548023,13.173522,73.4174364,6.1820677,33.1297085,7.1637427,0.911503,0.9392587,12.3392772,78.8291617,78.1681937,72.935967,22.7617378,39.5517624,24.962416,63.6581381,31.9599096,50.0721649,16.2446429,12.6824094,73.5649628,6.5856806,32.7280865,6.7723343,0.89473,0.9430192,12.0882787,78.8062902,78.3948719,74.8712708,23.2450995,40.8553993,27.1873627,62.6154096,31.7594525,51.1441728,15.5679371,12.4498953,73.5267774,6.386296,32.5528095,7.994186\r\n1241,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.911503,0.9392587,12.3392772,78.8291617,78.1681937,72.935967,22.7617378,39.5517624,24.962416,63.6581381,31.9599096,50.0721649,16.2446429,12.6824094,73.5649628,6.5856806,32.7280865,6.7723343,0.89473,0.9430192,12.0882787,78.8062902,78.3948719,74.8712708,23.2450995,40.8553993,27.1873627,62.6154096,31.7594525,51.1441728,15.5679371,12.4498953,73.5267774,6.386296,32.5528095,7.994186,0.9083663,0.9591131,11.4880487,78.4453907,78.7427705,74.968699,23.4908147,41.0036551,27.9318905,62.3693038,31.8199002,51.6115859,15.0093441,11.7413687,73.1042754,6.3406672,31.8225247,8.7155963\r\n1242,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.89473,0.9430192,12.0882787,78.8062902,78.3948719,74.8712708,23.2450995,40.8553993,27.1873627,62.6154096,31.7594525,51.1441728,15.5679371,12.4498953,73.5267774,6.386296,32.5528095,7.994186,0.9083663,0.9591131,11.4880487,78.4453907,78.7427705,74.968699,23.4908147,41.0036551,27.9318905,62.3693038,31.8199002,51.6115859,15.0093441,11.7413687,73.1042754,6.3406672,31.8225247,8.7155963,0.7980071,0.8575043,11.5935325,80.1187515,79.539997,73.9671225,23.6936824,39.6744354,27.4932078,62.6388014,31.3858291,52.9935173,15.0499337,11.6738032,73.4549924,6.0700593,31.1143978,8.4664537\r\n1243,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9083663,0.9591131,11.4880487,78.4453907,78.7427705,74.968699,23.4908147,41.0036551,27.9318905,62.3693038,31.8199002,51.6115859,15.0093441,11.7413687,73.1042754,6.3406672,31.8225247,8.7155963,0.7980071,0.8575043,11.5935325,80.1187515,79.539997,73.9671225,23.6936824,39.6744354,27.4932078,62.6388014,31.3858291,52.9935173,15.0499337,11.6738032,73.4549924,6.0700593,31.1143978,8.4664537,0.7221968,0.7760347,11.1931985,80.2973773,79.6684004,75.4714503,23.122574,41.924559,27.1455645,61.9426729,31.0297569,52.7238864,14.6611052,11.4685698,73.8023245,6.0327724,31.0362687,7.9124579\r\n1244,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7980071,0.8575043,11.5935325,80.1187515,79.539997,73.9671225,23.6936824,39.6744354,27.4932078,62.6388014,31.3858291,52.9935173,15.0499337,11.6738032,73.4549924,6.0700593,31.1143978,8.4664537,0.7221968,0.7760347,11.1931985,80.2973773,79.6684004,75.4714503,23.122574,41.924559,27.1455645,61.9426729,31.0297569,52.7238864,14.6611052,11.4685698,73.8023245,6.0327724,31.0362687,7.9124579,0.7361414,0.7914861,11.4585444,79.7890296,79.6317135,75.712965,22.5308667,42.3772357,26.5710651,62.3096719,30.9453108,52.7556717,14.9265116,11.6320354,73.9772202,5.9918424,30.8476354,9.0747331\r\n1245,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7221968,0.7760347,11.1931985,80.2973773,79.6684004,75.4714503,23.122574,41.924559,27.1455645,61.9426729,31.0297569,52.7238864,14.6611052,11.4685698,73.8023245,6.0327724,31.0362687,7.9124579,0.7361414,0.7914861,11.4585444,79.7890296,79.6317135,75.712965,22.5308667,42.3772357,26.5710651,62.3096719,30.9453108,52.7556717,14.9265116,11.6320354,73.9772202,5.9918424,30.8476354,9.0747331,0.7338668,0.7905837,11.0166879,79.9425304,80.7302049,75.4501242,23.2545662,44.766755,28.4653504,62.0608522,30.868593,51.1107944,14.8234729,11.3966806,73.4200765,5.9117202,31.3246465,9.7785978\r\n1246,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7361414,0.7914861,11.4585444,79.7890296,79.6317135,75.712965,22.5308667,42.3772357,26.5710651,62.3096719,30.9453108,52.7556717,14.9265116,11.6320354,73.9772202,5.9918424,30.8476354,9.0747331,0.7338668,0.7905837,11.0166879,79.9425304,80.7302049,75.4501242,23.2545662,44.766755,28.4653504,62.0608522,30.868593,51.1107944,14.8234729,11.3966806,73.4200765,5.9117202,31.3246465,9.7785978,0.8258022,0.8215045,11.2077733,80.0258455,80.6705656,75.8359505,23.5279777,44.4259476,27.9712252,62.1310751,31.1683931,51.9097387,15.6438399,11.5342497,73.1179756,5.7628078,32.1593529,9.8837209\r\n1247,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7338668,0.7905837,11.0166879,79.9425304,80.7302049,75.4501242,23.2545662,44.766755,28.4653504,62.0608522,30.868593,51.1107944,14.8234729,11.3966806,73.4200765,5.9117202,31.3246465,9.7785978,0.8258022,0.8215045,11.2077733,80.0258455,80.6705656,75.8359505,23.5279777,44.4259476,27.9712252,62.1310751,31.1683931,51.9097387,15.6438399,11.5342497,73.1179756,5.7628078,32.1593529,9.8837209,0.8760199,0.8717288,11.3760047,81.3558474,82.0616779,75.3953406,22.1292199,44.6739242,26.0926685,62.9484588,32.074566,52.2721868,15.8690913,11.5236555,72.9797919,5.8023333,32.3770488,7.8\r\n1248,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8258022,0.8215045,11.2077733,80.0258455,80.6705656,75.8359505,23.5279777,44.4259476,27.9712252,62.1310751,31.1683931,51.9097387,15.6438399,11.5342497,73.1179756,5.7628078,32.1593529,9.8837209,0.8760199,0.8717288,11.3760047,81.3558474,82.0616779,75.3953406,22.1292199,44.6739242,26.0926685,62.9484588,32.074566,52.2721868,15.8690913,11.5236555,72.9797919,5.8023333,32.3770488,7.8,0.8863382,0.88208,10.6831055,78.8625439,79.0266161,74.0226156,23.0563031,42.5603063,23.748815,64.2337205,33.1222033,50.2500047,15.3909282,10.9622775,72.284122,5.8742429,33.8615025,8.2995951\r\n1249,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8760199,0.8717288,11.3760047,81.3558474,82.0616779,75.3953406,22.1292199,44.6739242,26.0926685,62.9484588,32.074566,52.2721868,15.8690913,11.5236555,72.9797919,5.8023333,32.3770488,7.8,0.8863382,0.88208,10.6831055,78.8625439,79.0266161,74.0226156,23.0563031,42.5603063,23.748815,64.2337205,33.1222033,50.2500047,15.3909282,10.9622775,72.284122,5.8742429,33.8615025,8.2995951,0.9777593,0.9649585,10.8347185,76.5660756,77.0031147,74.1457397,22.8042837,42.7655208,23.5107708,64.1325639,33.8665822,49.0761713,15.7244829,11.0592786,71.8820218,6.0833347,34.6997695,9.8393574\r\n1250,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8863382,0.88208,10.6831055,78.8625439,79.0266161,74.0226156,23.0563031,42.5603063,23.748815,64.2337205,33.1222033,50.2500047,15.3909282,10.9622775,72.284122,5.8742429,33.8615025,8.2995951,0.9777593,0.9649585,10.8347185,76.5660756,77.0031147,74.1457397,22.8042837,42.7655208,23.5107708,64.1325639,33.8665822,49.0761713,15.7244829,11.0592786,71.8820218,6.0833347,34.6997695,9.8393574,1.0300606,1.0178536,10.7810678,75.9072827,75.8125739,72.7198523,22.5377435,41.0731648,24.0721752,63.859215,33.043924,49.577418,15.835089,11.1081968,71.607241,5.9831328,34.7991356,10.0\r\n1251,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9777593,0.9649585,10.8347185,76.5660756,77.0031147,74.1457397,22.8042837,42.7655208,23.5107708,64.1325639,33.8665822,49.0761713,15.7244829,11.0592786,71.8820218,6.0833347,34.6997695,9.8393574,1.0300606,1.0178536,10.7810678,75.9072827,75.8125739,72.7198523,22.5377435,41.0731648,24.0721752,63.859215,33.043924,49.577418,15.835089,11.1081968,71.607241,5.9831328,34.7991356,10.0,1.0087586,0.9969939,10.2715495,76.4940149,76.1714205,73.694789,22.3188385,41.5764767,24.5529291,64.5346088,32.6315722,50.6034969,15.16146,10.570136,71.8444191,5.7368713,34.1195043,8.2116788\r\n1252,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0300606,1.0178536,10.7810678,75.9072827,75.8125739,72.7198523,22.5377435,41.0731648,24.0721752,63.859215,33.043924,49.577418,15.835089,11.1081968,71.607241,5.9831328,34.7991356,10.0,1.0087586,0.9969939,10.2715495,76.4940149,76.1714205,73.694789,22.3188385,41.5764767,24.5529291,64.5346088,32.6315722,50.6034969,15.16146,10.570136,71.8444191,5.7368713,34.1195043,8.2116788,0.9327959,0.9212752,10.2824096,75.9726126,75.2201314,73.4609586,22.0351552,39.2489756,22.127782,64.5765092,33.2121512,50.9884178,14.8120717,10.0148398,71.6052629,5.816277,33.0072193,8.0357143\r\n1253,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0087586,0.9969939,10.2715495,76.4940149,76.1714205,73.694789,22.3188385,41.5764767,24.5529291,64.5346088,32.6315722,50.6034969,15.16146,10.570136,71.8444191,5.7368713,34.1195043,8.2116788,0.9327959,0.9212752,10.2824096,75.9726126,75.2201314,73.4609586,22.0351552,39.2489756,22.127782,64.5765092,33.2121512,50.9884178,14.8120717,10.0148398,71.6052629,5.816277,33.0072193,8.0357143,0.9069614,0.9069614,10.5823757,75.5906088,74.4692811,72.9119625,22.2921903,39.2181788,22.403067,64.7337343,33.1527277,51.1641394,14.9759659,10.4567338,71.0333132,5.6525972,33.3166933,7.5757576\r\n1254,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9327959,0.9212752,10.2824096,75.9726126,75.2201314,73.4609586,22.0351552,39.2489756,22.127782,64.5765092,33.2121512,50.9884178,14.8120717,10.0148398,71.6052629,5.816277,33.0072193,8.0357143,0.9069614,0.9069614,10.5823757,75.5906088,74.4692811,72.9119625,22.2921903,39.2181788,22.403067,64.7337343,33.1527277,51.1641394,14.9759659,10.4567338,71.0333132,5.6525972,33.3166933,7.5757576,0.8980223,0.8980223,9.9590108,75.396045,73.62836,72.3909502,22.406224,38.2520212,22.6155925,64.3214222,32.1851418,50.1616119,14.1898194,9.8379662,71.4050118,5.6493221,33.2858594,8.4935897\r\n1255,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9069614,0.9069614,10.5823757,75.5906088,74.4692811,72.9119625,22.2921903,39.2181788,22.403067,64.7337343,33.1527277,51.1641394,14.9759659,10.4567338,71.0333132,5.6525972,33.3166933,7.5757576,0.8980223,0.8980223,9.9590108,75.396045,73.62836,72.3909502,22.406224,38.2520212,22.6155925,64.3214222,32.1851418,50.1616119,14.1898194,9.8379662,71.4050118,5.6493221,33.2858594,8.4935897,0.9163486,0.9366079,10.5631359,78.2374432,76.5105634,72.893916,21.3375639,40.2727557,22.9609183,63.7907984,31.3005393,51.8782242,14.0446982,10.0569667,71.5463624,5.792279,32.9606529,7.2530864\r\n1256,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8980223,0.8980223,9.9590108,75.396045,73.62836,72.3909502,22.406224,38.2520212,22.6155925,64.3214222,32.1851418,50.1616119,14.1898194,9.8379662,71.4050118,5.6493221,33.2858594,8.4935897,0.9163486,0.9366079,10.5631359,78.2374432,76.5105634,72.893916,21.3375639,40.2727557,22.9609183,63.7907984,31.3005393,51.8782242,14.0446982,10.0569667,71.5463624,5.792279,32.9606529,7.2530864,0.8313761,0.8504966,10.4053551,81.5236875,79.4260754,73.7823192,21.5282874,39.7345591,24.3234108,63.9820282,31.3110859,53.4026146,13.5554656,9.9130798,72.0293051,5.9399777,32.8151426,6.8181818\r\n1257,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9163486,0.9366079,10.5631359,78.2374432,76.5105634,72.893916,21.3375639,40.2727557,22.9609183,63.7907984,31.3005393,51.8782242,14.0446982,10.0569667,71.5463624,5.792279,32.9606529,7.2530864,0.8313761,0.8504966,10.4053551,81.5236875,79.4260754,73.7823192,21.5282874,39.7345591,24.3234108,63.9820282,31.3110859,53.4026146,13.5554656,9.9130798,72.0293051,5.9399777,32.8151426,6.8181818,0.778839,0.8051252,10.2379855,81.6734957,79.2815268,73.7020158,22.4250719,40.662616,24.5425951,65.342057,32.0151104,53.6075081,13.641877,9.7615197,72.0436885,5.9827327,33.0986053,6.8597561\r\n1258,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8313761,0.8504966,10.4053551,81.5236875,79.4260754,73.7823192,21.5282874,39.7345591,24.3234108,63.9820282,31.3110859,53.4026146,13.5554656,9.9130798,72.0293051,5.9399777,32.8151426,6.8181818,0.778839,0.8051252,10.2379855,81.6734957,79.2815268,73.7020158,22.4250719,40.662616,24.5425951,65.342057,32.0151104,53.6075081,13.641877,9.7615197,72.0436885,5.9827327,33.0986053,6.8597561,0.8648501,0.9058949,10.5797233,81.7612985,78.5393139,74.2614748,22.1411715,41.0530094,24.3549117,64.7258407,32.3608071,51.8539765,13.4283423,9.6949007,71.9223017,6.1811526,34.1413452,7.6086957\r\n1259,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.778839,0.8051252,10.2379855,81.6734957,79.2815268,73.7020158,22.4250719,40.662616,24.5425951,65.342057,32.0151104,53.6075081,13.641877,9.7615197,72.0436885,5.9827327,33.0986053,6.8597561,0.8648501,0.9058949,10.5797233,81.7612985,78.5393139,74.2614748,22.1411715,41.0530094,24.3549117,64.7258407,32.3608071,51.8539765,13.4283423,9.6949007,71.9223017,6.1811526,34.1413452,7.6086957,0.8367878,0.8769338,10.2274294,82.0636095,79.1899323,75.4871605,22.2655551,41.4469926,25.7103381,65.3864861,31.7631555,51.9511322,13.6399507,9.8894555,71.9126019,6.1375477,34.3349471,7.5153374\r\n1260,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8648501,0.9058949,10.5797233,81.7612985,78.5393139,74.2614748,22.1411715,41.0530094,24.3549117,64.7258407,32.3608071,51.8539765,13.4283423,9.6949007,71.9223017,6.1811526,34.1413452,7.6086957,0.8367878,0.8769338,10.2274294,82.0636095,79.1899323,75.4871605,22.2655551,41.4469926,25.7103381,65.3864861,31.7631555,51.9511322,13.6399507,9.8894555,71.9126019,6.1375477,34.3349471,7.5153374,0.821314,0.8606278,10.6965961,83.1502484,80.3320954,75.4658387,21.3929025,40.8850769,25.9781053,64.9970456,31.1846331,51.0518852,13.5171596,9.8920135,72.2287852,5.9914155,33.843148,7.9192547\r\n1261,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8367878,0.8769338,10.2274294,82.0636095,79.1899323,75.4871605,22.2655551,41.4469926,25.7103381,65.3864861,31.7631555,51.9511322,13.6399507,9.8894555,71.9126019,6.1375477,34.3349471,7.5153374,0.821314,0.8606278,10.6965961,83.1502484,80.3320954,75.4658387,21.3929025,40.8850769,25.9781053,64.9970456,31.1846331,51.0518852,13.5171596,9.8920135,72.2287852,5.9914155,33.843148,7.9192547,0.7750277,0.8145108,11.3305258,83.2789796,80.0133024,74.8769266,21.6734867,41.285202,26.5787555,65.1784694,32.1228359,51.8939618,13.8470439,10.3321716,72.4022282,6.4800344,33.661428,7.0491803\r\n1262,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.821314,0.8606278,10.6965961,83.1502484,80.3320954,75.4658387,21.3929025,40.8850769,25.9781053,64.9970456,31.1846331,51.0518852,13.5171596,9.8920135,72.2287852,5.9914155,33.843148,7.9192547,0.7750277,0.8145108,11.3305258,83.2789796,80.0133024,74.8769266,21.6734867,41.285202,26.5787555,65.1784694,32.1228359,51.8939618,13.8470439,10.3321716,72.4022282,6.4800344,33.661428,7.0491803,0.7625338,0.7846903,11.1648779,82.9690248,80.4015211,74.7886641,21.9252025,40.1375346,27.3758571,65.5072116,33.0093762,52.3123333,14.3396932,10.4813061,72.1974084,6.5715468,34.3422228,7.605178\r\n1263,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7750277,0.8145108,11.3305258,83.2789796,80.0133024,74.8769266,21.6734867,41.285202,26.5787555,65.1784694,32.1228359,51.8939618,13.8470439,10.3321716,72.4022282,6.4800344,33.661428,7.0491803,0.7625338,0.7846903,11.1648779,82.9690248,80.4015211,74.7886641,21.9252025,40.1375346,27.3758571,65.5072116,33.0093762,52.3123333,14.3396932,10.4813061,72.1974084,6.5715468,34.3422228,7.605178,0.8929934,0.9158158,11.023614,82.0395543,79.9857481,75.2618,21.4968526,40.8409663,26.6170823,65.4763057,33.3036152,51.5468688,14.3356585,10.5100788,72.0662277,6.5325626,32.8750025,6.6101695\r\n1264,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7625338,0.7846903,11.1648779,82.9690248,80.4015211,74.7886641,21.9252025,40.1375346,27.3758571,65.5072116,33.0093762,52.3123333,14.3396932,10.4813061,72.1974084,6.5715468,34.3422228,7.605178,0.8929934,0.9158158,11.023614,82.0395543,79.9857481,75.2618,21.4968526,40.8409663,26.6170823,65.4763057,33.3036152,51.5468688,14.3356585,10.5100788,72.0662277,6.5325626,32.8750025,6.6101695,0.9246766,0.9465304,10.9861262,82.3577212,80.2504863,75.8869,21.6644182,40.3034207,26.85907,66.4022863,33.3730856,51.1684656,14.1272888,10.4855928,71.8658711,6.7836217,32.9473067,6.7944251\r\n1265,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8929934,0.9158158,11.023614,82.0395543,79.9857481,75.2618,21.4968526,40.8409663,26.6170823,65.4763057,33.3036152,51.5468688,14.3356585,10.5100788,72.0662277,6.5325626,32.8750025,6.6101695,0.9246766,0.9465304,10.9861262,82.3577212,80.2504863,75.8869,21.6644182,40.3034207,26.85907,66.4022863,33.3730856,51.1684656,14.1272888,10.4855928,71.8658711,6.7836217,32.9473067,6.7944251,0.8104087,0.8168412,10.8668281,83.2925582,81.6346625,75.974899,22.4358972,40.1686737,25.8884406,66.6979248,34.3473821,51.6855428,14.6837443,10.7876346,72.3911645,6.6877843,31.9535,6.4912281\r\n1266,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9246766,0.9465304,10.9861262,82.3577212,80.2504863,75.8869,21.6644182,40.3034207,26.85907,66.4022863,33.3730856,51.1684656,14.1272888,10.4855928,71.8658711,6.7836217,32.9473067,6.7944251,0.8104087,0.8168412,10.8668281,83.2925582,81.6346625,75.974899,22.4358972,40.1686737,25.8884406,66.6979248,34.3473821,51.6855428,14.6837443,10.7876346,72.3911645,6.6877843,31.9535,6.4912281,0.9066964,0.9164468,11.1887001,83.6341863,81.5821148,74.7975594,21.6440159,41.7999456,25.052372,66.1841854,35.585599,52.3424432,14.4748332,10.7773494,73.1002765,6.6313759,32.1820183,6.8904594\r\n1267,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8104087,0.8168412,10.8668281,83.2925582,81.6346625,75.974899,22.4358972,40.1686737,25.8884406,66.6979248,34.3473821,51.6855428,14.6837443,10.7876346,72.3911645,6.6877843,31.9535,6.4912281,0.9066964,0.9164468,11.1887001,83.6341863,81.5821148,74.7975594,21.6440159,41.7999456,25.052372,66.1841854,35.585599,52.3424432,14.4748332,10.7773494,73.1002765,6.6313759,32.1820183,6.8904594,0.8590512,0.8687637,10.1117706,83.0271695,81.6383123,75.4186029,22.0410874,41.3745091,24.8109919,65.5998961,34.9738148,52.8432501,14.1095741,10.3470272,73.4604553,6.9674081,31.691504,5.3264605\r\n1268,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9066964,0.9164468,11.1887001,83.6341863,81.5821148,74.7975594,21.6440159,41.7999456,25.052372,66.1841854,35.585599,52.3424432,14.4748332,10.7773494,73.1002765,6.6313759,32.1820183,6.8904594,0.8590512,0.8687637,10.1117706,83.0271695,81.6383123,75.4186029,22.0410874,41.3745091,24.8109919,65.5998961,34.9738148,52.8432501,14.1095741,10.3470272,73.4604553,6.9674081,31.691504,5.3264605,0.8034233,0.8131623,9.804562,83.3420328,81.9101193,75.2009021,22.6503889,42.1825249,25.1124074,66.1578923,34.7859374,51.6071236,14.0789334,10.1343202,73.3349855,6.4276812,31.7597878,5.9931507\r\n1269,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8590512,0.8687637,10.1117706,83.0271695,81.6383123,75.4186029,22.0410874,41.3745091,24.8109919,65.5998961,34.9738148,52.8432501,14.1095741,10.3470272,73.4604553,6.9674081,31.691504,5.3264605,0.8034233,0.8131623,9.804562,83.3420328,81.9101193,75.2009021,22.6503889,42.1825249,25.1124074,66.1578923,34.7859374,51.6071236,14.0789334,10.1343202,73.3349855,6.4276812,31.7597878,5.9931507,0.7454194,0.8125209,9.802664,84.0952083,81.7925816,76.4500812,22.7660882,43.4440703,25.4048161,65.4200905,33.5505484,50.9223423,13.7113759,9.711366,73.9214687,5.7244127,31.5329884,6.9727598\r\n1270,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8034233,0.8131623,9.804562,83.3420328,81.9101193,75.2009021,22.6503889,42.1825249,25.1124074,66.1578923,34.7859374,51.6071236,14.0789334,10.1343202,73.3349855,6.4276812,31.7597878,5.9931507,0.7454194,0.8125209,9.802664,84.0952083,81.7925816,76.4500812,22.7660882,43.4440703,25.4048161,65.4200905,33.5505484,50.9223423,13.7113759,9.711366,73.9214687,5.7244127,31.5329884,6.9727598,0.7648982,0.8797971,9.9370472,83.8884696,81.4037678,75.7914726,23.1117191,42.4803709,24.8926194,65.0141886,33.197156,51.0426667,13.9300781,9.5267745,73.7074881,5.6935977,33.0476971,8.2491301\r\n1271,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7454194,0.8125209,9.802664,84.0952083,81.7925816,76.4500812,22.7660882,43.4440703,25.4048161,65.4200905,33.5505484,50.9223423,13.7113759,9.711366,73.9214687,5.7244127,31.5329884,6.9727598,0.7648982,0.8797971,9.9370472,83.8884696,81.4037678,75.7914726,23.1117191,42.4803709,24.8926194,65.0141886,33.197156,51.0426667,13.9300781,9.5267745,73.7074881,5.6935977,33.0476971,8.2491301,0.7808086,0.8907556,10.3470596,84.0822029,82.0725744,75.6538521,22.9428657,42.117838,23.6160146,64.3874551,33.9742612,51.2895798,14.3184601,9.7749024,73.9579068,5.57877,33.1043032,8.7748071\r\n1272,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7648982,0.8797971,9.9370472,83.8884696,81.4037678,75.7914726,23.1117191,42.4803709,24.8926194,65.0141886,33.197156,51.0426667,13.9300781,9.5267745,73.7074881,5.6935977,33.0476971,8.2491301,0.7808086,0.8907556,10.3470596,84.0822029,82.0725744,75.6538521,22.9428657,42.117838,23.6160146,64.3874551,33.9742612,51.2895798,14.3184601,9.7749024,73.9579068,5.57877,33.1043032,8.7748071,0.8576083,0.9682854,10.0443037,82.7586229,80.9721943,75.0143964,22.6582279,41.9271202,23.6667133,63.7992862,33.8209125,50.6962011,14.2585503,9.6113192,73.4110277,5.4196529,33.7582377,7.8072809\r\n1273,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7808086,0.8907556,10.3470596,84.0822029,82.0725744,75.6538521,22.9428657,42.117838,23.6160146,64.3874551,33.9742612,51.2895798,14.3184601,9.7749024,73.9579068,5.57877,33.1043032,8.7748071,0.8576083,0.9682854,10.0443037,82.7586229,80.9721943,75.0143964,22.6582279,41.9271202,23.6667133,63.7992862,33.8209125,50.6962011,14.2585503,9.6113192,73.4110277,5.4196529,33.7582377,7.8072809,0.7607869,0.8684191,9.7786296,81.7145633,80.4040809,74.3473463,23.2790847,40.6605536,23.8421613,64.6564271,32.9093164,47.879843,14.1253626,9.3816112,72.5586434,5.2754228,33.6235657,7.0933959\r\n1274,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8576083,0.9682854,10.0443037,82.7586229,80.9721943,75.0143964,22.6582279,41.9271202,23.6667133,63.7992862,33.8209125,50.6962011,14.2585503,9.6113192,73.4110277,5.4196529,33.7582377,7.8072809,0.7607869,0.8684191,9.7786296,81.7145633,80.4040809,74.3473463,23.2790847,40.6605536,23.8421613,64.6564271,32.9093164,47.879843,14.1253626,9.3816112,72.5586434,5.2754228,33.6235657,7.0933959,0.8476345,0.9559449,10.0617444,81.3004582,79.6903241,74.9294277,23.3548738,41.7156196,24.6981862,64.6807172,33.5309617,46.7888138,13.8143809,9.1741097,72.0215131,5.2261083,35.541685,8.1314589\r\n1275,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7607869,0.8684191,9.7786296,81.7145633,80.4040809,74.3473463,23.2790847,40.6605536,23.8421613,64.6564271,32.9093164,47.879843,14.1253626,9.3816112,72.5586434,5.2754228,33.6235657,7.0933959,0.8476345,0.9559449,10.0617444,81.3004582,79.6903241,74.9294277,23.3548738,41.7156196,24.6981862,64.6807172,33.5309617,46.7888138,13.8143809,9.1741097,72.0215131,5.2261083,35.541685,8.1314589,0.8630717,0.9742278,9.9286484,81.0522245,79.8994211,76.1430219,22.8993545,41.0178873,24.7915859,64.4961927,33.0409773,47.7187611,13.7712711,9.1008226,71.7738425,5.0635678,36.2812934,7.8181511\r\n1276,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8476345,0.9559449,10.0617444,81.3004582,79.6903241,74.9294277,23.3548738,41.7156196,24.6981862,64.6807172,33.5309617,46.7888138,13.8143809,9.1741097,72.0215131,5.2261083,35.541685,8.1314589,0.8630717,0.9742278,9.9286484,81.0522245,79.8994211,76.1430219,22.8993545,41.0178873,24.7915859,64.4961927,33.0409773,47.7187611,13.7712711,9.1008226,71.7738425,5.0635678,36.2812934,7.8181511,0.8818757,0.9345295,9.7551765,81.0916299,79.9819113,76.2490885,23.3560529,39.8460087,24.4062284,64.6321699,34.3322716,48.5358477,13.9455832,9.3650812,71.0222159,5.9240622,35.2106361,6.4202335\r\n1277,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8630717,0.9742278,9.9286484,81.0522245,79.8994211,76.1430219,22.8993545,41.0178873,24.7915859,64.4961927,33.0409773,47.7187611,13.7712711,9.1008226,71.7738425,5.0635678,36.2812934,7.8181511,0.8818757,0.9345295,9.7551765,81.0916299,79.9819113,76.2490885,23.3560529,39.8460087,24.4062284,64.6321699,34.3322716,48.5358477,13.9455832,9.3650812,71.0222159,5.9240622,35.2106361,6.4202335,0.7058671,0.7058671,9.4678809,82.1336796,80.6258083,76.3651826,23.6120743,41.3282679,24.6334842,65.7123895,34.8613934,49.3907299,13.7314176,9.4098532,70.9379586,5.6103284,34.7887426,4.8262567\r\n1278,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8818757,0.9345295,9.7551765,81.0916299,79.9819113,76.2490885,23.3560529,39.8460087,24.4062284,64.6321699,34.3322716,48.5358477,13.9455832,9.3650812,71.0222159,5.9240622,35.2106361,6.4202335,0.7058671,0.7058671,9.4678809,82.1336796,80.6258083,76.3651826,23.6120743,41.3282679,24.6334842,65.7123895,34.8613934,49.3907299,13.7314176,9.4098532,70.9379586,5.6103284,34.7887426,4.8262567,0.6623477,0.6623477,8.7525655,82.4191113,80.6388905,77.179893,22.6290443,41.9306798,25.26963,65.5890364,33.5481484,49.214027,12.8101195,8.8501928,70.9420424,5.2013468,33.9251539,4.1501993\r\n1279,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7058671,0.7058671,9.4678809,82.1336796,80.6258083,76.3651826,23.6120743,41.3282679,24.6334842,65.7123895,34.8613934,49.3907299,13.7314176,9.4098532,70.9379586,5.6103284,34.7887426,4.8262567,0.6623477,0.6623477,8.7525655,82.4191113,80.6388905,77.179893,22.6290443,41.9306798,25.26963,65.5890364,33.5481484,49.214027,12.8101195,8.8501928,70.9420424,5.2013468,33.9251539,4.1501993,0.5620873,0.5620873,8.7343634,83.6683565,82.2383178,78.7962079,22.0257372,41.7577205,25.801757,66.4293704,32.5674091,50.7951791,12.8762532,8.910651,70.4556615,5.2264012,35.1104785,5.3149648\r\n1280,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.6623477,0.6623477,8.7525655,82.4191113,80.6388905,77.179893,22.6290443,41.9306798,25.26963,65.5890364,33.5481484,49.214027,12.8101195,8.8501928,70.9420424,5.2013468,33.9251539,4.1501993,0.5620873,0.5620873,8.7343634,83.6683565,82.2383178,78.7962079,22.0257372,41.7577205,25.801757,66.4293704,32.5674091,50.7951791,12.8762532,8.910651,70.4556615,5.2264012,35.1104785,5.3149648,0.7521625,0.7521625,9.5696652,83.7247679,81.5948668,79.0236488,22.1497308,41.6517403,25.1175818,66.7140744,32.4506888,52.5056247,13.2839082,9.4064437,70.2813287,5.732971,34.2534181,6.4960681\r\n1281,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.5620873,0.5620873,8.7343634,83.6683565,82.2383178,78.7962079,22.0257372,41.7577205,25.801757,66.4293704,32.5674091,50.7951791,12.8762532,8.910651,70.4556615,5.2264012,35.1104785,5.3149648,0.7521625,0.7521625,9.5696652,83.7247679,81.5948668,79.0236488,22.1497308,41.6517403,25.1175818,66.7140744,32.4506888,52.5056247,13.2839082,9.4064437,70.2813287,5.732971,34.2534181,6.4960681,0.6772295,0.6466202,9.9070095,83.0930482,81.244651,78.2739486,21.7167969,41.2235313,22.8472682,66.9117955,32.736372,52.7665786,13.8861786,9.9257705,71.1547204,5.6355763,32.2690052,7.3221819\r\n1282,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7521625,0.7521625,9.5696652,83.7247679,81.5948668,79.0236488,22.1497308,41.6517403,25.1175818,66.7140744,32.4506888,52.5056247,13.2839082,9.4064437,70.2813287,5.732971,34.2534181,6.4960681,0.6772295,0.6466202,9.9070095,83.0930482,81.244651,78.2739486,21.7167969,41.2235313,22.8472682,66.9117955,32.736372,52.7665786,13.8861786,9.9257705,71.1547204,5.6355763,32.2690052,7.3221819,0.7516462,0.6754032,9.5543023,83.6105894,82.7501468,78.8442628,21.8225207,41.7060802,22.5373644,66.5721274,33.8572705,52.5289043,13.7820871,9.5907521,71.6732037,5.767353,32.6860744,7.3705267\r\n1283,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.6772295,0.6466202,9.9070095,83.0930482,81.244651,78.2739486,21.7167969,41.2235313,22.8472682,66.9117955,32.736372,52.7665786,13.8861786,9.9257705,71.1547204,5.6355763,32.2690052,7.3221819,0.7516462,0.6754032,9.5543023,83.6105894,82.7501468,78.8442628,21.8225207,41.7060802,22.5373644,66.5721274,33.8572705,52.5289043,13.7820871,9.5907521,71.6732037,5.767353,32.6860744,7.3705267,0.8646749,0.7891573,9.7972305,83.1230094,82.5689987,78.0203689,20.5287203,41.9657869,23.6672145,67.1604152,32.7636984,52.8538426,13.8023724,9.6154068,72.099224,5.2231717,33.2169868,9.0384754\r\n1284,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7516462,0.6754032,9.5543023,83.6105894,82.7501468,78.8442628,21.8225207,41.7060802,22.5373644,66.5721274,33.8572705,52.5289043,13.7820871,9.5907521,71.6732037,5.767353,32.6860744,7.3705267,0.8646749,0.7891573,9.7972305,83.1230094,82.5689987,78.0203689,20.5287203,41.9657869,23.6672145,67.1604152,32.7636984,52.8538426,13.8023724,9.6154068,72.099224,5.2231717,33.2169868,9.0384754,0.8731915,0.7964216,9.9267714,82.479242,81.4157731,78.5977982,20.4661123,40.0671761,23.7318452,67.1056738,32.7657922,50.9728175,14.1691764,9.619211,71.7117525,5.4722882,32.7755916,9.6456845\r\n1285,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8646749,0.7891573,9.7972305,83.1230094,82.5689987,78.0203689,20.5287203,41.9657869,23.6672145,67.1604152,32.7636984,52.8538426,13.8023724,9.6154068,72.099224,5.2231717,33.2169868,9.0384754,0.8731915,0.7964216,9.9267714,82.479242,81.4157731,78.5977982,20.4661123,40.0671761,23.7318452,67.1056738,32.7657922,50.9728175,14.1691764,9.619211,71.7117525,5.4722882,32.7755916,9.6456845,0.858218,0.7831426,11.0403925,82.7487917,81.2396975,77.7858824,22.3019329,38.9425538,23.2715628,66.084685,33.2584002,51.2498497,15.2153277,10.4257623,71.7208106,5.6100193,32.9448451,8.9353748\r\n1286,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8731915,0.7964216,9.9267714,82.479242,81.4157731,78.5977982,20.4661123,40.0671761,23.7318452,67.1056738,32.7657922,50.9728175,14.1691764,9.619211,71.7117525,5.4722882,32.7755916,9.6456845,0.858218,0.7831426,11.0403925,82.7487917,81.2396975,77.7858824,22.3019329,38.9425538,23.2715628,66.084685,33.2584002,51.2498497,15.2153277,10.4257623,71.7208106,5.6100193,32.9448451,8.9353748,0.9686653,0.888929,11.8735819,82.8150029,81.1664695,77.6176839,23.2647628,40.2593606,23.6347101,64.0814583,32.6118332,50.9779241,15.1998536,10.5376126,72.693902,5.4348055,30.8193293,9.3065464\r\n1287,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.858218,0.7831426,11.0403925,82.7487917,81.2396975,77.7858824,22.3019329,38.9425538,23.2715628,66.084685,33.2584002,51.2498497,15.2153277,10.4257623,71.7208106,5.6100193,32.9448451,8.9353748,0.9686653,0.888929,11.8735819,82.8150029,81.1664695,77.6176839,23.2647628,40.2593606,23.6347101,64.0814583,32.6118332,50.9779241,15.1998536,10.5376126,72.693902,5.4348055,30.8193293,9.3065464,0.9333828,0.8549042,11.3631142,83.4903105,82.3423125,78.9416672,22.4472103,39.9722734,23.8619297,61.7390993,32.0501692,53.6846933,15.3210528,10.5524002,73.5463746,4.8670495,32.6479469,8.3038633\r\n1288,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9686653,0.888929,11.8735819,82.8150029,81.1664695,77.6176839,23.2647628,40.2593606,23.6347101,64.0814583,32.6118332,50.9779241,15.1998536,10.5376126,72.693902,5.4348055,30.8193293,9.3065464,0.9333828,0.8549042,11.3631142,83.4903105,82.3423125,78.9416672,22.4472103,39.9722734,23.8619297,61.7390993,32.0501692,53.6846933,15.3210528,10.5524002,73.5463746,4.8670495,32.6479469,8.3038633,0.9456226,0.89736,10.9505089,84.5892086,83.676363,79.0592362,23.0318833,40.7534387,25.6698269,61.6697197,31.7700581,55.2272152,15.5673418,10.3551621,73.4162369,4.5138912,33.2846036,7.5250602\r\n1289,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9333828,0.8549042,11.3631142,83.4903105,82.3423125,78.9416672,22.4472103,39.9722734,23.8619297,61.7390993,32.0501692,53.6846933,15.3210528,10.5524002,73.5463746,4.8670495,32.6479469,8.3038633,0.9456226,0.89736,10.9505089,84.5892086,83.676363,79.0592362,23.0318833,40.7534387,25.6698269,61.6697197,31.7700581,55.2272152,15.5673418,10.3551621,73.4162369,4.5138912,33.2846036,7.5250602,0.894139,0.9482743,12.3546643,83.139882,82.3894985,77.6149619,23.0516701,40.1726958,24.8876545,61.9491948,30.2257382,56.223389,16.0641676,11.1839128,74.0749243,5.1241553,32.2074307,6.9579032\r\n1290,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.9456226,0.89736,10.9505089,84.5892086,83.676363,79.0592362,23.0318833,40.7534387,25.6698269,61.6697197,31.7700581,55.2272152,15.5673418,10.3551621,73.4162369,4.5138912,33.2846036,7.5250602,0.894139,0.9482743,12.3546643,83.139882,82.3894985,77.6149619,23.0516701,40.1726958,24.8876545,61.9491948,30.2257382,56.223389,16.0641676,11.1839128,74.0749243,5.1241553,32.2074307,6.9579032,0.7996827,0.8958904,12.2266441,82.6341419,81.7886302,77.6172802,23.6820064,41.2931675,23.5817438,61.7286838,30.5468368,56.7866435,15.8049891,11.0884344,74.198728,5.3095362,32.1428663,5.4455151\r\n1291,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.894139,0.9482743,12.3546643,83.139882,82.3894985,77.6149619,23.0516701,40.1726958,24.8876545,61.9491948,30.2257382,56.223389,16.0641676,11.1839128,74.0749243,5.1241553,32.2074307,6.9579032,0.7996827,0.8958904,12.2266441,82.6341419,81.7886302,77.6172802,23.6820064,41.2931675,23.5817438,61.7286838,30.5468368,56.7866435,15.8049891,11.0884344,74.198728,5.3095362,32.1428663,5.4455151,0.8768434,0.9813527,12.6483094,82.7473162,81.7553138,77.8703924,23.6895709,41.5561376,23.9915662,60.5019152,29.7405346,58.4142361,15.7092353,11.246132,75.0000056,5.1083607,31.5126139,5.727525\r\n1292,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7996827,0.8958904,12.2266441,82.6341419,81.7886302,77.6172802,23.6820064,41.2931675,23.5817438,61.7286838,30.5468368,56.7866435,15.8049891,11.0884344,74.198728,5.3095362,32.1428663,5.4455151,0.8768434,0.9813527,12.6483094,82.7473162,81.7553138,77.8703924,23.6895709,41.5561376,23.9915662,60.5019152,29.7405346,58.4142361,15.7092353,11.246132,75.0000056,5.1083607,31.5126139,5.727525,0.7980459,0.9443958,11.9400891,81.9230511,81.6603543,77.9122616,22.7103647,42.7339804,23.5808164,60.5961466,28.9495635,58.2543746,15.4444448,11.0444434,75.3378425,5.0888907,32.8268905,6.0937207\r\n1293,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8768434,0.9813527,12.6483094,82.7473162,81.7553138,77.8703924,23.6895709,41.5561376,23.9915662,60.5019152,29.7405346,58.4142361,15.7092353,11.246132,75.0000056,5.1083607,31.5126139,5.727525,0.7980459,0.9443958,11.9400891,81.9230511,81.6603543,77.9122616,22.7103647,42.7339804,23.5808164,60.5961466,28.9495635,58.2543746,15.4444448,11.0444434,75.3378425,5.0888907,32.8268905,6.0937207,0.6959236,0.8501797,11.4990588,80.557801,80.7869604,77.2981557,23.5161558,41.2424591,23.1070731,61.9529931,29.265215,57.6093606,15.5580863,11.1845088,75.1144746,5.1809971,33.1296992,5.2547771\r\n1294,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7980459,0.9443958,11.9400891,81.9230511,81.6603543,77.9122616,22.7103647,42.7339804,23.5808164,60.5961466,28.9495635,58.2543746,15.4444448,11.0444434,75.3378425,5.0888907,32.8268905,6.0937207,0.6959236,0.8501797,11.4990588,80.557801,80.7869604,77.2981557,23.5161558,41.2424591,23.1070731,61.9529931,29.265215,57.6093606,15.5580863,11.1845088,75.1144746,5.1809971,33.1296992,5.2547771,0.6104046,0.768587,11.4028412,80.9604063,80.8350519,77.0407198,23.7850139,42.7972061,24.1045177,63.5348164,30.5800064,56.2526801,15.7833602,11.1808487,75.5977568,5.259501,32.8760611,5.4347826\r\n1295,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.6959236,0.8501797,11.4990588,80.557801,80.7869604,77.2981557,23.5161558,41.2424591,23.1070731,61.9529931,29.265215,57.6093606,15.5580863,11.1845088,75.1144746,5.1809971,33.1296992,5.2547771,0.6104046,0.768587,11.4028412,80.9604063,80.8350519,77.0407198,23.7850139,42.7972061,24.1045177,63.5348164,30.5800064,56.2526801,15.7833602,11.1808487,75.5977568,5.259501,32.8760611,5.4347826,0.6594891,0.8285607,12.1758781,80.8060574,80.3218548,76.5139748,24.5799136,42.3238332,23.9449397,63.763536,30.7886838,56.1490299,15.8404167,11.543909,75.7020517,5.8809659,32.5793999,6.1320774\r\n1296,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.6104046,0.768587,11.4028412,80.9604063,80.8350519,77.0407198,23.7850139,42.7972061,24.1045177,63.5348164,30.5800064,56.2526801,15.7833602,11.1808487,75.5977568,5.259501,32.8760611,5.4347826,0.6594891,0.8285607,12.1758781,80.8060574,80.3218548,76.5139748,24.5799136,42.3238332,23.9449397,63.763536,30.7886838,56.1490299,15.8404167,11.543909,75.7020517,5.8809659,32.5793999,6.1320774,0.7148294,0.8344043,11.8777308,82.1660015,80.7665335,77.9939535,24.4122381,43.3809478,23.8655064,63.1515182,30.8917422,55.4738612,15.6324587,11.2410491,75.4694284,5.4280267,31.6682797,7.275544\r\n1297,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.6594891,0.8285607,12.1758781,80.8060574,80.3218548,76.5139748,24.5799136,42.3238332,23.9449397,63.763536,30.7886838,56.1490299,15.8404167,11.543909,75.7020517,5.8809659,32.5793999,6.1320774,0.7148294,0.8344043,11.8777308,82.1660015,80.7665335,77.9939535,24.4122381,43.3809478,23.8655064,63.1515182,30.8917422,55.4738612,15.6324587,11.2410491,75.4694284,5.4280267,31.6682797,7.275544,0.8076338,0.9264195,12.4278849,82.3611024,80.9902749,77.9913827,24.3919799,41.8335005,23.8424612,63.1311999,32.0188972,53.5858692,16.4613934,12.0558969,75.3585004,5.5423425,32.8003843,9.0504478\r\n1298,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.7148294,0.8344043,11.8777308,82.1660015,80.7665335,77.9939535,24.4122381,43.3809478,23.8655064,63.1515182,30.8917422,55.4738612,15.6324587,11.2410491,75.4694284,5.4280267,31.6682797,7.275544,0.8076338,0.9264195,12.4278849,82.3611024,80.9902749,77.9913827,24.3919799,41.8335005,23.8424612,63.1311999,32.0188972,53.5858692,16.4613934,12.0558969,75.3585004,5.5423425,32.8003843,9.0504478,0.861533,0.9707617,12.8023669,81.9799673,80.8947144,76.052418,24.5322289,42.527093,23.2976961,63.4843641,32.7645717,54.097441,17.0197394,12.5421251,75.4611677,5.5824097,33.9091909,9.7597627\r\n1299,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.8076338,0.9264195,12.4278849,82.3611024,80.9902749,77.9913827,24.3919799,41.8335005,23.8424612,63.1311999,32.0188972,53.5858692,16.4613934,12.0558969,75.3585004,5.5423425,32.8003843,9.0504478,0.861533,0.9707617,12.8023669,81.9799673,80.8947144,76.052418,24.5322289,42.527093,23.2976961,63.4843641,32.7645717,54.097441,17.0197394,12.5421251,75.4611677,5.5824097,33.9091909,9.7597627,1.0536589,1.1395999,13.7643207,81.9994977,79.7520904,75.7454732,25.3889986,42.8108793,23.107409,63.3771332,34.0509924,53.9170499,17.4026587,12.8442517,74.8199831,5.5608618,33.3499205,9.131742\r\n1300,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,0.861533,0.9707617,12.8023669,81.9799673,80.8947144,76.052418,24.5322289,42.527093,23.2976961,63.4843641,32.7645717,54.097441,17.0197394,12.5421251,75.4611677,5.5824097,33.9091909,9.7597627,1.0536589,1.1395999,13.7643207,81.9994977,79.7520904,75.7454732,25.3889986,42.8108793,23.107409,63.3771332,34.0509924,53.9170499,17.4026587,12.8442517,74.8199831,5.5608618,33.3499205,9.131742,1.1891137,1.2668866,14.2778142,83.3537825,80.3341587,76.5516969,24.6797338,43.584277,24.4387394,62.7596113,34.3456349,54.7980495,18.1457203,13.4282999,75.1673185,5.9172993,34.55525,10.7987998\r\n1301,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0536589,1.1395999,13.7643207,81.9994977,79.7520904,75.7454732,25.3889986,42.8108793,23.107409,63.3771332,34.0509924,53.9170499,17.4026587,12.8442517,74.8199831,5.5608618,33.3499205,9.131742,1.1891137,1.2668866,14.2778142,83.3537825,80.3341587,76.5516969,24.6797338,43.584277,24.4387394,62.7596113,34.3456349,54.7980495,18.1457203,13.4282999,75.1673185,5.9172993,34.55525,10.7987998,1.2249783,1.3024136,15.1867284,81.352476,79.4047365,75.4314219,25.3206888,41.2027332,22.9503052,62.9378026,34.9111774,53.6511207,18.1542005,13.8551365,74.3068961,5.8277822,34.0139646,11.0946581\r\n1302,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.1891137,1.2668866,14.2778142,83.3537825,80.3341587,76.5516969,24.6797338,43.584277,24.4387394,62.7596113,34.3456349,54.7980495,18.1457203,13.4282999,75.1673185,5.9172993,34.55525,10.7987998,1.2249783,1.3024136,15.1867284,81.352476,79.4047365,75.4314219,25.3206888,41.2027332,22.9503052,62.9378026,34.9111774,53.6511207,18.1542005,13.8551365,74.3068961,5.8277822,34.0139646,11.0946581,1.2392306,1.3070975,15.3565157,81.0965988,78.2873708,76.3507909,24.9302047,40.6764279,22.5766304,63.2006024,35.5742334,52.5433601,18.3425112,14.1643722,73.6085109,5.4957896,34.8917465,11.925247\r\n1303,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.2249783,1.3024136,15.1867284,81.352476,79.4047365,75.4314219,25.3206888,41.2027332,22.9503052,62.9378026,34.9111774,53.6511207,18.1542005,13.8551365,74.3068961,5.8277822,34.0139646,11.0946581,1.2392306,1.3070975,15.3565157,81.0965988,78.2873708,76.3507909,24.9302047,40.6764279,22.5766304,63.2006024,35.5742334,52.5433601,18.3425112,14.1643722,73.6085109,5.4957896,34.8917465,11.925247,1.2911095,1.3572585,16.4695425,81.71712,78.8991517,76.4109452,25.8603384,39.452418,21.6367991,62.8348152,36.8778047,53.2380372,19.0377497,14.9401498,73.0291684,5.5975432,36.3316674,11.6176053\r\n1304,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.2392306,1.3070975,15.3565157,81.0965988,78.2873708,76.3507909,24.9302047,40.6764279,22.5766304,63.2006024,35.5742334,52.5433601,18.3425112,14.1643722,73.6085109,5.4957896,34.8917465,11.925247,1.2911095,1.3572585,16.4695425,81.71712,78.8991517,76.4109452,25.8603384,39.452418,21.6367991,62.8348152,36.8778047,53.2380372,19.0377497,14.9401498,73.0291684,5.5975432,36.3316674,11.6176053,1.3455011,1.3812512,17.8516064,83.118185,80.0912057,76.3640775,25.578351,42.5373925,24.5836993,62.8919584,34.9876703,54.5801137,19.7283562,15.5386756,73.9369594,5.4952819,36.4222056,10.8231263\r\n1305,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.2911095,1.3572585,16.4695425,81.71712,78.8991517,76.4109452,25.8603384,39.452418,21.6367991,62.8348152,36.8778047,53.2380372,19.0377497,14.9401498,73.0291684,5.5975432,36.3316674,11.6176053,1.3455011,1.3812512,17.8516064,83.118185,80.0912057,76.3640775,25.578351,42.5373925,24.5836993,62.8919584,34.9876703,54.5801137,19.7283562,15.5386756,73.9369594,5.4952819,36.4222056,10.8231263,1.2276444,1.2629253,18.2083524,83.0818692,80.4975491,78.0463911,26.7210162,41.8247367,23.9656631,62.9895575,35.031745,54.039292,20.3585958,16.2278716,73.732409,5.5375332,36.3066424,8.8588148\r\n1306,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.3455011,1.3812512,17.8516064,83.118185,80.0912057,76.3640775,25.578351,42.5373925,24.5836993,62.8919584,34.9876703,54.5801137,19.7283562,15.5386756,73.9369594,5.4952819,36.4222056,10.8231263,1.2276444,1.2629253,18.2083524,83.0818692,80.4975491,78.0463911,26.7210162,41.8247367,23.9656631,62.9895575,35.031745,54.039292,20.3585958,16.2278716,73.732409,5.5375332,36.3066424,8.8588148,1.1992984,1.2335075,18.7801127,83.5294346,81.4625198,78.6021781,26.7475573,40.8860148,23.9948651,63.8175779,35.941094,55.5130065,21.4065193,17.2619051,74.2747118,5.5006718,35.753917,9.5040902\r\n1307,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.2276444,1.2629253,18.2083524,83.0818692,80.4975491,78.0463911,26.7210162,41.8247367,23.9656631,62.9895575,35.031745,54.039292,20.3585958,16.2278716,73.732409,5.5375332,36.3066424,8.8588148,1.1992984,1.2335075,18.7801127,83.5294346,81.4625198,78.6021781,26.7475573,40.8860148,23.9948651,63.8175779,35.941094,55.5130065,21.4065193,17.2619051,74.2747118,5.5006718,35.753917,9.5040902,1.3024441,1.3982907,18.9799537,83.2565221,81.1911069,78.3127309,26.5126272,40.6684579,23.1203188,64.6145567,36.2553894,56.7949949,21.7568693,17.3754284,74.7356849,5.3470124,34.85532,9.6560659\r\n1308,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.1992984,1.2335075,18.7801127,83.5294346,81.4625198,78.6021781,26.7475573,40.8860148,23.9948651,63.8175779,35.941094,55.5130065,21.4065193,17.2619051,74.2747118,5.5006718,35.753917,9.5040902,1.3024441,1.3982907,18.9799537,83.2565221,81.1911069,78.3127309,26.5126272,40.6684579,23.1203188,64.6145567,36.2553894,56.7949949,21.7568693,17.3754284,74.7356849,5.3470124,34.85532,9.6560659,1.437231,1.5584086,19.243757,84.2107181,81.6954214,79.7849862,26.7873235,42.5577233,23.5771169,63.8553491,35.0261367,57.6173486,22.7142796,18.2244857,75.5672324,5.5185365,34.5957339,10.76731\r\n1309,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.3024441,1.3982907,18.9799537,83.2565221,81.1911069,78.3127309,26.5126272,40.6684579,23.1203188,64.6145567,36.2553894,56.7949949,21.7568693,17.3754284,74.7356849,5.3470124,34.85532,9.6560659,1.437231,1.5584086,19.243757,84.2107181,81.6954214,79.7849862,26.7873235,42.5577233,23.5771169,63.8553491,35.0261367,57.6173486,22.7142796,18.2244857,75.5672324,5.5185365,34.5957339,10.76731,1.5441516,1.700538,19.3396698,83.6805106,82.0247534,78.6071161,26.3555612,43.3046655,23.42657,63.8913404,34.1092993,59.3477253,23.0661276,18.6573086,76.2288315,5.7148728,33.4028302,9.8062978\r\n1310,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.437231,1.5584086,19.243757,84.2107181,81.6954214,79.7849862,26.7873235,42.5577233,23.5771169,63.8553491,35.0261367,57.6173486,22.7142796,18.2244857,75.5672324,5.5185365,34.5957339,10.76731,1.5441516,1.700538,19.3396698,83.6805106,82.0247534,78.6071161,26.3555612,43.3046655,23.42657,63.8913404,34.1092993,59.3477253,23.0661276,18.6573086,76.2288315,5.7148728,33.4028302,9.8062978,1.5699995,1.7429328,19.4539399,81.4839452,80.9176292,78.5303974,25.0613423,44.6029807,24.3197698,64.093005,32.9188322,61.0699938,23.9494053,19.2801429,77.0167698,5.5269431,33.5055644,9.8194175\r\n1311,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.5441516,1.700538,19.3396698,83.6805106,82.0247534,78.6071161,26.3555612,43.3046655,23.42657,63.8913404,34.1092993,59.3477253,23.0661276,18.6573086,76.2288315,5.7148728,33.4028302,9.8062978,1.5699995,1.7429328,19.4539399,81.4839452,80.9176292,78.5303974,25.0613423,44.6029807,24.3197698,64.093005,32.9188322,61.0699938,23.9494053,19.2801429,77.0167698,5.5269431,33.5055644,9.8194175,1.712927,1.909929,19.2601052,80.1633168,80.1824063,77.5643475,24.4119028,42.1370986,21.7651064,62.6725674,32.455201,61.8525533,25.0654052,19.9662999,77.2324159,5.5513343,33.3204607,11.2549846\r\n1312,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.5699995,1.7429328,19.4539399,81.4839452,80.9176292,78.5303974,25.0613423,44.6029807,24.3197698,64.093005,32.9188322,61.0699938,23.9494053,19.2801429,77.0167698,5.5269431,33.5055644,9.8194175,1.712927,1.909929,19.2601052,80.1633168,80.1824063,77.5643475,24.4119028,42.1370986,21.7651064,62.6725674,32.455201,61.8525533,25.0654052,19.9662999,77.2324159,5.5513343,33.3204607,11.2549846,2.1223981,2.3114883,20.9375742,80.0222485,78.9958948,77.7672623,22.8481842,44.243241,22.673743,62.318232,32.187569,62.42541,27.110195,21.627036,78.2064986,5.4408134,32.7948909,14.5569647\r\n1313,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,1.712927,1.909929,19.2601052,80.1633168,80.1824063,77.5643475,24.4119028,42.1370986,21.7651064,62.6725674,32.455201,61.8525533,25.0654052,19.9662999,77.2324159,5.5513343,33.3204607,11.2549846,2.1223981,2.3114883,20.9375742,80.0222485,78.9958948,77.7672623,22.8481842,44.243241,22.673743,62.318232,32.187569,62.42541,27.110195,21.627036,78.2064986,5.4408134,32.7948909,14.5569647,2.1690785,2.353342,22.925272,79.9919146,79.1609016,78.0540438,21.0135856,44.5574553,22.6873432,61.9955446,29.6161484,63.0158303,28.6810138,22.7127074,79.2406836,5.2583526,32.6005934,14.9913371\r\n1314,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,2.1223981,2.3114883,20.9375742,80.0222485,78.9958948,77.7672623,22.8481842,44.243241,22.673743,62.318232,32.187569,62.42541,27.110195,21.627036,78.2064986,5.4408134,32.7948909,14.5569647,2.1690785,2.353342,22.925272,79.9919146,79.1609016,78.0540438,21.0135856,44.5574553,22.6873432,61.9955446,29.6161484,63.0158303,28.6810138,22.7127074,79.2406836,5.2583526,32.6005934,14.9913371,2.2602354,2.3859493,25.4801532,79.2460558,78.9040538,77.799588,20.8380214,45.9527701,23.2188439,61.6672132,29.1173131,62.5343308,31.2453852,25.0710337,79.67129,5.1277526,32.5350009,15.539455\r\n1315,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,2.1690785,2.353342,22.925272,79.9919146,79.1609016,78.0540438,21.0135856,44.5574553,22.6873432,61.9955446,29.6161484,63.0158303,28.6810138,22.7127074,79.2406836,5.2583526,32.6005934,14.9913371,2.2602354,2.3859493,25.4801532,79.2460558,78.9040538,77.799588,20.8380214,45.9527701,23.2188439,61.6672132,29.1173131,62.5343308,31.2453852,25.0710337,79.67129,5.1277526,32.5350009,15.539455,2.2480574,2.3768359,27.3085834,80.2543778,79.6103736,77.5221571,20.2836036,46.6891573,22.8703669,59.6856345,27.1225541,64.227804,33.1896344,26.7482545,79.9096907,4.8289523,32.4120504,16.3011744\r\n1316,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,2.2602354,2.3859493,25.4801532,79.2460558,78.9040538,77.799588,20.8380214,45.9527701,23.2188439,61.6672132,29.1173131,62.5343308,31.2453852,25.0710337,79.67129,5.1277526,32.5350009,15.539455,2.2480574,2.3768359,27.3085834,80.2543778,79.6103736,77.5221571,20.2836036,46.6891573,22.8703669,59.6856345,27.1225541,64.227804,33.1896344,26.7482545,79.9096907,4.8289523,32.4120504,16.3011744,2.423357,2.5155838,29.0402249,81.2124017,80.5445165,78.8033885,19.2269092,48.4428765,23.2580465,58.112151,25.892251,64.8250805,35.7422258,28.7611276,81.0516734,4.5114189,32.7041773,15.8203166\r\n1317,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,2.2480574,2.3768359,27.3085834,80.2543778,79.6103736,77.5221571,20.2836036,46.6891573,22.8703669,59.6856345,27.1225541,64.227804,33.1896344,26.7482545,79.9096907,4.8289523,32.4120504,16.3011744,2.423357,2.5155838,29.0402249,81.2124017,80.5445165,78.8033885,19.2269092,48.4428765,23.2580465,58.112151,25.892251,64.8250805,35.7422258,28.7611276,81.0516734,4.5114189,32.7041773,15.8203166,2.8881224,2.9962725,30.5492851,82.7681739,81.096127,78.6242382,18.4086629,48.5014629,23.9281921,57.4458525,24.8335645,64.4617048,38.6908987,31.2871734,81.1286152,4.2246797,32.6483906,17.2268829\r\n1318,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,2.423357,2.5155838,29.0402249,81.2124017,80.5445165,78.8033885,19.2269092,48.4428765,23.2580465,58.112151,25.892251,64.8250805,35.7422258,28.7611276,81.0516734,4.5114189,32.7041773,15.8203166,2.8881224,2.9962725,30.5492851,82.7681739,81.096127,78.6242382,18.4086629,48.5014629,23.9281921,57.4458525,24.8335645,64.4617048,38.6908987,31.2871734,81.1286152,4.2246797,32.6483906,17.2268829,3.3164916,3.4243456,33.2496424,82.7019281,80.3890508,80.4602669,18.3368829,49.6390375,24.2587352,57.7480051,24.4801922,64.9706305,41.2544724,33.9839126,81.3744118,4.0477679,31.7817461,18.1868672\r\n1319,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.0,1.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,0.0,0.0,0.0,0.0,0.0,0.0,2.8881224,2.9962725,30.5492851,82.7681739,81.096127,78.6242382,18.4086629,48.5014629,23.9281921,57.4458525,24.8335645,64.4617048,38.6908987,31.2871734,81.1286152,4.2246797,32.6483906,17.2268829,3.3164916,3.4243456,33.2496424,82.7019281,80.3890508,80.4602669,18.3368829,49.6390375,24.2587352,57.7480051,24.4801922,64.9706305,41.2544724,33.9839126,81.3744118,4.0477679,31.7817461,18.1868672,3.567395,3.684885,34.3423854,83.6869105,81.3743628,79.8676152,17.2373986,49.6876674,24.4805915,56.997605,22.9195903,64.8770565,42.4797924,34.9451507,81.320528,4.1278908,32.7678529,19.4932719\r\n1320,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.7949364,0.7674414,12.2889199,83.5338917,82.7924449,82.3783934,19.9800175,31.2365573,21.8363101,65.1607285,31.8678249,55.0535356,15.9293188,11.8265827,67.3576284,8.3065158,33.0023315,4.2938808,0.8535543,0.859066,11.8798071,83.142032,82.9097042,82.5762329,19.8529846,31.8669936,22.8417205,65.5401057,32.290646,53.1231604,15.8806648,11.6648669,66.7931199,8.4227257,32.3094779,4.5539794,0.856955,0.8629768,12.1636078,81.8464523,81.3526948,80.6949311,20.70705,31.6936416,23.0355556,65.6224983,33.4110245,51.8278149,16.0443359,11.7658373,65.5138899,8.2649263,33.0800541,3.5497828\r\n1321,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.8535543,0.859066,11.8798071,83.142032,82.9097042,82.5762329,19.8529846,31.8669936,22.8417205,65.5401057,32.290646,53.1231604,15.8806648,11.6648669,66.7931199,8.4227257,32.3094779,4.5539794,0.856955,0.8629768,12.1636078,81.8464523,81.3526948,80.6949311,20.70705,31.6936416,23.0355556,65.6224983,33.4110245,51.8278149,16.0443359,11.7658373,65.5138899,8.2649263,33.0800541,3.5497828,0.9792048,0.9731827,11.6912969,81.3986452,81.2271289,81.2416608,21.1239415,31.068624,22.9963281,65.894563,33.5320903,51.9922555,15.4905029,11.3028236,64.9881882,7.6488742,34.4952696,4.4555313\r\n1322,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.856955,0.8629768,12.1636078,81.8464523,81.3526948,80.6949311,20.70705,31.6936416,23.0355556,65.6224983,33.4110245,51.8278149,16.0443359,11.7658373,65.5138899,8.2649263,33.0800541,3.5497828,0.9792048,0.9731827,11.6912969,81.3986452,81.2271289,81.2416608,21.1239415,31.068624,22.9963281,65.894563,33.5320903,51.9922555,15.4905029,11.3028236,64.9881882,7.6488742,34.4952696,4.4555313,1.0813833,1.0914144,10.903777,82.4274383,82.2864517,81.5129423,20.4212006,31.9317801,23.816689,65.8133926,33.3288803,51.7528126,15.0000067,10.7794641,65.4189577,8.1065387,34.9802985,5.6840876\r\n1323,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.9792048,0.9731827,11.6912969,81.3986452,81.2271289,81.2416608,21.1239415,31.068624,22.9963281,65.894563,33.5320903,51.9922555,15.4905029,11.3028236,64.9881882,7.6488742,34.4952696,4.4555313,1.0813833,1.0914144,10.903777,82.4274383,82.2864517,81.5129423,20.4212006,31.9317801,23.816689,65.8133926,33.3288803,51.7528126,15.0000067,10.7794641,65.4189577,8.1065387,34.9802985,5.6840876,1.0161281,1.014326,10.9383726,82.1081315,81.6860076,80.299538,20.9206526,31.4172741,23.8159189,65.320381,32.9940671,51.6510857,14.61391,10.7915043,65.6990539,8.6590934,34.8995946,6.3381096\r\n1324,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.0813833,1.0914144,10.903777,82.4274383,82.2864517,81.5129423,20.4212006,31.9317801,23.816689,65.8133926,33.3288803,51.7528126,15.0000067,10.7794641,65.4189577,8.1065387,34.9802985,5.6840876,1.0161281,1.014326,10.9383726,82.1081315,81.6860076,80.299538,20.9206526,31.4172741,23.8159189,65.320381,32.9940671,51.6510857,14.61391,10.7915043,65.6990539,8.6590934,34.8995946,6.3381096,1.1269798,1.149415,10.7717979,80.1352566,80.2403955,79.0704225,21.2129252,29.9912753,22.9363821,66.902596,34.2637802,49.8519546,14.1494971,10.2958478,64.7583177,8.2743516,34.0520592,6.274975\r\n1325,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.0161281,1.014326,10.9383726,82.1081315,81.6860076,80.299538,20.9206526,31.4172741,23.8159189,65.320381,32.9940671,51.6510857,14.61391,10.7915043,65.6990539,8.6590934,34.8995946,6.3381096,1.1269798,1.149415,10.7717979,80.1352566,80.2403955,79.0704225,21.2129252,29.9912753,22.9363821,66.902596,34.2637802,49.8519546,14.1494971,10.2958478,64.7583177,8.2743516,34.0520592,6.274975,1.218306,1.2410293,10.7662518,77.8869347,78.2455003,77.3572442,22.0527126,29.1723451,24.5008663,66.3732451,35.2823836,49.0923519,13.8592681,10.142376,63.9090188,8.2966564,33.9817724,7.6220141\r\n1326,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.1269798,1.149415,10.7717979,80.1352566,80.2403955,79.0704225,21.2129252,29.9912753,22.9363821,66.902596,34.2637802,49.8519546,14.1494971,10.2958478,64.7583177,8.2743516,34.0520592,6.274975,1.218306,1.2410293,10.7662518,77.8869347,78.2455003,77.3572442,22.0527126,29.1723451,24.5008663,66.3732451,35.2823836,49.0923519,13.8592681,10.142376,63.9090188,8.2966564,33.9817724,7.6220141,1.1016711,1.0683202,11.1382821,77.5591558,77.047306,77.0165406,22.4748262,28.1805712,22.1992198,66.5443955,34.9777548,48.8947713,13.7910357,9.9028313,63.9003215,8.3811286,34.1927282,8.2236572\r\n1327,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.218306,1.2410293,10.7662518,77.8869347,78.2455003,77.3572442,22.0527126,29.1723451,24.5008663,66.3732451,35.2823836,49.0923519,13.8592681,10.142376,63.9090188,8.2966564,33.9817724,7.6220141,1.1016711,1.0683202,11.1382821,77.5591558,77.047306,77.0165406,22.4748262,28.1805712,22.1992198,66.5443955,34.9777548,48.8947713,13.7910357,9.9028313,63.9003215,8.3811286,34.1927282,8.2236572,0.9564021,0.9122345,10.6606108,78.9530507,78.1241683,77.7034769,21.4163461,28.320704,22.4637277,66.7250623,34.4487421,50.4208101,13.6540948,9.5637272,64.3903388,8.3889783,33.5102036,8.4550883\r\n1328,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.1016711,1.0683202,11.1382821,77.5591558,77.047306,77.0165406,22.4748262,28.1805712,22.1992198,66.5443955,34.9777548,48.8947713,13.7910357,9.9028313,63.9003215,8.3811286,34.1927282,8.2236572,0.9564021,0.9122345,10.6606108,78.9530507,78.1241683,77.7034769,21.4163461,28.320704,22.4637277,66.7250623,34.4487421,50.4208101,13.6540948,9.5637272,64.3903388,8.3889783,33.5102036,8.4550883,0.9449135,0.8995613,11.3685172,79.9330782,78.0056462,77.5927741,21.1712114,28.3232879,23.0650681,67.0425731,34.7709836,52.1402576,14.7047275,10.3950827,65.3830308,9.0706832,32.7970175,8.0930905\r\n1329,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.9564021,0.9122345,10.6606108,78.9530507,78.1241683,77.7034769,21.4163461,28.320704,22.4637277,66.7250623,34.4487421,50.4208101,13.6540948,9.5637272,64.3903388,8.3889783,33.5102036,8.4550883,0.9449135,0.8995613,11.3685172,79.9330782,78.0056462,77.5927741,21.1712114,28.3232879,23.0650681,67.0425731,34.7709836,52.1402576,14.7047275,10.3950827,65.3830308,9.0706832,32.7970175,8.0930905,0.8973674,0.8716145,11.4093504,79.4022968,77.2607549,77.0802368,21.202865,27.2670411,23.7398878,66.7199184,35.560595,51.3877867,14.6669621,10.4054932,64.5684053,8.9486616,31.6835913,7.3943315\r\n1330,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.9449135,0.8995613,11.3685172,79.9330782,78.0056462,77.5927741,21.1712114,28.3232879,23.0650681,67.0425731,34.7709836,52.1402576,14.7047275,10.3950827,65.3830308,9.0706832,32.7970175,8.0930905,0.8973674,0.8716145,11.4093504,79.4022968,77.2607549,77.0802368,21.202865,27.2670411,23.7398878,66.7199184,35.560595,51.3877867,14.6669621,10.4054932,64.5684053,8.9486616,31.6835913,7.3943315,1.015102,0.9625372,11.4978382,79.2628948,77.2686506,78.0242026,21.5603904,27.0775634,23.9887247,67.1822593,36.592364,50.7190662,15.226627,10.6099499,64.1627255,8.9574278,32.6609451,6.801885\r\n1331,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.8973674,0.8716145,11.4093504,79.4022968,77.2607549,77.0802368,21.202865,27.2670411,23.7398878,66.7199184,35.560595,51.3877867,14.6669621,10.4054932,64.5684053,8.9486616,31.6835913,7.3943315,1.015102,0.9625372,11.4978382,79.2628948,77.2686506,78.0242026,21.5603904,27.0775634,23.9887247,67.1822593,36.592364,50.7190662,15.226627,10.6099499,64.1627255,8.9574278,32.6609451,6.801885,0.9119231,0.8580184,10.3242556,80.254391,77.1550947,78.2920891,21.4082855,27.7990053,24.0370042,66.3366288,35.8193631,51.9275569,14.5987319,9.8698918,65.0530315,8.9737815,33.8509167,6.8237959\r\n1332,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.015102,0.9625372,11.4978382,79.2628948,77.2686506,78.0242026,21.5603904,27.0775634,23.9887247,67.1822593,36.592364,50.7190662,15.226627,10.6099499,64.1627255,8.9574278,32.6609451,6.801885,0.9119231,0.8580184,10.3242556,80.254391,77.1550947,78.2920891,21.4082855,27.7990053,24.0370042,66.3366288,35.8193631,51.9275569,14.5987319,9.8698918,65.0530315,8.9737815,33.8509167,6.8237959,0.7661907,0.7119108,9.7304248,82.3549566,79.0091923,79.9492604,21.2073125,28.7589779,22.1126344,67.1545545,35.057558,51.6112145,14.6134083,9.8078247,65.6527177,9.1926142,35.2192828,5.6390836\r\n1333,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.9119231,0.8580184,10.3242556,80.254391,77.1550947,78.2920891,21.4082855,27.7990053,24.0370042,66.3366288,35.8193631,51.9275569,14.5987319,9.8698918,65.0530315,8.9737815,33.8509167,6.8237959,0.7661907,0.7119108,9.7304248,82.3549566,79.0091923,79.9492604,21.2073125,28.7589779,22.1126344,67.1545545,35.057558,51.6112145,14.6134083,9.8078247,65.6527177,9.1926142,35.2192828,5.6390836,0.6918783,0.6779337,9.6082632,82.405445,80.3414618,80.6572208,20.9612151,27.7924872,22.5465568,67.0395283,34.5300554,51.5965774,14.9594044,10.2662721,66.1737649,9.1216052,34.636103,4.3532176\r\n1334,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.7661907,0.7119108,9.7304248,82.3549566,79.0091923,79.9492604,21.2073125,28.7589779,22.1126344,67.1545545,35.057558,51.6112145,14.6134083,9.8078247,65.6527177,9.1926142,35.2192828,5.6390836,0.6918783,0.6779337,9.6082632,82.405445,80.3414618,80.6572208,20.9612151,27.7924872,22.5465568,67.0395283,34.5300554,51.5965774,14.9594044,10.2662721,66.1737649,9.1216052,34.636103,4.3532176,0.8137439,0.7717377,9.660389,82.9437394,81.3598832,81.2938545,20.9891099,29.3763808,23.0790636,66.766358,33.2207301,50.747071,15.0947764,10.35652,66.0811526,8.866189,35.4129395,3.4883586\r\n1335,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.6918783,0.6779337,9.6082632,82.405445,80.3414618,80.6572208,20.9612151,27.7924872,22.5465568,67.0395283,34.5300554,51.5965774,14.9594044,10.2662721,66.1737649,9.1216052,34.636103,4.3532176,0.8137439,0.7717377,9.660389,82.9437394,81.3598832,81.2938545,20.9891099,29.3763808,23.0790636,66.766358,33.2207301,50.747071,15.0947764,10.35652,66.0811526,8.866189,35.4129395,3.4883586,0.8350364,0.7920368,9.5897216,81.3826374,80.6689823,81.0247585,21.9332841,30.5412979,23.2100791,67.0630742,34.3776549,48.9906999,14.3553007,9.6707104,65.1535808,8.7853256,36.1495973,3.7371038\r\n1336,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.8137439,0.7717377,9.660389,82.9437394,81.3598832,81.2938545,20.9891099,29.3763808,23.0790636,66.766358,33.2207301,50.747071,15.0947764,10.35652,66.0811526,8.866189,35.4129395,3.4883586,0.8350364,0.7920368,9.5897216,81.3826374,80.6689823,81.0247585,21.9332841,30.5412979,23.2100791,67.0630742,34.3776549,48.9906999,14.3553007,9.6707104,65.1535808,8.7853256,36.1495973,3.7371038,0.7755526,0.6874722,10.7272115,81.5786883,81.1359075,81.1825913,21.885989,30.4419921,21.9569379,67.5712117,32.9861192,50.2821232,14.6474299,9.7255308,65.8634804,8.2305249,37.4880552,3.7084304\r\n1337,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.8350364,0.7920368,9.5897216,81.3826374,80.6689823,81.0247585,21.9332841,30.5412979,23.2100791,67.0630742,34.3776549,48.9906999,14.3553007,9.6707104,65.1535808,8.7853256,36.1495973,3.7371038,0.7755526,0.6874722,10.7272115,81.5786883,81.1359075,81.1825913,21.885989,30.4419921,21.9569379,67.5712117,32.9861192,50.2821232,14.6474299,9.7255308,65.8634804,8.2305249,37.4880552,3.7084304,0.5772066,0.5328568,11.1653777,80.7370924,80.2921598,80.4179348,21.7708054,30.7343719,21.5004158,67.4276641,32.7422083,50.1232824,14.526869,9.8668739,66.0353968,7.7161692,37.2330345,3.7662191\r\n1338,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.7755526,0.6874722,10.7272115,81.5786883,81.1359075,81.1825913,21.885989,30.4419921,21.9569379,67.5712117,32.9861192,50.2821232,14.6474299,9.7255308,65.8634804,8.2305249,37.4880552,3.7084304,0.5772066,0.5328568,11.1653777,80.7370924,80.2921598,80.4179348,21.7708054,30.7343719,21.5004158,67.4276641,32.7422083,50.1232824,14.526869,9.8668739,66.0353968,7.7161692,37.2330345,3.7662191,0.7951764,0.7520692,11.9955525,81.1929773,80.6716941,81.1201629,22.1510812,32.324529,21.0219723,68.45537,33.0442669,49.9840932,15.2796813,10.7951825,66.2376398,8.0659877,36.9585933,3.9240407\r\n1339,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.5772066,0.5328568,11.1653777,80.7370924,80.2921598,80.4179348,21.7708054,30.7343719,21.5004158,67.4276641,32.7422083,50.1232824,14.526869,9.8668739,66.0353968,7.7161692,37.2330345,3.7662191,0.7951764,0.7520692,11.9955525,81.1929773,80.6716941,81.1201629,22.1510812,32.324529,21.0219723,68.45537,33.0442669,49.9840932,15.2796813,10.7951825,66.2376398,8.0659877,36.9585933,3.9240407,0.9916097,0.9282612,12.3067431,81.3893765,79.9781404,80.6129472,22.5170542,32.1954518,21.4359489,67.254735,33.4349008,50.7313671,15.2783581,10.9777832,65.8608835,8.1702042,35.9200838,4.6482295\r\n1340,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.7951764,0.7520692,11.9955525,81.1929773,80.6716941,81.1201629,22.1510812,32.324529,21.0219723,68.45537,33.0442669,49.9840932,15.2796813,10.7951825,66.2376398,8.0659877,36.9585933,3.9240407,0.9916097,0.9282612,12.3067431,81.3893765,79.9781404,80.6129472,22.5170542,32.1954518,21.4359489,67.254735,33.4349008,50.7313671,15.2783581,10.9777832,65.8608835,8.1702042,35.9200838,4.6482295,1.1521916,1.1040608,12.2634562,81.3263908,79.443949,80.5167232,22.8367485,32.6595471,21.954668,66.8920194,33.0525267,50.9501568,14.774686,10.6227563,65.7727687,8.1926867,35.991,4.8267267\r\n1341,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.9916097,0.9282612,12.3067431,81.3893765,79.9781404,80.6129472,22.5170542,32.1954518,21.4359489,67.254735,33.4349008,50.7313671,15.2783581,10.9777832,65.8608835,8.1702042,35.9200838,4.6482295,1.1521916,1.1040608,12.2634562,81.3263908,79.443949,80.5167232,22.8367485,32.6595471,21.954668,66.8920194,33.0525267,50.9501568,14.774686,10.6227563,65.7727687,8.1926867,35.991,4.8267267,1.1710723,1.1643486,12.3027265,80.4494576,79.2671252,79.1322833,23.8148816,31.6544979,21.4740705,67.2769794,34.156857,51.3905022,14.8188111,10.5848651,66.160166,9.1916278,35.223196,5.9164665\r\n1342,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.1521916,1.1040608,12.2634562,81.3263908,79.443949,80.5167232,22.8367485,32.6595471,21.954668,66.8920194,33.0525267,50.9501568,14.774686,10.6227563,65.7727687,8.1926867,35.991,4.8267267,1.1710723,1.1643486,12.3027265,80.4494576,79.2671252,79.1322833,23.8148816,31.6544979,21.4740705,67.2769794,34.156857,51.3905022,14.8188111,10.5848651,66.160166,9.1916278,35.223196,5.9164665,1.2369088,1.2304081,12.1216689,81.0124432,79.8296468,78.935588,23.4031074,31.1022272,21.0232478,67.1846084,33.5708136,50.2817036,14.9243894,10.8102117,66.9292085,8.8780843,34.7659834,5.9684617\r\n1343,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.1710723,1.1643486,12.3027265,80.4494576,79.2671252,79.1322833,23.8148816,31.6544979,21.4740705,67.2769794,34.156857,51.3905022,14.8188111,10.5848651,66.160166,9.1916278,35.223196,5.9164665,1.2369088,1.2304081,12.1216689,81.0124432,79.8296468,78.935588,23.4031074,31.1022272,21.0232478,67.1846084,33.5708136,50.2817036,14.9243894,10.8102117,66.9292085,8.8780843,34.7659834,5.9684617,1.1848117,1.1787129,11.3403391,80.4119087,79.3165386,79.0345629,23.4726539,32.1171747,20.682609,67.1182709,33.343546,49.2835961,14.9783648,11.0129262,66.4742279,9.1357285,33.7470371,5.9395184\r\n1344,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.2369088,1.2304081,12.1216689,81.0124432,79.8296468,78.935588,23.4031074,31.1022272,21.0232478,67.1846084,33.5708136,50.2817036,14.9243894,10.8102117,66.9292085,8.8780843,34.7659834,5.9684617,1.1848117,1.1787129,11.3403391,80.4119087,79.3165386,79.0345629,23.4726539,32.1171747,20.682609,67.1182709,33.343546,49.2835961,14.9783648,11.0129262,66.4742279,9.1357285,33.7470371,5.9395184,1.3131009,1.3159737,10.9799528,80.7182267,80.4989341,79.6102681,23.4665018,32.586567,20.8150833,66.982643,32.6653504,49.7136566,14.8017373,10.6150131,66.5107459,9.49106,33.64247,5.9356137\r\n1345,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.1848117,1.1787129,11.3403391,80.4119087,79.3165386,79.0345629,23.4726539,32.1171747,20.682609,67.1182709,33.343546,49.2835961,14.9783648,11.0129262,66.4742279,9.1357285,33.7470371,5.9395184,1.3131009,1.3159737,10.9799528,80.7182267,80.4989341,79.6102681,23.4665018,32.586567,20.8150833,66.982643,32.6653504,49.7136566,14.8017373,10.6150131,66.5107459,9.49106,33.64247,5.9356137,1.25667,1.2595241,11.0287577,80.4385419,81.1298036,79.2971077,22.9434113,30.3117031,21.6251716,66.3177365,32.7870251,48.2871955,14.6309585,10.4612276,65.7688542,9.3207602,33.3948954,5.5\r\n1346,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.3131009,1.3159737,10.9799528,80.7182267,80.4989341,79.6102681,23.4665018,32.586567,20.8150833,66.982643,32.6653504,49.7136566,14.8017373,10.6150131,66.5107459,9.49106,33.64247,5.9356137,1.25667,1.2595241,11.0287577,80.4385419,81.1298036,79.2971077,22.9434113,30.3117031,21.6251716,66.3177365,32.7870251,48.2871955,14.6309585,10.4612276,65.7688542,9.3207602,33.3948954,5.5,1.0659742,1.099401,10.5988547,78.715959,80.0737381,79.1390805,23.7677628,29.3967113,21.2761404,66.5451265,33.1089814,47.6875339,14.236093,10.1790858,65.654822,9.075886,33.0747479,5.1829216\r\n1347,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.25667,1.2595241,11.0287577,80.4385419,81.1298036,79.2971077,22.9434113,30.3117031,21.6251716,66.3177365,32.7870251,48.2871955,14.6309585,10.4612276,65.7688542,9.3207602,33.3948954,5.5,1.0659742,1.099401,10.5988547,78.715959,80.0737381,79.1390805,23.7677628,29.3967113,21.2761404,66.5451265,33.1089814,47.6875339,14.236093,10.1790858,65.654822,9.075886,33.0747479,5.1829216,1.0034127,1.0186316,10.6189879,78.8824521,79.7172832,78.5837644,25.2730492,29.94147,21.4721352,66.9669099,34.3988351,47.9611302,14.5734759,10.3629626,65.7836582,9.3316051,33.0045084,4.7268808\r\n1348,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.0659742,1.099401,10.5988547,78.715959,80.0737381,79.1390805,23.7677628,29.3967113,21.2761404,66.5451265,33.1089814,47.6875339,14.236093,10.1790858,65.654822,9.075886,33.0747479,5.1829216,1.0034127,1.0186316,10.6189879,78.8824521,79.7172832,78.5837644,25.2730492,29.94147,21.4721352,66.9669099,34.3988351,47.9611302,14.5734759,10.3629626,65.7836582,9.3316051,33.0045084,4.7268808,0.9244888,0.9396612,10.8048572,78.7673819,79.1203808,80.2955772,24.7841478,30.7338312,21.5967069,66.9328351,34.1268591,46.0488597,14.7874547,10.680821,65.5380395,8.7677501,33.3940648,3.8541586\r\n1349,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.0034127,1.0186316,10.6189879,78.8824521,79.7172832,78.5837644,25.2730492,29.94147,21.4721352,66.9669099,34.3988351,47.9611302,14.5734759,10.3629626,65.7836582,9.3316051,33.0045084,4.7268808,0.9244888,0.9396612,10.8048572,78.7673819,79.1203808,80.2955772,24.7841478,30.7338312,21.5967069,66.9328351,34.1268591,46.0488597,14.7874547,10.680821,65.5380395,8.7677501,33.3940648,3.8541586,0.8171328,0.8651601,10.4818289,78.6761666,78.751108,80.0110959,24.9310672,31.2505095,21.6729058,66.3920858,33.9268923,47.0792301,14.8807242,10.5871413,65.0298403,8.728662,33.6446218,3.5331792\r\n1350,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.9244888,0.9396612,10.8048572,78.7673819,79.1203808,80.2955772,24.7841478,30.7338312,21.5967069,66.9328351,34.1268591,46.0488597,14.7874547,10.680821,65.5380395,8.7677501,33.3940648,3.8541586,0.8171328,0.8651601,10.4818289,78.6761666,78.751108,80.0110959,24.9310672,31.2505095,21.6729058,66.3920858,33.9268923,47.0792301,14.8807242,10.5871413,65.0298403,8.728662,33.6446218,3.5331792,0.8223133,0.8713312,10.5336717,78.8940235,79.0103727,80.0892219,25.2927011,31.0260359,22.566758,66.4255829,35.5327735,46.6042161,14.4870263,10.5035553,64.7114635,8.7162634,34.1136441,3.6104914\r\n1351,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.8171328,0.8651601,10.4818289,78.6761666,78.751108,80.0110959,24.9310672,31.2505095,21.6729058,66.3920858,33.9268923,47.0792301,14.8807242,10.5871413,65.0298403,8.728662,33.6446218,3.5331792,0.8223133,0.8713312,10.5336717,78.8940235,79.0103727,80.0892219,25.2927011,31.0260359,22.566758,66.4255829,35.5327735,46.6042161,14.4870263,10.5035553,64.7114635,8.7162634,34.1136441,3.6104914,0.6988271,0.7398538,10.3708171,79.1890975,78.3423272,80.5135089,25.5222647,29.5700611,23.9862874,66.3093376,35.4418786,46.5607885,14.3048264,10.5233063,64.2325583,8.0023084,33.1349878,3.0542883\r\n1352,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.8223133,0.8713312,10.5336717,78.8940235,79.0103727,80.0892219,25.2927011,31.0260359,22.566758,66.4255829,35.5327735,46.6042161,14.4870263,10.5035553,64.7114635,8.7162634,34.1136441,3.6104914,0.6988271,0.7398538,10.3708171,79.1890975,78.3423272,80.5135089,25.5222647,29.5700611,23.9862874,66.3093376,35.4418786,46.5607885,14.3048264,10.5233063,64.2325583,8.0023084,33.1349878,3.0542883,0.5449426,0.6215354,9.8639371,78.6121523,76.8796171,80.451702,25.4205712,31.3386816,23.6790513,66.0186588,35.1033379,45.3049924,14.3592839,10.3928383,64.3136306,8.0801898,33.2933362,3.1541946\r\n1353,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.6988271,0.7398538,10.3708171,79.1890975,78.3423272,80.5135089,25.5222647,29.5700611,23.9862874,66.3093376,35.4418786,46.5607885,14.3048264,10.5233063,64.2325583,8.0023084,33.1349878,3.0542883,0.5449426,0.6215354,9.8639371,78.6121523,76.8796171,80.451702,25.4205712,31.3386816,23.6790513,66.0186588,35.1033379,45.3049924,14.3592839,10.3928383,64.3136306,8.0801898,33.2933362,3.1541946,0.6535741,0.7161421,10.2113441,79.9910095,77.2468959,80.8121032,25.019489,31.9001328,23.8707918,67.0227451,35.9394932,45.9214013,14.5737347,10.5030652,64.6355537,8.2649198,32.9473261,3.1177757\r\n1354,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.5449426,0.6215354,9.8639371,78.6121523,76.8796171,80.451702,25.4205712,31.3386816,23.6790513,66.0186588,35.1033379,45.3049924,14.3592839,10.3928383,64.3136306,8.0801898,33.2933362,3.1541946,0.6535741,0.7161421,10.2113441,79.9910095,77.2468959,80.8121032,25.019489,31.9001328,23.8707918,67.0227451,35.9394932,45.9214013,14.5737347,10.5030652,64.6355537,8.2649198,32.9473261,3.1177757,0.5857688,0.6547769,9.983599,78.6389636,75.6441961,80.7098076,24.7901139,31.1799666,22.7108889,67.8797634,37.1498616,44.6196809,14.1961559,10.243274,63.4018378,8.075133,33.4265571,4.3526737\r\n1355,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.6535741,0.7161421,10.2113441,79.9910095,77.2468959,80.8121032,25.019489,31.9001328,23.8707918,67.0227451,35.9394932,45.9214013,14.5737347,10.5030652,64.6355537,8.2649198,32.9473261,3.1177757,0.5857688,0.6547769,9.983599,78.6389636,75.6441961,80.7098076,24.7901139,31.1799666,22.7108889,67.8797634,37.1498616,44.6196809,14.1961559,10.243274,63.4018378,8.075133,33.4265571,4.3526737,0.7624062,0.83144,10.3961306,79.1831206,75.9954822,80.7076968,24.9272577,31.4095205,23.6155454,68.3883471,37.585715,45.6288536,14.5216532,10.6112575,63.2341463,7.9171485,33.1608154,5.2941114\r\n1356,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.5857688,0.6547769,9.983599,78.6389636,75.6441961,80.7098076,24.7901139,31.1799666,22.7108889,67.8797634,37.1498616,44.6196809,14.1961559,10.243274,63.4018378,8.075133,33.4265571,4.3526737,0.7624062,0.83144,10.3961306,79.1831206,75.9954822,80.7076968,24.9272577,31.4095205,23.6155454,68.3883471,37.585715,45.6288536,14.5216532,10.6112575,63.2341463,7.9171485,33.1608154,5.2941114,0.8190017,0.8772818,11.2284745,78.3897365,75.3806815,80.5445566,25.2323276,31.6816328,23.418159,68.8556501,37.8329983,44.6461924,14.7488826,11.0007644,62.9636676,8.4035188,33.1879994,4.8863636\r\n1357,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.7624062,0.83144,10.3961306,79.1831206,75.9954822,80.7076968,24.9272577,31.4095205,23.6155454,68.3883471,37.585715,45.6288536,14.5216532,10.6112575,63.2341463,7.9171485,33.1608154,5.2941114,0.8190017,0.8772818,11.2284745,78.3897365,75.3806815,80.5445566,25.2323276,31.6816328,23.418159,68.8556501,37.8329983,44.6461924,14.7488826,11.0007644,62.9636676,8.4035188,33.1879994,4.8863636,0.808059,0.8668147,10.8369009,77.4999932,75.6509727,81.138286,24.6767751,32.1910178,22.5177354,68.5004801,37.0883235,44.5331909,14.5526717,10.7021693,63.7639682,8.2436605,33.1887664,5.1724138\r\n1358,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.8190017,0.8772818,11.2284745,78.3897365,75.3806815,80.5445566,25.2323276,31.6816328,23.418159,68.8556501,37.8329983,44.6461924,14.7488826,11.0007644,62.9636676,8.4035188,33.1879994,4.8863636,0.808059,0.8668147,10.8369009,77.4999932,75.6509727,81.138286,24.6767751,32.1910178,22.5177354,68.5004801,37.0883235,44.5331909,14.5526717,10.7021693,63.7639682,8.2436605,33.1887664,5.1724138,0.8017359,0.8605943,10.5094976,76.718902,75.103265,81.3412938,24.2449632,33.5229248,21.8889784,69.1377825,38.1659417,43.7895455,14.4448907,10.5929161,64.1266907,8.4321238,34.1455256,6.1936867\r\n1359,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.808059,0.8668147,10.8369009,77.4999932,75.6509727,81.138286,24.6767751,32.1910178,22.5177354,68.5004801,37.0883235,44.5331909,14.5526717,10.7021693,63.7639682,8.2436605,33.1887664,5.1724138,0.8017359,0.8605943,10.5094976,76.718902,75.103265,81.3412938,24.2449632,33.5229248,21.8889784,69.1377825,38.1659417,43.7895455,14.4448907,10.5929161,64.1266907,8.4321238,34.1455256,6.1936867,0.9361911,0.9597261,10.5194256,77.6988987,76.6336445,81.5777156,24.6723014,32.3073387,21.0880495,70.2135796,38.8845994,46.8331641,14.4068036,10.4519914,64.5093911,8.0983253,34.5109713,5.8888823\r\n1360,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.8017359,0.8605943,10.5094976,76.718902,75.103265,81.3412938,24.2449632,33.5229248,21.8889784,69.1377825,38.1659417,43.7895455,14.4448907,10.5929161,64.1266907,8.4321238,34.1455256,6.1936867,0.9361911,0.9597261,10.5194256,77.6988987,76.6336445,81.5777156,24.6723014,32.3073387,21.0880495,70.2135796,38.8845994,46.8331641,14.4068036,10.4519914,64.5093911,8.0983253,34.5109713,5.8888823,0.9536733,1.0065852,10.9304527,77.1290151,76.9659407,81.1051659,23.7608097,32.4138658,20.3483635,69.1585945,38.1556335,46.737289,14.9981267,10.9710225,64.1982535,7.7435267,34.2802702,6.8627376\r\n1361,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.9361911,0.9597261,10.5194256,77.6988987,76.6336445,81.5777156,24.6723014,32.3073387,21.0880495,70.2135796,38.8845994,46.8331641,14.4068036,10.4519914,64.5093911,8.0983253,34.5109713,5.8888823,0.9536733,1.0065852,10.9304527,77.1290151,76.9659407,81.1051659,23.7608097,32.4138658,20.3483635,69.1585945,38.1556335,46.737289,14.9981267,10.9710225,64.1982535,7.7435267,34.2802702,6.8627376,1.1066481,1.1947102,11.4899929,77.3384084,78.2623674,81.3917098,22.5328575,33.2320082,21.0621598,68.6547749,36.5990659,47.2533472,15.5601538,11.4107707,64.8219194,7.1373974,34.3972788,7.0806023\r\n1362,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.9536733,1.0065852,10.9304527,77.1290151,76.9659407,81.1051659,23.7608097,32.4138658,20.3483635,69.1585945,38.1556335,46.737289,14.9981267,10.9710225,64.1982535,7.7435267,34.2802702,6.8627376,1.1066481,1.1947102,11.4899929,77.3384084,78.2623674,81.3917098,22.5328575,33.2320082,21.0621598,68.6547749,36.5990659,47.2533472,15.5601538,11.4107707,64.8219194,7.1373974,34.3972788,7.0806023,0.997178,1.0870139,11.5988301,77.8805015,78.3119991,81.4082788,22.5944335,33.0000206,20.3960768,68.4311203,36.5101204,47.0359528,15.4156954,11.2201541,65.1230868,7.1428364,34.9527213,6.475577\r\n1363,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.1066481,1.1947102,11.4899929,77.3384084,78.2623674,81.3917098,22.5328575,33.2320082,21.0621598,68.6547749,36.5990659,47.2533472,15.5601538,11.4107707,64.8219194,7.1373974,34.3972788,7.0806023,0.997178,1.0870139,11.5988301,77.8805015,78.3119991,81.4082788,22.5944335,33.0000206,20.3960768,68.4311203,36.5101204,47.0359528,15.4156954,11.2201541,65.1230868,7.1428364,34.9527213,6.475577,1.0975683,1.1725447,11.662377,78.0330656,79.2113611,81.7765114,23.0136881,32.2488188,19.4654504,68.7645861,37.2870634,47.1369814,15.3801621,11.0960934,66.2051298,7.0185452,34.0350396,8.0993433\r\n1364,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,0.997178,1.0870139,11.5988301,77.8805015,78.3119991,81.4082788,22.5944335,33.0000206,20.3960768,68.4311203,36.5101204,47.0359528,15.4156954,11.2201541,65.1230868,7.1428364,34.9527213,6.475577,1.0975683,1.1725447,11.662377,78.0330656,79.2113611,81.7765114,23.0136881,32.2488188,19.4654504,68.7645861,37.2870634,47.1369814,15.3801621,11.0960934,66.2051298,7.0185452,34.0350396,8.0993433,1.4054446,1.488535,12.6605239,79.3619306,78.8191119,81.218285,23.3787859,31.187144,19.2843438,69.4448465,37.9060417,49.3798443,16.5828273,11.9775388,65.3377751,7.0069699,34.3551466,8.4905571\r\n1365,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.0975683,1.1725447,11.662377,78.0330656,79.2113611,81.7765114,23.0136881,32.2488188,19.4654504,68.7645861,37.2870634,47.1369814,15.3801621,11.0960934,66.2051298,7.0185452,34.0350396,8.0993433,1.4054446,1.488535,12.6605239,79.3619306,78.8191119,81.218285,23.3787859,31.187144,19.2843438,69.4448465,37.9060417,49.3798443,16.5828273,11.9775388,65.3377751,7.0069699,34.3551466,8.4905571,1.5471384,1.6310728,13.0229587,80.7405606,80.1137227,81.4863677,22.8576673,30.5510675,20.557275,68.5001576,36.73729,48.945596,17.1691285,12.5097665,65.0695873,7.3644702,35.5691553,9.2427514\r\n1366,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.4054446,1.488535,12.6605239,79.3619306,78.8191119,81.218285,23.3787859,31.187144,19.2843438,69.4448465,37.9060417,49.3798443,16.5828273,11.9775388,65.3377751,7.0069699,34.3551466,8.4905571,1.5471384,1.6310728,13.0229587,80.7405606,80.1137227,81.4863677,22.8576673,30.5510675,20.557275,68.5001576,36.73729,48.945596,17.1691285,12.5097665,65.0695873,7.3644702,35.5691553,9.2427514,1.4752713,1.5527711,13.9316261,80.8563852,79.7983943,82.207986,22.7783828,31.1225604,21.8647851,67.8347641,36.0032352,48.577734,17.8372846,13.3134696,65.0483127,7.7517597,35.4800748,9.7430303\r\n1367,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5471384,1.6310728,13.0229587,80.7405606,80.1137227,81.4863677,22.8576673,30.5510675,20.557275,68.5001576,36.73729,48.945596,17.1691285,12.5097665,65.0695873,7.3644702,35.5691553,9.2427514,1.4752713,1.5527711,13.9316261,80.8563852,79.7983943,82.207986,22.7783828,31.1225604,21.8647851,67.8347641,36.0032352,48.577734,17.8372846,13.3134696,65.0483127,7.7517597,35.4800748,9.7430303,1.5157925,1.563022,13.999106,82.116577,80.9882553,82.3989434,23.6318422,31.0497515,22.1828281,67.9945491,35.7977962,49.1492782,18.0638653,13.5129589,65.1441298,8.3799799,36.4332197,9.5085368\r\n1368,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.4752713,1.5527711,13.9316261,80.8563852,79.7983943,82.207986,22.7783828,31.1225604,21.8647851,67.8347641,36.0032352,48.577734,17.8372846,13.3134696,65.0483127,7.7517597,35.4800748,9.7430303,1.5157925,1.563022,13.999106,82.116577,80.9882553,82.3989434,23.6318422,31.0497515,22.1828281,67.9945491,35.7977962,49.1492782,18.0638653,13.5129589,65.1441298,8.3799799,36.4332197,9.5085368,1.5078756,1.5180865,14.6280321,83.7843531,82.0490626,83.1197462,24.9938517,30.751439,22.9543871,67.660716,36.6146626,50.8911054,18.581729,14.1221036,65.3845719,8.8353904,36.1985403,9.4279461\r\n1369,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5157925,1.563022,13.999106,82.116577,80.9882553,82.3989434,23.6318422,31.0497515,22.1828281,67.9945491,35.7977962,49.1492782,18.0638653,13.5129589,65.1441298,8.3799799,36.4332197,9.5085368,1.5078756,1.5180865,14.6280321,83.7843531,82.0490626,83.1197462,24.9938517,30.751439,22.9543871,67.660716,36.6146626,50.8911054,18.581729,14.1221036,65.3845719,8.8353904,36.1985403,9.4279461,1.5271618,1.5691562,15.1184515,83.6050901,82.2913551,83.2348358,24.9252555,30.6655647,22.3520467,66.9067854,36.3381697,51.6529337,18.863785,14.5090705,65.5443116,8.9008044,36.6772574,10.0831391\r\n1370,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5078756,1.5180865,14.6280321,83.7843531,82.0490626,83.1197462,24.9938517,30.751439,22.9543871,67.660716,36.6146626,50.8911054,18.581729,14.1221036,65.3845719,8.8353904,36.1985403,9.4279461,1.5271618,1.5691562,15.1184515,83.6050901,82.2913551,83.2348358,24.9252555,30.6655647,22.3520467,66.9067854,36.3381697,51.6529337,18.863785,14.5090705,65.5443116,8.9008044,36.6772574,10.0831391,1.5627073,1.5955179,15.5207774,82.9736255,83.3765174,82.672132,24.4786955,31.8274264,22.6470588,66.0260277,35.7091507,52.3290061,19.409154,14.9682337,64.4918241,8.7104377,36.9825255,9.1919006\r\n1371,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5271618,1.5691562,15.1184515,83.6050901,82.2913551,83.2348358,24.9252555,30.6655647,22.3520467,66.9067854,36.3381697,51.6529337,18.863785,14.5090705,65.5443116,8.9008044,36.6772574,10.0831391,1.5627073,1.5955179,15.5207774,82.9736255,83.3765174,82.672132,24.4786955,31.8274264,22.6470588,66.0260277,35.7091507,52.3290061,19.409154,14.9682337,64.4918241,8.7104377,36.9825255,9.1919006,1.3258769,1.356752,15.8826572,83.6197515,84.6237039,81.7701386,23.6400634,31.8083471,23.6350589,66.4813284,33.8595697,52.8905848,19.5660287,15.2268731,65.2731699,8.1488823,36.352701,9.0637179\r\n1372,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5627073,1.5955179,15.5207774,82.9736255,83.3765174,82.672132,24.4786955,31.8274264,22.6470588,66.0260277,35.7091507,52.3290061,19.409154,14.9682337,64.4918241,8.7104377,36.9825255,9.1919006,1.3258769,1.356752,15.8826572,83.6197515,84.6237039,81.7701386,23.6400634,31.8083471,23.6350589,66.4813284,33.8595697,52.8905848,19.5660287,15.2268731,65.2731699,8.1488823,36.352701,9.0637179,1.2659589,1.2975736,16.6148762,82.309981,83.1320509,80.8924118,25.5002274,31.9354577,20.2616562,67.7819832,34.9863446,53.9856702,20.3960134,15.9860646,65.6275209,7.6526356,35.9387827,8.6337597\r\n1373,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.3258769,1.356752,15.8826572,83.6197515,84.6237039,81.7701386,23.6400634,31.8083471,23.6350589,66.4813284,33.8595697,52.8905848,19.5660287,15.2268731,65.2731699,8.1488823,36.352701,9.0637179,1.2659589,1.2975736,16.6148762,82.309981,83.1320509,80.8924118,25.5002274,31.9354577,20.2616562,67.7819832,34.9863446,53.9856702,20.3960134,15.9860646,65.6275209,7.6526356,35.9387827,8.6337597,1.4026599,1.4422223,16.3914695,82.0270467,82.588076,80.4825668,27.3732216,30.6278651,17.8592896,66.2140834,34.8273598,53.4465027,20.2179466,15.8987515,64.9872808,7.0831564,35.6053681,9.8095051\r\n1374,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.2659589,1.2975736,16.6148762,82.309981,83.1320509,80.8924118,25.5002274,31.9354577,20.2616562,67.7819832,34.9863446,53.9856702,20.3960134,15.9860646,65.6275209,7.6526356,35.9387827,8.6337597,1.4026599,1.4422223,16.3914695,82.0270467,82.588076,80.4825668,27.3732216,30.6278651,17.8592896,66.2140834,34.8273598,53.4465027,20.2179466,15.8987515,64.9872808,7.0831564,35.6053681,9.8095051,1.589126,1.6028232,16.4949548,79.4908084,81.0654675,79.3604138,27.5621398,29.9781416,17.8295694,66.4091194,34.3440298,53.3305521,20.2293953,16.0023575,64.7529701,6.3443463,36.4285024,9.7222042\r\n1375,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.4026599,1.4422223,16.3914695,82.0270467,82.588076,80.4825668,27.3732216,30.6278651,17.8592896,66.2140834,34.8273598,53.4465027,20.2179466,15.8987515,64.9872808,7.0831564,35.6053681,9.8095051,1.589126,1.6028232,16.4949548,79.4908084,81.0654675,79.3604138,27.5621398,29.9781416,17.8295694,66.4091194,34.3440298,53.3305521,20.2293953,16.0023575,64.7529701,6.3443463,36.4285024,9.7222042,1.5283598,1.5415931,16.9412538,79.957048,80.9013242,78.6929522,26.7105649,31.0149697,17.0667668,67.1634961,33.5440229,53.3885561,20.1358831,16.213545,65.5532574,6.4800331,36.4117314,8.7825858\r\n1376,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.589126,1.6028232,16.4949548,79.4908084,81.0654675,79.3604138,27.5621398,29.9781416,17.8295694,66.4091194,34.3440298,53.3305521,20.2293953,16.0023575,64.7529701,6.3443463,36.4285024,9.7222042,1.5283598,1.5415931,16.9412538,79.957048,80.9013242,78.6929522,26.7105649,31.0149697,17.0667668,67.1634961,33.5440229,53.3885561,20.1358831,16.213545,65.5532574,6.4800331,36.4117314,8.7825858,1.6537032,1.6359714,16.4936131,78.4006105,79.2059706,78.4413349,26.3678167,30.9300347,17.3386065,66.8564176,32.5528816,51.8403774,19.9808779,16.0495724,65.5810417,6.0623586,35.7258486,8.3614653\r\n1377,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5283598,1.5415931,16.9412538,79.957048,80.9013242,78.6929522,26.7105649,31.0149697,17.0667668,67.1634961,33.5440229,53.3885561,20.1358831,16.213545,65.5532574,6.4800331,36.4117314,8.7825858,1.6537032,1.6359714,16.4936131,78.4006105,79.2059706,78.4413349,26.3678167,30.9300347,17.3386065,66.8564176,32.5528816,51.8403774,19.9808779,16.0495724,65.5810417,6.0623586,35.7258486,8.3614653,1.5946314,1.5946314,16.4991253,79.4048285,77.5428432,79.0748049,25.8509847,29.9637879,17.5989833,66.3458677,31.8654213,53.7485742,19.7779231,16.0518899,66.1758393,6.0611823,35.8438255,8.6920314\r\n1378,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.6537032,1.6359714,16.4936131,78.4006105,79.2059706,78.4413349,26.3678167,30.9300347,17.3386065,66.8564176,32.5528816,51.8403774,19.9808779,16.0495724,65.5810417,6.0623586,35.7258486,8.3614653,1.5946314,1.5946314,16.4991253,79.4048285,77.5428432,79.0748049,25.8509847,29.9637879,17.5989833,66.3458677,31.8654213,53.7485742,19.7779231,16.0518899,66.1758393,6.0611823,35.8438255,8.6920314,1.7368719,1.7623273,16.236305,79.1814687,76.9623482,79.5840146,27.2961115,31.1187914,16.6146402,65.2165073,32.8869108,53.7105926,19.4724783,15.768749,67.3449457,6.6002283,35.631758,8.6409251\r\n1379,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5946314,1.5946314,16.4991253,79.4048285,77.5428432,79.0748049,25.8509847,29.9637879,17.5989833,66.3458677,31.8654213,53.7485742,19.7779231,16.0518899,66.1758393,6.0611823,35.8438255,8.6920314,1.7368719,1.7623273,16.236305,79.1814687,76.9623482,79.5840146,27.2961115,31.1187914,16.6146402,65.2165073,32.8869108,53.7105926,19.4724783,15.768749,67.3449457,6.6002283,35.631758,8.6409251,1.6676971,1.7144752,16.1157999,79.7988102,77.8530536,79.2055607,26.7444083,31.0215526,17.6845483,65.0294849,32.0525509,53.5301633,19.2113744,15.6103411,67.366653,7.0782069,34.6870799,8.5504677\r\n1380,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.7368719,1.7623273,16.236305,79.1814687,76.9623482,79.5840146,27.2961115,31.1187914,16.6146402,65.2165073,32.8869108,53.7105926,19.4724783,15.768749,67.3449457,6.6002283,35.631758,8.6409251,1.6676971,1.7144752,16.1157999,79.7988102,77.8530536,79.2055607,26.7444083,31.0215526,17.6845483,65.0294849,32.0525509,53.5301633,19.2113744,15.6103411,67.366653,7.0782069,34.6870799,8.5504677,1.6115762,1.6577831,16.4420239,80.0479754,78.3068835,79.2456503,25.0744729,31.5764824,18.8333785,66.899106,31.8166507,53.7267157,19.4909165,15.7173074,68.2392952,7.4821447,34.9270641,7.9377874\r\n1381,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.6676971,1.7144752,16.1157999,79.7988102,77.8530536,79.2055607,26.7444083,31.0215526,17.6845483,65.0294849,32.0525509,53.5301633,19.2113744,15.6103411,67.366653,7.0782069,34.6870799,8.5504677,1.6115762,1.6577831,16.4420239,80.0479754,78.3068835,79.2456503,25.0744729,31.5764824,18.8333785,66.899106,31.8166507,53.7267157,19.4909165,15.7173074,68.2392952,7.4821447,34.9270641,7.9377874,1.3579,1.4261124,16.93373,80.899387,78.0534353,80.0590893,24.4935865,32.0293101,18.8662148,66.7004381,32.2599921,53.5069897,19.4503561,15.7623872,69.0458998,7.9650799,34.4790983,8.3609064\r\n1382,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.6115762,1.6577831,16.4420239,80.0479754,78.3068835,79.2456503,25.0744729,31.5764824,18.8333785,66.899106,31.8166507,53.7267157,19.4909165,15.7173074,68.2392952,7.4821447,34.9270641,7.9377874,1.3579,1.4261124,16.93373,80.899387,78.0534353,80.0590893,24.4935865,32.0293101,18.8662148,66.7004381,32.2599921,53.5069897,19.4503561,15.7623872,69.0458998,7.9650799,34.4790983,8.3609064,1.5701135,1.6562851,16.5957896,79.3955667,77.1827549,79.9569616,24.1209904,31.2803723,18.3733617,65.8759094,32.4246373,52.4761461,19.7792223,15.6894548,68.7614728,7.7605017,35.6775011,9.815428\r\n1383,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.3579,1.4261124,16.93373,80.899387,78.0534353,80.0590893,24.4935865,32.0293101,18.8662148,66.7004381,32.2599921,53.5069897,19.4503561,15.7623872,69.0458998,7.9650799,34.4790983,8.3609064,1.5701135,1.6562851,16.5957896,79.3955667,77.1827549,79.9569616,24.1209904,31.2803723,18.3733617,65.8759094,32.4246373,52.4761461,19.7792223,15.6894548,68.7614728,7.7605017,35.6775011,9.815428,1.5668681,1.6620096,16.9081301,79.7203637,77.8575982,79.3457022,24.0617325,31.6238203,18.9302165,65.9542173,32.7245976,53.7678273,20.1341063,16.0021638,68.6990526,8.0138846,35.3353461,10.5752872\r\n1384,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5701135,1.6562851,16.5957896,79.3955667,77.1827549,79.9569616,24.1209904,31.2803723,18.3733617,65.8759094,32.4246373,52.4761461,19.7792223,15.6894548,68.7614728,7.7605017,35.6775011,9.815428,1.5668681,1.6620096,16.9081301,79.7203637,77.8575982,79.3457022,24.0617325,31.6238203,18.9302165,65.9542173,32.7245976,53.7678273,20.1341063,16.0021638,68.6990526,8.0138846,35.3353461,10.5752872,1.7646931,1.8432653,16.7079558,80.1175781,79.0371641,80.2286166,24.3606579,32.498984,18.6284584,66.4864956,32.728045,53.1942373,20.3751123,16.2964227,69.3979831,8.5897326,35.8093231,10.7201222\r\n1385,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5668681,1.6620096,16.9081301,79.7203637,77.8575982,79.3457022,24.0617325,31.6238203,18.9302165,65.9542173,32.7245976,53.7678273,20.1341063,16.0021638,68.6990526,8.0138846,35.3353461,10.5752872,1.7646931,1.8432653,16.7079558,80.1175781,79.0371641,80.2286166,24.3606579,32.498984,18.6284584,66.4864956,32.728045,53.1942373,20.3751123,16.2964227,69.3979831,8.5897326,35.8093231,10.7201222,1.5729752,1.6213329,16.5813949,80.1358575,79.606596,80.2371328,23.3522163,30.5857921,18.8299171,67.2579776,32.4313165,53.2182259,20.8865506,16.5815246,68.6708699,8.5750868,36.8123686,10.8837881\r\n1386,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.7646931,1.8432653,16.7079558,80.1175781,79.0371641,80.2286166,24.3606579,32.498984,18.6284584,66.4864956,32.728045,53.1942373,20.3751123,16.2964227,69.3979831,8.5897326,35.8093231,10.7201222,1.5729752,1.6213329,16.5813949,80.1358575,79.606596,80.2371328,23.3522163,30.5857921,18.8299171,67.2579776,32.4313165,53.2182259,20.8865506,16.5815246,68.6708699,8.5750868,36.8123686,10.8837881,1.634046,1.6598147,17.3598728,80.3235558,79.1038867,79.9919766,22.9732029,31.4796504,18.4087397,66.7275644,32.2641376,53.6639283,21.3918486,16.9481909,69.0476021,8.2194174,36.8050506,11.0114103\r\n1387,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5729752,1.6213329,16.5813949,80.1358575,79.606596,80.2371328,23.3522163,30.5857921,18.8299171,67.2579776,32.4313165,53.2182259,20.8865506,16.5815246,68.6708699,8.5750868,36.8123686,10.8837881,1.634046,1.6598147,17.3598728,80.3235558,79.1038867,79.9919766,22.9732029,31.4796504,18.4087397,66.7275644,32.2641376,53.6639283,21.3918486,16.9481909,69.0476021,8.2194174,36.8050506,11.0114103,1.6305258,1.6647202,17.4359698,79.4161845,78.6219096,79.7831234,22.4198887,31.0962905,18.9527042,65.671791,32.6145119,54.4243701,21.5331189,17.4350275,69.3644814,8.1523619,36.3603041,11.0305869\r\n1388,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.634046,1.6598147,17.3598728,80.3235558,79.1038867,79.9919766,22.9732029,31.4796504,18.4087397,66.7275644,32.2641376,53.6639283,21.3918486,16.9481909,69.0476021,8.2194174,36.8050506,11.0114103,1.6305258,1.6647202,17.4359698,79.4161845,78.6219096,79.7831234,22.4198887,31.0962905,18.9527042,65.671791,32.6145119,54.4243701,21.5331189,17.4350275,69.3644814,8.1523619,36.3603041,11.0305869,1.6648984,1.6995052,17.7035704,80.3704287,80.4851571,81.1548967,22.6660368,32.1612609,18.3208582,65.0656519,32.7248957,55.0404498,22.3353399,17.8571468,69.0143393,8.0483107,36.2789303,11.4173138\r\n1389,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.6305258,1.6647202,17.4359698,79.4161845,78.6219096,79.7831234,22.4198887,31.0962905,18.9527042,65.671791,32.6145119,54.4243701,21.5331189,17.4350275,69.3644814,8.1523619,36.3603041,11.0305869,1.6648984,1.6995052,17.7035704,80.3704287,80.4851571,81.1548967,22.6660368,32.1612609,18.3208582,65.0656519,32.7248957,55.0404498,22.3353399,17.8571468,69.0143393,8.0483107,36.2789303,11.4173138,1.4879138,1.5052643,18.0862043,80.8647181,81.104746,80.7793421,22.6794554,31.1911833,18.9056797,65.3857405,32.3827593,54.3956169,23.0070636,18.4834927,69.6721168,8.0306791,34.9446846,10.5891635\r\n1390,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.6648984,1.6995052,17.7035704,80.3704287,80.4851571,81.1548967,22.6660368,32.1612609,18.3208582,65.0656519,32.7248957,55.0404498,22.3353399,17.8571468,69.0143393,8.0483107,36.2789303,11.4173138,1.4879138,1.5052643,18.0862043,80.8647181,81.104746,80.7793421,22.6794554,31.1911833,18.9056797,65.3857405,32.3827593,54.3956169,23.0070636,18.4834927,69.6721168,8.0306791,34.9446846,10.5891635,1.3758884,1.3845213,18.5720557,81.6676238,81.7843787,82.3561274,23.3735555,31.1935945,18.13818,66.7335661,33.7364642,55.2691715,23.3873988,19.0379461,70.5137705,8.1347472,35.693355,10.1097099\r\n1391,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.4879138,1.5052643,18.0862043,80.8647181,81.104746,80.7793421,22.6794554,31.1911833,18.9056797,65.3857405,32.3827593,54.3956169,23.0070636,18.4834927,69.6721168,8.0306791,34.9446846,10.5891635,1.3758884,1.3845213,18.5720557,81.6676238,81.7843787,82.3561274,23.3735555,31.1935945,18.13818,66.7335661,33.7364642,55.2691715,23.3873988,19.0379461,70.5137705,8.1347472,35.693355,10.1097099,1.1125871,1.1607255,18.8802856,81.7184456,81.2276011,81.7938877,22.9349231,30.5907514,18.7566598,67.7016141,33.4415081,56.1788143,23.9862267,19.5329449,70.0633344,7.7361037,34.7242713,9.999992\r\n1392,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.3758884,1.3845213,18.5720557,81.6676238,81.7843787,82.3561274,23.3735555,31.1935945,18.13818,66.7335661,33.7364642,55.2691715,23.3873988,19.0379461,70.5137705,8.1347472,35.693355,10.1097099,1.1125871,1.1607255,18.8802856,81.7184456,81.2276011,81.7938877,22.9349231,30.5907514,18.7566598,67.7016141,33.4415081,56.1788143,23.9862267,19.5329449,70.0633344,7.7361037,34.7242713,9.999992,1.307593,1.3542429,19.1355183,82.0545121,80.4215344,82.1870051,22.9484358,33.3062284,19.5223174,66.5381833,33.1417472,55.0282535,24.0597475,19.8418317,70.3469489,7.6141037,34.9721026,9.8297138\r\n1393,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.1125871,1.1607255,18.8802856,81.7184456,81.2276011,81.7938877,22.9349231,30.5907514,18.7566598,67.7016141,33.4415081,56.1788143,23.9862267,19.5329449,70.0633344,7.7361037,34.7242713,9.999992,1.307593,1.3542429,19.1355183,82.0545121,80.4215344,82.1870051,22.9484358,33.3062284,19.5223174,66.5381833,33.1417472,55.0282535,24.0597475,19.8418317,70.3469489,7.6141037,34.9721026,9.8297138,1.4098523,1.4576182,19.3198767,82.1340272,80.3562111,83.2339155,23.4526297,32.7931584,19.5302652,66.3647878,33.7622723,56.0459327,24.8113372,20.3557266,70.6851925,7.7133268,35.0616224,10.0474684\r\n1394,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.307593,1.3542429,19.1355183,82.0545121,80.4215344,82.1870051,22.9484358,33.3062284,19.5223174,66.5381833,33.1417472,55.0282535,24.0597475,19.8418317,70.3469489,7.6141037,34.9721026,9.8297138,1.4098523,1.4576182,19.3198767,82.1340272,80.3562111,83.2339155,23.4526297,32.7931584,19.5302652,66.3647878,33.7622723,56.0459327,24.8113372,20.3557266,70.6851925,7.7133268,35.0616224,10.0474684,1.3864348,1.4298115,20.4940546,82.5961429,80.1013909,82.9373009,24.1539551,33.4456594,18.8629661,66.9921177,33.94337,55.884383,25.9760697,21.1572317,70.3683085,7.4811397,34.6623286,10.4739901\r\n1395,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.4098523,1.4576182,19.3198767,82.1340272,80.3562111,83.2339155,23.4526297,32.7931584,19.5302652,66.3647878,33.7622723,56.0459327,24.8113372,20.3557266,70.6851925,7.7133268,35.0616224,10.0474684,1.3864348,1.4298115,20.4940546,82.5961429,80.1013909,82.9373009,24.1539551,33.4456594,18.8629661,66.9921177,33.94337,55.884383,25.9760697,21.1572317,70.3683085,7.4811397,34.6623286,10.4739901,1.5050357,1.5680952,20.4745287,81.9474264,78.5283045,80.8428021,23.562666,33.3499817,20.3646343,68.0171088,33.3393309,56.1538193,25.7380153,21.2588969,71.3108711,7.54487,34.5147482,9.9550675\r\n1396,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.3864348,1.4298115,20.4940546,82.5961429,80.1013909,82.9373009,24.1539551,33.4456594,18.8629661,66.9921177,33.94337,55.884383,25.9760697,21.1572317,70.3683085,7.4811397,34.6623286,10.4739901,1.5050357,1.5680952,20.4745287,81.9474264,78.5283045,80.8428021,23.562666,33.3499817,20.3646343,68.0171088,33.3393309,56.1538193,25.7380153,21.2588969,71.3108711,7.54487,34.5147482,9.9550675,1.5470846,1.6246642,20.8256778,81.4818358,78.7018045,81.6849624,23.226154,35.7331387,20.1312533,67.9458843,33.0336995,58.5720395,25.5153078,20.9940266,71.3032672,7.7981466,35.1545992,10.3129225\r\n1397,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5050357,1.5680952,20.4745287,81.9474264,78.5283045,80.8428021,23.562666,33.3499817,20.3646343,68.0171088,33.3393309,56.1538193,25.7380153,21.2588969,71.3108711,7.54487,34.5147482,9.9550675,1.5470846,1.6246642,20.8256778,81.4818358,78.7018045,81.6849624,23.226154,35.7331387,20.1312533,67.9458843,33.0336995,58.5720395,25.5153078,20.9940266,71.3032672,7.7981466,35.1545992,10.3129225,1.5893506,1.6662771,21.0008698,81.3896233,78.4546418,81.4232932,22.5888996,36.8634141,20.7572456,66.8626789,32.0649899,58.6437507,25.652484,21.1265312,71.6706136,7.2902386,33.5507779,10.8391229\r\n1398,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5470846,1.6246642,20.8256778,81.4818358,78.7018045,81.6849624,23.226154,35.7331387,20.1312533,67.9458843,33.0336995,58.5720395,25.5153078,20.9940266,71.3032672,7.7981466,35.1545992,10.3129225,1.5893506,1.6662771,21.0008698,81.3896233,78.4546418,81.4232932,22.5888996,36.8634141,20.7572456,66.8626789,32.0649899,58.6437507,25.652484,21.1265312,71.6706136,7.2902386,33.5507779,10.8391229,1.7138707,1.7698099,21.9122327,81.7504733,78.8614696,81.783131,22.3187321,36.8686574,21.0210575,65.8563642,31.894064,57.7339194,26.2890114,21.6584488,72.7256809,7.1042694,34.0783911,11.6978219\r\n1399,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.5893506,1.6662771,21.0008698,81.3896233,78.4546418,81.4232932,22.5888996,36.8634141,20.7572456,66.8626789,32.0649899,58.6437507,25.652484,21.1265312,71.6706136,7.2902386,33.5507779,10.8391229,1.7138707,1.7698099,21.9122327,81.7504733,78.8614696,81.783131,22.3187321,36.8686574,21.0210575,65.8563642,31.894064,57.7339194,26.2890114,21.6584488,72.7256809,7.1042694,34.0783911,11.6978219,1.7125067,1.7526422,22.745291,80.4449403,78.1155251,81.9475448,22.0780826,36.6702607,20.1709591,67.2539971,32.0427585,58.0815058,26.7938842,22.0971899,72.6917439,6.898273,33.5294114,11.7236637\r\n1400,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.7138707,1.7698099,21.9122327,81.7504733,78.8614696,81.783131,22.3187321,36.8686574,21.0210575,65.8563642,31.894064,57.7339194,26.2890114,21.6584488,72.7256809,7.1042694,34.0783911,11.6978219,1.7125067,1.7526422,22.745291,80.4449403,78.1155251,81.9475448,22.0780826,36.6702607,20.1709591,67.2539971,32.0427585,58.0815058,26.7938842,22.0971899,72.6917439,6.898273,33.5294114,11.7236637,1.6309799,1.6764901,23.2158749,80.5145402,78.0426774,81.9944587,21.1567081,37.9599189,19.9735498,68.1922255,31.7065388,57.570353,27.0703913,22.3692504,73.3862665,6.8948758,33.1683281,11.7753268\r\n1401,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.7125067,1.7526422,22.745291,80.4449403,78.1155251,81.9475448,22.0780826,36.6702607,20.1709591,67.2539971,32.0427585,58.0815058,26.7938842,22.0971899,72.6917439,6.898273,33.5294114,11.7236637,1.6309799,1.6764901,23.2158749,80.5145402,78.0426774,81.9944587,21.1567081,37.9599189,19.9735498,68.1922255,31.7065388,57.570353,27.0703913,22.3692504,73.3862665,6.8948758,33.1683281,11.7753268,1.9001396,1.962947,23.667842,79.6080824,77.9434104,81.3599754,20.0630074,39.4299614,20.8417515,69.0277463,31.4772566,57.6697877,27.2120799,22.524074,74.2159689,6.8904472,33.2788068,11.6532453\r\n1402,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.6309799,1.6764901,23.2158749,80.5145402,78.0426774,81.9944587,21.1567081,37.9599189,19.9735498,68.1922255,31.7065388,57.570353,27.0703913,22.3692504,73.3862665,6.8948758,33.1683281,11.7753268,1.9001396,1.962947,23.667842,79.6080824,77.9434104,81.3599754,20.0630074,39.4299614,20.8417515,69.0277463,31.4772566,57.6697877,27.2120799,22.524074,74.2159689,6.8904472,33.2788068,11.6532453,1.874304,1.904334,24.5542126,80.1735821,78.2156149,82.0673947,20.0831016,39.7165235,20.5513525,68.9469253,30.7317579,58.6243919,28.1592419,23.1946867,74.5548551,6.2416165,33.5932309,12.5283234\r\n1403,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.9001396,1.962947,23.667842,79.6080824,77.9434104,81.3599754,20.0630074,39.4299614,20.8417515,69.0277463,31.4772566,57.6697877,27.2120799,22.524074,74.2159689,6.8904472,33.2788068,11.6532453,1.874304,1.904334,24.5542126,80.1735821,78.2156149,82.0673947,20.0831016,39.7165235,20.5513525,68.9469253,30.7317579,58.6243919,28.1592419,23.1946867,74.5548551,6.2416165,33.5932309,12.5283234,1.860262,1.8751778,25.7577328,81.3860118,77.5369363,82.5463689,20.1613249,40.0206742,21.7135932,67.4842924,29.7174055,57.647585,29.7100832,24.5249011,75.6679422,5.6995509,32.4766264,12.4043512\r\n1404,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.874304,1.904334,24.5542126,80.1735821,78.2156149,82.0673947,20.0831016,39.7165235,20.5513525,68.9469253,30.7317579,58.6243919,28.1592419,23.1946867,74.5548551,6.2416165,33.5932309,12.5283234,1.860262,1.8751778,25.7577328,81.3860118,77.5369363,82.5463689,20.1613249,40.0206742,21.7135932,67.4842924,29.7174055,57.647585,29.7100832,24.5249011,75.6679422,5.6995509,32.4766264,12.4043512,2.0603609,2.0776339,26.7348574,81.5919109,77.5205603,81.7898052,20.0626557,40.0614682,21.7888981,65.9267022,28.1849275,57.9207882,31.2005807,25.5449904,75.9470583,5.7267859,33.1059026,11.2968534\r\n1405,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,1.860262,1.8751778,25.7577328,81.3860118,77.5369363,82.5463689,20.1613249,40.0206742,21.7135932,67.4842924,29.7174055,57.647585,29.7100832,24.5249011,75.6679422,5.6995509,32.4766264,12.4043512,2.0603609,2.0776339,26.7348574,81.5919109,77.5205603,81.7898052,20.0626557,40.0614682,21.7888981,65.9267022,28.1849275,57.9207882,31.2005807,25.5449904,75.9470583,5.7267859,33.1059026,11.2968534,2.2148479,2.2496063,28.7317804,81.4679223,76.4868461,81.6496692,19.6929031,42.5362695,21.624322,65.5005315,27.6886725,59.443504,32.8318461,27.0316159,76.1653584,5.5379095,33.1328592,11.0009391\r\n1406,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,2.0603609,2.0776339,26.7348574,81.5919109,77.5205603,81.7898052,20.0626557,40.0614682,21.7888981,65.9267022,28.1849275,57.9207882,31.2005807,25.5449904,75.9470583,5.7267859,33.1059026,11.2968534,2.2148479,2.2496063,28.7317804,81.4679223,76.4868461,81.6496692,19.6929031,42.5362695,21.624322,65.5005315,27.6886725,59.443504,32.8318461,27.0316159,76.1653584,5.5379095,33.1328592,11.0009391,2.5619758,2.6292994,30.4716767,81.2761508,76.8759757,81.2059316,19.8120826,42.5257848,22.0193032,64.0814891,27.1122752,61.1515831,34.7832123,28.9632863,77.0417139,5.6361786,33.3434596,11.9699594\r\n1407,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.0,0.0,1.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,0.0,0.0,0.0,0.0,0.0,2.2148479,2.2496063,28.7317804,81.4679223,76.4868461,81.6496692,19.6929031,42.5362695,21.624322,65.5005315,27.6886725,59.443504,32.8318461,27.0316159,76.1653584,5.5379095,33.1328592,11.0009391,2.5619758,2.6292994,30.4716767,81.2761508,76.8759757,81.2059316,19.8120826,42.5257848,22.0193032,64.0814891,27.1122752,61.1515831,34.7832123,28.9632863,77.0417139,5.6361786,33.3434596,11.9699594,2.9667774,3.0281372,32.2957557,80.2833947,76.3841604,80.8369309,19.6809686,42.2706033,22.4005886,62.6999141,27.1067392,62.3653062,36.6538822,30.5915002,77.2946868,5.4706046,34.6725444,12.1100015\r\n1408,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3490703,1.3918678,16.9465693,69.7967533,72.3090291,59.1067897,23.2101091,7.6481616,20.0774349,67.4206903,36.0996126,42.703052,21.469259,17.056886,49.3329821,3.8525639,31.6596217,12.5956629,1.4093593,1.4535399,17.5762199,69.6729107,72.1661073,59.9021943,23.1763324,7.5749088,19.764199,67.326787,36.1754887,42.3842021,21.8618563,17.3040081,48.9636759,3.9046347,31.5003549,12.7535703,1.4162428,1.4549624,17.2525521,69.4291563,71.9939325,60.1154377,23.4760305,8.8209921,19.4388599,67.033675,35.9867286,42.5267477,21.7645823,17.1809562,48.5435062,3.9000629,31.9266471,11.4719168\r\n1409,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.4093593,1.4535399,17.5762199,69.6729107,72.1661073,59.9021943,23.1763324,7.5749088,19.764199,67.326787,36.1754887,42.3842021,21.8618563,17.3040081,48.9636759,3.9046347,31.5003549,12.7535703,1.4162428,1.4549624,17.2525521,69.4291563,71.9939325,60.1154377,23.4760305,8.8209921,19.4388599,67.033675,35.9867286,42.5267477,21.7645823,17.1809562,48.5435062,3.9000629,31.9266471,11.4719168,1.4704782,1.5124306,17.5487235,69.3333454,72.2098237,61.5085957,23.2689451,8.9860469,19.2620031,67.4374206,35.8360376,42.7708457,22.4231506,17.8068412,49.1639837,3.785889,31.7951031,11.8569961\r\n1410,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.4162428,1.4549624,17.2525521,69.4291563,71.9939325,60.1154377,23.4760305,8.8209921,19.4388599,67.033675,35.9867286,42.5267477,21.7645823,17.1809562,48.5435062,3.9000629,31.9266471,11.4719168,1.4704782,1.5124306,17.5487235,69.3333454,72.2098237,61.5085957,23.2689451,8.9860469,19.2620031,67.4374206,35.8360376,42.7708457,22.4231506,17.8068412,49.1639837,3.785889,31.7951031,11.8569961,1.5019733,1.5396494,17.7604382,69.417944,72.0675759,60.8483599,23.736726,9.1051218,19.3155493,67.1747502,35.9296625,42.7273537,22.683325,18.0649825,49.0959163,4.0438231,31.0859897,12.5459257\r\n1411,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.4704782,1.5124306,17.5487235,69.3333454,72.2098237,61.5085957,23.2689451,8.9860469,19.2620031,67.4374206,35.8360376,42.7708457,22.4231506,17.8068412,49.1639837,3.785889,31.7951031,11.8569961,1.5019733,1.5396494,17.7604382,69.417944,72.0675759,60.8483599,23.736726,9.1051218,19.3155493,67.1747502,35.9296625,42.7273537,22.683325,18.0649825,49.0959163,4.0438231,31.0859897,12.5459257,1.6409804,1.6590449,18.1583529,69.4747734,72.2891182,60.8082583,23.5314318,9.7713484,19.0754259,66.7631353,36.3194265,42.7637546,22.9184561,18.3689554,48.9216351,4.1300136,31.5482852,12.9847478\r\n1412,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.5019733,1.5396494,17.7604382,69.417944,72.0675759,60.8483599,23.736726,9.1051218,19.3155493,67.1747502,35.9296625,42.7273537,22.683325,18.0649825,49.0959163,4.0438231,31.0859897,12.5459257,1.6409804,1.6590449,18.1583529,69.4747734,72.2891182,60.8082583,23.5314318,9.7713484,19.0754259,66.7631353,36.3194265,42.7637546,22.9184561,18.3689554,48.9216351,4.1300136,31.5482852,12.9847478,1.5926892,1.6115038,18.341653,70.2971067,73.0680611,61.0321131,23.8646545,10.6252342,18.2042627,66.5723264,37.1806061,43.0163475,22.8616342,18.6076014,48.6710307,3.9769045,31.7803388,13.5479995\r\n1413,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6409804,1.6590449,18.1583529,69.4747734,72.2891182,60.8082583,23.5314318,9.7713484,19.0754259,66.7631353,36.3194265,42.7637546,22.9184561,18.3689554,48.9216351,4.1300136,31.5482852,12.9847478,1.5926892,1.6115038,18.341653,70.2971067,73.0680611,61.0321131,23.8646545,10.6252342,18.2042627,66.5723264,37.1806061,43.0163475,22.8616342,18.6076014,48.6710307,3.9769045,31.7803388,13.5479995,1.7119598,1.7184682,18.7692052,70.3972579,72.2276433,61.1331129,24.6980224,10.3689761,18.0454407,67.1576451,37.4838963,42.2310416,23.082129,18.7728512,48.6532157,4.0925835,32.1111687,14.2070329\r\n1414,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.5926892,1.6115038,18.341653,70.2971067,73.0680611,61.0321131,23.8646545,10.6252342,18.2042627,66.5723264,37.1806061,43.0163475,22.8616342,18.6076014,48.6710307,3.9769045,31.7803388,13.5479995,1.7119598,1.7184682,18.7692052,70.3972579,72.2276433,61.1331129,24.6980224,10.3689761,18.0454407,67.1576451,37.4838963,42.2310416,23.082129,18.7728512,48.6532157,4.0925835,32.1111687,14.2070329,1.6309384,1.6473811,18.666201,69.3959339,71.6046914,60.9162869,24.9271915,10.4760896,17.8238657,66.6579221,37.402323,41.8770465,23.2535771,19.0214559,48.2113266,3.9266652,32.1418021,14.6323075\r\n1415,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7119598,1.7184682,18.7692052,70.3972579,72.2276433,61.1331129,24.6980224,10.3689761,18.0454407,67.1576451,37.4838963,42.2310416,23.082129,18.7728512,48.6532157,4.0925835,32.1111687,14.2070329,1.6309384,1.6473811,18.666201,69.3959339,71.6046914,60.9162869,24.9271915,10.4760896,17.8238657,66.6579221,37.402323,41.8770465,23.2535771,19.0214559,48.2113266,3.9266652,32.1418021,14.6323075,1.6782933,1.7110875,19.3266227,69.3698714,71.3717829,60.790671,25.3500142,9.6922031,17.7737463,67.2979406,38.333717,41.7725372,23.8761277,19.4848171,48.1532535,3.8196224,32.2495593,15.5645722\r\n1416,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6309384,1.6473811,18.666201,69.3959339,71.6046914,60.9162869,24.9271915,10.4760896,17.8238657,66.6579221,37.402323,41.8770465,23.2535771,19.0214559,48.2113266,3.9266652,32.1418021,14.6323075,1.6782933,1.7110875,19.3266227,69.3698714,71.3717829,60.790671,25.3500142,9.6922031,17.7737463,67.2979406,38.333717,41.7725372,23.8761277,19.4848171,48.1532535,3.8196224,32.2495593,15.5645722,1.6443432,1.6560897,19.331551,70.3628368,72.3564418,60.8232491,25.4694376,9.71141,18.2497039,66.5556153,38.3060355,41.7388669,23.6566755,19.4595807,48.2064679,3.8833678,32.2326204,15.6445925\r\n1417,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6782933,1.7110875,19.3266227,69.3698714,71.3717829,60.790671,25.3500142,9.6922031,17.7737463,67.2979406,38.333717,41.7725372,23.8761277,19.4848171,48.1532535,3.8196224,32.2495593,15.5645722,1.6443432,1.6560897,19.331551,70.3628368,72.3564418,60.8232491,25.4694376,9.71141,18.2497039,66.5556153,38.3060355,41.7388669,23.6566755,19.4595807,48.2064679,3.8833678,32.2326204,15.6445925,1.6062458,1.6381654,19.2324494,70.490836,72.4912718,60.5138708,25.2699432,9.8750379,17.9738349,67.2349737,37.8692603,42.3224193,23.5561864,19.1254885,48.325922,3.6927517,33.0665498,16.4678658\r\n1418,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6443432,1.6560897,19.331551,70.3628368,72.3564418,60.8232491,25.4694376,9.71141,18.2497039,66.5556153,38.3060355,41.7388669,23.6566755,19.4595807,48.2064679,3.8833678,32.2326204,15.6445925,1.6062458,1.6381654,19.2324494,70.490836,72.4912718,60.5138708,25.2699432,9.8750379,17.9738349,67.2349737,37.8692603,42.3224193,23.5561864,19.1254885,48.325922,3.6927517,33.0665498,16.4678658,1.5570846,1.6121404,19.1215719,69.7339506,72.4232169,59.992214,26.3191128,9.780559,17.8601702,67.4377008,38.1809005,41.9745701,23.6505117,19.0080355,48.3964187,3.6812084,33.0221745,18.0590409\r\n1419,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6062458,1.6381654,19.2324494,70.490836,72.4912718,60.5138708,25.2699432,9.8750379,17.9738349,67.2349737,37.8692603,42.3224193,23.5561864,19.1254885,48.325922,3.6927517,33.0665498,16.4678658,1.5570846,1.6121404,19.1215719,69.7339506,72.4232169,59.992214,26.3191128,9.780559,17.8601702,67.4377008,38.1809005,41.9745701,23.6505117,19.0080355,48.3964187,3.6812084,33.0221745,18.0590409,1.5601857,1.6187746,19.2652866,70.4134156,72.4015667,60.1711266,26.3105276,9.1171375,19.1370877,67.9946636,37.3581169,42.7551009,24.054104,19.1956934,48.6472466,4.033521,32.9755625,17.8009886\r\n1420,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.5570846,1.6121404,19.1215719,69.7339506,72.4232169,59.992214,26.3191128,9.780559,17.8601702,67.4377008,38.1809005,41.9745701,23.6505117,19.0080355,48.3964187,3.6812084,33.0221745,18.0590409,1.5601857,1.6187746,19.2652866,70.4134156,72.4015667,60.1711266,26.3105276,9.1171375,19.1370877,67.9946636,37.3581169,42.7551009,24.054104,19.1956934,48.6472466,4.033521,32.9755625,17.8009886,1.4973184,1.5573584,18.471472,70.0991187,72.8133655,60.3903938,26.9623268,9.0544878,18.3439988,67.8030652,37.583677,42.3959556,23.4581092,18.5517746,48.4079278,4.1450894,33.1167379,17.7697759\r\n1421,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.5601857,1.6187746,19.2652866,70.4134156,72.4015667,60.1711266,26.3105276,9.1171375,19.1370877,67.9946636,37.3581169,42.7551009,24.054104,19.1956934,48.6472466,4.033521,32.9755625,17.8009886,1.4973184,1.5573584,18.471472,70.0991187,72.8133655,60.3903938,26.9623268,9.0544878,18.3439988,67.8030652,37.583677,42.3959556,23.4581092,18.5517746,48.4079278,4.1450894,33.1167379,17.7697759,1.6591511,1.7051047,19.0473954,70.0485722,72.9419994,59.7757349,27.5823945,8.876488,18.1989914,68.7207131,37.8194243,42.6352178,23.8224196,18.9817627,48.716209,4.2664161,32.791494,17.9542291\r\n1422,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.4973184,1.5573584,18.471472,70.0991187,72.8133655,60.3903938,26.9623268,9.0544878,18.3439988,67.8030652,37.583677,42.3959556,23.4581092,18.5517746,48.4079278,4.1450894,33.1167379,17.7697759,1.6591511,1.7051047,19.0473954,70.0485722,72.9419994,59.7757349,27.5823945,8.876488,18.1989914,68.7207131,37.8194243,42.6352178,23.8224196,18.9817627,48.716209,4.2664161,32.791494,17.9542291,1.6312643,1.6702811,18.7591496,70.5995237,73.3958852,60.4081472,27.1099364,8.3108925,18.3809297,68.5719351,37.7453969,42.7686811,23.423613,18.565384,48.9216316,4.3456902,32.1835914,19.0088898\r\n1423,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6591511,1.7051047,19.0473954,70.0485722,72.9419994,59.7757349,27.5823945,8.876488,18.1989914,68.7207131,37.8194243,42.6352178,23.8224196,18.9817627,48.716209,4.2664161,32.791494,17.9542291,1.6312643,1.6702811,18.7591496,70.5995237,73.3958852,60.4081472,27.1099364,8.3108925,18.3809297,68.5719351,37.7453969,42.7686811,23.423613,18.565384,48.9216316,4.3456902,32.1835914,19.0088898,1.6463103,1.6859497,18.846204,70.2216041,73.1559391,59.7300221,27.2746853,8.055882,17.9254144,68.7576921,37.542178,43.1305179,23.4623533,18.5380304,49.0378708,4.2279714,32.0826877,19.5684582\r\n1424,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6312643,1.6702811,18.7591496,70.5995237,73.3958852,60.4081472,27.1099364,8.3108925,18.3809297,68.5719351,37.7453969,42.7686811,23.423613,18.565384,48.9216316,4.3456902,32.1835914,19.0088898,1.6463103,1.6859497,18.846204,70.2216041,73.1559391,59.7300221,27.2746853,8.055882,17.9254144,68.7576921,37.542178,43.1305179,23.4623533,18.5380304,49.0378708,4.2279714,32.0826877,19.5684582,1.6326027,1.6630538,19.2979158,71.1947535,74.453737,61.0397661,27.3554504,8.1040898,18.1123831,67.9586393,37.502434,43.1459589,23.8761952,19.1714236,49.4519626,4.1861807,32.3719424,18.2422533\r\n1425,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6463103,1.6859497,18.846204,70.2216041,73.1559391,59.7300221,27.2746853,8.055882,17.9254144,68.7576921,37.542178,43.1305179,23.4623533,18.5380304,49.0378708,4.2279714,32.0826877,19.5684582,1.6326027,1.6630538,19.2979158,71.1947535,74.453737,61.0397661,27.3554504,8.1040898,18.1123831,67.9586393,37.502434,43.1459589,23.8761952,19.1714236,49.4519626,4.1861807,32.3719424,18.2422533,1.4990902,1.5468194,18.9259465,71.8249445,74.0151301,61.1833041,26.8531671,7.864414,18.1521295,68.5805945,37.4607096,43.2319004,23.527768,19.134412,49.4308083,4.0103848,32.2883621,16.7391377\r\n1426,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6326027,1.6630538,19.2979158,71.1947535,74.453737,61.0397661,27.3554504,8.1040898,18.1123831,67.9586393,37.502434,43.1459589,23.8761952,19.1714236,49.4519626,4.1861807,32.3719424,18.2422533,1.4990902,1.5468194,18.9259465,71.8249445,74.0151301,61.1833041,26.8531671,7.864414,18.1521295,68.5805945,37.4607096,43.2319004,23.527768,19.134412,49.4308083,4.0103848,32.2883621,16.7391377,1.4976324,1.5527444,18.937453,71.4442457,73.7192366,61.3685357,26.8001817,8.6454096,18.0405871,67.6356982,37.263617,43.0811985,23.3405392,19.0124825,49.1811164,3.704037,32.464414,16.8750047\r\n1427,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.4990902,1.5468194,18.9259465,71.8249445,74.0151301,61.1833041,26.8531671,7.864414,18.1521295,68.5805945,37.4607096,43.2319004,23.527768,19.134412,49.4308083,4.0103848,32.2883621,16.7391377,1.4976324,1.5527444,18.937453,71.4442457,73.7192366,61.3685357,26.8001817,8.6454096,18.0405871,67.6356982,37.263617,43.0811985,23.3405392,19.0124825,49.1811164,3.704037,32.464414,16.8750047,1.5069414,1.5433171,19.7430121,71.9453019,73.5340628,61.142751,25.8434856,9.2972435,19.2937976,67.5741525,36.7935588,44.4725364,23.8714125,19.6880515,49.5677832,3.5765596,32.1576592,17.1936782\r\n1428,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.4976324,1.5527444,18.937453,71.4442457,73.7192366,61.3685357,26.8001817,8.6454096,18.0405871,67.6356982,37.263617,43.0811985,23.3405392,19.0124825,49.1811164,3.704037,32.464414,16.8750047,1.5069414,1.5433171,19.7430121,71.9453019,73.5340628,61.142751,25.8434856,9.2972435,19.2937976,67.5741525,36.7935588,44.4725364,23.8714125,19.6880515,49.5677832,3.5765596,32.1576592,17.1936782,1.4847896,1.5185102,19.6215453,73.3727035,73.9014011,61.7436302,25.6240048,9.5519127,19.3451811,67.6340511,37.2247559,44.0387663,23.9673049,19.6158212,49.4559395,3.5938923,32.8179587,17.4967018\r\n1429,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.5069414,1.5433171,19.7430121,71.9453019,73.5340628,61.142751,25.8434856,9.2972435,19.2937976,67.5741525,36.7935588,44.4725364,23.8714125,19.6880515,49.5677832,3.5765596,32.1576592,17.1936782,1.4847896,1.5185102,19.6215453,73.3727035,73.9014011,61.7436302,25.6240048,9.5519127,19.3451811,67.6340511,37.2247559,44.0387663,23.9673049,19.6158212,49.4559395,3.5938923,32.8179587,17.4967018,1.3646672,1.3934695,20.1852133,73.654277,73.8102357,61.4567591,26.5767896,10.1089512,19.3650931,67.9226038,36.8333516,44.5438124,24.435987,20.1698301,49.8694751,3.5531492,33.1132602,16.1431845\r\n1430,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.4847896,1.5185102,19.6215453,73.3727035,73.9014011,61.7436302,25.6240048,9.5519127,19.3451811,67.6340511,37.2247559,44.0387663,23.9673049,19.6158212,49.4559395,3.5938923,32.8179587,17.4967018,1.3646672,1.3934695,20.1852133,73.654277,73.8102357,61.4567591,26.5767896,10.1089512,19.3650931,67.9226038,36.8333516,44.5438124,24.435987,20.1698301,49.8694751,3.5531492,33.1132602,16.1431845,1.3150002,1.3503472,20.1815197,73.1935881,73.1499526,61.1516003,27.1583725,10.3985551,19.9941784,68.2552151,37.2112663,43.9864093,24.423549,20.2085309,48.9783925,3.6394819,33.3507585,16.0263803\r\n1431,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3646672,1.3934695,20.1852133,73.654277,73.8102357,61.4567591,26.5767896,10.1089512,19.3650931,67.9226038,36.8333516,44.5438124,24.435987,20.1698301,49.8694751,3.5531492,33.1132602,16.1431845,1.3150002,1.3503472,20.1815197,73.1935881,73.1499526,61.1516003,27.1583725,10.3985551,19.9941784,68.2552151,37.2112663,43.9864093,24.423549,20.2085309,48.9783925,3.6394819,33.3507585,16.0263803,1.2900239,1.3331486,19.3833651,72.9530401,71.9844286,60.4267828,26.7153797,10.44148,19.8456095,68.6193392,37.1145077,43.662025,24.0010323,19.6591146,48.8683041,3.652841,32.1615218,16.590088\r\n1432,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3150002,1.3503472,20.1815197,73.1935881,73.1499526,61.1516003,27.1583725,10.3985551,19.9941784,68.2552151,37.2112663,43.9864093,24.423549,20.2085309,48.9783925,3.6394819,33.3507585,16.0263803,1.2900239,1.3331486,19.3833651,72.9530401,71.9844286,60.4267828,26.7153797,10.44148,19.8456095,68.6193392,37.1145077,43.662025,24.0010323,19.6591146,48.8683041,3.652841,32.1615218,16.590088,1.3761414,1.3923176,19.3547364,72.2580687,72.1874936,60.7273892,26.8943889,10.3305123,19.9478269,68.6358587,37.1834719,43.0313209,24.0026782,19.4389954,48.9343224,3.7566444,31.7124802,17.3119141\r\n1433,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.2900239,1.3331486,19.3833651,72.9530401,71.9844286,60.4267828,26.7153797,10.44148,19.8456095,68.6193392,37.1145077,43.662025,24.0010323,19.6591146,48.8683041,3.652841,32.1615218,16.590088,1.3761414,1.3923176,19.3547364,72.2580687,72.1874936,60.7273892,26.8943889,10.3305123,19.9478269,68.6358587,37.1834719,43.0313209,24.0026782,19.4389954,48.9343224,3.7566444,31.7124802,17.3119141,1.4034733,1.4261317,19.4514403,71.669794,71.8979077,60.4466141,26.722927,9.7313851,19.2903979,68.7915353,36.8633209,42.5526405,24.1607982,19.5567728,49.1432438,3.7423281,31.4694606,17.5986558\r\n1434,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3761414,1.3923176,19.3547364,72.2580687,72.1874936,60.7273892,26.8943889,10.3305123,19.9478269,68.6358587,37.1834719,43.0313209,24.0026782,19.4389954,48.9343224,3.7566444,31.7124802,17.3119141,1.4034733,1.4261317,19.4514403,71.669794,71.8979077,60.4466141,26.722927,9.7313851,19.2903979,68.7915353,36.8633209,42.5526405,24.1607982,19.5567728,49.1432438,3.7423281,31.4694606,17.5986558,1.3379803,1.3604664,19.725087,70.3689764,71.4324175,59.1333399,27.1004138,9.9096677,18.8883563,69.0267068,36.8579194,41.1845912,24.3808595,19.7087734,49.0776108,3.8644825,32.3652787,17.6633268\r\n1435,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.4034733,1.4261317,19.4514403,71.669794,71.8979077,60.4466141,26.722927,9.7313851,19.2903979,68.7915353,36.8633209,42.5526405,24.1607982,19.5567728,49.1432438,3.7423281,31.4694606,17.5986558,1.3379803,1.3604664,19.725087,70.3689764,71.4324175,59.1333399,27.1004138,9.9096677,18.8883563,69.0267068,36.8579194,41.1845912,24.3808595,19.7087734,49.0776108,3.8644825,32.3652787,17.6633268,1.3454522,1.3770567,19.4561636,69.4771879,71.2557039,58.3195563,27.7742591,9.7414088,18.4941331,67.9119967,36.2281029,40.7946643,24.084591,19.4870747,49.0028384,3.8080776,32.0452768,17.1536673\r\n1436,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3379803,1.3604664,19.725087,70.3689764,71.4324175,59.1333399,27.1004138,9.9096677,18.8883563,69.0267068,36.8579194,41.1845912,24.3808595,19.7087734,49.0776108,3.8644825,32.3652787,17.6633268,1.3454522,1.3770567,19.4561636,69.4771879,71.2557039,58.3195563,27.7742591,9.7414088,18.4941331,67.9119967,36.2281029,40.7946643,24.084591,19.4870747,49.0028384,3.8080776,32.0452768,17.1536673,1.3361089,1.3679114,18.7445294,68.6434583,70.9177898,58.6658268,27.7007495,9.4662316,18.1296485,67.4242508,36.5609496,39.8275014,23.5560853,19.0425156,48.4901031,3.9375005,32.2283286,17.5251946\r\n1437,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3454522,1.3770567,19.4561636,69.4771879,71.2557039,58.3195563,27.7742591,9.7414088,18.4941331,67.9119967,36.2281029,40.7946643,24.084591,19.4870747,49.0028384,3.8080776,32.0452768,17.1536673,1.3361089,1.3679114,18.7445294,68.6434583,70.9177898,58.6658268,27.7007495,9.4662316,18.1296485,67.4242508,36.5609496,39.8275014,23.5560853,19.0425156,48.4901031,3.9375005,32.2283286,17.5251946,1.3566217,1.3853523,18.6693736,68.2086166,70.7457718,58.0950802,27.7157347,9.0952119,17.3511506,67.1079774,36.2975303,39.8910426,23.5404599,18.9924721,48.5267549,3.9857365,32.4123329,18.8646826\r\n1438,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3361089,1.3679114,18.7445294,68.6434583,70.9177898,58.6658268,27.7007495,9.4662316,18.1296485,67.4242508,36.5609496,39.8275014,23.5560853,19.0425156,48.4901031,3.9375005,32.2283286,17.5251946,1.3566217,1.3853523,18.6693736,68.2086166,70.7457718,58.0950802,27.7157347,9.0952119,17.3511506,67.1079774,36.2975303,39.8910426,23.5404599,18.9924721,48.5267549,3.9857365,32.4123329,18.8646826,1.3028138,1.3159112,19.5046483,67.4524208,70.2936546,58.0513043,28.3654934,8.9003432,17.4436661,67.1179181,36.5350331,39.5235254,24.1419756,19.6785141,48.2448766,4.0899314,33.0958581,19.2992989\r\n1439,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3566217,1.3853523,18.6693736,68.2086166,70.7457718,58.0950802,27.7157347,9.0952119,17.3511506,67.1079774,36.2975303,39.8910426,23.5404599,18.9924721,48.5267549,3.9857365,32.4123329,18.8646826,1.3028138,1.3159112,19.5046483,67.4524208,70.2936546,58.0513043,28.3654934,8.9003432,17.4436661,67.1179181,36.5350331,39.5235254,24.1419756,19.6785141,48.2448766,4.0899314,33.0958581,19.2992989,1.2753468,1.2851682,20.2488615,67.8976682,70.393824,58.6621796,27.5484439,9.6056394,18.0447123,66.7833651,35.8099315,40.1288053,24.7890973,20.4271633,48.529448,3.912232,33.9645567,18.4023712\r\n1440,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3028138,1.3159112,19.5046483,67.4524208,70.2936546,58.0513043,28.3654934,8.9003432,17.4436661,67.1179181,36.5350331,39.5235254,24.1419756,19.6785141,48.2448766,4.0899314,33.0958581,19.2992989,1.2753468,1.2851682,20.2488615,67.8976682,70.393824,58.6621796,27.5484439,9.6056394,18.0447123,66.7833651,35.8099315,40.1288053,24.7890973,20.4271633,48.529448,3.912232,33.9645567,18.4023712,1.3700562,1.3908076,20.2220071,67.935131,70.6670985,59.149669,27.3673103,9.4602701,18.130131,66.4027201,36.1755706,39.6229595,24.9775706,20.5022062,48.2387757,3.7994563,34.0544021,18.390124\r\n1441,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.2753468,1.2851682,20.2488615,67.8976682,70.393824,58.6621796,27.5484439,9.6056394,18.0447123,66.7833651,35.8099315,40.1288053,24.7890973,20.4271633,48.529448,3.912232,33.9645567,18.4023712,1.3700562,1.3908076,20.2220071,67.935131,70.6670985,59.149669,27.3673103,9.4602701,18.130131,66.4027201,36.1755706,39.6229595,24.9775706,20.5022062,48.2387757,3.7994563,34.0544021,18.390124,1.3734102,1.4305671,20.2739161,69.0586254,71.0833403,59.8540485,26.5472286,9.0163954,18.2379617,66.0302427,35.8945267,39.751932,25.0592362,20.5124658,48.1984007,3.5779149,33.1503993,18.9836326\r\n1442,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3700562,1.3908076,20.2220071,67.935131,70.6670985,59.149669,27.3673103,9.4602701,18.130131,66.4027201,36.1755706,39.6229595,24.9775706,20.5022062,48.2387757,3.7994563,34.0544021,18.390124,1.3734102,1.4305671,20.2739161,69.0586254,71.0833403,59.8540485,26.5472286,9.0163954,18.2379617,66.0302427,35.8945267,39.751932,25.0592362,20.5124658,48.1984007,3.5779149,33.1503993,18.9836326,1.429376,1.476341,20.871716,69.4491218,71.5006951,60.1993944,25.7875985,8.9641417,19.2278683,66.0331063,36.4138392,40.8964046,25.4502396,20.9168889,48.2431714,3.5412105,33.4011362,19.0290194\r\n1443,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.3734102,1.4305671,20.2739161,69.0586254,71.0833403,59.8540485,26.5472286,9.0163954,18.2379617,66.0302427,35.8945267,39.751932,25.0592362,20.5124658,48.1984007,3.5779149,33.1503993,18.9836326,1.429376,1.476341,20.871716,69.4491218,71.5006951,60.1993944,25.7875985,8.9641417,19.2278683,66.0331063,36.4138392,40.8964046,25.4502396,20.9168889,48.2431714,3.5412105,33.4011362,19.0290194,1.6592295,1.7054132,21.5625602,69.7111067,71.6154335,60.3129586,25.1811307,9.3998488,20.0252964,66.2856601,36.3756163,41.5621234,25.9961092,21.3131713,48.928636,3.5151487,33.4106377,19.5336805\r\n1444,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.429376,1.476341,20.871716,69.4491218,71.5006951,60.1993944,25.7875985,8.9641417,19.2278683,66.0331063,36.4138392,40.8964046,25.4502396,20.9168889,48.2431714,3.5412105,33.4011362,19.0290194,1.6592295,1.7054132,21.5625602,69.7111067,71.6154335,60.3129586,25.1811307,9.3998488,20.0252964,66.2856601,36.3756163,41.5621234,25.9961092,21.3131713,48.928636,3.5151487,33.4106377,19.5336805,1.7093903,1.7463749,21.7495687,70.2369013,71.8022084,61.0697653,24.1365617,9.5613907,20.7872864,66.1230991,36.2039978,41.8975491,26.1463441,21.3004066,49.1967845,3.4050455,33.4097352,19.4219025\r\n1445,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.6592295,1.7054132,21.5625602,69.7111067,71.6154335,60.3129586,25.1811307,9.3998488,20.0252964,66.2856601,36.3756163,41.5621234,25.9961092,21.3131713,48.928636,3.5151487,33.4106377,19.5336805,1.7093903,1.7463749,21.7495687,70.2369013,71.8022084,61.0697653,24.1365617,9.5613907,20.7872864,66.1230991,36.2039978,41.8975491,26.1463441,21.3004066,49.1967845,3.4050455,33.4097352,19.4219025,1.7974716,1.8563181,22.0217143,70.3653837,72.3218394,61.5608825,23.8078624,9.5778037,20.724899,65.9537117,36.2496128,41.6591127,26.7181526,21.719586,49.4707544,3.3352729,33.0473921,18.8834849\r\n1446,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7093903,1.7463749,21.7495687,70.2369013,71.8022084,61.0697653,24.1365617,9.5613907,20.7872864,66.1230991,36.2039978,41.8975491,26.1463441,21.3004066,49.1967845,3.4050455,33.4097352,19.4219025,1.7974716,1.8563181,22.0217143,70.3653837,72.3218394,61.5608825,23.8078624,9.5778037,20.724899,65.9537117,36.2496128,41.6591127,26.7181526,21.719586,49.4707544,3.3352729,33.0473921,18.8834849,1.8532191,1.9271602,22.48228,69.5713362,71.4462872,60.1581142,24.4130078,8.8716566,19.6837601,65.840516,36.3363526,40.7271368,26.9274436,21.9252001,49.2147622,3.4020944,32.9383037,19.4444325\r\n1447,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7974716,1.8563181,22.0217143,70.3653837,72.3218394,61.5608825,23.8078624,9.5778037,20.724899,65.9537117,36.2496128,41.6591127,26.7181526,21.719586,49.4707544,3.3352729,33.0473921,18.8834849,1.8532191,1.9271602,22.48228,69.5713362,71.4462872,60.1581142,24.4130078,8.8716566,19.6837601,65.840516,36.3363526,40.7271368,26.9274436,21.9252001,49.2147622,3.4020944,32.9383037,19.4444325,1.8412073,1.8879365,22.9644357,70.0440953,71.7969806,60.0868785,24.8546779,9.0125119,20.1624713,66.3726964,36.376527,41.669544,27.3006775,22.4200801,49.2221158,3.2699241,33.3780652,20.1060772\r\n1448,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8532191,1.9271602,22.48228,69.5713362,71.4462872,60.1581142,24.4130078,8.8716566,19.6837601,65.840516,36.3363526,40.7271368,26.9274436,21.9252001,49.2147622,3.4020944,32.9383037,19.4444325,1.8412073,1.8879365,22.9644357,70.0440953,71.7969806,60.0868785,24.8546779,9.0125119,20.1624713,66.3726964,36.376527,41.669544,27.3006775,22.4200801,49.2221158,3.2699241,33.3780652,20.1060772,1.8821,1.9065295,23.565569,69.8792368,71.5543504,60.6626641,25.2493201,9.1791448,20.2957895,66.4713178,36.7374625,41.3140532,27.8920611,23.1725315,49.232245,3.4758845,33.9991511,20.028946\r\n1449,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8412073,1.8879365,22.9644357,70.0440953,71.7969806,60.0868785,24.8546779,9.0125119,20.1624713,66.3726964,36.376527,41.669544,27.3006775,22.4200801,49.2221158,3.2699241,33.3780652,20.1060772,1.8821,1.9065295,23.565569,69.8792368,71.5543504,60.6626641,25.2493201,9.1791448,20.2957895,66.4713178,36.7374625,41.3140532,27.8920611,23.1725315,49.232245,3.4758845,33.9991511,20.028946,1.8919122,1.931751,23.7192511,69.4825964,70.9941888,61.2710621,25.005911,9.8902005,19.9875982,66.8967067,36.3374014,41.3512498,28.5765162,23.7647263,49.4883825,3.5289667,33.5782661,21.003894\r\n1450,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8821,1.9065295,23.565569,69.8792368,71.5543504,60.6626641,25.2493201,9.1791448,20.2957895,66.4713178,36.7374625,41.3140532,27.8920611,23.1725315,49.232245,3.4758845,33.9991511,20.028946,1.8919122,1.931751,23.7192511,69.4825964,70.9941888,61.2710621,25.005911,9.8902005,19.9875982,66.8967067,36.3374014,41.3512498,28.5765162,23.7647263,49.4883825,3.5289667,33.5782661,21.003894,1.8034955,1.8496077,24.3506785,69.5127552,70.6569273,60.406737,24.7401312,9.4716057,19.6396,66.295015,35.5007639,41.4632972,29.2939907,24.5012333,49.5602702,3.4861316,33.3677624,21.8408\r\n1451,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8919122,1.931751,23.7192511,69.4825964,70.9941888,61.2710621,25.005911,9.8902005,19.9875982,66.8967067,36.3374014,41.3512498,28.5765162,23.7647263,49.4883825,3.5289667,33.5782661,21.003894,1.8034955,1.8496077,24.3506785,69.5127552,70.6569273,60.406737,24.7401312,9.4716057,19.6396,66.295015,35.5007639,41.4632972,29.2939907,24.5012333,49.5602702,3.4861316,33.3677624,21.8408,1.8280356,1.8828363,24.9811368,69.3155554,70.1356783,60.0448235,24.8426241,9.6820489,18.9774862,66.2220973,35.3763976,42.5019286,30.1709694,25.4234382,49.9463877,3.6057835,33.5185378,21.2015985\r\n1452,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8034955,1.8496077,24.3506785,69.5127552,70.6569273,60.406737,24.7401312,9.4716057,19.6396,66.295015,35.5007639,41.4632972,29.2939907,24.5012333,49.5602702,3.4861316,33.3677624,21.8408,1.8280356,1.8828363,24.9811368,69.3155554,70.1356783,60.0448235,24.8426241,9.6820489,18.9774862,66.2220973,35.3763976,42.5019286,30.1709694,25.4234382,49.9463877,3.6057835,33.5185378,21.2015985,1.8102794,1.8548749,25.8064127,69.2579349,69.9116817,59.9930932,24.70081,9.9290558,18.7716752,65.9552982,34.7725832,42.743057,30.2934314,25.960565,50.2885801,3.3741755,34.1566648,20.6880009\r\n1453,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8280356,1.8828363,24.9811368,69.3155554,70.1356783,60.0448235,24.8426241,9.6820489,18.9774862,66.2220973,35.3763976,42.5019286,30.1709694,25.4234382,49.9463877,3.6057835,33.5185378,21.2015985,1.8102794,1.8548749,25.8064127,69.2579349,69.9116817,59.9930932,24.70081,9.9290558,18.7716752,65.9552982,34.7725832,42.743057,30.2934314,25.960565,50.2885801,3.3741755,34.1566648,20.6880009,1.7570973,1.7898145,25.826588,69.5205518,69.9000998,61.3016201,24.4671517,9.6635398,19.1496563,65.8395499,34.633856,44.1123701,30.396409,26.2465654,50.7041837,3.2403227,34.2229076,20.2403984\r\n1454,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8102794,1.8548749,25.8064127,69.2579349,69.9116817,59.9930932,24.70081,9.9290558,18.7716752,65.9552982,34.7725832,42.743057,30.2934314,25.960565,50.2885801,3.3741755,34.1566648,20.6880009,1.7570973,1.7898145,25.826588,69.5205518,69.9000998,61.3016201,24.4671517,9.6635398,19.1496563,65.8395499,34.633856,44.1123701,30.396409,26.2465654,50.7041837,3.2403227,34.2229076,20.2403984,1.828384,1.8672915,25.9734594,69.08908,69.8923795,61.4048015,24.483045,9.9724148,18.8708071,65.3857823,34.5265813,44.3115341,30.6381172,26.4330583,51.5019,3.4092501,34.3542698,19.9714128\r\n1455,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7570973,1.7898145,25.826588,69.5205518,69.9000998,61.3016201,24.4671517,9.6635398,19.1496563,65.8395499,34.633856,44.1123701,30.396409,26.2465654,50.7041837,3.2403227,34.2229076,20.2403984,1.828384,1.8672915,25.9734594,69.08908,69.8923795,61.4048015,24.483045,9.9724148,18.8708071,65.3857823,34.5265813,44.3115341,30.6381172,26.4330583,51.5019,3.4092501,34.3542698,19.9714128,1.9253723,1.9920986,25.8255011,69.6230674,70.2653295,60.7065031,23.7810396,10.1166359,19.0416387,65.2312497,33.8079298,45.4654493,30.9292285,26.489524,51.8646888,3.067164,34.0357926,20.4653544\r\n1456,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.828384,1.8672915,25.9734594,69.08908,69.8923795,61.4048015,24.483045,9.9724148,18.8708071,65.3857823,34.5265813,44.3115341,30.6381172,26.4330583,51.5019,3.4092501,34.3542698,19.9714128,1.9253723,1.9920986,25.8255011,69.6230674,70.2653295,60.7065031,23.7810396,10.1166359,19.0416387,65.2312497,33.8079298,45.4654493,30.9292285,26.489524,51.8646888,3.067164,34.0357926,20.4653544,1.9583522,2.0098892,26.810938,69.542392,70.6449118,60.1919152,23.8469019,9.6149711,19.0043713,65.1511486,33.4905675,45.8844964,31.3348234,27.1568815,52.5593469,2.898227,34.6479172,21.1355022\r\n1457,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9253723,1.9920986,25.8255011,69.6230674,70.2653295,60.7065031,23.7810396,10.1166359,19.0416387,65.2312497,33.8079298,45.4654493,30.9292285,26.489524,51.8646888,3.067164,34.0357926,20.4653544,1.9583522,2.0098892,26.810938,69.542392,70.6449118,60.1919152,23.8469019,9.6149711,19.0043713,65.1511486,33.4905675,45.8844964,31.3348234,27.1568815,52.5593469,2.898227,34.6479172,21.1355022,1.9478721,1.9863382,27.1676793,69.7880709,71.009004,60.0579591,23.597843,9.8924505,19.1670342,65.762699,33.5724848,45.5269227,31.5817171,27.3547798,52.4753209,2.7052452,34.7766535,21.3403008\r\n1458,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9583522,2.0098892,26.810938,69.542392,70.6449118,60.1919152,23.8469019,9.6149711,19.0043713,65.1511486,33.4905675,45.8844964,31.3348234,27.1568815,52.5593469,2.898227,34.6479172,21.1355022,1.9478721,1.9863382,27.1676793,69.7880709,71.009004,60.0579591,23.597843,9.8924505,19.1670342,65.762699,33.5724848,45.5269227,31.5817171,27.3547798,52.4753209,2.7052452,34.7766535,21.3403008,1.9392394,1.9591931,27.7680897,70.772277,72.1568617,61.1030134,23.9922183,9.7659334,19.8693751,66.1564295,33.6944504,45.0462147,31.815619,27.5932419,52.745696,2.6160287,34.2844573,22.1334555\r\n1459,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9478721,1.9863382,27.1676793,69.7880709,71.009004,60.0579591,23.597843,9.8924505,19.1670342,65.762699,33.5724848,45.5269227,31.5817171,27.3547798,52.4753209,2.7052452,34.7766535,21.3403008,1.9392394,1.9591931,27.7680897,70.772277,72.1568617,61.1030134,23.9922183,9.7659334,19.8693751,66.1564295,33.6944504,45.0462147,31.815619,27.5932419,52.745696,2.6160287,34.2844573,22.1334555,1.9217393,1.9395621,27.7941647,70.965068,72.9246454,61.0698087,23.4530067,10.0627449,20.0749954,66.8582809,33.641309,45.8693437,32.5351198,28.1313487,53.5671908,2.7590729,33.9995889,23.2073666\r\n1460,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9392394,1.9591931,27.7680897,70.772277,72.1568617,61.1030134,23.9922183,9.7659334,19.8693751,66.1564295,33.6944504,45.0462147,31.815619,27.5932419,52.745696,2.6160287,34.2844573,22.1334555,1.9217393,1.9395621,27.7941647,70.965068,72.9246454,61.0698087,23.4530067,10.0627449,20.0749954,66.8582809,33.641309,45.8693437,32.5351198,28.1313487,53.5671908,2.7590729,33.9995889,23.2073666,1.9685301,1.9968611,27.4452167,72.0828297,74.3550874,61.1037075,23.4448285,10.3290734,19.8704067,66.8010515,33.163481,47.2747482,32.8725446,28.0368756,54.2516498,2.7909354,33.9803315,24.3408775\r\n1461,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9217393,1.9395621,27.7941647,70.965068,72.9246454,61.0698087,23.4530067,10.0627449,20.0749954,66.8582809,33.641309,45.8693437,32.5351198,28.1313487,53.5671908,2.7590729,33.9995889,23.2073666,1.9685301,1.9968611,27.4452167,72.0828297,74.3550874,61.1037075,23.4448285,10.3290734,19.8704067,66.8010515,33.163481,47.2747482,32.8725446,28.0368756,54.2516498,2.7909354,33.9803315,24.3408775,1.8985754,1.9262444,27.6388507,72.5208328,74.6728436,60.8757833,23.9956459,10.206709,19.3796501,65.9570944,32.3454205,47.2117579,33.1492734,28.5151335,54.0792124,2.7875798,33.4491951,24.0018771\r\n1462,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9685301,1.9968611,27.4452167,72.0828297,74.3550874,61.1037075,23.4448285,10.3290734,19.8704067,66.8010515,33.163481,47.2747482,32.8725446,28.0368756,54.2516498,2.7909354,33.9803315,24.3408775,1.8985754,1.9262444,27.6388507,72.5208328,74.6728436,60.8757833,23.9956459,10.206709,19.3796501,65.9570944,32.3454205,47.2117579,33.1492734,28.5151335,54.0792124,2.7875798,33.4491951,24.0018771,1.8727647,1.872766,27.8105038,72.684607,75.3804248,62.0715422,25.2231074,10.2992751,19.0082951,65.558263,32.3525352,48.3451514,33.4729694,28.6170971,54.3292057,2.9106989,33.5362321,23.6468559\r\n1463,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8985754,1.9262444,27.6388507,72.5208328,74.6728436,60.8757833,23.9956459,10.206709,19.3796501,65.9570944,32.3454205,47.2117579,33.1492734,28.5151335,54.0792124,2.7875798,33.4491951,24.0018771,1.8727647,1.872766,27.8105038,72.684607,75.3804248,62.0715422,25.2231074,10.2992751,19.0082951,65.558263,32.3525352,48.3451514,33.4729694,28.6170971,54.3292057,2.9106989,33.5362321,23.6468559,1.7319702,1.7496803,27.1063211,72.846399,75.0076972,62.3210411,25.0948955,10.4170247,18.4780296,65.4062859,31.5727172,48.1941768,33.2051053,28.2247035,54.4534343,2.977035,33.2990364,22.8062673\r\n1464,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8727647,1.872766,27.8105038,72.684607,75.3804248,62.0715422,25.2231074,10.2992751,19.0082951,65.558263,32.3525352,48.3451514,33.4729694,28.6170971,54.3292057,2.9106989,33.5362321,23.6468559,1.7319702,1.7496803,27.1063211,72.846399,75.0076972,62.3210411,25.0948955,10.4170247,18.4780296,65.4062859,31.5727172,48.1941768,33.2051053,28.2247035,54.4534343,2.977035,33.2990364,22.8062673,1.7484579,1.7725687,26.9275463,73.0258396,75.150824,62.5652498,25.3534731,10.3278853,18.0275745,64.544024,31.0293383,49.0526076,32.7770225,28.0124933,55.0540857,3.1640969,33.6088806,21.5909182\r\n1465,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7319702,1.7496803,27.1063211,72.846399,75.0076972,62.3210411,25.0948955,10.4170247,18.4780296,65.4062859,31.5727172,48.1941768,33.2051053,28.2247035,54.4534343,2.977035,33.2990364,22.8062673,1.7484579,1.7725687,26.9275463,73.0258396,75.150824,62.5652498,25.3534731,10.3278853,18.0275745,64.544024,31.0293383,49.0526076,32.7770225,28.0124933,55.0540857,3.1640969,33.6088806,21.5909182,1.7934021,1.8300026,26.9837089,72.4578465,74.7072497,61.3245136,24.8410336,10.3365102,17.0061799,63.6733216,30.0051195,48.8071069,32.75911,28.0370934,55.0781986,3.104312,33.8614801,21.5111585\r\n1466,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7484579,1.7725687,26.9275463,73.0258396,75.150824,62.5652498,25.3534731,10.3278853,18.0275745,64.544024,31.0293383,49.0526076,32.7770225,28.0124933,55.0540857,3.1640969,33.6088806,21.5909182,1.7934021,1.8300026,26.9837089,72.4578465,74.7072497,61.3245136,24.8410336,10.3365102,17.0061799,63.6733216,30.0051195,48.8071069,32.75911,28.0370934,55.0781986,3.104312,33.8614801,21.5111585,1.8040588,1.8311325,26.770083,72.4294293,74.2019128,60.9223397,25.1144976,9.8393188,17.06056,62.6075537,29.7890553,49.8912834,32.4082343,27.6331613,55.2873756,2.9968617,34.2503789,21.481186\r\n1467,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7934021,1.8300026,26.9837089,72.4578465,74.7072497,61.3245136,24.8410336,10.3365102,17.0061799,63.6733216,30.0051195,48.8071069,32.75911,28.0370934,55.0781986,3.104312,33.8614801,21.5111585,1.8040588,1.8311325,26.770083,72.4294293,74.2019128,60.9223397,25.1144976,9.8393188,17.06056,62.6075537,29.7890553,49.8912834,32.4082343,27.6331613,55.2873756,2.9968617,34.2503789,21.481186,1.8997219,1.940332,27.9135646,71.9115104,73.5759065,60.3681981,25.1207348,9.9360246,17.030963,62.2600376,30.2751137,48.9773705,32.8137015,28.0900544,55.1127185,3.1758223,34.5766172,21.3879974\r\n1468,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8040588,1.8311325,26.770083,72.4294293,74.2019128,60.9223397,25.1144976,9.8393188,17.06056,62.6075537,29.7890553,49.8912834,32.4082343,27.6331613,55.2873756,2.9968617,34.2503789,21.481186,1.8997219,1.940332,27.9135646,71.9115104,73.5759065,60.3681981,25.1207348,9.9360246,17.030963,62.2600376,30.2751137,48.9773705,32.8137015,28.0900544,55.1127185,3.1758223,34.5766172,21.3879974,1.9239661,1.9676989,28.5133166,71.4058301,72.7157887,60.2886404,23.9205152,10.2652517,17.5636513,62.4459239,30.3195062,49.029433,33.0577517,28.2210351,55.6430818,3.0079917,34.9389124,21.8572612\r\n1469,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8997219,1.940332,27.9135646,71.9115104,73.5759065,60.3681981,25.1207348,9.9360246,17.030963,62.2600376,30.2751137,48.9773705,32.8137015,28.0900544,55.1127185,3.1758223,34.5766172,21.3879974,1.9239661,1.9676989,28.5133166,71.4058301,72.7157887,60.2886404,23.9205152,10.2652517,17.5636513,62.4459239,30.3195062,49.029433,33.0577517,28.2210351,55.6430818,3.0079917,34.9389124,21.8572612,1.9126509,1.9704377,28.4945656,71.0937668,71.927062,59.7470234,23.3976466,10.2860216,17.8152864,62.6693811,31.1707096,48.3147816,32.9118306,28.3568513,56.0829501,3.0548022,35.3325754,21.638157\r\n1470,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9239661,1.9676989,28.5133166,71.4058301,72.7157887,60.2886404,23.9205152,10.2652517,17.5636513,62.4459239,30.3195062,49.029433,33.0577517,28.2210351,55.6430818,3.0079917,34.9389124,21.8572612,1.9126509,1.9704377,28.4945656,71.0937668,71.927062,59.7470234,23.3976466,10.2860216,17.8152864,62.6693811,31.1707096,48.3147816,32.9118306,28.3568513,56.0829501,3.0548022,35.3325754,21.638157,2.0255242,2.0648774,28.7242084,71.1439088,72.2345225,59.9818679,23.040532,10.1702452,18.8380002,62.8594127,31.549061,47.7678636,33.110023,28.5139557,56.3152346,2.9979615,35.3190536,22.3738655\r\n1471,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9126509,1.9704377,28.4945656,71.0937668,71.927062,59.7470234,23.3976466,10.2860216,17.8152864,62.6693811,31.1707096,48.3147816,32.9118306,28.3568513,56.0829501,3.0548022,35.3325754,21.638157,2.0255242,2.0648774,28.7242084,71.1439088,72.2345225,59.9818679,23.040532,10.1702452,18.8380002,62.8594127,31.549061,47.7678636,33.110023,28.5139557,56.3152346,2.9979615,35.3190536,22.3738655,2.0123216,2.0456067,28.5788079,71.9291369,73.1321208,60.372536,22.8332816,10.3538829,19.3257352,63.7318389,31.427369,48.676436,33.3069971,28.4678599,56.956515,2.8611363,35.5842378,22.7498957\r\n1472,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,2.0255242,2.0648774,28.7242084,71.1439088,72.2345225,59.9818679,23.040532,10.1702452,18.8380002,62.8594127,31.549061,47.7678636,33.110023,28.5139557,56.3152346,2.9979615,35.3190536,22.3738655,2.0123216,2.0456067,28.5788079,71.9291369,73.1321208,60.372536,22.8332816,10.3538829,19.3257352,63.7318389,31.427369,48.676436,33.3069971,28.4678599,56.956515,2.8611363,35.5842378,22.7498957,2.0624606,2.1081986,28.6127507,71.8001075,72.8135087,60.2397453,23.4268772,10.3936983,19.8754447,63.8306256,32.0497981,48.6678187,33.3261924,28.2934393,58.0230821,2.8283657,35.7244964,22.6822144\r\n1473,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,2.0123216,2.0456067,28.5788079,71.9291369,73.1321208,60.372536,22.8332816,10.3538829,19.3257352,63.7318389,31.427369,48.676436,33.3069971,28.4678599,56.956515,2.8611363,35.5842378,22.7498957,2.0624606,2.1081986,28.6127507,71.8001075,72.8135087,60.2397453,23.4268772,10.3936983,19.8754447,63.8306256,32.0497981,48.6678187,33.3261924,28.2934393,58.0230821,2.8283657,35.7244964,22.6822144,2.1101792,2.1688484,28.4394558,71.8691341,73.2179902,60.625475,23.6074428,10.7886072,19.6971238,64.3846463,32.3169913,47.7864879,32.8883336,27.9025059,58.0711534,2.7777505,35.7765525,22.9923943\r\n1474,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,2.0624606,2.1081986,28.6127507,71.8001075,72.8135087,60.2397453,23.4268772,10.3936983,19.8754447,63.8306256,32.0497981,48.6678187,33.3261924,28.2934393,58.0230821,2.8283657,35.7244964,22.6822144,2.1101792,2.1688484,28.4394558,71.8691341,73.2179902,60.625475,23.6074428,10.7886072,19.6971238,64.3846463,32.3169913,47.7864879,32.8883336,27.9025059,58.0711534,2.7777505,35.7765525,22.9923943,2.0019006,2.0430039,28.1522396,71.6746256,73.4673684,61.0442364,23.04248,10.8223686,20.0298931,64.3694756,32.1018956,48.0808333,32.6338909,27.8693319,58.4158116,2.6184942,35.2960216,22.6029893\r\n1475,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,2.1101792,2.1688484,28.4394558,71.8691341,73.2179902,60.625475,23.6074428,10.7886072,19.6971238,64.3846463,32.3169913,47.7864879,32.8883336,27.9025059,58.0711534,2.7777505,35.7765525,22.9923943,2.0019006,2.0430039,28.1522396,71.6746256,73.4673684,61.0442364,23.04248,10.8223686,20.0298931,64.3694756,32.1018956,48.0808333,32.6338909,27.8693319,58.4158116,2.6184942,35.2960216,22.6029893,1.9612046,2.0010068,27.9020452,71.6186625,73.5919405,60.303417,23.5403294,10.7457176,19.8685921,65.1168726,32.5465909,47.4696184,32.3022307,27.6101615,58.5856751,2.727106,34.5867723,22.794401\r\n1476,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,2.0019006,2.0430039,28.1522396,71.6746256,73.4673684,61.0442364,23.04248,10.8223686,20.0298931,64.3694756,32.1018956,48.0808333,32.6338909,27.8693319,58.4158116,2.6184942,35.2960216,22.6029893,1.9612046,2.0010068,27.9020452,71.6186625,73.5919405,60.303417,23.5403294,10.7457176,19.8685921,65.1168726,32.5465909,47.4696184,32.3022307,27.6101615,58.5856751,2.727106,34.5867723,22.794401,1.890738,1.9120037,27.3865038,71.9963351,73.817647,60.4431408,23.6615723,10.9358397,19.1631929,65.3140107,32.1134111,47.9014861,31.6835181,27.0531555,58.4419855,2.6961889,33.9806111,22.6006805\r\n1477,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9612046,2.0010068,27.9020452,71.6186625,73.5919405,60.303417,23.5403294,10.7457176,19.8685921,65.1168726,32.5465909,47.4696184,32.3022307,27.6101615,58.5856751,2.727106,34.5867723,22.794401,1.890738,1.9120037,27.3865038,71.9963351,73.817647,60.4431408,23.6615723,10.9358397,19.1631929,65.3140107,32.1134111,47.9014861,31.6835181,27.0531555,58.4419855,2.6961889,33.9806111,22.6006805,1.8836889,1.9013305,27.2621612,72.2766317,73.869534,60.3923654,24.2643776,11.2959771,18.6948908,65.2101051,32.4819053,48.4472695,31.3481955,26.802139,58.5815955,2.7865983,34.0751683,22.6746049\r\n1478,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.890738,1.9120037,27.3865038,71.9963351,73.817647,60.4431408,23.6615723,10.9358397,19.1631929,65.3140107,32.1134111,47.9014861,31.6835181,27.0531555,58.4419855,2.6961889,33.9806111,22.6006805,1.8836889,1.9013305,27.2621612,72.2766317,73.869534,60.3923654,24.2643776,11.2959771,18.6948908,65.2101051,32.4819053,48.4472695,31.3481955,26.802139,58.5815955,2.7865983,34.0751683,22.6746049,1.8873182,1.9106776,27.3447611,71.9860844,73.3724605,60.3025269,24.7853841,11.3878511,19.4711538,65.4663374,33.7247184,47.6722485,31.2097343,26.8296675,57.8373444,2.700134,33.4740235,22.6010234\r\n1479,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8836889,1.9013305,27.2621612,72.2766317,73.869534,60.3923654,24.2643776,11.2959771,18.6948908,65.2101051,32.4819053,48.4472695,31.3481955,26.802139,58.5815955,2.7865983,34.0751683,22.6746049,1.8873182,1.9106776,27.3447611,71.9860844,73.3724605,60.3025269,24.7853841,11.3878511,19.4711538,65.4663374,33.7247184,47.6722485,31.2097343,26.8296675,57.8373444,2.700134,33.4740235,22.6010234,1.8084089,1.8256084,27.1636797,71.9284441,73.2683038,60.4475008,24.6508918,11.0236228,19.3773298,66.0968556,34.0577337,48.9215642,30.8202349,26.6392735,57.3425665,2.8702713,33.0815936,22.6959682\r\n1480,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8873182,1.9106776,27.3447611,71.9860844,73.3724605,60.3025269,24.7853841,11.3878511,19.4711538,65.4663374,33.7247184,47.6722485,31.2097343,26.8296675,57.8373444,2.700134,33.4740235,22.6010234,1.8084089,1.8256084,27.1636797,71.9284441,73.2683038,60.4475008,24.6508918,11.0236228,19.3773298,66.0968556,34.0577337,48.9215642,30.8202349,26.6392735,57.3425665,2.8702713,33.0815936,22.6959682,1.7133327,1.7248352,26.9750638,72.3570954,72.9949863,60.5499402,24.9970502,10.7181743,18.8579209,66.086492,34.4352111,48.3509137,30.5352449,26.3774912,57.3090642,3.0181689,32.4398606,21.244637\r\n1481,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8084089,1.8256084,27.1636797,71.9284441,73.2683038,60.4475008,24.6508918,11.0236228,19.3773298,66.0968556,34.0577337,48.9215642,30.8202349,26.6392735,57.3425665,2.8702713,33.0815936,22.6959682,1.7133327,1.7248352,26.9750638,72.3570954,72.9949863,60.5499402,24.9970502,10.7181743,18.8579209,66.086492,34.4352111,48.3509137,30.5352449,26.3774912,57.3090642,3.0181689,32.4398606,21.244637,1.7630168,1.7713769,26.5956036,72.0480875,72.2747839,59.8948129,25.4272474,10.7285828,18.2816799,66.2080264,34.9985365,48.0729106,30.2166577,25.8675647,57.2652553,3.1507203,32.7864503,21.7410792\r\n1482,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7133327,1.7248352,26.9750638,72.3570954,72.9949863,60.5499402,24.9970502,10.7181743,18.8579209,66.086492,34.4352111,48.3509137,30.5352449,26.3774912,57.3090642,3.0181689,32.4398606,21.244637,1.7630168,1.7713769,26.5956036,72.0480875,72.2747839,59.8948129,25.4272474,10.7285828,18.2816799,66.2080264,34.9985365,48.0729106,30.2166577,25.8675647,57.2652553,3.1507203,32.7864503,21.7410792,1.8725646,1.8944161,26.2673483,72.140691,71.7691567,60.5763617,26.0042919,10.1622826,18.3704393,66.6089495,35.3724062,48.4560142,29.7401241,25.317417,57.2932111,3.2722067,33.431226,21.191769\r\n1483,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7630168,1.7713769,26.5956036,72.0480875,72.2747839,59.8948129,25.4272474,10.7285828,18.2816799,66.2080264,34.9985365,48.0729106,30.2166577,25.8675647,57.2652553,3.1507203,32.7864503,21.7410792,1.8725646,1.8944161,26.2673483,72.140691,71.7691567,60.5763617,26.0042919,10.1622826,18.3704393,66.6089495,35.3724062,48.4560142,29.7401241,25.317417,57.2932111,3.2722067,33.431226,21.191769,1.9153604,1.9286093,26.2207747,71.7097803,71.3411864,60.0011398,25.7710985,9.7293487,18.639473,66.4872949,35.1385071,47.773587,29.5833357,24.9749811,57.8137776,3.1332101,33.7000719,21.4534608\r\n1484,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8725646,1.8944161,26.2673483,72.140691,71.7691567,60.5763617,26.0042919,10.1622826,18.3704393,66.6089495,35.3724062,48.4560142,29.7401241,25.317417,57.2932111,3.2722067,33.431226,21.191769,1.9153604,1.9286093,26.2207747,71.7097803,71.3411864,60.0011398,25.7710985,9.7293487,18.639473,66.4872949,35.1385071,47.773587,29.5833357,24.9749811,57.8137776,3.1332101,33.7000719,21.4534608,1.8954919,1.9112628,25.723208,70.9638073,70.6106134,59.7894622,25.9041399,9.5149306,18.5587554,66.8175278,35.0208536,47.4274848,28.9484212,24.3313102,57.6946985,3.0538176,33.6054291,20.676051\r\n1485,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.9153604,1.9286093,26.2207747,71.7097803,71.3411864,60.0011398,25.7710985,9.7293487,18.639473,66.4872949,35.1385071,47.773587,29.5833357,24.9749811,57.8137776,3.1332101,33.7000719,21.4534608,1.8954919,1.9112628,25.723208,70.9638073,70.6106134,59.7894622,25.9041399,9.5149306,18.5587554,66.8175278,35.0208536,47.4274848,28.9484212,24.3313102,57.6946985,3.0538176,33.6054291,20.676051,1.8615078,1.8748627,25.0867648,69.7404632,69.8342567,60.0890937,25.7968471,9.568887,17.5247063,66.5148353,34.6484945,47.3568918,28.6238826,23.976923,58.241773,3.2297279,33.574656,20.1981275\r\n1486,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8954919,1.9112628,25.723208,70.9638073,70.6106134,59.7894622,25.9041399,9.5149306,18.5587554,66.8175278,35.0208536,47.4274848,28.9484212,24.3313102,57.6946985,3.0538176,33.6054291,20.676051,1.8615078,1.8748627,25.0867648,69.7404632,69.8342567,60.0890937,25.7968471,9.568887,17.5247063,66.5148353,34.6484945,47.3568918,28.6238826,23.976923,58.241773,3.2297279,33.574656,20.1981275,1.7674504,1.8025898,24.781029,70.258595,70.0699407,61.1493504,25.0251936,9.7556047,17.6016521,66.9768342,34.3999115,47.0549578,28.710672,24.1136202,59.0135092,2.9799861,33.9317621,18.5299465\r\n1487,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.8615078,1.8748627,25.0867648,69.7404632,69.8342567,60.0890937,25.7968471,9.568887,17.5247063,66.5148353,34.6484945,47.3568918,28.6238826,23.976923,58.241773,3.2297279,33.574656,20.1981275,1.7674504,1.8025898,24.781029,70.258595,70.0699407,61.1493504,25.0251936,9.7556047,17.6016521,66.9768342,34.3999115,47.0549578,28.710672,24.1136202,59.0135092,2.9799861,33.9317621,18.5299465,1.7681024,1.8103928,25.1041228,70.3052032,70.4620352,61.3942074,24.3039156,9.9502495,17.9917495,67.4164426,34.281193,48.4929053,29.0325786,24.3140168,59.0820544,2.7390289,33.8905458,18.6179813\r\n1488,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7674504,1.8025898,24.781029,70.258595,70.0699407,61.1493504,25.0251936,9.7556047,17.6016521,66.9768342,34.3999115,47.0549578,28.710672,24.1136202,59.0135092,2.9799861,33.9317621,18.5299465,1.7681024,1.8103928,25.1041228,70.3052032,70.4620352,61.3942074,24.3039156,9.9502495,17.9917495,67.4164426,34.281193,48.4929053,29.0325786,24.3140168,59.0820544,2.7390289,33.8905458,18.6179813,1.7919702,1.8473711,25.0701507,70.0895918,70.1892007,61.5682387,24.1332912,10.1930841,18.4727154,67.7357664,34.3122172,48.7885737,28.9578031,24.363069,59.2355385,2.7492597,33.5846507,17.7354026\r\n1489,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7681024,1.8103928,25.1041228,70.3052032,70.4620352,61.3942074,24.3039156,9.9502495,17.9917495,67.4164426,34.281193,48.4929053,29.0325786,24.3140168,59.0820544,2.7390289,33.8905458,18.6179813,1.7919702,1.8473711,25.0701507,70.0895918,70.1892007,61.5682387,24.1332912,10.1930841,18.4727154,67.7357664,34.3122172,48.7885737,28.9578031,24.363069,59.2355385,2.7492597,33.5846507,17.7354026,1.7120276,1.75082,25.4495155,70.4777626,70.2819418,62.0874488,23.6472535,10.8955842,18.1867339,67.8891668,34.1072787,50.1126134,29.4875392,24.689958,59.7322837,2.6345605,33.1760808,17.4898117\r\n1490,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7919702,1.8473711,25.0701507,70.0895918,70.1892007,61.5682387,24.1332912,10.1930841,18.4727154,67.7357664,34.3122172,48.7885737,28.9578031,24.363069,59.2355385,2.7492597,33.5846507,17.7354026,1.7120276,1.75082,25.4495155,70.4777626,70.2819418,62.0874488,23.6472535,10.8955842,18.1867339,67.8891668,34.1072787,50.1126134,29.4875392,24.689958,59.7322837,2.6345605,33.1760808,17.4898117,1.7847494,1.8267699,26.1814968,70.5272906,70.0727218,62.4721318,24.0712948,11.2546331,18.3621822,67.6288576,33.1589034,50.489122,30.3053473,25.3504771,59.6840678,2.8074374,32.9887849,17.0104815\r\n1491,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7120276,1.75082,25.4495155,70.4777626,70.2819418,62.0874488,23.6472535,10.8955842,18.1867339,67.8891668,34.1072787,50.1126134,29.4875392,24.689958,59.7322837,2.6345605,33.1760808,17.4898117,1.7847494,1.8267699,26.1814968,70.5272906,70.0727218,62.4721318,24.0712948,11.2546331,18.3621822,67.6288576,33.1589034,50.489122,30.3053473,25.3504771,59.6840678,2.8074374,32.9887849,17.0104815,1.7207424,1.7785373,26.4199575,70.7581705,70.6780154,62.760796,24.1067112,11.5772595,18.4455195,66.0918583,31.8794106,50.9331149,30.9237279,25.8292788,60.0875327,2.7268645,33.1228255,16.4294139\r\n1492,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7847494,1.8267699,26.1814968,70.5272906,70.0727218,62.4721318,24.0712948,11.2546331,18.3621822,67.6288576,33.1589034,50.489122,30.3053473,25.3504771,59.6840678,2.8074374,32.9887849,17.0104815,1.7207424,1.7785373,26.4199575,70.7581705,70.6780154,62.760796,24.1067112,11.5772595,18.4455195,66.0918583,31.8794106,50.9331149,30.9237279,25.8292788,60.0875327,2.7268645,33.1228255,16.4294139,1.7786114,1.8445716,27.209098,71.3122771,70.3731146,63.2230058,24.0702018,11.4955433,18.5233989,64.9792271,30.7377334,50.9030597,32.025474,26.6297134,60.1999317,2.7476336,33.433762,16.2074192\r\n1493,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7207424,1.7785373,26.4199575,70.7581705,70.6780154,62.760796,24.1067112,11.5772595,18.4455195,66.0918583,31.8794106,50.9331149,30.9237279,25.8292788,60.0875327,2.7268645,33.1228255,16.4294139,1.7786114,1.8445716,27.209098,71.3122771,70.3731146,63.2230058,24.0702018,11.4955433,18.5233989,64.9792271,30.7377334,50.9030597,32.025474,26.6297134,60.1999317,2.7476336,33.433762,16.2074192,1.988358,2.0251694,27.9781484,70.8620551,69.8944872,62.5705662,24.3659695,11.834671,18.4089112,63.4783892,29.8215726,51.2337144,33.1406119,27.4145718,60.1378249,2.8779372,32.8562119,17.9813869\r\n1494,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.7786114,1.8445716,27.209098,71.3122771,70.3731146,63.2230058,24.0702018,11.4955433,18.5233989,64.9792271,30.7377334,50.9030597,32.025474,26.6297134,60.1999317,2.7476336,33.433762,16.2074192,1.988358,2.0251694,27.9781484,70.8620551,69.8944872,62.5705662,24.3659695,11.834671,18.4089112,63.4783892,29.8215726,51.2337144,33.1406119,27.4145718,60.1378249,2.8779372,32.8562119,17.9813869,2.324774,2.3582742,28.8787668,70.3549732,69.4455434,62.1942686,24.7633475,12.4515037,18.5844158,62.1677475,29.3526652,50.3320193,34.5523393,28.6409583,60.5249472,3.0803638,33.2107515,19.271261\r\n1495,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.0,0.0,0.0,1.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,0.0,0.0,0.0,0.0,1.988358,2.0251694,27.9781484,70.8620551,69.8944872,62.5705662,24.3659695,11.834671,18.4089112,63.4783892,29.8215726,51.2337144,33.1406119,27.4145718,60.1378249,2.8779372,32.8562119,17.9813869,2.324774,2.3582742,28.8787668,70.3549732,69.4455434,62.1942686,24.7633475,12.4515037,18.5844158,62.1677475,29.3526652,50.3320193,34.5523393,28.6409583,60.5249472,3.0803638,33.2107515,19.271261,2.4369995,2.473071,29.5467715,71.4184279,70.2751592,62.523855,24.8096049,12.62262,18.5442773,61.8348471,28.9667535,50.812961,35.7965427,29.7165789,61.0097502,2.9570444,32.5896305,20.5880231\r\n1496,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.7644627,2.8582411,26.129543,73.9539447,72.5121345,72.191946,26.3129288,16.4857025,17.339057,58.9940197,30.2279203,48.9194935,32.3880818,26.2370429,59.1675343,3.9285572,31.605471,15.9105441,2.9622006,3.0455889,26.6393219,74.220104,73.0087404,70.9219614,23.1662554,16.8242148,17.47299,58.5173352,30.3689967,49.814201,32.848129,26.6669733,58.9572537,4.2971898,31.1999439,17.9391047,3.0742246,3.2144659,28.1962126,74.2094125,72.2667837,70.9608896,21.5013692,16.1073248,17.4538397,58.7596082,29.8373969,50.4351286,34.1232707,27.6834668,58.7734224,4.3455876,30.8665454,18.7298234\r\n1497,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.9622006,3.0455889,26.6393219,74.220104,73.0087404,70.9219614,23.1662554,16.8242148,17.47299,58.5173352,30.3689967,49.814201,32.848129,26.6669733,58.9572537,4.2971898,31.1999439,17.9391047,3.0742246,3.2144659,28.1962126,74.2094125,72.2667837,70.9608896,21.5013692,16.1073248,17.4538397,58.7596082,29.8373969,50.4351286,34.1232707,27.6834668,58.7734224,4.3455876,30.8665454,18.7298234,3.088401,3.226545,29.6996644,74.4876423,72.7754643,71.3302573,20.6279655,15.0901218,17.4528827,59.8012224,29.1919725,51.2000532,34.9480671,28.4977626,58.3330445,3.9584832,30.0369496,19.9454922\r\n1498,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.0742246,3.2144659,28.1962126,74.2094125,72.2667837,70.9608896,21.5013692,16.1073248,17.4538397,58.7596082,29.8373969,50.4351286,34.1232707,27.6834668,58.7734224,4.3455876,30.8665454,18.7298234,3.088401,3.226545,29.6996644,74.4876423,72.7754643,71.3302573,20.6279655,15.0901218,17.4528827,59.8012224,29.1919725,51.2000532,34.9480671,28.4977626,58.3330445,3.9584832,30.0369496,19.9454922,3.2970373,3.4441372,30.8881367,74.7656752,72.5463815,72.429949,19.518843,15.0350345,17.601604,60.1513724,28.5218732,50.7176923,35.5858655,29.2288115,57.6268508,3.9421986,29.5872121,20.3382913\r\n1499,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.088401,3.226545,29.6996644,74.4876423,72.7754643,71.3302573,20.6279655,15.0901218,17.4528827,59.8012224,29.1919725,51.2000532,34.9480671,28.4977626,58.3330445,3.9584832,30.0369496,19.9454922,3.2970373,3.4441372,30.8881367,74.7656752,72.5463815,72.429949,19.518843,15.0350345,17.601604,60.1513724,28.5218732,50.7176923,35.5858655,29.2288115,57.6268508,3.9421986,29.5872121,20.3382913,3.5429594,3.6823422,31.9465349,75.2016458,72.6173811,72.2329199,19.1952083,14.0967734,17.6904148,59.4877635,28.3486226,51.1746243,37.1983136,30.6577183,58.2011763,3.5858442,29.3049829,21.0822424\r\n1500,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.2970373,3.4441372,30.8881367,74.7656752,72.5463815,72.429949,19.518843,15.0350345,17.601604,60.1513724,28.5218732,50.7176923,35.5858655,29.2288115,57.6268508,3.9421986,29.5872121,20.3382913,3.5429594,3.6823422,31.9465349,75.2016458,72.6173811,72.2329199,19.1952083,14.0967734,17.6904148,59.4877635,28.3486226,51.1746243,37.1983136,30.6577183,58.2011763,3.5858442,29.3049829,21.0822424,3.9754706,4.1566877,33.129222,75.200477,72.3343504,72.8636824,18.8305067,14.5070688,17.5905433,58.7479885,28.7347232,52.8335015,38.687602,32.1989208,58.1612379,3.8611843,29.3211142,21.7084425\r\n1501,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.5429594,3.6823422,31.9465349,75.2016458,72.6173811,72.2329199,19.1952083,14.0967734,17.6904148,59.4877635,28.3486226,51.1746243,37.1983136,30.6577183,58.2011763,3.5858442,29.3049829,21.0822424,3.9754706,4.1566877,33.129222,75.200477,72.3343504,72.8636824,18.8305067,14.5070688,17.5905433,58.7479885,28.7347232,52.8335015,38.687602,32.1989208,58.1612379,3.8611843,29.3211142,21.7084425,3.7185801,3.8774987,34.2652407,75.5671884,72.9405941,73.3825193,18.7070109,15.0023429,17.5152283,57.9805145,27.8111163,52.7837046,40.0603733,33.6858993,58.3385663,3.7343827,29.5976546,22.732322\r\n1502,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.9754706,4.1566877,33.129222,75.200477,72.3343504,72.8636824,18.8305067,14.5070688,17.5905433,58.7479885,28.7347232,52.8335015,38.687602,32.1989208,58.1612379,3.8611843,29.3211142,21.7084425,3.7185801,3.8774987,34.2652407,75.5671884,72.9405941,73.3825193,18.7070109,15.0023429,17.5152283,57.9805145,27.8111163,52.7837046,40.0603733,33.6858993,58.3385663,3.7343827,29.5976546,22.732322,3.7332046,3.8729597,36.0801734,75.3772177,73.0606741,73.7635883,19.0447593,14.2518337,17.3802081,57.9543749,26.9373426,53.0256249,41.4736299,35.1267649,59.1970628,3.4404194,30.0656421,23.4005011\r\n1503,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.7185801,3.8774987,34.2652407,75.5671884,72.9405941,73.3825193,18.7070109,15.0023429,17.5152283,57.9805145,27.8111163,52.7837046,40.0603733,33.6858993,58.3385663,3.7343827,29.5976546,22.732322,3.7332046,3.8729597,36.0801734,75.3772177,73.0606741,73.7635883,19.0447593,14.2518337,17.3802081,57.9543749,26.9373426,53.0256249,41.4736299,35.1267649,59.1970628,3.4404194,30.0656421,23.4005011,3.6779329,3.760656,37.1061514,74.5035815,73.4867987,73.7467985,18.9758445,15.5211722,17.5125539,58.2099945,27.9011783,52.3922492,42.858521,36.5782451,60.0158229,3.4161245,29.6594678,23.4353584\r\n1504,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.7332046,3.8729597,36.0801734,75.3772177,73.0606741,73.7635883,19.0447593,14.2518337,17.3802081,57.9543749,26.9373426,53.0256249,41.4736299,35.1267649,59.1970628,3.4404194,30.0656421,23.4005011,3.6779329,3.760656,37.1061514,74.5035815,73.4867987,73.7467985,18.9758445,15.5211722,17.5125539,58.2099945,27.9011783,52.3922492,42.858521,36.5782451,60.0158229,3.4161245,29.6594678,23.4353584,3.8386495,3.955797,38.1936614,74.0716939,72.4547083,72.987712,18.5290649,16.7358483,17.7215782,57.7788938,27.1155439,53.5188038,44.4382177,38.0633671,61.3493456,3.536495,29.7869445,24.623021\r\n1505,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.6779329,3.760656,37.1061514,74.5035815,73.4867987,73.7467985,18.9758445,15.5211722,17.5125539,58.2099945,27.9011783,52.3922492,42.858521,36.5782451,60.0158229,3.4161245,29.6594678,23.4353584,3.8386495,3.955797,38.1936614,74.0716939,72.4547083,72.987712,18.5290649,16.7358483,17.7215782,57.7788938,27.1155439,53.5188038,44.4382177,38.0633671,61.3493456,3.536495,29.7869445,24.623021,3.620903,3.7397262,38.3533676,73.1993904,70.5816419,71.127831,19.7396496,17.3531473,17.7756844,58.1522033,28.0113158,53.2293932,44.9769675,38.5044506,62.1431057,4.1415593,30.0134845,25.3335991\r\n1506,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.8386495,3.955797,38.1936614,74.0716939,72.4547083,72.987712,18.5290649,16.7358483,17.7215782,57.7788938,27.1155439,53.5188038,44.4382177,38.0633671,61.3493456,3.536495,29.7869445,24.623021,3.620903,3.7397262,38.3533676,73.1993904,70.5816419,71.127831,19.7396496,17.3531473,17.7756844,58.1522033,28.0113158,53.2293932,44.9769675,38.5044506,62.1431057,4.1415593,30.0134845,25.3335991,3.5516914,3.6612106,38.4268693,74.60125,71.3095928,71.7496607,19.5851742,17.7778941,17.8694927,58.0886348,27.9952125,55.2319695,44.6640015,38.165077,62.2544248,4.5983627,30.3735886,26.1697768\r\n1507,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.620903,3.7397262,38.3533676,73.1993904,70.5816419,71.127831,19.7396496,17.3531473,17.7756844,58.1522033,28.0113158,53.2293932,44.9769675,38.5044506,62.1431057,4.1415593,30.0134845,25.3335991,3.5516914,3.6612106,38.4268693,74.60125,71.3095928,71.7496607,19.5851742,17.7778941,17.8694927,58.0886348,27.9952125,55.2319695,44.6640015,38.165077,62.2544248,4.5983627,30.3735886,26.1697768,3.343562,3.4142513,38.5776469,73.3982195,71.0835885,70.5012892,19.8851144,17.8277568,17.9007025,58.2743115,28.3387134,54.6855987,44.9023022,38.2493385,62.5237287,4.3648678,30.890081,27.4559595\r\n1508,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.5516914,3.6612106,38.4268693,74.60125,71.3095928,71.7496607,19.5851742,17.7778941,17.8694927,58.0886348,27.9952125,55.2319695,44.6640015,38.165077,62.2544248,4.5983627,30.3735886,26.1697768,3.343562,3.4142513,38.5776469,73.3982195,71.0835885,70.5012892,19.8851144,17.8277568,17.9007025,58.2743115,28.3387134,54.6855987,44.9023022,38.2493385,62.5237287,4.3648678,30.890081,27.4559595,3.475337,3.545102,38.0137686,73.9934603,71.5178256,70.8006271,19.7964988,18.6832886,19.0444494,58.5570777,28.5295617,55.0145539,44.6851866,38.2183377,63.9142768,4.5651713,32.5921335,27.8849983\r\n1509,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.343562,3.4142513,38.5776469,73.3982195,71.0835885,70.5012892,19.8851144,17.8277568,17.9007025,58.2743115,28.3387134,54.6855987,44.9023022,38.2493385,62.5237287,4.3648678,30.890081,27.4559595,3.475337,3.545102,38.0137686,73.9934603,71.5178256,70.8006271,19.7964988,18.6832886,19.0444494,58.5570777,28.5295617,55.0145539,44.6851866,38.2183377,63.9142768,4.5651713,32.5921335,27.8849983,3.4105131,3.5260691,37.5076853,72.9572115,70.1529615,69.9588015,19.8671487,19.4289117,18.8776363,58.7029181,29.2583156,54.6965426,44.2778442,38.1942626,63.7976831,4.5318011,33.3880328,27.4380456\r\n1510,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.475337,3.545102,38.0137686,73.9934603,71.5178256,70.8006271,19.7964988,18.6832886,19.0444494,58.5570777,28.5295617,55.0145539,44.6851866,38.2183377,63.9142768,4.5651713,32.5921335,27.8849983,3.4105131,3.5260691,37.5076853,72.9572115,70.1529615,69.9588015,19.8671487,19.4289117,18.8776363,58.7029181,29.2583156,54.6965426,44.2778442,38.1942626,63.7976831,4.5318011,33.3880328,27.4380456,3.5690559,3.7432598,37.3763337,72.6630932,70.299428,69.2991493,19.7324076,19.8602806,18.2124728,58.3595324,28.7183369,54.3369444,44.309534,38.3362613,64.9059054,4.562531,34.8866147,29.8189091\r\n1511,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.4105131,3.5260691,37.5076853,72.9572115,70.1529615,69.9588015,19.8671487,19.4289117,18.8776363,58.7029181,29.2583156,54.6965426,44.2778442,38.1942626,63.7976831,4.5318011,33.3880328,27.4380456,3.5690559,3.7432598,37.3763337,72.6630932,70.299428,69.2991493,19.7324076,19.8602806,18.2124728,58.3595324,28.7183369,54.3369444,44.309534,38.3362613,64.9059054,4.562531,34.8866147,29.8189091,3.6264548,3.746816,36.3052404,72.6830675,70.5819212,70.0542674,20.015031,20.3854746,18.1790753,59.2129689,29.4384026,53.949984,43.1021245,37.1690365,65.2852765,4.5875709,35.628814,29.8351097\r\n1512,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.5690559,3.7432598,37.3763337,72.6630932,70.299428,69.2991493,19.7324076,19.8602806,18.2124728,58.3595324,28.7183369,54.3369444,44.309534,38.3362613,64.9059054,4.562531,34.8866147,29.8189091,3.6264548,3.746816,36.3052404,72.6830675,70.5819212,70.0542674,20.015031,20.3854746,18.1790753,59.2129689,29.4384026,53.949984,43.1021245,37.1690365,65.2852765,4.5875709,35.628814,29.8351097,3.6399304,3.773389,35.5945449,71.5869431,70.4550122,70.7773498,19.6871913,20.9410426,17.9275236,59.1669067,29.744626,53.8937692,42.5467904,36.6685694,65.7490756,4.0194333,36.521845,30.1402598\r\n1513,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.6264548,3.746816,36.3052404,72.6830675,70.5819212,70.0542674,20.015031,20.3854746,18.1790753,59.2129689,29.4384026,53.949984,43.1021245,37.1690365,65.2852765,4.5875709,35.628814,29.8351097,3.6399304,3.773389,35.5945449,71.5869431,70.4550122,70.7773498,19.6871913,20.9410426,17.9275236,59.1669067,29.744626,53.8937692,42.5467904,36.6685694,65.7490756,4.0194333,36.521845,30.1402598,3.5112741,3.6821539,36.023257,70.7399507,69.249249,70.7381341,20.1105141,21.2649342,18.2033015,60.1076658,29.9858489,52.4812626,43.0648863,37.3892576,65.7689618,3.8579134,36.8707962,30.3717931\r\n1514,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.6399304,3.773389,35.5945449,71.5869431,70.4550122,70.7773498,19.6871913,20.9410426,17.9275236,59.1669067,29.744626,53.8937692,42.5467904,36.6685694,65.7490756,4.0194333,36.521845,30.1402598,3.5112741,3.6821539,36.023257,70.7399507,69.249249,70.7381341,20.1105141,21.2649342,18.2033015,60.1076658,29.9858489,52.4812626,43.0648863,37.3892576,65.7689618,3.8579134,36.8707962,30.3717931,3.6549616,3.854557,36.4865797,71.6299672,69.4282657,71.8125975,19.9483494,22.2265794,19.6708012,58.6994641,29.094855,51.938245,43.5084624,37.7104698,65.6367368,4.1179744,35.8613706,31.2766108\r\n1515,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.5112741,3.6821539,36.023257,70.7399507,69.249249,70.7381341,20.1105141,21.2649342,18.2033015,60.1076658,29.9858489,52.4812626,43.0648863,37.3892576,65.7689618,3.8579134,36.8707962,30.3717931,3.6549616,3.854557,36.4865797,71.6299672,69.4282657,71.8125975,19.9483494,22.2265794,19.6708012,58.6994641,29.094855,51.938245,43.5084624,37.7104698,65.6367368,4.1179744,35.8613706,31.2766108,3.6031009,3.8131465,36.9087899,71.8376598,69.3537327,71.0843201,19.8242443,22.1795726,18.494444,58.3894133,29.9060269,52.538922,43.4582909,37.6800018,64.9978632,3.9246657,34.7797828,31.3321733\r\n1516,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.6549616,3.854557,36.4865797,71.6299672,69.4282657,71.8125975,19.9483494,22.2265794,19.6708012,58.6994641,29.094855,51.938245,43.5084624,37.7104698,65.6367368,4.1179744,35.8613706,31.2766108,3.6031009,3.8131465,36.9087899,71.8376598,69.3537327,71.0843201,19.8242443,22.1795726,18.494444,58.3894133,29.9060269,52.538922,43.4582909,37.6800018,64.9978632,3.9246657,34.7797828,31.3321733,3.4345492,3.6174892,37.463259,71.7407618,69.4896832,71.5617623,20.2258043,22.1149577,18.4199861,58.7906091,30.0245101,51.4565087,43.9095692,37.8254463,65.5134118,4.1821301,33.7829575,32.0768127\r\n1517,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.6031009,3.8131465,36.9087899,71.8376598,69.3537327,71.0843201,19.8242443,22.1795726,18.494444,58.3894133,29.9060269,52.538922,43.4582909,37.6800018,64.9978632,3.9246657,34.7797828,31.3321733,3.4345492,3.6174892,37.463259,71.7407618,69.4896832,71.5617623,20.2258043,22.1149577,18.4199861,58.7906091,30.0245101,51.4565087,43.9095692,37.8254463,65.5134118,4.1821301,33.7829575,32.0768127,3.2678833,3.4056894,36.5680217,71.967506,69.2772914,71.7181455,20.5064221,22.0182243,19.1930706,59.0342628,30.4432284,50.990085,42.7841528,36.4056025,65.3699423,4.0781908,34.1247048,31.210553\r\n1518,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.4345492,3.6174892,37.463259,71.7407618,69.4896832,71.5617623,20.2258043,22.1149577,18.4199861,58.7906091,30.0245101,51.4565087,43.9095692,37.8254463,65.5134118,4.1821301,33.7829575,32.0768127,3.2678833,3.4056894,36.5680217,71.967506,69.2772914,71.7181455,20.5064221,22.0182243,19.1930706,59.0342628,30.4432284,50.990085,42.7841528,36.4056025,65.3699423,4.0781908,34.1247048,31.210553,3.0134492,3.1873306,36.4333691,71.9053769,69.1319773,70.8220574,20.2615523,22.5475373,18.3658337,58.0549107,29.8966244,50.2653225,42.8794542,36.4117654,65.4204745,4.0336683,34.2236325,31.6073998\r\n1519,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.2678833,3.4056894,36.5680217,71.967506,69.2772914,71.7181455,20.5064221,22.0182243,19.1930706,59.0342628,30.4432284,50.990085,42.7841528,36.4056025,65.3699423,4.0781908,34.1247048,31.210553,3.0134492,3.1873306,36.4333691,71.9053769,69.1319773,70.8220574,20.2615523,22.5475373,18.3658337,58.0549107,29.8966244,50.2653225,42.8794542,36.4117654,65.4204745,4.0336683,34.2236325,31.6073998,2.8280586,3.0049596,36.7162886,72.715207,69.8434571,70.8659542,19.7709647,22.8027987,18.7867534,58.3274484,29.5946812,50.1583271,43.0815327,36.8431294,65.4742767,4.1319591,33.1755177,31.724486\r\n1520,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,3.0134492,3.1873306,36.4333691,71.9053769,69.1319773,70.8220574,20.2615523,22.5475373,18.3658337,58.0549107,29.8966244,50.2653225,42.8794542,36.4117654,65.4204745,4.0336683,34.2236325,31.6073998,2.8280586,3.0049596,36.7162886,72.715207,69.8434571,70.8659542,19.7709647,22.8027987,18.7867534,58.3274484,29.5946812,50.1583271,43.0815327,36.8431294,65.4742767,4.1319591,33.1755177,31.724486,2.8520224,2.9776071,35.5292527,72.4877078,70.0380299,70.4467949,19.8177146,22.8525117,17.9104866,58.2278914,30.3998055,48.9212508,41.7590488,35.6188484,65.7373801,4.4721592,32.0514472,30.6672771\r\n1521,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.8280586,3.0049596,36.7162886,72.715207,69.8434571,70.8659542,19.7709647,22.8027987,18.7867534,58.3274484,29.5946812,50.1583271,43.0815327,36.8431294,65.4742767,4.1319591,33.1755177,31.724486,2.8520224,2.9776071,35.5292527,72.4877078,70.0380299,70.4467949,19.8177146,22.8525117,17.9104866,58.2278914,30.3998055,48.9212508,41.7590488,35.6188484,65.7373801,4.4721592,32.0514472,30.6672771,2.4439016,2.5120224,34.5878938,71.576565,70.4343253,70.1287963,20.0720768,23.5539547,16.7618875,59.4262028,31.5659321,48.5206127,40.3546787,34.5647618,66.0604601,4.4134584,32.1444018,29.0046931\r\n1522,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.8520224,2.9776071,35.5292527,72.4877078,70.0380299,70.4467949,19.8177146,22.8525117,17.9104866,58.2278914,30.3998055,48.9212508,41.7590488,35.6188484,65.7373801,4.4721592,32.0514472,30.6672771,2.4439016,2.5120224,34.5878938,71.576565,70.4343253,70.1287963,20.0720768,23.5539547,16.7618875,59.4262028,31.5659321,48.5206127,40.3546787,34.5647618,66.0604601,4.4134584,32.1444018,29.0046931,2.4904093,2.5820118,33.4094861,71.405219,70.6565297,70.1617016,20.4484571,23.4910893,17.1058618,59.7566775,31.1834148,47.6146563,39.4536041,33.590551,66.6784153,4.5837238,33.0504195,29.4655006\r\n1523,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.4439016,2.5120224,34.5878938,71.576565,70.4343253,70.1287963,20.0720768,23.5539547,16.7618875,59.4262028,31.5659321,48.5206127,40.3546787,34.5647618,66.0604601,4.4134584,32.1444018,29.0046931,2.4904093,2.5820118,33.4094861,71.405219,70.6565297,70.1617016,20.4484571,23.4910893,17.1058618,59.7566775,31.1834148,47.6146563,39.4536041,33.590551,66.6784153,4.5837238,33.0504195,29.4655006,2.5323858,2.6522025,31.7694195,72.2216713,70.9101611,70.1245145,20.8295142,23.67019,16.9490902,59.6719559,31.7793586,48.5391339,37.4839067,32.0186867,67.3148795,4.4912658,33.2995744,27.7752196\r\n1524,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.4904093,2.5820118,33.4094861,71.405219,70.6565297,70.1617016,20.4484571,23.4910893,17.1058618,59.7566775,31.1834148,47.6146563,39.4536041,33.590551,66.6784153,4.5837238,33.0504195,29.4655006,2.5323858,2.6522025,31.7694195,72.2216713,70.9101611,70.1245145,20.8295142,23.67019,16.9490902,59.6719559,31.7793586,48.5391339,37.4839067,32.0186867,67.3148795,4.4912658,33.2995744,27.7752196,2.4646245,2.6379865,31.4472611,71.2739533,70.2565741,68.8512104,20.6587036,24.0237244,16.7952977,60.4564757,32.2279624,48.0512544,36.6440466,31.7748437,67.4401746,4.616119,32.271239,27.1659129\r\n1525,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.5323858,2.6522025,31.7694195,72.2216713,70.9101611,70.1245145,20.8295142,23.67019,16.9490902,59.6719559,31.7793586,48.5391339,37.4839067,32.0186867,67.3148795,4.4912658,33.2995744,27.7752196,2.4646245,2.6379865,31.4472611,71.2739533,70.2565741,68.8512104,20.6587036,24.0237244,16.7952977,60.4564757,32.2279624,48.0512544,36.6440466,31.7748437,67.4401746,4.616119,32.271239,27.1659129,2.44704,2.5725392,30.9807293,70.9883341,68.9508611,68.9604562,20.9062284,23.6809662,17.6388076,61.7885447,32.9262264,46.2404136,36.0994749,31.3294475,67.0220579,4.6703286,31.4523626,27.3659483\r\n1526,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.4646245,2.6379865,31.4472611,71.2739533,70.2565741,68.8512104,20.6587036,24.0237244,16.7952977,60.4564757,32.2279624,48.0512544,36.6440466,31.7748437,67.4401746,4.616119,32.271239,27.1659129,2.44704,2.5725392,30.9807293,70.9883341,68.9508611,68.9604562,20.9062284,23.6809662,17.6388076,61.7885447,32.9262264,46.2404136,36.0994749,31.3294475,67.0220579,4.6703286,31.4523626,27.3659483,2.9225075,3.0061335,31.3134149,71.5637524,69.5616963,69.3551168,22.2571307,23.5641599,17.227475,61.8021312,34.7190078,45.838239,35.0663483,30.2197383,66.5167673,4.9818821,30.9457433,28.5564562\r\n1527,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.44704,2.5725392,30.9807293,70.9883341,68.9508611,68.9604562,20.9062284,23.6809662,17.6388076,61.7885447,32.9262264,46.2404136,36.0994749,31.3294475,67.0220579,4.6703286,31.4523626,27.3659483,2.9225075,3.0061335,31.3134149,71.5637524,69.5616963,69.3551168,22.2571307,23.5641599,17.227475,61.8021312,34.7190078,45.838239,35.0663483,30.2197383,66.5167673,4.9818821,30.9457433,28.5564562,2.743309,2.8280012,30.8227912,70.5988647,69.5566659,69.839368,22.5440425,22.7176176,17.9226278,61.0539899,34.5266117,46.056972,34.8225842,30.1054664,66.6007831,4.7574688,30.8754885,28.6850015\r\n1528,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.9225075,3.0061335,31.3134149,71.5637524,69.5616963,69.3551168,22.2571307,23.5641599,17.227475,61.8021312,34.7190078,45.838239,35.0663483,30.2197383,66.5167673,4.9818821,30.9457433,28.5564562,2.743309,2.8280012,30.8227912,70.5988647,69.5566659,69.839368,22.5440425,22.7176176,17.9226278,61.0539899,34.5266117,46.056972,34.8225842,30.1054664,66.6007831,4.7574688,30.8754885,28.6850015,2.6038986,2.7060893,29.4273366,70.0096148,68.2454761,68.6926457,22.7291508,22.0983401,18.1230918,60.7915797,34.3577677,45.9017588,33.6601989,28.8328595,66.3520494,4.7901412,30.5036314,28.1562163\r\n1529,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.743309,2.8280012,30.8227912,70.5988647,69.5566659,69.839368,22.5440425,22.7176176,17.9226278,61.0539899,34.5266117,46.056972,34.8225842,30.1054664,66.6007831,4.7574688,30.8754885,28.6850015,2.6038986,2.7060893,29.4273366,70.0096148,68.2454761,68.6926457,22.7291508,22.0983401,18.1230918,60.7915797,34.3577677,45.9017588,33.6601989,28.8328595,66.3520494,4.7901412,30.5036314,28.1562163,2.701835,2.7815308,29.1795009,68.5760799,66.8942564,68.2801045,23.0274818,22.420969,18.2342475,59.8892221,34.4887397,44.6393494,32.8688979,28.1253271,66.3598166,4.9936981,30.0286072,27.4014811\r\n1530,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.6038986,2.7060893,29.4273366,70.0096148,68.2454761,68.6926457,22.7291508,22.0983401,18.1230918,60.7915797,34.3577677,45.9017588,33.6601989,28.8328595,66.3520494,4.7901412,30.5036314,28.1562163,2.701835,2.7815308,29.1795009,68.5760799,66.8942564,68.2801045,23.0274818,22.420969,18.2342475,59.8892221,34.4887397,44.6393494,32.8688979,28.1253271,66.3598166,4.9936981,30.0286072,27.4014811,2.623038,2.6874055,28.5698065,67.5967711,66.1377379,68.19608,22.6819141,23.2257769,18.5216634,60.5972933,34.7228828,43.2949663,32.5008704,27.6501063,65.0748611,4.9549363,30.0540303,27.3626554\r\n1531,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.701835,2.7815308,29.1795009,68.5760799,66.8942564,68.2801045,23.0274818,22.420969,18.2342475,59.8892221,34.4887397,44.6393494,32.8688979,28.1253271,66.3598166,4.9936981,30.0286072,27.4014811,2.623038,2.6874055,28.5698065,67.5967711,66.1377379,68.19608,22.6819141,23.2257769,18.5216634,60.5972933,34.7228828,43.2949663,32.5008704,27.6501063,65.0748611,4.9549363,30.0540303,27.3626554,2.5750393,2.5750393,27.4521275,67.4289381,65.8948254,67.9175797,23.6711874,22.2040627,18.3973551,59.5781702,34.6783056,43.7821525,31.7316256,26.7641151,64.7523863,5.0670649,29.6567339,26.1073901\r\n1532,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.623038,2.6874055,28.5698065,67.5967711,66.1377379,68.19608,22.6819141,23.2257769,18.5216634,60.5972933,34.7228828,43.2949663,32.5008704,27.6501063,65.0748611,4.9549363,30.0540303,27.3626554,2.5750393,2.5750393,27.4521275,67.4289381,65.8948254,67.9175797,23.6711874,22.2040627,18.3973551,59.5781702,34.6783056,43.7821525,31.7316256,26.7641151,64.7523863,5.0670649,29.6567339,26.1073901,2.6378455,2.6667422,26.2454674,66.3378909,66.5836129,68.408917,23.9680509,22.5879829,18.9585599,59.3243823,34.5005687,44.7785532,30.5300953,25.4143437,64.5291154,5.1284351,29.6209471,25.1583749\r\n1533,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.5750393,2.5750393,27.4521275,67.4289381,65.8948254,67.9175797,23.6711874,22.2040627,18.3973551,59.5781702,34.6783056,43.7821525,31.7316256,26.7641151,64.7523863,5.0670649,29.6567339,26.1073901,2.6378455,2.6667422,26.2454674,66.3378909,66.5836129,68.408917,23.9680509,22.5879829,18.9585599,59.3243823,34.5005687,44.7785532,30.5300953,25.4143437,64.5291154,5.1284351,29.6209471,25.1583749,2.2255854,2.2672212,24.467521,65.3618996,66.0989873,67.7160541,23.3273103,22.0679646,19.2799584,59.6472162,33.4011177,43.905889,29.8719712,24.8154022,64.209368,4.8957857,29.4707985,22.5366837\r\n1534,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.6378455,2.6667422,26.2454674,66.3378909,66.5836129,68.408917,23.9680509,22.5879829,18.9585599,59.3243823,34.5005687,44.7785532,30.5300953,25.4143437,64.5291154,5.1284351,29.6209471,25.1583749,2.2255854,2.2672212,24.467521,65.3618996,66.0989873,67.7160541,23.3273103,22.0679646,19.2799584,59.6472162,33.4011177,43.905889,29.8719712,24.8154022,64.209368,4.8957857,29.4707985,22.5366837,2.1564251,2.198816,23.6509323,67.105128,67.4992308,68.5074703,23.599889,22.3562766,18.6825926,60.4613342,33.6390057,44.4340445,29.0078934,23.8074609,63.4255589,4.6076761,29.2942854,22.5057485\r\n1535,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.2255854,2.2672212,24.467521,65.3618996,66.0989873,67.7160541,23.3273103,22.0679646,19.2799584,59.6472162,33.4011177,43.905889,29.8719712,24.8154022,64.209368,4.8957857,29.4707985,22.5366837,2.1564251,2.198816,23.6509323,67.105128,67.4992308,68.5074703,23.599889,22.3562766,18.6825926,60.4613342,33.6390057,44.4340445,29.0078934,23.8074609,63.4255589,4.6076761,29.2942854,22.5057485,2.1654564,2.2054151,22.6958267,66.1723974,67.153986,68.0368345,24.0230003,21.8339645,18.5782088,61.2842735,34.6065951,43.638392,28.6712101,23.3531722,62.9678923,4.5796419,29.6441681,22.7416948\r\n1536,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.1564251,2.198816,23.6509323,67.105128,67.4992308,68.5074703,23.599889,22.3562766,18.6825926,60.4613342,33.6390057,44.4340445,29.0078934,23.8074609,63.4255589,4.6076761,29.2942854,22.5057485,2.1654564,2.2054151,22.6958267,66.1723974,67.153986,68.0368345,24.0230003,21.8339645,18.5782088,61.2842735,34.6065951,43.638392,28.6712101,23.3531722,62.9678923,4.5796419,29.6441681,22.7416948,1.8565406,1.8876228,20.9344109,65.6559913,67.9796837,67.5696222,24.2394098,21.2651884,18.9225345,62.7743874,35.3465121,43.8899432,27.2975143,22.1028365,61.9840389,4.5078433,28.2101132,21.9566528\r\n1537,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,2.1654564,2.2054151,22.6958267,66.1723974,67.153986,68.0368345,24.0230003,21.8339645,18.5782088,61.2842735,34.6065951,43.638392,28.6712101,23.3531722,62.9678923,4.5796419,29.6441681,22.7416948,1.8565406,1.8876228,20.9344109,65.6559913,67.9796837,67.5696222,24.2394098,21.2651884,18.9225345,62.7743874,35.3465121,43.8899432,27.2975143,22.1028365,61.9840389,4.5078433,28.2101132,21.9566528,1.6370908,1.6683747,19.7900418,65.4010348,68.5971424,67.5289485,23.9432064,20.649185,19.1346972,63.2942109,36.5022866,43.9534572,26.0722144,21.162714,62.5968072,4.649385,27.6021685,21.8796236\r\n1538,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.8565406,1.8876228,20.9344109,65.6559913,67.9796837,67.5696222,24.2394098,21.2651884,18.9225345,62.7743874,35.3465121,43.8899432,27.2975143,22.1028365,61.9840389,4.5078433,28.2101132,21.9566528,1.6370908,1.6683747,19.7900418,65.4010348,68.5971424,67.5289485,23.9432064,20.649185,19.1346972,63.2942109,36.5022866,43.9534572,26.0722144,21.162714,62.5968072,4.649385,27.6021685,21.8796236,1.6002388,1.6706166,19.3215575,64.7191851,67.7104582,68.0993815,24.4179761,20.30892,18.8355348,64.6870547,37.4168472,42.9819538,25.5092228,20.4844934,61.4342736,5.0767824,28.1818159,21.7987011\r\n1539,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.6370908,1.6683747,19.7900418,65.4010348,68.5971424,67.5289485,23.9432064,20.649185,19.1346972,63.2942109,36.5022866,43.9534572,26.0722144,21.162714,62.5968072,4.649385,27.6021685,21.8796236,1.6002388,1.6706166,19.3215575,64.7191851,67.7104582,68.0993815,24.4179761,20.30892,18.8355348,64.6870547,37.4168472,42.9819538,25.5092228,20.4844934,61.4342736,5.0767824,28.1818159,21.7987011,1.4825076,1.5218809,19.1635439,64.7685246,66.419846,67.2422226,25.2977466,19.1244357,17.866316,65.8268576,38.7841056,41.73679,24.5457517,19.9317157,60.8279161,5.0941503,27.6780766,20.6577302\r\n1540,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.6002388,1.6706166,19.3215575,64.7191851,67.7104582,68.0993815,24.4179761,20.30892,18.8355348,64.6870547,37.4168472,42.9819538,25.5092228,20.4844934,61.4342736,5.0767824,28.1818159,21.7987011,1.4825076,1.5218809,19.1635439,64.7685246,66.419846,67.2422226,25.2977466,19.1244357,17.866316,65.8268576,38.7841056,41.73679,24.5457517,19.9317157,60.8279161,5.0941503,27.6780766,20.6577302,1.291723,1.3373886,17.7920972,64.7875908,65.8906947,67.1515166,25.9211298,19.8987889,17.3446248,66.9198071,39.2420616,41.8331643,23.3488006,18.5514103,60.698753,5.4956444,28.8914879,20.2627225\r\n1541,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.4825076,1.5218809,19.1635439,64.7685246,66.419846,67.2422226,25.2977466,19.1244357,17.866316,65.8268576,38.7841056,41.73679,24.5457517,19.9317157,60.8279161,5.0941503,27.6780766,20.6577302,1.291723,1.3373886,17.7920972,64.7875908,65.8906947,67.1515166,25.9211298,19.8987889,17.3446248,66.9198071,39.2420616,41.8331643,23.3488006,18.5514103,60.698753,5.4956444,28.8914879,20.2627225,1.3212035,1.3795975,17.1390634,63.6699965,64.7534832,65.8849796,26.2494621,19.5654158,17.5300064,66.2323579,39.0812171,41.5329176,22.6172316,17.6376831,60.2556282,5.7859501,29.2536887,18.4415498\r\n1542,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.291723,1.3373886,17.7920972,64.7875908,65.8906947,67.1515166,25.9211298,19.8987889,17.3446248,66.9198071,39.2420616,41.8331643,23.3488006,18.5514103,60.698753,5.4956444,28.8914879,20.2627225,1.3212035,1.3795975,17.1390634,63.6699965,64.7534832,65.8849796,26.2494621,19.5654158,17.5300064,66.2323579,39.0812171,41.5329176,22.6172316,17.6376831,60.2556282,5.7859501,29.2536887,18.4415498,1.3938392,1.4627985,16.766758,65.2647754,67.3006718,68.0516363,26.2645106,18.7973852,17.2238366,66.7498866,38.9933474,42.1818648,21.4829736,16.8161992,60.0431846,6.021813,29.3241491,19.2985719\r\n1543,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3212035,1.3795975,17.1390634,63.6699965,64.7534832,65.8849796,26.2494621,19.5654158,17.5300064,66.2323579,39.0812171,41.5329176,22.6172316,17.6376831,60.2556282,5.7859501,29.2536887,18.4415498,1.3938392,1.4627985,16.766758,65.2647754,67.3006718,68.0516363,26.2645106,18.7973852,17.2238366,66.7498866,38.9933474,42.1818648,21.4829736,16.8161992,60.0431846,6.021813,29.3241491,19.2985719,1.5248452,1.6045301,16.832576,65.507036,67.2043149,69.5060712,26.5017798,19.4804344,17.1656385,66.6254994,39.1026389,43.0189793,21.622731,16.57026,59.1271709,6.3220218,30.2700635,18.2938743\r\n1544,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3938392,1.4627985,16.766758,65.2647754,67.3006718,68.0516363,26.2645106,18.7973852,17.2238366,66.7498866,38.9933474,42.1818648,21.4829736,16.8161992,60.0431846,6.021813,29.3241491,19.2985719,1.5248452,1.6045301,16.832576,65.507036,67.2043149,69.5060712,26.5017798,19.4804344,17.1656385,66.6254994,39.1026389,43.0189793,21.622731,16.57026,59.1271709,6.3220218,30.2700635,18.2938743,1.6381226,1.7179346,17.1692246,65.7941303,67.9433672,70.2366646,27.5049318,18.8783982,16.8184555,65.7666927,38.7935007,42.7684378,20.9712332,16.039108,57.1791043,6.5411232,31.0228907,18.0059347\r\n1545,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.5248452,1.6045301,16.832576,65.507036,67.2043149,69.5060712,26.5017798,19.4804344,17.1656385,66.6254994,39.1026389,43.0189793,21.622731,16.57026,59.1271709,6.3220218,30.2700635,18.2938743,1.6381226,1.7179346,17.1692246,65.7941303,67.9433672,70.2366646,27.5049318,18.8783982,16.8184555,65.7666927,38.7935007,42.7684378,20.9712332,16.039108,57.1791043,6.5411232,31.0228907,18.0059347,1.5816972,1.6649434,16.6903677,66.3724182,69.6170796,70.6562675,26.5579968,19.1415961,16.65859,64.9514917,37.7455469,42.5403842,21.1747259,15.9493172,57.1330064,5.7587892,31.1490832,17.8027002\r\n1546,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.6381226,1.7179346,17.1692246,65.7941303,67.9433672,70.2366646,27.5049318,18.8783982,16.8184555,65.7666927,38.7935007,42.7684378,20.9712332,16.039108,57.1791043,6.5411232,31.0228907,18.0059347,1.5816972,1.6649434,16.6903677,66.3724182,69.6170796,70.6562675,26.5579968,19.1415961,16.65859,64.9514917,37.7455469,42.5403842,21.1747259,15.9493172,57.1330064,5.7587892,31.1490832,17.8027002,1.5972854,1.6792807,16.7245551,66.5524133,70.6469655,69.5885692,26.0650469,18.5004351,16.049499,64.5077318,37.1567206,42.6098139,21.4629309,16.3614024,56.5769075,5.9282095,32.2339126,17.2593451\r\n1547,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.5816972,1.6649434,16.6903677,66.3724182,69.6170796,70.6562675,26.5579968,19.1415961,16.65859,64.9514917,37.7455469,42.5403842,21.1747259,15.9493172,57.1330064,5.7587892,31.1490832,17.8027002,1.5972854,1.6792807,16.7245551,66.5524133,70.6469655,69.5885692,26.0650469,18.5004351,16.049499,64.5077318,37.1567206,42.6098139,21.4629309,16.3614024,56.5769075,5.9282095,32.2339126,17.2593451,1.6318066,1.7199098,16.4150109,67.7213891,71.2578723,70.7127668,26.3610485,17.1505299,16.572843,63.2420887,36.9582171,42.2672535,20.8945239,16.3473181,56.5927793,5.8060246,31.6448165,16.7496001\r\n1548,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.5972854,1.6792807,16.7245551,66.5524133,70.6469655,69.5885692,26.0650469,18.5004351,16.049499,64.5077318,37.1567206,42.6098139,21.4629309,16.3614024,56.5769075,5.9282095,32.2339126,17.2593451,1.6318066,1.7199098,16.4150109,67.7213891,71.2578723,70.7127668,26.3610485,17.1505299,16.572843,63.2420887,36.9582171,42.2672535,20.8945239,16.3473181,56.5927793,5.8060246,31.6448165,16.7496001,1.5469722,1.6240474,15.3520624,67.2719347,69.9590717,71.195505,25.624875,16.5635235,16.332007,63.3310544,36.8506044,40.7753372,19.9928868,15.4784883,57.112528,5.6782229,31.0377547,16.2074852\r\n1549,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.6318066,1.7199098,16.4150109,67.7213891,71.2578723,70.7127668,26.3610485,17.1505299,16.572843,63.2420887,36.9582171,42.2672535,20.8945239,16.3473181,56.5927793,5.8060246,31.6448165,16.7496001,1.5469722,1.6240474,15.3520624,67.2719347,69.9590717,71.195505,25.624875,16.5635235,16.332007,63.3310544,36.8506044,40.7753372,19.9928868,15.4784883,57.112528,5.6782229,31.0377547,16.2074852,1.7046864,1.7718992,16.0822697,67.6566687,68.8130428,70.7415791,25.1642503,17.4992498,16.9471446,62.470131,36.1584816,39.1813997,20.3170648,15.5204291,56.8207379,5.5210071,31.8709787,14.8524365\r\n1550,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.5469722,1.6240474,15.3520624,67.2719347,69.9590717,71.195505,25.624875,16.5635235,16.332007,63.3310544,36.8506044,40.7753372,19.9928868,15.4784883,57.112528,5.6782229,31.0377547,16.2074852,1.7046864,1.7718992,16.0822697,67.6566687,68.8130428,70.7415791,25.1642503,17.4992498,16.9471446,62.470131,36.1584816,39.1813997,20.3170648,15.5204291,56.8207379,5.5210071,31.8709787,14.8524365,1.560021,1.628117,15.6213669,68.2429355,67.778921,69.887427,24.7365134,15.4335207,15.7018473,63.3675191,36.8783683,38.5229678,19.8190793,15.2361111,56.5198957,5.1983568,32.0455305,13.8128337\r\n1551,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.7046864,1.7718992,16.0822697,67.6566687,68.8130428,70.7415791,25.1642503,17.4992498,16.9471446,62.470131,36.1584816,39.1813997,20.3170648,15.5204291,56.8207379,5.5210071,31.8709787,14.8524365,1.560021,1.628117,15.6213669,68.2429355,67.778921,69.887427,24.7365134,15.4335207,15.7018473,63.3675191,36.8783683,38.5229678,19.8190793,15.2361111,56.5198957,5.1983568,32.0455305,13.8128337,1.4802022,1.5489127,15.1304629,67.2922273,65.2377822,67.8445617,25.2446621,14.7521807,15.9600401,63.8683106,37.0703872,37.2780463,19.6450619,14.9584053,55.7989002,5.318661,31.7225384,13.5366387\r\n1552,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.560021,1.628117,15.6213669,68.2429355,67.778921,69.887427,24.7365134,15.4335207,15.7018473,63.3675191,36.8783683,38.5229678,19.8190793,15.2361111,56.5198957,5.1983568,32.0455305,13.8128337,1.4802022,1.5489127,15.1304629,67.2922273,65.2377822,67.8445617,25.2446621,14.7521807,15.9600401,63.8683106,37.0703872,37.2780463,19.6450619,14.9584053,55.7989002,5.318661,31.7225384,13.5366387,1.4807992,1.5052488,14.2957941,68.9081292,65.4875846,69.2902268,25.584471,14.3552434,16.2878925,63.4848932,37.5510613,38.0867938,18.2443488,13.8666956,55.355294,5.8102403,31.3086158,15.6790879\r\n1553,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.4802022,1.5489127,15.1304629,67.2922273,65.2377822,67.8445617,25.2446621,14.7521807,15.9600401,63.8683106,37.0703872,37.2780463,19.6450619,14.9584053,55.7989002,5.318661,31.7225384,13.5366387,1.4807992,1.5052488,14.2957941,68.9081292,65.4875846,69.2902268,25.584471,14.3552434,16.2878925,63.4848932,37.5510613,38.0867938,18.2443488,13.8666956,55.355294,5.8102403,31.3086158,15.6790879,1.4026394,1.4275937,13.0023889,69.3882789,65.9587127,71.1559944,25.8049628,13.6625292,16.3384747,62.7873437,38.0227509,38.2599119,17.1297244,12.3517683,54.7521117,5.7482317,30.5992444,16.9211701\r\n1554,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.4807992,1.5052488,14.2957941,68.9081292,65.4875846,69.2902268,25.584471,14.3552434,16.2878925,63.4848932,37.5510613,38.0867938,18.2443488,13.8666956,55.355294,5.8102403,31.3086158,15.6790879,1.4026394,1.4275937,13.0023889,69.3882789,65.9587127,71.1559944,25.8049628,13.6625292,16.3384747,62.7873437,38.0227509,38.2599119,17.1297244,12.3517683,54.7521117,5.7482317,30.5992444,16.9211701,1.243079,1.2541187,12.7384361,67.6907854,65.7573042,69.6590313,25.2401908,13.0119638,15.4663542,63.0070255,38.1302057,38.779962,16.9816287,11.8429326,53.4898361,5.3560722,30.309254,17.2176803\r\n1555,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.4026394,1.4275937,13.0023889,69.3882789,65.9587127,71.1559944,25.8049628,13.6625292,16.3384747,62.7873437,38.0227509,38.2599119,17.1297244,12.3517683,54.7521117,5.7482317,30.5992444,16.9211701,1.243079,1.2541187,12.7384361,67.6907854,65.7573042,69.6590313,25.2401908,13.0119638,15.4663542,63.0070255,38.1302057,38.779962,16.9816287,11.8429326,53.4898361,5.3560722,30.309254,17.2176803,1.3284082,1.2947992,13.450983,66.3653391,66.1862372,68.6172188,25.9563971,12.8357228,15.0460452,64.1270277,38.2480367,38.9909421,17.28318,12.2374593,52.1102049,5.4816015,29.790882,19.0808369\r\n1556,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.243079,1.2541187,12.7384361,67.6907854,65.7573042,69.6590313,25.2401908,13.0119638,15.4663542,63.0070255,38.1302057,38.779962,16.9816287,11.8429326,53.4898361,5.3560722,30.309254,17.2176803,1.3284082,1.2947992,13.450983,66.3653391,66.1862372,68.6172188,25.9563971,12.8357228,15.0460452,64.1270277,38.2480367,38.9909421,17.28318,12.2374593,52.1102049,5.4816015,29.790882,19.0808369,1.119784,1.0855476,12.6412289,65.7900123,65.9452925,67.4522637,26.8376177,10.4439004,13.8465925,65.489729,39.2887705,40.3543394,16.5034488,11.9180934,50.9440972,5.8391889,29.1203893,16.9034231\r\n1557,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3284082,1.2947992,13.450983,66.3653391,66.1862372,68.6172188,25.9563971,12.8357228,15.0460452,64.1270277,38.2480367,38.9909421,17.28318,12.2374593,52.1102049,5.4816015,29.790882,19.0808369,1.119784,1.0855476,12.6412289,65.7900123,65.9452925,67.4522637,26.8376177,10.4439004,13.8465925,65.489729,39.2887705,40.3543394,16.5034488,11.9180934,50.9440972,5.8391889,29.1203893,16.9034231,1.2272114,1.1812532,12.8119902,65.2930512,66.0670205,66.195736,27.539721,10.8467989,13.6003061,64.5408355,38.5258814,39.2817635,16.8550389,11.9845202,49.8638356,5.8766272,28.7239316,16.7622015\r\n1558,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.119784,1.0855476,12.6412289,65.7900123,65.9452925,67.4522637,26.8376177,10.4439004,13.8465925,65.489729,39.2887705,40.3543394,16.5034488,11.9180934,50.9440972,5.8391889,29.1203893,16.9034231,1.2272114,1.1812532,12.8119902,65.2930512,66.0670205,66.195736,27.539721,10.8467989,13.6003061,64.5408355,38.5258814,39.2817635,16.8550389,11.9845202,49.8638356,5.8766272,28.7239316,16.7622015,1.3314663,1.300469,12.9658045,66.1619115,67.6352947,67.2777716,27.7858068,9.787238,13.2070762,64.4594276,38.0641351,40.8843392,16.848573,11.8549723,49.3107893,5.8372536,29.1136294,17.4627164\r\n1559,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.2272114,1.1812532,12.8119902,65.2930512,66.0670205,66.195736,27.539721,10.8467989,13.6003061,64.5408355,38.5258814,39.2817635,16.8550389,11.9845202,49.8638356,5.8766272,28.7239316,16.7622015,1.3314663,1.300469,12.9658045,66.1619115,67.6352947,67.2777716,27.7858068,9.787238,13.2070762,64.4594276,38.0641351,40.8843392,16.848573,11.8549723,49.3107893,5.8372536,29.1136294,17.4627164,1.1581681,1.1852296,13.3974897,65.9093604,67.7168173,66.3784493,28.3305499,8.3595106,13.4772787,65.0923416,38.2301118,40.8591962,17.1535924,12.1223886,48.1742945,5.8076501,28.6096594,13.757718\r\n1560,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3314663,1.300469,12.9658045,66.1619115,67.6352947,67.2777716,27.7858068,9.787238,13.2070762,64.4594276,38.0641351,40.8843392,16.848573,11.8549723,49.3107893,5.8372536,29.1136294,17.4627164,1.1581681,1.1852296,13.3974897,65.9093604,67.7168173,66.3784493,28.3305499,8.3595106,13.4772787,65.0923416,38.2301118,40.8591962,17.1535924,12.1223886,48.1742945,5.8076501,28.6096594,13.757718,1.205566,1.2485437,13.752642,65.0786533,65.8866418,66.3478453,29.4084602,8.0799507,13.0089674,66.7279081,39.3989892,39.6553963,17.2339197,12.4658866,46.2911841,5.708953,28.811029,12.5002974\r\n1561,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.1581681,1.1852296,13.3974897,65.9093604,67.7168173,66.3784493,28.3305499,8.3595106,13.4772787,65.0923416,38.2301118,40.8591962,17.1535924,12.1223886,48.1742945,5.8076501,28.6096594,13.757718,1.205566,1.2485437,13.752642,65.0786533,65.8866418,66.3478453,29.4084602,8.0799507,13.0089674,66.7279081,39.3989892,39.6553963,17.2339197,12.4658866,46.2911841,5.708953,28.811029,12.5002974,1.4224012,1.4862646,13.9017711,65.3278732,65.0867903,66.7249044,30.0236139,7.9477483,12.5988123,67.4484117,39.1439812,39.8801629,17.3610037,12.2864344,44.979178,6.2547366,29.3155395,11.1990208\r\n1562,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.205566,1.2485437,13.752642,65.0786533,65.8866418,66.3478453,29.4084602,8.0799507,13.0089674,66.7279081,39.3989892,39.6553963,17.2339197,12.4658866,46.2911841,5.708953,28.811029,12.5002974,1.4224012,1.4862646,13.9017711,65.3278732,65.0867903,66.7249044,30.0236139,7.9477483,12.5988123,67.4484117,39.1439812,39.8801629,17.3610037,12.2864344,44.979178,6.2547366,29.3155395,11.1990208,1.2180227,1.3311963,12.8742498,64.0994966,64.124231,66.4020353,31.9586897,7.284593,13.384653,68.6691537,41.25058,38.8075258,16.8019865,11.7033341,43.8105824,6.6950075,31.5455997,8.7173347\r\n1563,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.4224012,1.4862646,13.9017711,65.3278732,65.0867903,66.7249044,30.0236139,7.9477483,12.5988123,67.4484117,39.1439812,39.8801629,17.3610037,12.2864344,44.979178,6.2547366,29.3155395,11.1990208,1.2180227,1.3311963,12.8742498,64.0994966,64.124231,66.4020353,31.9586897,7.284593,13.384653,68.6691537,41.25058,38.8075258,16.8019865,11.7033341,43.8105824,6.6950075,31.5455997,8.7173347,1.135607,1.2501828,12.2497547,65.2661271,65.2390046,67.8676954,32.7861239,6.7002912,13.5738103,68.4973787,41.1878227,38.7769854,16.4154366,11.2453769,41.8073765,6.2314156,32.2728092,9.7684707\r\n1564,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.2180227,1.3311963,12.8742498,64.0994966,64.124231,66.4020353,31.9586897,7.284593,13.384653,68.6691537,41.25058,38.8075258,16.8019865,11.7033341,43.8105824,6.6950075,31.5455997,8.7173347,1.135607,1.2501828,12.2497547,65.2661271,65.2390046,67.8676954,32.7861239,6.7002912,13.5738103,68.4973787,41.1878227,38.7769854,16.4154366,11.2453769,41.8073765,6.2314156,32.2728092,9.7684707,1.0653096,1.215158,11.8852989,66.3721467,66.0247669,68.6166644,32.6661863,5.4568866,13.9420134,68.5921875,41.8383924,39.1004304,16.1037867,10.969398,40.427072,5.9187432,33.6108848,9.13818\r\n1565,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.135607,1.2501828,12.2497547,65.2661271,65.2390046,67.8676954,32.7861239,6.7002912,13.5738103,68.4973787,41.1878227,38.7769854,16.4154366,11.2453769,41.8073765,6.2314156,32.2728092,9.7684707,1.0653096,1.215158,11.8852989,66.3721467,66.0247669,68.6166644,32.6661863,5.4568866,13.9420134,68.5921875,41.8383924,39.1004304,16.1037867,10.969398,40.427072,5.9187432,33.6108848,9.13818,0.9886805,1.1264125,10.875335,67.1984854,66.9518452,67.1666751,32.0743177,4.9988062,12.9041045,68.2400018,42.248,37.913481,15.8322127,10.832725,38.9011959,6.0660183,34.8960773,8.3041187\r\n1566,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.0653096,1.215158,11.8852989,66.3721467,66.0247669,68.6166644,32.6661863,5.4568866,13.9420134,68.5921875,41.8383924,39.1004304,16.1037867,10.969398,40.427072,5.9187432,33.6108848,9.13818,0.9886805,1.1264125,10.875335,67.1984854,66.9518452,67.1666751,32.0743177,4.9988062,12.9041045,68.2400018,42.248,37.913481,15.8322127,10.832725,38.9011959,6.0660183,34.8960773,8.3041187,1.0574804,1.1322849,10.0093118,64.8728826,65.0194096,65.7374292,33.3298977,5.3309031,11.4177772,69.195378,43.1006916,37.04578,14.6071098,10.0375868,38.1308006,5.8496844,36.2934686,9.3869696\r\n1567,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.9886805,1.1264125,10.875335,67.1984854,66.9518452,67.1666751,32.0743177,4.9988062,12.9041045,68.2400018,42.248,37.913481,15.8322127,10.832725,38.9011959,6.0660183,34.8960773,8.3041187,1.0574804,1.1322849,10.0093118,64.8728826,65.0194096,65.7374292,33.3298977,5.3309031,11.4177772,69.195378,43.1006916,37.04578,14.6071098,10.0375868,38.1308006,5.8496844,36.2934686,9.3869696,0.9544441,1.1034521,10.0296565,65.0463494,66.1296443,65.8543896,32.4547376,5.3084468,11.8656028,68.7929279,42.3151981,37.5660227,14.6797174,10.1116462,37.0811615,6.0772087,37.5442732,8.4645636\r\n1568,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.0574804,1.1322849,10.0093118,64.8728826,65.0194096,65.7374292,33.3298977,5.3309031,11.4177772,69.195378,43.1006916,37.04578,14.6071098,10.0375868,38.1308006,5.8496844,36.2934686,9.3869696,0.9544441,1.1034521,10.0296565,65.0463494,66.1296443,65.8543896,32.4547376,5.3084468,11.8656028,68.7929279,42.3151981,37.5660227,14.6797174,10.1116462,37.0811615,6.0772087,37.5442732,8.4645636,0.8616357,0.9877928,10.3488574,65.8889027,67.7057541,66.6045653,32.6731221,5.7399701,12.8181592,68.0166148,43.6078377,35.0526078,14.8748715,10.5538553,35.4824152,5.883573,38.3342713,9.732817\r\n1569,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.9544441,1.1034521,10.0296565,65.0463494,66.1296443,65.8543896,32.4547376,5.3084468,11.8656028,68.7929279,42.3151981,37.5660227,14.6797174,10.1116462,37.0811615,6.0772087,37.5442732,8.4645636,0.8616357,0.9877928,10.3488574,65.8889027,67.7057541,66.6045653,32.6731221,5.7399701,12.8181592,68.0166148,43.6078377,35.0526078,14.8748715,10.5538553,35.4824152,5.883573,38.3342713,9.732817,1.0564991,1.2071132,11.1617138,68.7811013,68.9701793,67.290349,31.7945204,5.7121934,11.9636344,67.7338911,42.2438264,36.251341,15.1042221,10.9378855,34.9389776,5.5165476,36.8187998,10.8365234\r\n1570,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,0.8616357,0.9877928,10.3488574,65.8889027,67.7057541,66.6045653,32.6731221,5.7399701,12.8181592,68.0166148,43.6078377,35.0526078,14.8748715,10.5538553,35.4824152,5.883573,38.3342713,9.732817,1.0564991,1.2071132,11.1617138,68.7811013,68.9701793,67.290349,31.7945204,5.7121934,11.9636344,67.7338911,42.2438264,36.251341,15.1042221,10.9378855,34.9389776,5.5165476,36.8187998,10.8365234,1.27466,1.4262187,11.8074864,66.5507654,68.0052568,66.1910513,31.7727824,5.6144616,11.4298468,67.7556778,42.6533762,34.8041597,16.0517522,11.2613853,34.1893432,5.5161378,36.5652724,10.3515733\r\n1571,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.0564991,1.2071132,11.1617138,68.7811013,68.9701793,67.290349,31.7945204,5.7121934,11.9636344,67.7338911,42.2438264,36.251341,15.1042221,10.9378855,34.9389776,5.5165476,36.8187998,10.8365234,1.27466,1.4262187,11.8074864,66.5507654,68.0052568,66.1910513,31.7727824,5.6144616,11.4298468,67.7556778,42.6533762,34.8041597,16.0517522,11.2613853,34.1893432,5.5161378,36.5652724,10.3515733,1.1216922,1.2655909,11.820543,66.8823166,68.1102446,67.3287703,32.5380466,6.3324139,11.8914022,68.2362644,43.7063087,34.4538136,15.5940292,11.3644196,34.304124,6.0303279,34.4205053,9.552859\r\n1572,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.27466,1.4262187,11.8074864,66.5507654,68.0052568,66.1910513,31.7727824,5.6144616,11.4298468,67.7556778,42.6533762,34.8041597,16.0517522,11.2613853,34.1893432,5.5161378,36.5652724,10.3515733,1.1216922,1.2655909,11.820543,66.8823166,68.1102446,67.3287703,32.5380466,6.3324139,11.8914022,68.2362644,43.7063087,34.4538136,15.5940292,11.3644196,34.304124,6.0303279,34.4205053,9.552859,1.3382941,1.4813579,12.6329888,65.8773197,67.5237619,68.7944288,33.8679671,6.6812081,14.0664235,70.0478478,45.5310524,34.4606806,15.8164511,11.3936877,35.2596005,6.1094742,32.6636111,10.5159148\r\n1573,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.1216922,1.2655909,11.820543,66.8823166,68.1102446,67.3287703,32.5380466,6.3324139,11.8914022,68.2362644,43.7063087,34.4538136,15.5940292,11.3644196,34.304124,6.0303279,34.4205053,9.552859,1.3382941,1.4813579,12.6329888,65.8773197,67.5237619,68.7944288,33.8679671,6.6812081,14.0664235,70.0478478,45.5310524,34.4606806,15.8164511,11.3936877,35.2596005,6.1094742,32.6636111,10.5159148,1.3626347,1.5076298,13.2684342,68.4887944,69.7089723,70.3448044,32.7178748,6.4177889,14.9567451,69.7606196,46.6001785,33.6988548,16.5273188,12.0215588,34.133528,6.1828519,31.8861624,9.6226879\r\n1574,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3382941,1.4813579,12.6329888,65.8773197,67.5237619,68.7944288,33.8679671,6.6812081,14.0664235,70.0478478,45.5310524,34.4606806,15.8164511,11.3936877,35.2596005,6.1094742,32.6636111,10.5159148,1.3626347,1.5076298,13.2684342,68.4887944,69.7089723,70.3448044,32.7178748,6.4177889,14.9567451,69.7606196,46.6001785,33.6988548,16.5273188,12.0215588,34.133528,6.1828519,31.8861624,9.6226879,1.5200112,1.5725915,13.6009029,67.5226837,68.5411193,68.9481727,33.7465009,5.5295124,14.4610144,68.7610217,47.2142996,32.5513925,16.5756784,12.2863972,33.7033504,6.8449497,31.1037096,9.5506117\r\n1575,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3626347,1.5076298,13.2684342,68.4887944,69.7089723,70.3448044,32.7178748,6.4177889,14.9567451,69.7606196,46.6001785,33.6988548,16.5273188,12.0215588,34.133528,6.1828519,31.8861624,9.6226879,1.5200112,1.5725915,13.6009029,67.5226837,68.5411193,68.9481727,33.7465009,5.5295124,14.4610144,68.7610217,47.2142996,32.5513925,16.5756784,12.2863972,33.7033504,6.8449497,31.1037096,9.5506117,1.5805743,1.6729414,13.5946661,66.2273544,66.844553,68.6351737,34.0701112,4.458233,14.3365175,69.2326764,47.2755753,34.3893392,16.1239138,11.9743377,33.988319,6.9079736,30.7541682,9.4595148\r\n1576,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.5200112,1.5725915,13.6009029,67.5226837,68.5411193,68.9481727,33.7465009,5.5295124,14.4610144,68.7610217,47.2142996,32.5513925,16.5756784,12.2863972,33.7033504,6.8449497,31.1037096,9.5506117,1.5805743,1.6729414,13.5946661,66.2273544,66.844553,68.6351737,34.0701112,4.458233,14.3365175,69.2326764,47.2755753,34.3893392,16.1239138,11.9743377,33.988319,6.9079736,30.7541682,9.4595148,1.385196,1.4493182,12.9950257,65.1327864,67.3405809,67.0618894,33.2979482,4.4679438,14.251891,68.4630934,47.7218665,33.83319,15.1006144,11.3715307,33.0527233,6.8430333,30.5222999,10.0368112\r\n1577,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.5805743,1.6729414,13.5946661,66.2273544,66.844553,68.6351737,34.0701112,4.458233,14.3365175,69.2326764,47.2755753,34.3893392,16.1239138,11.9743377,33.988319,6.9079736,30.7541682,9.4595148,1.385196,1.4493182,12.9950257,65.1327864,67.3405809,67.0618894,33.2979482,4.4679438,14.251891,68.4630934,47.7218665,33.83319,15.1006144,11.3715307,33.0527233,6.8430333,30.5222999,10.0368112,1.3203312,1.4049537,12.0898944,66.123462,67.3060472,68.0537385,33.1588206,4.7853032,14.4034327,68.4783825,47.8891824,33.5128501,14.2533909,10.8865057,33.7478499,7.4026851,29.4076807,9.1400796\r\n1578,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.385196,1.4493182,12.9950257,65.1327864,67.3405809,67.0618894,33.2979482,4.4679438,14.251891,68.4630934,47.7218665,33.83319,15.1006144,11.3715307,33.0527233,6.8430333,30.5222999,10.0368112,1.3203312,1.4049537,12.0898944,66.123462,67.3060472,68.0537385,33.1588206,4.7853032,14.4034327,68.4783825,47.8891824,33.5128501,14.2533909,10.8865057,33.7478499,7.4026851,29.4076807,9.1400796,1.3006382,1.3589883,11.7235811,64.8763986,66.5267099,66.4736871,31.9996352,4.137702,13.9262297,67.8949946,46.0739583,33.3214783,13.628704,10.325261,32.9713895,7.2058034,29.2371044,9.7272522\r\n1579,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3203312,1.4049537,12.0898944,66.123462,67.3060472,68.0537385,33.1588206,4.7853032,14.4034327,68.4783825,47.8891824,33.5128501,14.2533909,10.8865057,33.7478499,7.4026851,29.4076807,9.1400796,1.3006382,1.3589883,11.7235811,64.8763986,66.5267099,66.4736871,31.9996352,4.137702,13.9262297,67.8949946,46.0739583,33.3214783,13.628704,10.325261,32.9713895,7.2058034,29.2371044,9.7272522,1.2042584,1.2998572,11.1992663,64.9850822,66.469961,67.0997998,30.9950851,3.9703952,11.8003803,66.2657141,43.6389785,33.4691672,13.9848292,10.4329201,31.2533668,6.8274257,30.8051814,10.0354834\r\n1580,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3006382,1.3589883,11.7235811,64.8763986,66.5267099,66.4736871,31.9996352,4.137702,13.9262297,67.8949946,46.0739583,33.3214783,13.628704,10.325261,32.9713895,7.2058034,29.2371044,9.7272522,1.2042584,1.2998572,11.1992663,64.9850822,66.469961,67.0997998,30.9950851,3.9703952,11.8003803,66.2657141,43.6389785,33.4691672,13.9848292,10.4329201,31.2533668,6.8274257,30.8051814,10.0354834,1.2915133,1.3857644,11.5170508,64.5040351,65.9495854,66.8768629,30.3837843,4.4978862,11.7281455,65.4889023,41.9294905,35.5592304,14.4468824,10.6361858,31.4834803,7.0781338,32.1110359,9.717572\r\n1581,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.2042584,1.2998572,11.1992663,64.9850822,66.469961,67.0997998,30.9950851,3.9703952,11.8003803,66.2657141,43.6389785,33.4691672,13.9848292,10.4329201,31.2533668,6.8274257,30.8051814,10.0354834,1.2915133,1.3857644,11.5170508,64.5040351,65.9495854,66.8768629,30.3837843,4.4978862,11.7281455,65.4889023,41.9294905,35.5592304,14.4468824,10.6361858,31.4834803,7.0781338,32.1110359,9.717572,1.3338202,1.4289374,11.4574183,65.0505373,67.1006248,67.5043699,30.1312097,4.844311,12.5311882,66.2005035,40.8998011,36.7585952,14.7426369,10.5863386,32.2024801,6.5978176,32.3112746,9.1400306\r\n1582,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.2915133,1.3857644,11.5170508,64.5040351,65.9495854,66.8768629,30.3837843,4.4978862,11.7281455,65.4889023,41.9294905,35.5592304,14.4468824,10.6361858,31.4834803,7.0781338,32.1110359,9.717572,1.3338202,1.4289374,11.4574183,65.0505373,67.1006248,67.5043699,30.1312097,4.844311,12.5311882,66.2005035,40.8998011,36.7585952,14.7426369,10.5863386,32.2024801,6.5978176,32.3112746,9.1400306,1.2526187,1.3133568,10.9167924,66.0348192,68.1432258,67.3614942,29.4484909,4.7759743,12.1599587,65.2832351,41.1563454,36.9726512,14.6638555,10.2865842,31.8497684,6.5912411,31.5369182,8.3619859\r\n1583,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.3338202,1.4289374,11.4574183,65.0505373,67.1006248,67.5043699,30.1312097,4.844311,12.5311882,66.2005035,40.8998011,36.7585952,14.7426369,10.5863386,32.2024801,6.5978176,32.3112746,9.1400306,1.2526187,1.3133568,10.9167924,66.0348192,68.1432258,67.3614942,29.4484909,4.7759743,12.1599587,65.2832351,41.1563454,36.9726512,14.6638555,10.2865842,31.8497684,6.5912411,31.5369182,8.3619859,1.4730879,1.5341845,10.917207,65.8804914,67.122545,67.5581011,29.8071749,4.4641827,12.0916715,65.5964676,41.5075246,36.1283757,15.257681,10.5705161,31.4166197,6.7555803,32.2392827,8.0070975\r\n1584,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.0,0.0,0.0,0.0,1.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,0.0,0.0,0.0,1.2526187,1.3133568,10.9167924,66.0348192,68.1432258,67.3614942,29.4484909,4.7759743,12.1599587,65.2832351,41.1563454,36.9726512,14.6638555,10.2865842,31.8497684,6.5912411,31.5369182,8.3619859,1.4730879,1.5341845,10.917207,65.8804914,67.122545,67.5581011,29.8071749,4.4641827,12.0916715,65.5964676,41.5075246,36.1283757,15.257681,10.5705161,31.4166197,6.7555803,32.2392827,8.0070975,1.3220305,1.3617461,10.895922,67.4466058,67.3220728,67.9898593,29.1869394,4.7498904,12.4345842,65.426597,40.4176144,37.2861984,15.7097482,10.9384444,31.1099437,6.312372,33.0924592,9.3406354\r\n1585,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.1648587,3.2292021,30.4419798,68.5947322,71.4868789,60.2371446,27.4259124,13.0552019,16.6694415,62.0058898,31.7283021,45.5694973,38.15541,31.2908216,57.2285112,2.3279769,34.6099607,20.3477514,3.102227,3.1352067,31.8752441,67.8365898,70.4543125,58.7990131,26.6231587,12.2073276,16.009581,62.0597218,31.956934,46.3875054,38.9443735,32.3943029,56.4088309,2.6004622,34.7043896,20.6819324,3.1933545,3.2740455,32.9288396,67.6532806,69.6175891,57.1043419,24.7260633,11.93549,15.864358,62.0173006,32.6906673,45.2404326,40.0699295,33.44957,56.8212298,2.7018411,34.7695291,22.2169212\r\n1586,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.102227,3.1352067,31.8752441,67.8365898,70.4543125,58.7990131,26.6231587,12.2073276,16.009581,62.0597218,31.956934,46.3875054,38.9443735,32.3943029,56.4088309,2.6004622,34.7043896,20.6819324,3.1933545,3.2740455,32.9288396,67.6532806,69.6175891,57.1043419,24.7260633,11.93549,15.864358,62.0173006,32.6906673,45.2404326,40.0699295,33.44957,56.8212298,2.7018411,34.7695291,22.2169212,3.274486,3.3670802,34.2448165,67.2273781,69.2064607,56.8519131,23.5847123,12.236216,16.4169517,62.0665844,33.4975502,45.1804872,41.7281926,35.1002579,56.8384757,2.8360024,34.1861913,21.2691733\r\n1587,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.1933545,3.2740455,32.9288396,67.6532806,69.6175891,57.1043419,24.7260633,11.93549,15.864358,62.0173006,32.6906673,45.2404326,40.0699295,33.44957,56.8212298,2.7018411,34.7695291,22.2169212,3.274486,3.3670802,34.2448165,67.2273781,69.2064607,56.8519131,23.5847123,12.236216,16.4169517,62.0665844,33.4975502,45.1804872,41.7281926,35.1002579,56.8384757,2.8360024,34.1861913,21.2691733,3.5421306,3.6708637,35.928847,67.7018658,68.0000301,56.8980371,23.0701146,12.6338328,17.233645,62.4655258,33.4572607,45.920792,42.6414982,36.3680225,57.2500787,3.1972826,34.9222406,23.1772184\r\n1588,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.274486,3.3670802,34.2448165,67.2273781,69.2064607,56.8519131,23.5847123,12.236216,16.4169517,62.0665844,33.4975502,45.1804872,41.7281926,35.1002579,56.8384757,2.8360024,34.1861913,21.2691733,3.5421306,3.6708637,35.928847,67.7018658,68.0000301,56.8980371,23.0701146,12.6338328,17.233645,62.4655258,33.4572607,45.920792,42.6414982,36.3680225,57.2500787,3.1972826,34.9222406,23.1772184,3.7057668,3.8210801,37.217925,66.8144694,67.1706701,56.9876315,21.891762,12.3684443,16.383603,62.0556442,32.8554389,47.5542672,43.7826986,37.4056623,57.1732949,3.2849728,35.0530015,26.3149376\r\n1589,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.5421306,3.6708637,35.928847,67.7018658,68.0000301,56.8980371,23.0701146,12.6338328,17.233645,62.4655258,33.4572607,45.920792,42.6414982,36.3680225,57.2500787,3.1972826,34.9222406,23.1772184,3.7057668,3.8210801,37.217925,66.8144694,67.1706701,56.9876315,21.891762,12.3684443,16.383603,62.0556442,32.8554389,47.5542672,43.7826986,37.4056623,57.1732949,3.2849728,35.0530015,26.3149376,3.8558197,3.9390751,38.3806811,67.219041,67.9233569,56.971708,21.6006828,12.5696273,16.5715516,61.375357,32.5523132,48.5361168,44.9607992,38.6127784,57.3391994,3.3976717,35.5824377,25.0301684\r\n1590,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.7057668,3.8210801,37.217925,66.8144694,67.1706701,56.9876315,21.891762,12.3684443,16.383603,62.0556442,32.8554389,47.5542672,43.7826986,37.4056623,57.1732949,3.2849728,35.0530015,26.3149376,3.8558197,3.9390751,38.3806811,67.219041,67.9233569,56.971708,21.6006828,12.5696273,16.5715516,61.375357,32.5523132,48.5361168,44.9607992,38.6127784,57.3391994,3.3976717,35.5824377,25.0301684,3.8301218,3.9078477,39.0043759,66.5421734,66.9630443,55.8876689,20.7820719,12.8918904,16.7901465,61.1516189,32.3441255,48.3760522,45.8228056,39.4693627,57.3865029,3.34918,35.3533296,25.9259803\r\n1591,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.8558197,3.9390751,38.3806811,67.219041,67.9233569,56.971708,21.6006828,12.5696273,16.5715516,61.375357,32.5523132,48.5361168,44.9607992,38.6127784,57.3391994,3.3976717,35.5824377,25.0301684,3.8301218,3.9078477,39.0043759,66.5421734,66.9630443,55.8876689,20.7820719,12.8918904,16.7901465,61.1516189,32.3441255,48.3760522,45.8228056,39.4693627,57.3865029,3.34918,35.3533296,25.9259803,3.8846027,3.978691,39.2380406,66.9991518,67.2793958,55.6462649,20.1100275,14.0305081,17.4581819,60.531106,32.011849,48.4768284,46.4589701,39.9130881,57.6937111,3.1411639,35.6690228,27.1014168\r\n1592,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.8301218,3.9078477,39.0043759,66.5421734,66.9630443,55.8876689,20.7820719,12.8918904,16.7901465,61.1516189,32.3441255,48.3760522,45.8228056,39.4693627,57.3865029,3.34918,35.3533296,25.9259803,3.8846027,3.978691,39.2380406,66.9991518,67.2793958,55.6462649,20.1100275,14.0305081,17.4581819,60.531106,32.011849,48.4768284,46.4589701,39.9130881,57.6937111,3.1411639,35.6690228,27.1014168,3.9788681,4.0747421,39.5489826,66.7058586,67.5159416,58.0353091,19.8430873,14.6830487,17.0863853,60.9062192,31.814295,50.3439147,47.2998163,40.5936933,58.2265838,3.0547065,35.793054,27.3690412\r\n1593,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.8846027,3.978691,39.2380406,66.9991518,67.2793958,55.6462649,20.1100275,14.0305081,17.4581819,60.531106,32.011849,48.4768284,46.4589701,39.9130881,57.6937111,3.1411639,35.6690228,27.1014168,3.9788681,4.0747421,39.5489826,66.7058586,67.5159416,58.0353091,19.8430873,14.6830487,17.0863853,60.9062192,31.814295,50.3439147,47.2998163,40.5936933,58.2265838,3.0547065,35.793054,27.3690412,3.962115,4.0532959,40.9018121,66.375613,66.5555159,57.9363709,19.8564314,13.6983538,17.396209,60.8082526,31.7078093,51.0614211,47.939467,41.3589893,58.6594061,3.1000231,36.2951426,29.2343723\r\n1594,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.9788681,4.0747421,39.5489826,66.7058586,67.5159416,58.0353091,19.8430873,14.6830487,17.0863853,60.9062192,31.814295,50.3439147,47.2998163,40.5936933,58.2265838,3.0547065,35.793054,27.3690412,3.962115,4.0532959,40.9018121,66.375613,66.5555159,57.9363709,19.8564314,13.6983538,17.396209,60.8082526,31.7078093,51.0614211,47.939467,41.3589893,58.6594061,3.1000231,36.2951426,29.2343723,4.0763556,4.1642342,41.6356776,65.406593,66.9660701,58.0709023,19.5450298,13.4077638,17.5893342,60.7985492,31.4071804,50.7184189,49.2076175,42.4251538,58.4940714,2.8648551,37.5700462,29.2888279\r\n1595,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.962115,4.0532959,40.9018121,66.375613,66.5555159,57.9363709,19.8564314,13.6983538,17.396209,60.8082526,31.7078093,51.0614211,47.939467,41.3589893,58.6594061,3.1000231,36.2951426,29.2343723,4.0763556,4.1642342,41.6356776,65.406593,66.9660701,58.0709023,19.5450298,13.4077638,17.5893342,60.7985492,31.4071804,50.7184189,49.2076175,42.4251538,58.4940714,2.8648551,37.5700462,29.2888279,4.1194129,4.2589192,42.0843732,66.9720376,68.6603487,58.4888746,19.7400706,14.8063953,19.2296954,60.5212898,30.6214245,51.3200919,49.8701619,43.3028742,59.3903893,2.8669828,37.451762,28.5442584\r\n1596,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,4.0763556,4.1642342,41.6356776,65.406593,66.9660701,58.0709023,19.5450298,13.4077638,17.5893342,60.7985492,31.4071804,50.7184189,49.2076175,42.4251538,58.4940714,2.8648551,37.5700462,29.2888279,4.1194129,4.2589192,42.0843732,66.9720376,68.6603487,58.4888746,19.7400706,14.8063953,19.2296954,60.5212898,30.6214245,51.3200919,49.8701619,43.3028742,59.3903893,2.8669828,37.451762,28.5442584,4.3338864,4.4978871,42.4516165,65.1152992,68.1215066,58.4306308,19.5666784,15.2801714,20.0750076,60.3807471,30.1716912,51.3675607,50.2666215,43.6834415,59.3249958,2.6291836,37.2773354,30.8511507\r\n1597,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,4.1194129,4.2589192,42.0843732,66.9720376,68.6603487,58.4888746,19.7400706,14.8063953,19.2296954,60.5212898,30.6214245,51.3200919,49.8701619,43.3028742,59.3903893,2.8669828,37.451762,28.5442584,4.3338864,4.4978871,42.4516165,65.1152992,68.1215066,58.4306308,19.5666784,15.2801714,20.0750076,60.3807471,30.1716912,51.3675607,50.2666215,43.6834415,59.3249958,2.6291836,37.2773354,30.8511507,4.6583271,4.7979583,43.2341545,65.764562,68.0878726,58.2909755,19.0703993,15.7576062,19.7084107,59.8283396,29.3832665,51.4316299,51.5226679,44.6478227,59.7050365,2.4539082,38.1332463,31.7255646\r\n1598,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,4.3338864,4.4978871,42.4516165,65.1152992,68.1215066,58.4306308,19.5666784,15.2801714,20.0750076,60.3807471,30.1716912,51.3675607,50.2666215,43.6834415,59.3249958,2.6291836,37.2773354,30.8511507,4.6583271,4.7979583,43.2341545,65.764562,68.0878726,58.2909755,19.0703993,15.7576062,19.7084107,59.8283396,29.3832665,51.4316299,51.5226679,44.6478227,59.7050365,2.4539082,38.1332463,31.7255646,4.9011133,5.0118235,44.1133788,66.0818245,69.2650062,58.632385,18.875835,15.7576695,19.6009322,59.9535523,29.0373228,52.7443261,52.3780051,45.6339932,61.4601105,2.3587609,37.7047189,32.3703841\r\n1599,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,4.6583271,4.7979583,43.2341545,65.764562,68.0878726,58.2909755,19.0703993,15.7576062,19.7084107,59.8283396,29.3832665,51.4316299,51.5226679,44.6478227,59.7050365,2.4539082,38.1332463,31.7255646,4.9011133,5.0118235,44.1133788,66.0818245,69.2650062,58.632385,18.875835,15.7576695,19.6009322,59.9535523,29.0373228,52.7443261,52.3780051,45.6339932,61.4601105,2.3587609,37.7047189,32.3703841,4.8100235,4.930284,45.1584966,65.6164592,68.8790942,57.4913558,18.8025872,16.2089787,19.4969649,59.5139417,28.4853957,52.239154,52.742005,46.2230976,61.9213868,2.3316069,38.3935133,33.5490615\r\n1600,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,4.9011133,5.0118235,44.1133788,66.0818245,69.2650062,58.632385,18.875835,15.7576695,19.6009322,59.9535523,29.0373228,52.7443261,52.3780051,45.6339932,61.4601105,2.3587609,37.7047189,32.3703841,4.8100235,4.930284,45.1584966,65.6164592,68.8790942,57.4913558,18.8025872,16.2089787,19.4969649,59.5139417,28.4853957,52.239154,52.742005,46.2230976,61.9213868,2.3316069,38.3935133,33.5490615,5.0561596,5.1645261,44.0434927,65.276817,69.1431076,57.8235338,18.1737606,16.9036991,20.2383556,58.5025146,27.2775348,51.7426294,52.6353988,45.6331818,62.6437916,2.3215211,38.8006629,34.8688782\r\n1601,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,4.8100235,4.930284,45.1584966,65.6164592,68.8790942,57.4913558,18.8025872,16.2089787,19.4969649,59.5139417,28.4853957,52.239154,52.742005,46.2230976,61.9213868,2.3316069,38.3935133,33.5490615,5.0561596,5.1645261,44.0434927,65.276817,69.1431076,57.8235338,18.1737606,16.9036991,20.2383556,58.5025146,27.2775348,51.7426294,52.6353988,45.6331818,62.6437916,2.3215211,38.8006629,34.8688782,5.1359598,5.1843589,44.1241164,65.7490899,68.700659,57.4623478,17.9179216,17.0742697,19.5293233,57.868196,27.2319555,52.0297593,52.6677075,45.7737118,63.7960137,2.2135119,38.8740548,36.1687448\r\n1602,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.0561596,5.1645261,44.0434927,65.276817,69.1431076,57.8235338,18.1737606,16.9036991,20.2383556,58.5025146,27.2775348,51.7426294,52.6353988,45.6331818,62.6437916,2.3215211,38.8006629,34.8688782,5.1359598,5.1843589,44.1241164,65.7490899,68.700659,57.4623478,17.9179216,17.0742697,19.5293233,57.868196,27.2319555,52.0297593,52.6677075,45.7737118,63.7960137,2.2135119,38.8740548,36.1687448,5.0249643,5.0400999,44.6998633,64.1925217,66.6679167,55.8320874,18.3320656,15.7939896,18.6977519,58.0697216,27.8035849,51.7702818,52.4332305,45.582802,63.6313544,2.2369031,39.7704755,36.0804483\r\n1603,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.1359598,5.1843589,44.1241164,65.7490899,68.700659,57.4623478,17.9179216,17.0742697,19.5293233,57.868196,27.2319555,52.0297593,52.6677075,45.7737118,63.7960137,2.2135119,38.8740548,36.1687448,5.0249643,5.0400999,44.6998633,64.1925217,66.6679167,55.8320874,18.3320656,15.7939896,18.6977519,58.0697216,27.8035849,51.7702818,52.4332305,45.582802,63.6313544,2.2369031,39.7704755,36.0804483,5.2366536,5.2781952,44.9391892,65.9824708,66.727314,56.471955,18.0306922,15.4922618,18.5531723,58.1391294,28.819789,51.9051357,52.5475423,45.9375192,63.2949687,2.5208927,39.4763325,36.4864359\r\n1604,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.0249643,5.0400999,44.6998633,64.1925217,66.6679167,55.8320874,18.3320656,15.7939896,18.6977519,58.0697216,27.8035849,51.7702818,52.4332305,45.582802,63.6313544,2.2369031,39.7704755,36.0804483,5.2366536,5.2781952,44.9391892,65.9824708,66.727314,56.471955,18.0306922,15.4922618,18.5531723,58.1391294,28.819789,51.9051357,52.5475423,45.9375192,63.2949687,2.5208927,39.4763325,36.4864359,5.3650616,5.4242427,44.5585489,64.7227315,66.1915188,55.783742,18.3695319,16.3308233,18.5234408,58.2442575,29.0811204,51.9114602,51.9668226,45.5684354,63.4635559,2.6111508,39.8259273,37.8190805\r\n1605,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.2366536,5.2781952,44.9391892,65.9824708,66.727314,56.471955,18.0306922,15.4922618,18.5531723,58.1391294,28.819789,51.9051357,52.5475423,45.9375192,63.2949687,2.5208927,39.4763325,36.4864359,5.3650616,5.4242427,44.5585489,64.7227315,66.1915188,55.783742,18.3695319,16.3308233,18.5234408,58.2442575,29.0811204,51.9114602,51.9668226,45.5684354,63.4635559,2.6111508,39.8259273,37.8190805,5.3643182,5.4293766,43.5351094,63.7079839,64.8645634,56.0014401,18.5736307,15.35458,17.534782,57.6041816,29.3013345,50.5215635,51.2807408,44.9685427,62.9764368,2.643832,41.0889644,39.1280237\r\n1606,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.3650616,5.4242427,44.5585489,64.7227315,66.1915188,55.783742,18.3695319,16.3308233,18.5234408,58.2442575,29.0811204,51.9114602,51.9668226,45.5684354,63.4635559,2.6111508,39.8259273,37.8190805,5.3643182,5.4293766,43.5351094,63.7079839,64.8645634,56.0014401,18.5736307,15.35458,17.534782,57.6041816,29.3013345,50.5215635,51.2807408,44.9685427,62.9764368,2.643832,41.0889644,39.1280237,5.5506865,5.5686067,43.2157312,63.7593381,65.451779,55.5161632,19.3722476,14.6251848,17.7315368,58.3705379,30.430006,50.6535624,51.1978593,44.7805032,62.3023751,2.7330758,41.1841326,40.0695745\r\n1607,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.3643182,5.4293766,43.5351094,63.7079839,64.8645634,56.0014401,18.5736307,15.35458,17.534782,57.6041816,29.3013345,50.5215635,51.2807408,44.9685427,62.9764368,2.643832,41.0889644,39.1280237,5.5506865,5.5686067,43.2157312,63.7593381,65.451779,55.5161632,19.3722476,14.6251848,17.7315368,58.3705379,30.430006,50.6535624,51.1978593,44.7805032,62.3023751,2.7330758,41.1841326,40.0695745,5.5382672,5.5757139,43.0771245,63.1530558,64.2047582,55.1140348,20.24348,14.7126658,17.2654771,59.3381056,30.9330778,49.4102101,50.8368332,44.766646,61.7193033,2.8522157,41.8354772,40.6803377\r\n1608,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.5506865,5.5686067,43.2157312,63.7593381,65.451779,55.5161632,19.3722476,14.6251848,17.7315368,58.3705379,30.430006,50.6535624,51.1978593,44.7805032,62.3023751,2.7330758,41.1841326,40.0695745,5.5382672,5.5757139,43.0771245,63.1530558,64.2047582,55.1140348,20.24348,14.7126658,17.2654771,59.3381056,30.9330778,49.4102101,50.8368332,44.766646,61.7193033,2.8522157,41.8354772,40.6803377,5.2570291,5.3418662,43.097545,63.2494674,64.3535978,54.410115,20.7736556,15.0873986,17.6391007,59.9480903,30.9462432,49.9652752,50.7893728,44.610263,60.8739967,3.0462031,41.3328854,40.9417502\r\n1609,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.5382672,5.5757139,43.0771245,63.1530558,64.2047582,55.1140348,20.24348,14.7126658,17.2654771,59.3381056,30.9330778,49.4102101,50.8368332,44.766646,61.7193033,2.8522157,41.8354772,40.6803377,5.2570291,5.3418662,43.097545,63.2494674,64.3535978,54.410115,20.7736556,15.0873986,17.6391007,59.9480903,30.9462432,49.9652752,50.7893728,44.610263,60.8739967,3.0462031,41.3328854,40.9417502,5.0386139,5.1200113,42.4790237,62.8107815,64.7660763,55.5941482,19.9953866,15.0626047,17.6369895,59.6072658,30.9844722,48.3461537,50.2088059,44.0219618,60.8334546,3.0750919,41.0772746,42.5942618\r\n1610,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.2570291,5.3418662,43.097545,63.2494674,64.3535978,54.410115,20.7736556,15.0873986,17.6391007,59.9480903,30.9462432,49.9652752,50.7893728,44.610263,60.8739967,3.0462031,41.3328854,40.9417502,5.0386139,5.1200113,42.4790237,62.8107815,64.7660763,55.5941482,19.9953866,15.0626047,17.6369895,59.6072658,30.9844722,48.3461537,50.2088059,44.0219618,60.8334546,3.0750919,41.0772746,42.5942618,4.4303175,4.508731,41.1322315,62.6944877,64.5764797,55.4065093,20.3222412,14.6464504,16.7097783,59.366437,30.0263853,47.8196285,49.0636855,42.7012757,61.2711937,2.9071802,41.362783,42.6324391\r\n1611,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,5.0386139,5.1200113,42.4790237,62.8107815,64.7660763,55.5941482,19.9953866,15.0626047,17.6369895,59.6072658,30.9844722,48.3461537,50.2088059,44.0219618,60.8334546,3.0750919,41.0772746,42.5942618,4.4303175,4.508731,41.1322315,62.6944877,64.5764797,55.4065093,20.3222412,14.6464504,16.7097783,59.366437,30.0263853,47.8196285,49.0636855,42.7012757,61.2711937,2.9071802,41.362783,42.6324391,3.9571529,4.0618834,40.5165692,62.7038302,65.3455548,56.1308863,20.937461,13.3152258,15.9664201,59.7140522,30.2823484,47.2287023,48.2934763,42.117292,61.0581492,2.8383142,40.4314943,42.6615442\r\n1612,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,4.4303175,4.508731,41.1322315,62.6944877,64.5764797,55.4065093,20.3222412,14.6464504,16.7097783,59.366437,30.0263853,47.8196285,49.0636855,42.7012757,61.2711937,2.9071802,41.362783,42.6324391,3.9571529,4.0618834,40.5165692,62.7038302,65.3455548,56.1308863,20.937461,13.3152258,15.9664201,59.7140522,30.2823484,47.2287023,48.2934763,42.117292,61.0581492,2.8383142,40.4314943,42.6615442,3.732627,3.8387789,39.4922183,63.5372965,65.2986244,56.4505565,21.9992897,13.4842008,16.8275166,60.4425696,30.8588816,47.1478084,47.4576898,41.200278,61.217786,2.8309504,39.1238926,42.3838033\r\n1613,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.9571529,4.0618834,40.5165692,62.7038302,65.3455548,56.1308863,20.937461,13.3152258,15.9664201,59.7140522,30.2823484,47.2287023,48.2934763,42.117292,61.0581492,2.8383142,40.4314943,42.6615442,3.732627,3.8387789,39.4922183,63.5372965,65.2986244,56.4505565,21.9992897,13.4842008,16.8275166,60.4425696,30.8588816,47.1478084,47.4576898,41.200278,61.217786,2.8309504,39.1238926,42.3838033,3.4364285,3.565488,39.1495446,65.1232027,65.9057822,56.9310729,21.5404657,13.6447338,17.5490528,60.0261981,30.6168422,47.5352123,47.0416397,40.9806059,62.0517403,3.0344667,38.8071553,42.5905316\r\n1614,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.732627,3.8387789,39.4922183,63.5372965,65.2986244,56.4505565,21.9992897,13.4842008,16.8275166,60.4425696,30.8588816,47.1478084,47.4576898,41.200278,61.217786,2.8309504,39.1238926,42.3838033,3.4364285,3.565488,39.1495446,65.1232027,65.9057822,56.9310729,21.5404657,13.6447338,17.5490528,60.0261981,30.6168422,47.5352123,47.0416397,40.9806059,62.0517403,3.0344667,38.8071553,42.5905316,3.0789675,3.205226,38.372782,65.0931094,66.0423192,57.1144086,22.0175684,13.5820164,16.3830212,60.5728479,31.685819,48.0592857,46.2461683,40.2122049,62.1422916,2.8876384,37.9743959,42.9020127\r\n1615,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.4364285,3.565488,39.1495446,65.1232027,65.9057822,56.9310729,21.5404657,13.6447338,17.5490528,60.0261981,30.6168422,47.5352123,47.0416397,40.9806059,62.0517403,3.0344667,38.8071553,42.5905316,3.0789675,3.205226,38.372782,65.0931094,66.0423192,57.1144086,22.0175684,13.5820164,16.3830212,60.5728479,31.685819,48.0592857,46.2461683,40.2122049,62.1422916,2.8876384,37.9743959,42.9020127,2.8642479,2.9635496,36.8960717,64.3038351,65.2980571,57.6980613,22.3843372,13.1008264,16.8187302,61.3202984,32.5645111,46.6095644,44.6210744,38.6658367,62.7415659,2.8194572,38.2411903,42.6244487\r\n1616,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,3.0789675,3.205226,38.372782,65.0931094,66.0423192,57.1144086,22.0175684,13.5820164,16.3830212,60.5728479,31.685819,48.0592857,46.2461683,40.2122049,62.1422916,2.8876384,37.9743959,42.9020127,2.8642479,2.9635496,36.8960717,64.3038351,65.2980571,57.6980613,22.3843372,13.1008264,16.8187302,61.3202984,32.5645111,46.6095644,44.6210744,38.6658367,62.7415659,2.8194572,38.2411903,42.6244487,2.849402,2.9547577,35.8629311,65.3034101,65.5227126,57.6344338,22.4312661,13.5838471,16.1627891,62.4013408,32.4723759,45.9218164,43.4079197,37.3503404,62.0062528,2.7343807,36.3744596,40.2995714\r\n1617,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.8642479,2.9635496,36.8960717,64.3038351,65.2980571,57.6980613,22.3843372,13.1008264,16.8187302,61.3202984,32.5645111,46.6095644,44.6210744,38.6658367,62.7415659,2.8194572,38.2411903,42.6244487,2.849402,2.9547577,35.8629311,65.3034101,65.5227126,57.6344338,22.4312661,13.5838471,16.1627891,62.4013408,32.4723759,45.9218164,43.4079197,37.3503404,62.0062528,2.7343807,36.3744596,40.2995714,2.6435966,2.7235353,34.2389191,65.5960911,65.72814,57.7410425,21.5657123,14.2613413,16.2842935,61.7946765,31.8642418,45.8784602,41.6030823,35.802889,62.1977831,2.6716425,35.5079588,39.7134149\r\n1618,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.849402,2.9547577,35.8629311,65.3034101,65.5227126,57.6344338,22.4312661,13.5838471,16.1627891,62.4013408,32.4723759,45.9218164,43.4079197,37.3503404,62.0062528,2.7343807,36.3744596,40.2995714,2.6435966,2.7235353,34.2389191,65.5960911,65.72814,57.7410425,21.5657123,14.2613413,16.2842935,61.7946765,31.8642418,45.8784602,41.6030823,35.802889,62.1977831,2.6716425,35.5079588,39.7134149,2.4796167,2.5818387,31.5344086,64.9672069,65.1372763,58.1901271,20.5013255,14.3482299,17.5955635,59.5691092,31.1755512,45.1966909,39.3693773,33.2314302,61.8463565,2.5980186,35.3491436,38.3895196\r\n1619,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.6435966,2.7235353,34.2389191,65.5960911,65.72814,57.7410425,21.5657123,14.2613413,16.2842935,61.7946765,31.8642418,45.8784602,41.6030823,35.802889,62.1977831,2.6716425,35.5079588,39.7134149,2.4796167,2.5818387,31.5344086,64.9672069,65.1372763,58.1901271,20.5013255,14.3482299,17.5955635,59.5691092,31.1755512,45.1966909,39.3693773,33.2314302,61.8463565,2.5980186,35.3491436,38.3895196,2.3635315,2.4660925,30.7259792,62.9285116,63.9512415,57.5991554,20.1469589,14.0115491,17.043722,59.0658179,31.0601897,44.2175404,38.2672992,32.1723792,61.258561,2.6017673,35.3953286,38.122977\r\n1620,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.4796167,2.5818387,31.5344086,64.9672069,65.1372763,58.1901271,20.5013255,14.3482299,17.5955635,59.5691092,31.1755512,45.1966909,39.3693773,33.2314302,61.8463565,2.5980186,35.3491436,38.3895196,2.3635315,2.4660925,30.7259792,62.9285116,63.9512415,57.5991554,20.1469589,14.0115491,17.043722,59.0658179,31.0601897,44.2175404,38.2672992,32.1723792,61.258561,2.6017673,35.3953286,38.122977,2.2769553,2.3712327,28.9632182,60.6636221,62.6372908,58.1701693,20.9051557,13.9477145,15.8542143,58.9468914,31.4968488,42.6389015,35.6894458,29.6828236,60.5477091,2.2764036,35.2818932,36.4265042\r\n1621,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.3635315,2.4660925,30.7259792,62.9285116,63.9512415,57.5991554,20.1469589,14.0115491,17.043722,59.0658179,31.0601897,44.2175404,38.2672992,32.1723792,61.258561,2.6017673,35.3953286,38.122977,2.2769553,2.3712327,28.9632182,60.6636221,62.6372908,58.1701693,20.9051557,13.9477145,15.8542143,58.9468914,31.4968488,42.6389015,35.6894458,29.6828236,60.5477091,2.2764036,35.2818932,36.4265042,2.2895153,2.3994775,27.9448521,61.1039385,62.5843657,57.6686497,20.7527128,13.5676754,16.1612257,58.2907473,32.0125089,42.4143599,34.2126415,28.0079587,59.9232663,2.4300136,35.4502648,34.275378\r\n1622,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.2769553,2.3712327,28.9632182,60.6636221,62.6372908,58.1701693,20.9051557,13.9477145,15.8542143,58.9468914,31.4968488,42.6389015,35.6894458,29.6828236,60.5477091,2.2764036,35.2818932,36.4265042,2.2895153,2.3994775,27.9448521,61.1039385,62.5843657,57.6686497,20.7527128,13.5676754,16.1612257,58.2907473,32.0125089,42.4143599,34.2126415,28.0079587,59.9232663,2.4300136,35.4502648,34.275378,2.2473945,2.3427456,26.4815322,61.6278683,62.8687007,57.8261138,20.1934096,13.7587237,15.7423635,57.5875237,31.5211414,42.4037567,33.0346094,26.8778444,59.3986041,2.3856009,35.0579458,33.2511747\r\n1623,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.2895153,2.3994775,27.9448521,61.1039385,62.5843657,57.6686497,20.7527128,13.5676754,16.1612257,58.2907473,32.0125089,42.4143599,34.2126415,28.0079587,59.9232663,2.4300136,35.4502648,34.275378,2.2473945,2.3427456,26.4815322,61.6278683,62.8687007,57.8261138,20.1934096,13.7587237,15.7423635,57.5875237,31.5211414,42.4037567,33.0346094,26.8778444,59.3986041,2.3856009,35.0579458,33.2511747,2.0420466,2.149361,24.9255424,60.715758,62.7190997,57.5387766,21.1246275,13.3568529,16.0782024,57.2456466,32.7388109,43.552641,31.8329942,25.5329402,59.883409,2.6377588,36.1649985,34.8167259\r\n1624,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.2473945,2.3427456,26.4815322,61.6278683,62.8687007,57.8261138,20.1934096,13.7587237,15.7423635,57.5875237,31.5211414,42.4037567,33.0346094,26.8778444,59.3986041,2.3856009,35.0579458,33.2511747,2.0420466,2.149361,24.9255424,60.715758,62.7190997,57.5387766,21.1246275,13.3568529,16.0782024,57.2456466,32.7388109,43.552641,31.8329942,25.5329402,59.883409,2.6377588,36.1649985,34.8167259,2.1462936,2.2952399,24.3062377,60.3160723,62.3156662,56.545038,22.3986301,12.8550151,15.5835949,59.237382,34.7303057,42.4161581,31.1645069,24.8206482,59.213414,2.7647537,36.0457092,33.7383265\r\n1625,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.0420466,2.149361,24.9255424,60.715758,62.7190997,57.5387766,21.1246275,13.3568529,16.0782024,57.2456466,32.7388109,43.552641,31.8329942,25.5329402,59.883409,2.6377588,36.1649985,34.8167259,2.1462936,2.2952399,24.3062377,60.3160723,62.3156662,56.545038,22.3986301,12.8550151,15.5835949,59.237382,34.7303057,42.4161581,31.1645069,24.8206482,59.213414,2.7647537,36.0457092,33.7383265,2.0422821,2.1570587,24.076031,60.5658317,62.2686075,56.1938535,25.1088617,13.5217307,14.779269,62.1205334,35.9353098,42.6244997,30.4771201,24.5071043,59.0923102,3.0056022,35.741944,33.0002641\r\n1626,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.1462936,2.2952399,24.3062377,60.3160723,62.3156662,56.545038,22.3986301,12.8550151,15.5835949,59.237382,34.7303057,42.4161581,31.1645069,24.8206482,59.213414,2.7647537,36.0457092,33.7383265,2.0422821,2.1570587,24.076031,60.5658317,62.2686075,56.1938535,25.1088617,13.5217307,14.779269,62.1205334,35.9353098,42.6244997,30.4771201,24.5071043,59.0923102,3.0056022,35.741944,33.0002641,2.0502635,2.1677618,23.1593797,61.2778056,64.1435568,56.6499765,25.5472985,13.9180192,14.9487541,63.7785351,37.6769465,43.4266376,29.2235937,23.3639456,58.9175292,3.4970819,36.1058062,31.6420729\r\n1627,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.0422821,2.1570587,24.076031,60.5658317,62.2686075,56.1938535,25.1088617,13.5217307,14.779269,62.1205334,35.9353098,42.6244997,30.4771201,24.5071043,59.0923102,3.0056022,35.741944,33.0002641,2.0502635,2.1677618,23.1593797,61.2778056,64.1435568,56.6499765,25.5472985,13.9180192,14.9487541,63.7785351,37.6769465,43.4266376,29.2235937,23.3639456,58.9175292,3.4970819,36.1058062,31.6420729,2.051751,2.1638633,22.4709524,62.1532528,64.4469932,56.408107,25.3616912,13.8946709,14.7058485,65.2654447,37.8805032,44.4566493,28.516311,22.6921025,58.7930333,3.7593258,37.0660737,31.8430077\r\n1628,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.0502635,2.1677618,23.1593797,61.2778056,64.1435568,56.6499765,25.5472985,13.9180192,14.9487541,63.7785351,37.6769465,43.4266376,29.2235937,23.3639456,58.9175292,3.4970819,36.1058062,31.6420729,2.051751,2.1638633,22.4709524,62.1532528,64.4469932,56.408107,25.3616912,13.8946709,14.7058485,65.2654447,37.8805032,44.4566493,28.516311,22.6921025,58.7930333,3.7593258,37.0660737,31.8430077,1.9569763,2.0276604,21.5621076,61.6141725,64.2621987,56.1256542,25.6562002,13.2963676,14.8556785,66.7255012,37.7720701,45.4365669,27.3833503,22.2331646,59.2989498,3.7432835,36.8666114,30.1809514\r\n1629,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,2.051751,2.1638633,22.4709524,62.1532528,64.4469932,56.408107,25.3616912,13.8946709,14.7058485,65.2654447,37.8805032,44.4566493,28.516311,22.6921025,58.7930333,3.7593258,37.0660737,31.8430077,1.9569763,2.0276604,21.5621076,61.6141725,64.2621987,56.1256542,25.6562002,13.2963676,14.8556785,66.7255012,37.7720701,45.4365669,27.3833503,22.2331646,59.2989498,3.7432835,36.8666114,30.1809514,1.7821671,1.900457,20.9061192,62.0107225,65.9170953,56.1713118,26.2246825,12.6742465,14.776647,66.4638036,38.1648397,44.9349423,26.142508,20.9069344,58.7036487,3.8607906,36.7529748,29.7599015\r\n1630,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.9569763,2.0276604,21.5621076,61.6141725,64.2621987,56.1256542,25.6562002,13.2963676,14.8556785,66.7255012,37.7720701,45.4365669,27.3833503,22.2331646,59.2989498,3.7432835,36.8666114,30.1809514,1.7821671,1.900457,20.9061192,62.0107225,65.9170953,56.1713118,26.2246825,12.6742465,14.776647,66.4638036,38.1648397,44.9349423,26.142508,20.9069344,58.7036487,3.8607906,36.7529748,29.7599015,1.5579386,1.6647615,19.9013302,62.8484521,66.5463404,56.3983646,26.0187479,12.2988963,13.9850611,66.814571,37.6789479,45.1921719,25.5692964,20.4189193,58.1315665,3.5149591,35.8261271,26.5541774\r\n1631,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.7821671,1.900457,20.9061192,62.0107225,65.9170953,56.1713118,26.2246825,12.6742465,14.776647,66.4638036,38.1648397,44.9349423,26.142508,20.9069344,58.7036487,3.8607906,36.7529748,29.7599015,1.5579386,1.6647615,19.9013302,62.8484521,66.5463404,56.3983646,26.0187479,12.2988963,13.9850611,66.814571,37.6789479,45.1921719,25.5692964,20.4189193,58.1315665,3.5149591,35.8261271,26.5541774,1.5817888,1.6255224,19.9974278,61.9042049,66.8826258,55.3534397,26.2267448,11.2386056,13.2550297,66.5384215,38.1233053,44.9511633,25.4056939,20.3201045,58.1078569,3.5727842,35.6206039,24.7544823\r\n1632,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5579386,1.6647615,19.9013302,62.8484521,66.5463404,56.3983646,26.0187479,12.2988963,13.9850611,66.814571,37.6789479,45.1921719,25.5692964,20.4189193,58.1315665,3.5149591,35.8261271,26.5541774,1.5817888,1.6255224,19.9974278,61.9042049,66.8826258,55.3534397,26.2267448,11.2386056,13.2550297,66.5384215,38.1233053,44.9511633,25.4056939,20.3201045,58.1078569,3.5727842,35.6206039,24.7544823,1.6613388,1.6760462,19.5811422,61.3370235,65.4023903,54.4322947,25.7099801,10.5256444,13.3267314,66.6748145,39.2026976,43.7609898,24.5562881,19.6707869,56.4835829,3.9961981,35.8273695,21.3436799\r\n1633,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5817888,1.6255224,19.9974278,61.9042049,66.8826258,55.3534397,26.2267448,11.2386056,13.2550297,66.5384215,38.1233053,44.9511633,25.4056939,20.3201045,58.1078569,3.5727842,35.6206039,24.7544823,1.6613388,1.6760462,19.5811422,61.3370235,65.4023903,54.4322947,25.7099801,10.5256444,13.3267314,66.6748145,39.2026976,43.7609898,24.5562881,19.6707869,56.4835829,3.9961981,35.8273695,21.3436799,1.5075806,1.5223146,18.4061136,61.4169132,65.2143643,54.7287815,26.1635878,10.3727665,13.5150544,66.2917806,38.5485479,43.5857852,23.5576241,18.6546677,56.119067,4.008823,35.6245753,19.447214\r\n1634,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.6613388,1.6760462,19.5811422,61.3370235,65.4023903,54.4322947,25.7099801,10.5256444,13.3267314,66.6748145,39.2026976,43.7609898,24.5562881,19.6707869,56.4835829,3.9961981,35.8273695,21.3436799,1.5075806,1.5223146,18.4061136,61.4169132,65.2143643,54.7287815,26.1635878,10.3727665,13.5150544,66.2917806,38.5485479,43.5857852,23.5576241,18.6546677,56.119067,4.008823,35.6245753,19.447214,1.3052635,1.328812,17.6360136,61.0978839,64.886845,54.9070048,27.0186309,9.8361123,13.442802,65.4109963,38.5307294,42.5879575,22.9873305,18.028228,55.4270872,4.2780722,34.0968924,18.6719335\r\n1635,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5075806,1.5223146,18.4061136,61.4169132,65.2143643,54.7287815,26.1635878,10.3727665,13.5150544,66.2917806,38.5485479,43.5857852,23.5576241,18.6546677,56.119067,4.008823,35.6245753,19.447214,1.3052635,1.328812,17.6360136,61.0978839,64.886845,54.9070048,27.0186309,9.8361123,13.442802,65.4109963,38.5307294,42.5879575,22.9873305,18.028228,55.4270872,4.2780722,34.0968924,18.6719335,1.3255149,1.348841,17.7146852,61.7845143,65.1182842,55.6525375,27.5945931,9.7091557,12.9251423,65.5886047,39.8608696,41.4026791,23.3779432,17.9902303,54.6081379,4.0869295,34.3574397,18.9410907\r\n1636,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3052635,1.328812,17.6360136,61.0978839,64.886845,54.9070048,27.0186309,9.8361123,13.442802,65.4109963,38.5307294,42.5879575,22.9873305,18.028228,55.4270872,4.2780722,34.0968924,18.6719335,1.3255149,1.348841,17.7146852,61.7845143,65.1182842,55.6525375,27.5945931,9.7091557,12.9251423,65.5886047,39.8608696,41.4026791,23.3779432,17.9902303,54.6081379,4.0869295,34.3574397,18.9410907,1.4023798,1.4258693,17.567622,61.2867797,62.5108214,56.7540134,28.7941088,9.6953756,12.7447438,66.8440039,40.7245817,40.7541438,23.627503,18.1708191,54.1225511,4.2148717,35.4442836,17.8509719\r\n1637,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3255149,1.348841,17.7146852,61.7845143,65.1182842,55.6525375,27.5945931,9.7091557,12.9251423,65.5886047,39.8608696,41.4026791,23.3779432,17.9902303,54.6081379,4.0869295,34.3574397,18.9410907,1.4023798,1.4258693,17.567622,61.2867797,62.5108214,56.7540134,28.7941088,9.6953756,12.7447438,66.8440039,40.7245817,40.7541438,23.627503,18.1708191,54.1225511,4.2148717,35.4442836,17.8509719,1.470726,1.4940588,17.2420472,59.2170376,60.2672599,56.2053574,29.682609,9.6790106,13.0450541,67.9019363,41.8560305,39.1470347,22.6657168,17.5751037,52.1558277,4.7048612,36.1220767,18.7891906\r\n1638,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.4023798,1.4258693,17.567622,61.2867797,62.5108214,56.7540134,28.7941088,9.6953756,12.7447438,66.8440039,40.7245817,40.7541438,23.627503,18.1708191,54.1225511,4.2148717,35.4442836,17.8509719,1.470726,1.4940588,17.2420472,59.2170376,60.2672599,56.2053574,29.682609,9.6790106,13.0450541,67.9019363,41.8560305,39.1470347,22.6657168,17.5751037,52.1558277,4.7048612,36.1220767,18.7891906,1.3423407,1.330836,16.3962251,60.398752,60.5435276,57.8826555,29.9506069,11.5447446,14.2582124,68.1976085,41.6761942,40.4178264,21.9233707,16.6467185,51.8184457,4.8362253,36.9624351,17.285412\r\n1639,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.470726,1.4940588,17.2420472,59.2170376,60.2672599,56.2053574,29.682609,9.6790106,13.0450541,67.9019363,41.8560305,39.1470347,22.6657168,17.5751037,52.1558277,4.7048612,36.1220767,18.7891906,1.3423407,1.330836,16.3962251,60.398752,60.5435276,57.8826555,29.9506069,11.5447446,14.2582124,68.1976085,41.6761942,40.4178264,21.9233707,16.6467185,51.8184457,4.8362253,36.9624351,17.285412,1.3138593,1.2748362,15.7057702,60.1427697,61.0351693,59.5987032,29.4348401,10.9951984,13.5058163,67.5124534,40.8306632,40.2264818,22.2575004,16.4494457,51.9883742,4.333788,36.4393904,18.6412918\r\n1640,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3423407,1.330836,16.3962251,60.398752,60.5435276,57.8826555,29.9506069,11.5447446,14.2582124,68.1976085,41.6761942,40.4178264,21.9233707,16.6467185,51.8184457,4.8362253,36.9624351,17.285412,1.3138593,1.2748362,15.7057702,60.1427697,61.0351693,59.5987032,29.4348401,10.9951984,13.5058163,67.5124534,40.8306632,40.2264818,22.2575004,16.4494457,51.9883742,4.333788,36.4393904,18.6412918,1.3958912,1.3565911,16.1681665,58.6855758,59.0736746,58.2754305,29.1385314,10.2806238,12.9002372,67.3974824,40.3843034,39.590835,22.4537945,16.5473627,51.3353538,4.3453774,37.0869657,19.860945\r\n1641,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3138593,1.2748362,15.7057702,60.1427697,61.0351693,59.5987032,29.4348401,10.9951984,13.5058163,67.5124534,40.8306632,40.2264818,22.2575004,16.4494457,51.9883742,4.333788,36.4393904,18.6412918,1.3958912,1.3565911,16.1681665,58.6855758,59.0736746,58.2754305,29.1385314,10.2806238,12.9002372,67.3974824,40.3843034,39.590835,22.4537945,16.5473627,51.3353538,4.3453774,37.0869657,19.860945,1.4063417,1.3659844,15.8342843,58.6617468,59.4506387,58.1714831,28.9774841,10.4543017,12.9092209,67.3577845,40.4268905,39.7731984,22.0118552,16.1409036,50.6798271,4.1186617,37.7583204,17.1588008\r\n1642,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3958912,1.3565911,16.1681665,58.6855758,59.0736746,58.2754305,29.1385314,10.2806238,12.9002372,67.3974824,40.3843034,39.590835,22.4537945,16.5473627,51.3353538,4.3453774,37.0869657,19.860945,1.4063417,1.3659844,15.8342843,58.6617468,59.4506387,58.1714831,28.9774841,10.4543017,12.9092209,67.3577845,40.4268905,39.7731984,22.0118552,16.1409036,50.6798271,4.1186617,37.7583204,17.1588008,1.263318,1.1861914,15.0075149,58.9257896,60.2875377,57.6460123,28.956781,11.0146444,13.4967212,66.3755235,39.3334,39.1297823,20.7936059,15.2834353,49.7138173,4.2267244,37.5914846,15.9387717\r\n1643,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.4063417,1.3659844,15.8342843,58.6617468,59.4506387,58.1714831,28.9774841,10.4543017,12.9092209,67.3577845,40.4268905,39.7731984,22.0118552,16.1409036,50.6798271,4.1186617,37.7583204,17.1588008,1.263318,1.1861914,15.0075149,58.9257896,60.2875377,57.6460123,28.956781,11.0146444,13.4967212,66.3755235,39.3334,39.1297823,20.7936059,15.2834353,49.7138173,4.2267244,37.5914846,15.9387717,1.2536819,1.1395527,13.9567835,57.7323384,60.8330032,54.9592891,27.979017,10.809043,14.250066,65.8244174,38.9576959,39.4345886,19.3095583,14.3429105,48.4981972,4.2412992,36.5424463,15.5620436\r\n1644,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.263318,1.1861914,15.0075149,58.9257896,60.2875377,57.6460123,28.956781,11.0146444,13.4967212,66.3755235,39.3334,39.1297823,20.7936059,15.2834353,49.7138173,4.2267244,37.5914846,15.9387717,1.2536819,1.1395527,13.9567835,57.7323384,60.8330032,54.9592891,27.979017,10.809043,14.250066,65.8244174,38.9576959,39.4345886,19.3095583,14.3429105,48.4981972,4.2412992,36.5424463,15.5620436,1.3834982,1.2900884,13.3403205,59.7200426,62.3969488,56.3399697,28.770266,10.7625413,14.7287266,65.3215505,38.6454575,39.7908946,19.0494078,13.6781683,48.7408906,4.1333348,36.6138589,15.4985104\r\n1645,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.2536819,1.1395527,13.9567835,57.7323384,60.8330032,54.9592891,27.979017,10.809043,14.250066,65.8244174,38.9576959,39.4345886,19.3095583,14.3429105,48.4981972,4.2412992,36.5424463,15.5620436,1.3834982,1.2900884,13.3403205,59.7200426,62.3969488,56.3399697,28.770266,10.7625413,14.7287266,65.3215505,38.6454575,39.7908946,19.0494078,13.6781683,48.7408906,4.1333348,36.6138589,15.4985104,1.3316401,1.2745878,12.5970378,58.8457687,62.1318422,56.1241695,28.9862768,8.8237005,14.66374,65.2024445,38.5097529,37.9093851,18.189924,13.2217607,47.0766274,4.1835283,36.9581897,15.0201352\r\n1646,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3834982,1.2900884,13.3403205,59.7200426,62.3969488,56.3399697,28.770266,10.7625413,14.7287266,65.3215505,38.6454575,39.7908946,19.0494078,13.6781683,48.7408906,4.1333348,36.6138589,15.4985104,1.3316401,1.2745878,12.5970378,58.8457687,62.1318422,56.1241695,28.9862768,8.8237005,14.66374,65.2024445,38.5097529,37.9093851,18.189924,13.2217607,47.0766274,4.1835283,36.9581897,15.0201352,1.4303286,1.4139946,12.9371335,60.6444421,63.9190773,55.7243633,29.440586,8.3836968,14.8366479,66.4222488,39.1701029,37.7474161,17.6492911,13.2525137,46.3380497,4.5777563,37.1628384,14.5087491\r\n1647,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3316401,1.2745878,12.5970378,58.8457687,62.1318422,56.1241695,28.9862768,8.8237005,14.66374,65.2024445,38.5097529,37.9093851,18.189924,13.2217607,47.0766274,4.1835283,36.9581897,15.0201352,1.4303286,1.4139946,12.9371335,60.6444421,63.9190773,55.7243633,29.440586,8.3836968,14.8366479,66.4222488,39.1701029,37.7474161,17.6492911,13.2525137,46.3380497,4.5777563,37.1628384,14.5087491,1.4828729,1.4662394,12.4273969,62.8891179,65.7259681,57.1189518,30.463735,8.6327554,14.8114088,66.7917828,41.0873687,37.3146738,17.0186059,12.6743113,45.1576381,4.4620206,35.7356491,13.4686446\r\n1648,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.4303286,1.4139946,12.9371335,60.6444421,63.9190773,55.7243633,29.440586,8.3836968,14.8366479,66.4222488,39.1701029,37.7474161,17.6492911,13.2525137,46.3380497,4.5777563,37.1628384,14.5087491,1.4828729,1.4662394,12.4273969,62.8891179,65.7259681,57.1189518,30.463735,8.6327554,14.8114088,66.7917828,41.0873687,37.3146738,17.0186059,12.6743113,45.1576381,4.4620206,35.7356491,13.4686446,1.6056075,1.5955955,12.0359316,61.7773239,65.4405315,55.5266953,32.1567562,8.640296,14.982529,68.8001961,43.2300755,36.0973218,16.9147194,12.5003231,43.0525411,4.9686801,35.2025351,12.9213677\r\n1649,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.4828729,1.4662394,12.4273969,62.8891179,65.7259681,57.1189518,30.463735,8.6327554,14.8114088,66.7917828,41.0873687,37.3146738,17.0186059,12.6743113,45.1576381,4.4620206,35.7356491,13.4686446,1.6056075,1.5955955,12.0359316,61.7773239,65.4405315,55.5266953,32.1567562,8.640296,14.982529,68.8001961,43.2300755,36.0973218,16.9147194,12.5003231,43.0525411,4.9686801,35.2025351,12.9213677,1.5582321,1.5683412,11.5591808,61.6295155,65.2926674,55.4891047,32.5622401,7.5348069,14.3477374,69.0536412,43.4026294,36.520343,16.8100138,12.098904,43.0280358,4.8279279,35.5946777,11.6600975\r\n1650,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.6056075,1.5955955,12.0359316,61.7773239,65.4405315,55.5266953,32.1567562,8.640296,14.982529,68.8001961,43.2300755,36.0973218,16.9147194,12.5003231,43.0525411,4.9686801,35.2025351,12.9213677,1.5582321,1.5683412,11.5591808,61.6295155,65.2926674,55.4891047,32.5622401,7.5348069,14.3477374,69.0536412,43.4026294,36.520343,16.8100138,12.098904,43.0280358,4.8279279,35.5946777,11.6600975,1.5014806,1.5116428,11.8248024,61.4714482,64.8825696,56.9457327,32.318242,7.1729518,13.3983594,68.4250317,43.1921359,36.2734037,16.9532266,12.0111992,43.2859395,4.6115632,35.9222638,10.4743166\r\n1651,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5582321,1.5683412,11.5591808,61.6295155,65.2926674,55.4891047,32.5622401,7.5348069,14.3477374,69.0536412,43.4026294,36.520343,16.8100138,12.098904,43.0280358,4.8279279,35.5946777,11.6600975,1.5014806,1.5116428,11.8248024,61.4714482,64.8825696,56.9457327,32.318242,7.1729518,13.3983594,68.4250317,43.1921359,36.2734037,16.9532266,12.0111992,43.2859395,4.6115632,35.9222638,10.4743166,1.3400391,1.3433937,11.6749292,60.9602213,64.5496372,55.3638507,30.7719769,6.6971599,13.4224494,67.6719679,42.6218606,34.2723468,16.6667431,12.0382567,42.2745991,4.3410064,36.103925,8.6345451\r\n1652,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5014806,1.5116428,11.8248024,61.4714482,64.8825696,56.9457327,32.318242,7.1729518,13.3983594,68.4250317,43.1921359,36.2734037,16.9532266,12.0111992,43.2859395,4.6115632,35.9222638,10.4743166,1.3400391,1.3433937,11.6749292,60.9602213,64.5496372,55.3638507,30.7719769,6.6971599,13.4224494,67.6719679,42.6218606,34.2723468,16.6667431,12.0382567,42.2745991,4.3410064,36.103925,8.6345451,1.4181698,1.4318414,11.7778216,60.8250907,64.9565471,55.8882239,32.1691506,7.0044848,12.4348913,67.736883,42.9755802,33.8261494,17.0484828,12.0786923,41.4691402,4.386385,35.5423229,7.9591902\r\n1653,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3400391,1.3433937,11.6749292,60.9602213,64.5496372,55.3638507,30.7719769,6.6971599,13.4224494,67.6719679,42.6218606,34.2723468,16.6667431,12.0382567,42.2745991,4.3410064,36.103925,8.6345451,1.4181698,1.4318414,11.7778216,60.8250907,64.9565471,55.8882239,32.1691506,7.0044848,12.4348913,67.736883,42.9755802,33.8261494,17.0484828,12.0786923,41.4691402,4.386385,35.5423229,7.9591902,1.4683724,1.4989703,10.9797651,59.8746019,63.7458509,55.5751892,31.9837827,6.920854,13.503696,68.120007,43.2685068,32.035013,16.4304944,11.2328681,40.1067957,4.3566758,36.8838629,7.1138647\r\n1654,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.4181698,1.4318414,11.7778216,60.8250907,64.9565471,55.8882239,32.1691506,7.0044848,12.4348913,67.736883,42.9755802,33.8261494,17.0484828,12.0786923,41.4691402,4.386385,35.5423229,7.9591902,1.4683724,1.4989703,10.9797651,59.8746019,63.7458509,55.5751892,31.9837827,6.920854,13.503696,68.120007,43.2685068,32.035013,16.4304944,11.2328681,40.1067957,4.3566758,36.8838629,7.1138647,1.5443972,1.5649287,11.1068509,58.3249143,62.3353676,55.1934195,31.8105588,6.1101746,13.0469074,67.9180585,42.8229143,31.4010118,16.9287776,11.6680705,39.3327389,4.524616,38.4364624,6.1364042\r\n1655,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.4683724,1.4989703,10.9797651,59.8746019,63.7458509,55.5751892,31.9837827,6.920854,13.503696,68.120007,43.2685068,32.035013,16.4304944,11.2328681,40.1067957,4.3566758,36.8838629,7.1138647,1.5443972,1.5649287,11.1068509,58.3249143,62.3353676,55.1934195,31.8105588,6.1101746,13.0469074,67.9180585,42.8229143,31.4010118,16.9287776,11.6680705,39.3327389,4.524616,38.4364624,6.1364042,1.4582164,1.4926468,11.6437201,59.4594295,62.83729,57.3624524,31.1221458,5.2543397,12.138441,66.867899,41.851628,31.8440955,16.5689874,11.5886532,40.0405232,4.1303695,39.2484506,5.8346905\r\n1656,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5443972,1.5649287,11.1068509,58.3249143,62.3353676,55.1934195,31.8105588,6.1101746,13.0469074,67.9180585,42.8229143,31.4010118,16.9287776,11.6680705,39.3327389,4.524616,38.4364624,6.1364042,1.4582164,1.4926468,11.6437201,59.4594295,62.83729,57.3624524,31.1221458,5.2543397,12.138441,66.867899,41.851628,31.8440955,16.5689874,11.5886532,40.0405232,4.1303695,39.2484506,5.8346905,1.5275814,1.5831055,12.0654244,59.1436761,62.0110317,57.0256967,32.1865268,5.6760508,12.1348788,68.1892316,43.3669974,30.975664,16.7936052,11.7720133,38.2236611,4.4365567,38.5987484,5.43484\r\n1657,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.4582164,1.4926468,11.6437201,59.4594295,62.83729,57.3624524,31.1221458,5.2543397,12.138441,66.867899,41.851628,31.8440955,16.5689874,11.5886532,40.0405232,4.1303695,39.2484506,5.8346905,1.5275814,1.5831055,12.0654244,59.1436761,62.0110317,57.0256967,32.1865268,5.6760508,12.1348788,68.1892316,43.3669974,30.975664,16.7936052,11.7720133,38.2236611,4.4365567,38.5987484,5.43484,1.6180362,1.6404606,12.3397041,59.927197,63.3424123,57.3852169,32.942829,5.8948502,12.0045658,68.6888841,44.2550434,30.5824171,17.433797,12.1453809,36.6946558,4.5304366,38.701625,5.858119\r\n1658,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5275814,1.5831055,12.0654244,59.1436761,62.0110317,57.0256967,32.1865268,5.6760508,12.1348788,68.1892316,43.3669974,30.975664,16.7936052,11.7720133,38.2236611,4.4365567,38.5987484,5.43484,1.6180362,1.6404606,12.3397041,59.927197,63.3424123,57.3852169,32.942829,5.8948502,12.0045658,68.6888841,44.2550434,30.5824171,17.433797,12.1453809,36.6946558,4.5304366,38.701625,5.858119,1.6113213,1.6127504,12.6339185,59.0754549,63.4311781,56.5913713,34.5105712,5.5625775,10.9862423,69.8595174,44.8573276,31.295433,17.4930996,12.1049692,36.1830866,4.6403873,38.226449,4.9950415\r\n1659,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.6180362,1.6404606,12.3397041,59.927197,63.3424123,57.3852169,32.942829,5.8948502,12.0045658,68.6888841,44.2550434,30.5824171,17.433797,12.1453809,36.6946558,4.5304366,38.701625,5.858119,1.6113213,1.6127504,12.6339185,59.0754549,63.4311781,56.5913713,34.5105712,5.5625775,10.9862423,69.8595174,44.8573276,31.295433,17.4930996,12.1049692,36.1830866,4.6403873,38.226449,4.9950415,1.7689985,1.7596204,13.0026351,60.1482868,63.1472708,55.9332832,33.8998791,5.0119353,12.3479412,70.917836,45.6242188,32.6505045,17.387641,12.1748653,36.5599147,4.5386553,39.0517552,6.7697436\r\n1660,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.6113213,1.6127504,12.6339185,59.0754549,63.4311781,56.5913713,34.5105712,5.5625775,10.9862423,69.8595174,44.8573276,31.295433,17.4930996,12.1049692,36.1830866,4.6403873,38.226449,4.9950415,1.7689985,1.7596204,13.0026351,60.1482868,63.1472708,55.9332832,33.8998791,5.0119353,12.3479412,70.917836,45.6242188,32.6505045,17.387641,12.1748653,36.5599147,4.5386553,39.0517552,6.7697436,1.6763246,1.6627835,13.2179199,61.6415102,64.909367,56.4379438,34.0412275,5.6265743,12.2285358,68.8302842,45.0778095,36.1594249,18.1386233,12.7017631,36.8307396,4.6339974,38.1406585,5.7815688\r\n1661,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.7689985,1.7596204,13.0026351,60.1482868,63.1472708,55.9332832,33.8998791,5.0119353,12.3479412,70.917836,45.6242188,32.6505045,17.387641,12.1748653,36.5599147,4.5386553,39.0517552,6.7697436,1.6763246,1.6627835,13.2179199,61.6415102,64.909367,56.4379438,34.0412275,5.6265743,12.2285358,68.8302842,45.0778095,36.1594249,18.1386233,12.7017631,36.8307396,4.6339974,38.1406585,5.7815688,1.603944,1.6016423,13.0127636,62.513915,65.0303027,56.0187444,33.5436968,5.2019249,12.1068105,69.5979546,45.2495703,35.8488416,17.3615247,12.1951957,36.3658299,4.9208919,38.1268709,5.3648069\r\n1662,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.6763246,1.6627835,13.2179199,61.6415102,64.909367,56.4379438,34.0412275,5.6265743,12.2285358,68.8302842,45.0778095,36.1594249,18.1386233,12.7017631,36.8307396,4.6339974,38.1406585,5.7815688,1.603944,1.6016423,13.0127636,62.513915,65.0303027,56.0187444,33.5436968,5.2019249,12.1068105,69.5979546,45.2495703,35.8488416,17.3615247,12.1951957,36.3658299,4.9208919,38.1268709,5.3648069,1.5435739,1.5181378,12.6153992,62.828898,64.4439242,55.0660286,33.2290911,5.0378546,13.1433392,69.598382,45.6689485,33.9191097,17.3423195,12.1382891,35.1529202,5.11826,38.6916423,6.1363664\r\n1663,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.603944,1.6016423,13.0127636,62.513915,65.0303027,56.0187444,33.5436968,5.2019249,12.1068105,69.5979546,45.2495703,35.8488416,17.3615247,12.1951957,36.3658299,4.9208919,38.1268709,5.3648069,1.5435739,1.5181378,12.6153992,62.828898,64.4439242,55.0660286,33.2290911,5.0378546,13.1433392,69.598382,45.6689485,33.9191097,17.3423195,12.1382891,35.1529202,5.11826,38.6916423,6.1363664,1.6571784,1.6828193,12.9142823,62.4643501,65.2581287,54.7408161,31.9700132,4.4374714,12.7145956,68.8693551,45.6507058,33.810131,17.7550911,12.5643362,35.0882643,4.7556831,37.8198274,5.7870424\r\n1664,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5435739,1.5181378,12.6153992,62.828898,64.4439242,55.0660286,33.2290911,5.0378546,13.1433392,69.598382,45.6689485,33.9191097,17.3423195,12.1382891,35.1529202,5.11826,38.6916423,6.1363664,1.6571784,1.6828193,12.9142823,62.4643501,65.2581287,54.7408161,31.9700132,4.4374714,12.7145956,68.8693551,45.6507058,33.810131,17.7550911,12.5643362,35.0882643,4.7556831,37.8198274,5.7870424,1.6953764,1.7507726,13.2695845,63.3977534,64.2471671,53.5154124,31.6890231,3.6699212,12.3105197,69.8376359,45.6583363,34.7835713,18.0441264,12.9879008,35.317759,5.2207467,36.9144271,6.5315286\r\n1665,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.6571784,1.6828193,12.9142823,62.4643501,65.2581287,54.7408161,31.9700132,4.4374714,12.7145956,68.8693551,45.6507058,33.810131,17.7550911,12.5643362,35.0882643,4.7556831,37.8198274,5.7870424,1.6953764,1.7507726,13.2695845,63.3977534,64.2471671,53.5154124,31.6890231,3.6699212,12.3105197,69.8376359,45.6583363,34.7835713,18.0441264,12.9879008,35.317759,5.2207467,36.9144271,6.5315286,1.6583775,1.7111797,13.4075075,62.170155,63.1085337,54.9811214,31.0646647,4.0212828,12.5655517,69.2691642,45.7934347,33.6867535,17.6788908,12.9372987,34.3183879,5.0542277,37.878771,6.7982456\r\n1666,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.6953764,1.7507726,13.2695845,63.3977534,64.2471671,53.5154124,31.6890231,3.6699212,12.3105197,69.8376359,45.6583363,34.7835713,18.0441264,12.9879008,35.317759,5.2207467,36.9144271,6.5315286,1.6583775,1.7111797,13.4075075,62.170155,63.1085337,54.9811214,31.0646647,4.0212828,12.5655517,69.2691642,45.7934347,33.6867535,17.6788908,12.9372987,34.3183879,5.0542277,37.878771,6.7982456,1.5239229,1.5906171,12.7966316,60.5562685,62.2671588,55.1972527,30.6870984,3.7655914,11.6380625,68.8463053,45.301009,32.8308176,17.8366487,12.6085004,32.8475374,5.1074367,37.6858574,5.5785147\r\n1667,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.6583775,1.7111797,13.4075075,62.170155,63.1085337,54.9811214,31.0646647,4.0212828,12.5655517,69.2691642,45.7934347,33.6867535,17.6788908,12.9372987,34.3183879,5.0542277,37.878771,6.7982456,1.5239229,1.5906171,12.7966316,60.5562685,62.2671588,55.1972527,30.6870984,3.7655914,11.6380625,68.8463053,45.301009,32.8308176,17.8366487,12.6085004,32.8475374,5.1074367,37.6858574,5.5785147,1.4244095,1.4874162,12.9393951,59.454173,60.9521765,55.4105802,30.6000595,3.0580761,11.065235,70.8442478,45.1918889,31.0626653,17.5618692,12.6940741,32.9816034,5.0132445,38.6496319,5.6862398\r\n1668,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.5239229,1.5906171,12.7966316,60.5562685,62.2671588,55.1972527,30.6870984,3.7655914,11.6380625,68.8463053,45.301009,32.8308176,17.8366487,12.6085004,32.8475374,5.1074367,37.6858574,5.5785147,1.4244095,1.4874162,12.9393951,59.454173,60.9521765,55.4105802,30.6000595,3.0580761,11.065235,70.8442478,45.1918889,31.0626653,17.5618692,12.6940741,32.9816034,5.0132445,38.6496319,5.6862398,1.3006615,1.3613677,12.58696,59.3700974,61.9493849,56.7592214,31.68686,3.829974,11.4185483,70.8640576,45.5066957,30.7571374,17.2890829,12.3725681,32.5820843,4.6504829,38.227668,5.5555258\r\n1669,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.4244095,1.4874162,12.9393951,59.454173,60.9521765,55.4105802,30.6000595,3.0580761,11.065235,70.8442478,45.1918889,31.0626653,17.5618692,12.6940741,32.9816034,5.0132445,38.6496319,5.6862398,1.3006615,1.3613677,12.58696,59.3700974,61.9493849,56.7592214,31.68686,3.829974,11.4185483,70.8640576,45.5066957,30.7571374,17.2890829,12.3725681,32.5820843,4.6504829,38.227668,5.5555258,1.2288904,1.2887464,11.7722584,58.669593,61.721901,56.2176647,32.1933733,4.251628,10.9328388,70.9718246,45.9582093,31.339233,16.5658911,11.6381939,31.5888712,4.4456743,38.2091953,5.1723854\r\n1670,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.3006615,1.3613677,12.58696,59.3700974,61.9493849,56.7592214,31.68686,3.829974,11.4185483,70.8640576,45.5066957,30.7571374,17.2890829,12.3725681,32.5820843,4.6504829,38.227668,5.5555258,1.2288904,1.2887464,11.7722584,58.669593,61.721901,56.2176647,32.1933733,4.251628,10.9328388,70.9718246,45.9582093,31.339233,16.5658911,11.6381939,31.5888712,4.4456743,38.2091953,5.1723854,1.0699683,1.0882046,11.1147049,57.4087156,60.7250421,55.8574895,32.6149453,4.4058975,11.4767732,71.2882156,45.5710714,31.5814153,15.8046977,11.1173729,31.1960845,4.4834128,38.7940139,5.0943096\r\n1671,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.2288904,1.2887464,11.7722584,58.669593,61.721901,56.2176647,32.1933733,4.251628,10.9328388,70.9718246,45.9582093,31.339233,16.5658911,11.6381939,31.5888712,4.4456743,38.2091953,5.1723854,1.0699683,1.0882046,11.1147049,57.4087156,60.7250421,55.8574895,32.6149453,4.4058975,11.4767732,71.2882156,45.5710714,31.5814153,15.8046977,11.1173729,31.1960845,4.4834128,38.7940139,5.0943096,0.9807254,0.9863999,10.3286284,56.6600115,61.8242457,57.3017616,33.4532709,4.2534904,12.5234175,70.7195264,45.3403626,30.6359195,15.3336679,10.4999144,30.8108114,4.2670093,38.9230001,4.4061021\r\n1672,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,1.0699683,1.0882046,11.1147049,57.4087156,60.7250421,55.8574895,32.6149453,4.4058975,11.4767732,71.2882156,45.5710714,31.5814153,15.8046977,11.1173729,31.1960845,4.4834128,38.7940139,5.0943096,0.9807254,0.9863999,10.3286284,56.6600115,61.8242457,57.3017616,33.4532709,4.2534904,12.5234175,70.7195264,45.3403626,30.6359195,15.3336679,10.4999144,30.8108114,4.2670093,38.9230001,4.4061021,0.9613894,1.005681,9.5478162,57.9449625,63.3687089,56.5030268,32.9857153,3.9318369,13.2122629,71.212739,45.3136146,31.6743923,14.7150446,9.7366425,30.657747,4.5941389,37.9461132,4.1832371\r\n1673,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.0,0.0,0.0,0.0,0.0,1.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,0.0,0.0,0.9807254,0.9863999,10.3286284,56.6600115,61.8242457,57.3017616,33.4532709,4.2534904,12.5234175,70.7195264,45.3403626,30.6359195,15.3336679,10.4999144,30.8108114,4.2670093,38.9230001,4.4061021,0.9613894,1.005681,9.5478162,57.9449625,63.3687089,56.5030268,32.9857153,3.9318369,13.2122629,71.212739,45.3136146,31.6743923,14.7150446,9.7366425,30.657747,4.5941389,37.9461132,4.1832371,0.9968769,1.0266205,9.550281,59.2336948,63.2514329,55.8166344,33.1242636,3.8970922,12.5098794,70.9130728,45.255776,31.857102,14.2610119,9.6437273,30.5590491,4.7258734,37.4997165,4.2856805\r\n1674,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.117614,5.3148224,38.4849215,81.472461,77.5394364,79.6634061,18.9773798,37.321666,16.5300019,56.1788576,22.8798225,66.6698761,46.0433927,38.300359,77.2175736,5.1795001,37.8230318,22.2049731,5.2068641,5.4052183,39.6889626,80.4518326,77.4603065,78.8707894,17.3662988,35.8354907,15.9696853,56.0733632,22.4193867,67.0183788,47.372202,39.6530473,78.1766292,5.1088101,37.9807632,23.2443453,5.4711126,5.6294171,40.8985521,79.8454944,77.3556087,78.2278804,15.5853025,35.2532492,16.9517227,56.4326024,22.1973206,66.8134243,47.7744544,40.3493043,78.356822,5.1957241,37.515445,23.7898855\r\n1675,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.2068641,5.4052183,39.6889626,80.4518326,77.4603065,78.8707894,17.3662988,35.8354907,15.9696853,56.0733632,22.4193867,67.0183788,47.372202,39.6530473,78.1766292,5.1088101,37.9807632,23.2443453,5.4711126,5.6294171,40.8985521,79.8454944,77.3556087,78.2278804,15.5853025,35.2532492,16.9517227,56.4326024,22.1973206,66.8134243,47.7744544,40.3493043,78.356822,5.1957241,37.515445,23.7898855,5.5894416,5.7799016,41.9398392,79.6974691,77.3352751,77.7933369,14.889477,35.2909006,17.0759008,55.5460556,22.0533995,67.2696613,48.7889613,41.3837598,79.0753042,5.3671765,37.7106485,25.2555192\r\n1676,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.4711126,5.6294171,40.8985521,79.8454944,77.3556087,78.2278804,15.5853025,35.2532492,16.9517227,56.4326024,22.1973206,66.8134243,47.7744544,40.3493043,78.356822,5.1957241,37.515445,23.7898855,5.5894416,5.7799016,41.9398392,79.6974691,77.3352751,77.7933369,14.889477,35.2909006,17.0759008,55.5460556,22.0533995,67.2696613,48.7889613,41.3837598,79.0753042,5.3671765,37.7106485,25.2555192,5.6133522,5.8136242,42.6741155,80.0370662,76.1970492,77.1711103,14.0379194,36.5582571,17.0496316,54.6754157,21.0857548,68.02891,49.36338,42.2291842,80.1716881,5.1688857,38.2512581,26.433463\r\n1677,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.5894416,5.7799016,41.9398392,79.6974691,77.3352751,77.7933369,14.889477,35.2909006,17.0759008,55.5460556,22.0533995,67.2696613,48.7889613,41.3837598,79.0753042,5.3671765,37.7106485,25.2555192,5.6133522,5.8136242,42.6741155,80.0370662,76.1970492,77.1711103,14.0379194,36.5582571,17.0496316,54.6754157,21.0857548,68.02891,49.36338,42.2291842,80.1716881,5.1688857,38.2512581,26.433463,5.6221015,5.8415556,43.6875437,79.4352277,75.7050715,76.8642042,13.5649824,36.7127661,17.1336466,53.48847,20.078701,67.1929213,49.556158,42.9500452,80.4673945,5.1998342,38.893607,28.2654702\r\n1678,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.6133522,5.8136242,42.6741155,80.0370662,76.1970492,77.1711103,14.0379194,36.5582571,17.0496316,54.6754157,21.0857548,68.02891,49.36338,42.2291842,80.1716881,5.1688857,38.2512581,26.433463,5.6221015,5.8415556,43.6875437,79.4352277,75.7050715,76.8642042,13.5649824,36.7127661,17.1336466,53.48847,20.078701,67.1929213,49.556158,42.9500452,80.4673945,5.1998342,38.893607,28.2654702,5.6490987,5.8566626,44.2402351,79.4260785,74.7402383,75.8350195,13.07584,38.8580058,17.9561188,53.4409075,19.4421954,66.9193691,49.9896059,43.5004189,81.0652853,5.2059152,38.927199,29.884759\r\n1679,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.6221015,5.8415556,43.6875437,79.4352277,75.7050715,76.8642042,13.5649824,36.7127661,17.1336466,53.48847,20.078701,67.1929213,49.556158,42.9500452,80.4673945,5.1998342,38.893607,28.2654702,5.6490987,5.8566626,44.2402351,79.4260785,74.7402383,75.8350195,13.07584,38.8580058,17.9561188,53.4409075,19.4421954,66.9193691,49.9896059,43.5004189,81.0652853,5.2059152,38.927199,29.884759,5.3419708,5.5110801,44.1045062,78.3365297,73.9894623,75.1368353,13.359704,37.652507,18.905945,53.213236,19.46018,65.954137,49.8637961,43.5142548,81.1957211,5.2278553,39.3029484,30.8237174\r\n1680,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.6490987,5.8566626,44.2402351,79.4260785,74.7402383,75.8350195,13.07584,38.8580058,17.9561188,53.4409075,19.4421954,66.9193691,49.9896059,43.5004189,81.0652853,5.2059152,38.927199,29.884759,5.3419708,5.5110801,44.1045062,78.3365297,73.9894623,75.1368353,13.359704,37.652507,18.905945,53.213236,19.46018,65.954137,49.8637961,43.5142548,81.1957211,5.2278553,39.3029484,30.8237174,5.4132701,5.578898,44.0669106,78.5530434,74.3817599,76.2121638,13.4013405,39.0208194,20.4185862,52.8183971,19.7994554,65.4809524,49.8197646,43.4584408,81.2756682,5.4286358,40.0489831,31.3720274\r\n1681,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.3419708,5.5110801,44.1045062,78.3365297,73.9894623,75.1368353,13.359704,37.652507,18.905945,53.213236,19.46018,65.954137,49.8637961,43.5142548,81.1957211,5.2278553,39.3029484,30.8237174,5.4132701,5.578898,44.0669106,78.5530434,74.3817599,76.2121638,13.4013405,39.0208194,20.4185862,52.8183971,19.7994554,65.4809524,49.8197646,43.4584408,81.2756682,5.4286358,40.0489831,31.3720274,5.0231954,5.1670668,42.6724924,78.9848291,74.7389577,76.5025919,12.938527,40.325773,20.8996763,52.7955517,20.0606697,66.0166848,48.8599758,42.6005644,82.0046363,5.4278159,40.3056625,32.1122954\r\n1682,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.4132701,5.578898,44.0669106,78.5530434,74.3817599,76.2121638,13.4013405,39.0208194,20.4185862,52.8183971,19.7994554,65.4809524,49.8197646,43.4584408,81.2756682,5.4286358,40.0489831,31.3720274,5.0231954,5.1670668,42.6724924,78.9848291,74.7389577,76.5025919,12.938527,40.325773,20.8996763,52.7955517,20.0606697,66.0166848,48.8599758,42.6005644,82.0046363,5.4278159,40.3056625,32.1122954,4.7761899,4.8990352,42.3768065,79.713586,75.4912147,76.7919906,13.3671626,40.9769653,21.7561756,54.1017161,20.1886595,66.2414936,48.0816497,42.0588964,82.0645642,5.8062329,40.7485888,32.5471658\r\n1683,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,5.0231954,5.1670668,42.6724924,78.9848291,74.7389577,76.5025919,12.938527,40.325773,20.8996763,52.7955517,20.0606697,66.0166848,48.8599758,42.6005644,82.0046363,5.4278159,40.3056625,32.1122954,4.7761899,4.8990352,42.3768065,79.713586,75.4912147,76.7919906,13.3671626,40.9769653,21.7561756,54.1017161,20.1886595,66.2414936,48.0816497,42.0588964,82.0645642,5.8062329,40.7485888,32.5471658,4.4657486,4.5565754,41.3514919,78.6676763,75.9381708,76.6533371,13.5602839,41.6864055,21.9811326,55.0117251,20.8061333,64.7795501,47.2253852,41.3577496,81.8906327,5.8362607,40.7256063,32.5256477\r\n1684,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,4.7761899,4.8990352,42.3768065,79.713586,75.4912147,76.7919906,13.3671626,40.9769653,21.7561756,54.1017161,20.1886595,66.2414936,48.0816497,42.0588964,82.0645642,5.8062329,40.7485888,32.5471658,4.4657486,4.5565754,41.3514919,78.6676763,75.9381708,76.6533371,13.5602839,41.6864055,21.9811326,55.0117251,20.8061333,64.7795501,47.2253852,41.3577496,81.8906327,5.8362607,40.7256063,32.5256477,4.2223245,4.3122952,39.5800475,79.7709137,77.1431215,75.7243058,13.6048588,43.2217011,21.9032499,55.6244856,21.1761039,64.9047238,46.4814386,40.2450901,82.1698396,5.8464254,40.4105968,32.1688878\r\n1685,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,4.4657486,4.5565754,41.3514919,78.6676763,75.9381708,76.6533371,13.5602839,41.6864055,21.9811326,55.0117251,20.8061333,64.7795501,47.2253852,41.3577496,81.8906327,5.8362607,40.7256063,32.5256477,4.2223245,4.3122952,39.5800475,79.7709137,77.1431215,75.7243058,13.6048588,43.2217011,21.9032499,55.6244856,21.1761039,64.9047238,46.4814386,40.2450901,82.1698396,5.8464254,40.4105968,32.1688878,3.9655751,4.0487171,37.4388329,79.5994246,76.0885321,76.3892571,13.5746764,41.3470321,21.8939404,55.2981855,22.0447251,65.5675713,44.724896,38.4748983,82.1704364,5.7718705,41.2122881,31.6666592\r\n1686,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,4.2223245,4.3122952,39.5800475,79.7709137,77.1431215,75.7243058,13.6048588,43.2217011,21.9032499,55.6244856,21.1761039,64.9047238,46.4814386,40.2450901,82.1698396,5.8464254,40.4105968,32.1688878,3.9655751,4.0487171,37.4388329,79.5994246,76.0885321,76.3892571,13.5746764,41.3470321,21.8939404,55.2981855,22.0447251,65.5675713,44.724896,38.4748983,82.1704364,5.7718705,41.2122881,31.6666592,3.7833942,3.8465101,36.9606401,79.9217805,76.9381182,76.4183436,13.5183548,43.497003,22.5146711,56.2556687,22.158114,65.9380917,42.8012976,37.0585125,82.8666337,6.0702466,41.1815976,31.4711928\r\n1687,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,3.9655751,4.0487171,37.4388329,79.5994246,76.0885321,76.3892571,13.5746764,41.3470321,21.8939404,55.2981855,22.0447251,65.5675713,44.724896,38.4748983,82.1704364,5.7718705,41.2122881,31.6666592,3.7833942,3.8465101,36.9606401,79.9217805,76.9381182,76.4183436,13.5183548,43.497003,22.5146711,56.2556687,22.158114,65.9380917,42.8012976,37.0585125,82.8666337,6.0702466,41.1815976,31.4711928,3.3462582,3.4323898,35.3690129,79.0504214,76.9016176,75.2128512,13.6183664,43.6034355,22.0428748,57.3704244,22.9975308,65.2971582,40.6531039,35.1533685,82.9196935,6.3507012,40.7333658,31.3530259\r\n1688,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,3.7833942,3.8465101,36.9606401,79.9217805,76.9381182,76.4183436,13.5183548,43.497003,22.5146711,56.2556687,22.158114,65.9380917,42.8012976,37.0585125,82.8666337,6.0702466,41.1815976,31.4711928,3.3462582,3.4323898,35.3690129,79.0504214,76.9016176,75.2128512,13.6183664,43.6034355,22.0428748,57.3704244,22.9975308,65.2971582,40.6531039,35.1533685,82.9196935,6.3507012,40.7333658,31.3530259,3.1686472,3.2633521,33.8709611,79.3537585,77.3494109,75.9972847,13.731124,44.9041817,22.0272428,57.7476953,22.9693067,65.1780476,38.5891611,33.3018676,82.7620385,6.6164411,39.8675762,30.2677887\r\n1689,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,3.3462582,3.4323898,35.3690129,79.0504214,76.9016176,75.2128512,13.6183664,43.6034355,22.0428748,57.3704244,22.9975308,65.2971582,40.6531039,35.1533685,82.9196935,6.3507012,40.7333658,31.3530259,3.1686472,3.2633521,33.8709611,79.3537585,77.3494109,75.9972847,13.731124,44.9041817,22.0272428,57.7476953,22.9693067,65.1780476,38.5891611,33.3018676,82.7620385,6.6164411,39.8675762,30.2677887,2.9619029,3.0658097,31.5501228,78.6968747,76.9083963,76.2633285,14.587539,46.6913782,21.4322926,58.3317212,23.6725673,64.0553594,36.4861234,31.3146491,82.7394515,6.3578211,38.2078139,29.4265123\r\n1690,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,3.1686472,3.2633521,33.8709611,79.3537585,77.3494109,75.9972847,13.731124,44.9041817,22.0272428,57.7476953,22.9693067,65.1780476,38.5891611,33.3018676,82.7620385,6.6164411,39.8675762,30.2677887,2.9619029,3.0658097,31.5501228,78.6968747,76.9083963,76.2633285,14.587539,46.6913782,21.4322926,58.3317212,23.6725673,64.0553594,36.4861234,31.3146491,82.7394515,6.3578211,38.2078139,29.4265123,2.8161589,2.9158569,30.258934,80.5531501,77.7104605,76.3616622,14.5709635,46.6488855,22.2070092,58.1781365,23.7796528,65.0734972,35.0701198,29.9010225,83.1658979,6.7143282,38.4684157,28.5133051\r\n1691,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,2.9619029,3.0658097,31.5501228,78.6968747,76.9083963,76.2633285,14.587539,46.6913782,21.4322926,58.3317212,23.6725673,64.0553594,36.4861234,31.3146491,82.7394515,6.3578211,38.2078139,29.4265123,2.8161589,2.9158569,30.258934,80.5531501,77.7104605,76.3616622,14.5709635,46.6488855,22.2070092,58.1781365,23.7796528,65.0734972,35.0701198,29.9010225,83.1658979,6.7143282,38.4684157,28.5133051,2.5858963,2.6517668,29.3359254,79.2885081,77.0494901,78.1245877,14.9755079,46.3771189,22.5400888,58.3920191,24.6644552,64.8823276,33.4868465,28.6973715,82.7562465,6.6478666,39.1391094,26.9454459\r\n1692,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,2.8161589,2.9158569,30.258934,80.5531501,77.7104605,76.3616622,14.5709635,46.6488855,22.2070092,58.1781365,23.7796528,65.0734972,35.0701198,29.9010225,83.1658979,6.7143282,38.4684157,28.5133051,2.5858963,2.6517668,29.3359254,79.2885081,77.0494901,78.1245877,14.9755079,46.3771189,22.5400888,58.3920191,24.6644552,64.8823276,33.4868465,28.6973715,82.7562465,6.6478666,39.1391094,26.9454459,2.3214911,2.3833513,27.9369351,78.0617022,77.8838869,78.504568,14.8229092,48.13512,22.3240824,59.0996892,24.2639952,63.9134106,32.473468,27.8326372,82.6957817,6.7028548,38.5577443,25.4867804\r\n1693,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,2.5858963,2.6517668,29.3359254,79.2885081,77.0494901,78.1245877,14.9755079,46.3771189,22.5400888,58.3920191,24.6644552,64.8823276,33.4868465,28.6973715,82.7562465,6.6478666,39.1391094,26.9454459,2.3214911,2.3833513,27.9369351,78.0617022,77.8838869,78.504568,14.8229092,48.13512,22.3240824,59.0996892,24.2639952,63.9134106,32.473468,27.8326372,82.6957817,6.7028548,38.5577443,25.4867804,2.2082511,2.2489909,26.2843953,77.7747942,77.6959909,79.009789,15.0448313,47.4930813,22.3367053,57.9879237,24.4383635,63.2175213,31.4739553,26.8742078,82.2503289,6.7179779,38.4129574,23.718404\r\n1694,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,2.3214911,2.3833513,27.9369351,78.0617022,77.8838869,78.504568,14.8229092,48.13512,22.3240824,59.0996892,24.2639952,63.9134106,32.473468,27.8326372,82.6957817,6.7028548,38.5577443,25.4867804,2.2082511,2.2489909,26.2843953,77.7747942,77.6959909,79.009789,15.0448313,47.4930813,22.3367053,57.9879237,24.4383635,63.2175213,31.4739553,26.8742078,82.2503289,6.7179779,38.4129574,23.718404,1.763824,1.7776241,24.775405,78.8884048,78.1302323,80.1685639,15.1856466,48.8388259,22.5497727,58.0057744,24.7420579,63.3385485,29.7394306,25.1927686,81.9871394,6.4158711,37.7082073,21.3618588\r\n1695,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,2.2082511,2.2489909,26.2843953,77.7747942,77.6959909,79.009789,15.0448313,47.4930813,22.3367053,57.9879237,24.4383635,63.2175213,31.4739553,26.8742078,82.2503289,6.7179779,38.4129574,23.718404,1.763824,1.7776241,24.775405,78.8884048,78.1302323,80.1685639,15.1856466,48.8388259,22.5497727,58.0057744,24.7420579,63.3385485,29.7394306,25.1927686,81.9871394,6.4158711,37.7082073,21.3618588,1.6623786,1.6285729,24.3846415,78.3848657,77.3824989,79.3121428,15.7769971,47.4381558,22.2836754,58.8656796,26.2638898,62.1685637,28.8965471,24.482755,81.4991307,6.5377013,37.9542689,21.0416653\r\n1696,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.763824,1.7776241,24.775405,78.8884048,78.1302323,80.1685639,15.1856466,48.8388259,22.5497727,58.0057744,24.7420579,63.3385485,29.7394306,25.1927686,81.9871394,6.4158711,37.7082073,21.3618588,1.6623786,1.6285729,24.3846415,78.3848657,77.3824989,79.3121428,15.7769971,47.4381558,22.2836754,58.8656796,26.2638898,62.1685637,28.8965471,24.482755,81.4991307,6.5377013,37.9542689,21.0416653,1.3954956,1.3363958,23.346019,77.3320634,76.7495913,78.5787852,15.4386418,45.996551,21.8743195,58.5980706,26.9016719,62.7666312,28.0950971,23.6494029,81.0702602,6.383903,37.4546448,20.3412162\r\n1697,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.6623786,1.6285729,24.3846415,78.3848657,77.3824989,79.3121428,15.7769971,47.4381558,22.2836754,58.8656796,26.2638898,62.1685637,28.8965471,24.482755,81.4991307,6.5377013,37.9542689,21.0416653,1.3954956,1.3363958,23.346019,77.3320634,76.7495913,78.5787852,15.4386418,45.996551,21.8743195,58.5980706,26.9016719,62.7666312,28.0950971,23.6494029,81.0702602,6.383903,37.4546448,20.3412162,1.4163857,1.3549738,22.205524,74.9634365,74.7539021,78.3651655,15.7830247,44.8598329,21.4406711,59.0135367,27.3811179,61.2405023,27.1208137,22.7220711,80.3226787,6.191177,37.105574,19.9910662\r\n1698,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.3954956,1.3363958,23.346019,77.3320634,76.7495913,78.5787852,15.4386418,45.996551,21.8743195,58.5980706,26.9016719,62.7666312,28.0950971,23.6494029,81.0702602,6.383903,37.4546448,20.3412162,1.4163857,1.3549738,22.205524,74.9634365,74.7539021,78.3651655,15.7830247,44.8598329,21.4406711,59.0135367,27.3811179,61.2405023,27.1208137,22.7220711,80.3226787,6.191177,37.105574,19.9910662,1.3190257,1.2627437,20.6323939,75.8512771,74.4611923,78.1586451,15.4669508,45.3201223,21.8917677,59.6485154,26.9546019,60.5998575,25.6511425,21.4954537,80.0524524,6.1184615,35.5698397,19.5088153\r\n1699,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.4163857,1.3549738,22.205524,74.9634365,74.7539021,78.3651655,15.7830247,44.8598329,21.4406711,59.0135367,27.3811179,61.2405023,27.1208137,22.7220711,80.3226787,6.191177,37.105574,19.9910662,1.3190257,1.2627437,20.6323939,75.8512771,74.4611923,78.1586451,15.4669508,45.3201223,21.8917677,59.6485154,26.9546019,60.5998575,25.6511425,21.4954537,80.0524524,6.1184615,35.5698397,19.5088153,1.2528414,1.1950943,20.3887364,77.1989597,74.9749617,78.2807386,16.3225848,44.9138977,21.9043945,59.1171765,27.7592514,60.2991964,24.8646043,20.9536571,79.3708494,6.1227646,35.9093576,20.1813073\r\n1700,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.3190257,1.2627437,20.6323939,75.8512771,74.4611923,78.1586451,15.4669508,45.3201223,21.8917677,59.6485154,26.9546019,60.5998575,25.6511425,21.4954537,80.0524524,6.1184615,35.5698397,19.5088153,1.2528414,1.1950943,20.3887364,77.1989597,74.9749617,78.2807386,16.3225848,44.9138977,21.9043945,59.1171765,27.7592514,60.2991964,24.8646043,20.9536571,79.3708494,6.1227646,35.9093576,20.1813073,1.2370537,1.217089,19.3832996,78.3176969,74.8409724,79.2387707,16.3725331,44.8477223,21.5122527,59.6951095,27.8473696,60.619818,23.7697303,19.7903899,79.3921059,6.1202364,35.9297916,20.6200889\r\n1701,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.2528414,1.1950943,20.3887364,77.1989597,74.9749617,78.2807386,16.3225848,44.9138977,21.9043945,59.1171765,27.7592514,60.2991964,24.8646043,20.9536571,79.3708494,6.1227646,35.9093576,20.1813073,1.2370537,1.217089,19.3832996,78.3176969,74.8409724,79.2387707,16.3725331,44.8477223,21.5122527,59.6951095,27.8473696,60.619818,23.7697303,19.7903899,79.3921059,6.1202364,35.9297916,20.6200889,1.3315765,1.3437786,18.3617236,77.6047315,74.0428697,79.8215032,15.6183325,44.8358808,22.606733,59.456354,26.8884075,58.9086173,22.8902515,18.8098812,79.3776211,6.066814,35.5969601,20.6243687\r\n1702,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.2370537,1.217089,19.3832996,78.3176969,74.8409724,79.2387707,16.3725331,44.8477223,21.5122527,59.6951095,27.8473696,60.619818,23.7697303,19.7903899,79.3921059,6.1202364,35.9297916,20.6200889,1.3315765,1.3437786,18.3617236,77.6047315,74.0428697,79.8215032,15.6183325,44.8358808,22.606733,59.456354,26.8884075,58.9086173,22.8902515,18.8098812,79.3776211,6.066814,35.5969601,20.6243687,1.2176732,1.2845295,17.4978746,77.6404461,73.5372383,79.7890011,15.5012445,44.982442,22.607289,57.8251548,25.658471,58.2078714,21.9730143,17.9893263,78.9154647,5.7476813,35.4475236,20.0745538\r\n1703,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.3315765,1.3437786,18.3617236,77.6047315,74.0428697,79.8215032,15.6183325,44.8358808,22.606733,59.456354,26.8884075,58.9086173,22.8902515,18.8098812,79.3776211,6.066814,35.5969601,20.6243687,1.2176732,1.2845295,17.4978746,77.6404461,73.5372383,79.7890011,15.5012445,44.982442,22.607289,57.8251548,25.658471,58.2078714,21.9730143,17.9893263,78.9154647,5.7476813,35.4475236,20.0745538,1.2804208,1.3478442,16.6964649,79.2354383,73.8962275,80.0786095,15.0200572,43.9209786,23.3157018,57.9318162,24.5302099,56.2468292,21.1736232,17.1543315,78.8500028,5.8450045,35.9779868,18.8775532\r\n1704,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.2176732,1.2845295,17.4978746,77.6404461,73.5372383,79.7890011,15.5012445,44.982442,22.607289,57.8251548,25.658471,58.2078714,21.9730143,17.9893263,78.9154647,5.7476813,35.4475236,20.0745538,1.2804208,1.3478442,16.6964649,79.2354383,73.8962275,80.0786095,15.0200572,43.9209786,23.3157018,57.9318162,24.5302099,56.2468292,21.1736232,17.1543315,78.8500028,5.8450045,35.9779868,18.8775532,1.081761,1.1972824,15.949719,79.8353882,74.6157613,80.8255573,15.3669044,43.002059,22.4295022,57.684544,24.7411109,55.3956036,20.2260001,16.1644227,78.4581668,5.8775128,36.0039947,17.8106509\r\n1705,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.2804208,1.3478442,16.6964649,79.2354383,73.8962275,80.0786095,15.0200572,43.9209786,23.3157018,57.9318162,24.5302099,56.2468292,21.1736232,17.1543315,78.8500028,5.8450045,35.9779868,18.8775532,1.081761,1.1972824,15.949719,79.8353882,74.6157613,80.8255573,15.3669044,43.002059,22.4295022,57.684544,24.7411109,55.3956036,20.2260001,16.1644227,78.4581668,5.8775128,36.0039947,17.8106509,0.9990985,1.1475834,17.1764906,79.7633478,75.2293241,78.5065578,15.468316,42.7650496,21.7602563,58.6061755,24.8564367,53.9967063,20.305673,16.1739948,77.960531,6.0161804,36.5661537,18.3985353\r\n1706,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.081761,1.1972824,15.949719,79.8353882,74.6157613,80.8255573,15.3669044,43.002059,22.4295022,57.684544,24.7411109,55.3956036,20.2260001,16.1644227,78.4581668,5.8775128,36.0039947,17.8106509,0.9990985,1.1475834,17.1764906,79.7633478,75.2293241,78.5065578,15.468316,42.7650496,21.7602563,58.6061755,24.8564367,53.9967063,20.305673,16.1739948,77.960531,6.0161804,36.5661537,18.3985353,1.0931579,1.2629579,16.660698,79.0208876,75.0630344,77.6651168,15.6527477,42.3434336,22.4881945,59.394455,24.5789488,53.5756316,20.1512572,15.9495778,77.5838295,6.153071,36.8041389,18.0025491\r\n1707,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.9990985,1.1475834,17.1764906,79.7633478,75.2293241,78.5065578,15.468316,42.7650496,21.7602563,58.6061755,24.8564367,53.9967063,20.305673,16.1739948,77.960531,6.0161804,36.5661537,18.3985353,1.0931579,1.2629579,16.660698,79.0208876,75.0630344,77.6651168,15.6527477,42.3434336,22.4881945,59.394455,24.5789488,53.5756316,20.1512572,15.9495778,77.5838295,6.153071,36.8041389,18.0025491,1.1664423,1.3269362,16.8702972,78.2852999,74.3487737,77.1421824,15.9704836,41.6697756,21.1830163,59.0876018,25.5516933,52.2411543,19.9622954,15.9527013,76.9405638,5.9034934,37.0383707,16.5989092\r\n1708,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.0931579,1.2629579,16.660698,79.0208876,75.0630344,77.6651168,15.6527477,42.3434336,22.4881945,59.394455,24.5789488,53.5756316,20.1512572,15.9495778,77.5838295,6.153071,36.8041389,18.0025491,1.1664423,1.3269362,16.8702972,78.2852999,74.3487737,77.1421824,15.9704836,41.6697756,21.1830163,59.0876018,25.5516933,52.2411543,19.9622954,15.9527013,76.9405638,5.9034934,37.0383707,16.5989092,1.0268625,1.184959,16.2974182,78.1341324,73.7892861,75.076678,16.8963188,38.6840264,19.7192972,59.7171966,27.2282792,52.3896705,19.0551934,15.4104676,76.1359538,5.8729627,37.2186155,14.9776393\r\n1709,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.1664423,1.3269362,16.8702972,78.2852999,74.3487737,77.1421824,15.9704836,41.6697756,21.1830163,59.0876018,25.5516933,52.2411543,19.9622954,15.9527013,76.9405638,5.9034934,37.0383707,16.5989092,1.0268625,1.184959,16.2974182,78.1341324,73.7892861,75.076678,16.8963188,38.6840264,19.7192972,59.7171966,27.2282792,52.3896705,19.0551934,15.4104676,76.1359538,5.8729627,37.2186155,14.9776393,1.0850244,1.2128562,15.3758724,77.2309848,74.2539671,74.9297217,17.0155228,37.2997902,18.7390081,61.2562768,29.0277967,51.3652496,18.3141501,14.7196156,75.4512,6.1330971,37.4815611,14.8584865\r\n1710,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.0268625,1.184959,16.2974182,78.1341324,73.7892861,75.076678,16.8963188,38.6840264,19.7192972,59.7171966,27.2282792,52.3896705,19.0551934,15.4104676,76.1359538,5.8729627,37.2186155,14.9776393,1.0850244,1.2128562,15.3758724,77.2309848,74.2539671,74.9297217,17.0155228,37.2997902,18.7390081,61.2562768,29.0277967,51.3652496,18.3141501,14.7196156,75.4512,6.1330971,37.4815611,14.8584865,1.0091357,1.1473078,15.3728885,75.9853053,73.2269781,74.6257673,18.6674732,36.6639661,18.1990429,61.5252248,30.5055402,52.4113787,17.9326304,14.2780284,75.3029748,6.3978529,37.692327,14.9380766\r\n1711,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.0850244,1.2128562,15.3758724,77.2309848,74.2539671,74.9297217,17.0155228,37.2997902,18.7390081,61.2562768,29.0277967,51.3652496,18.3141501,14.7196156,75.4512,6.1330971,37.4815611,14.8584865,1.0091357,1.1473078,15.3728885,75.9853053,73.2269781,74.6257673,18.6674732,36.6639661,18.1990429,61.5252248,30.5055402,52.4113787,17.9326304,14.2780284,75.3029748,6.3978529,37.692327,14.9380766,0.9544187,1.049888,15.1599292,75.3717511,72.9550625,73.9595238,19.1144555,36.6366725,18.2757309,62.3461903,31.0511312,53.2383321,17.1474825,14.0100885,74.6777135,6.5694778,37.3472483,14.8412657\r\n1712,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.0091357,1.1473078,15.3728885,75.9853053,73.2269781,74.6257673,18.6674732,36.6639661,18.1990429,61.5252248,30.5055402,52.4113787,17.9326304,14.2780284,75.3029748,6.3978529,37.692327,14.9380766,0.9544187,1.049888,15.1599292,75.3717511,72.9550625,73.9595238,19.1144555,36.6366725,18.2757309,62.3461903,31.0511312,53.2383321,17.1474825,14.0100885,74.6777135,6.5694778,37.3472483,14.8412657,0.9555259,1.0192098,13.2675582,74.9509343,72.4540583,76.2753127,19.9023138,34.7542791,17.8749,62.3059502,32.0550911,54.1233555,16.5206121,13.1617317,74.1678945,6.7548019,37.7066949,13.5750345\r\n1713,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.9544187,1.049888,15.1599292,75.3717511,72.9550625,73.9595238,19.1144555,36.6366725,18.2757309,62.3461903,31.0511312,53.2383321,17.1474825,14.0100885,74.6777135,6.5694778,37.3472483,14.8412657,0.9555259,1.0192098,13.2675582,74.9509343,72.4540583,76.2753127,19.9023138,34.7542791,17.8749,62.3059502,32.0550911,54.1233555,16.5206121,13.1617317,74.1678945,6.7548019,37.7066949,13.5750345,0.8730395,0.9480145,12.2091079,73.4552701,71.4114678,76.40223,20.2065978,34.9088465,16.8126358,62.8693946,32.7654516,52.485653,15.3573947,12.1183841,73.9811262,6.8768459,36.9259322,11.8837915\r\n1714,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.9555259,1.0192098,13.2675582,74.9509343,72.4540583,76.2753127,19.9023138,34.7542791,17.8749,62.3059502,32.0550911,54.1233555,16.5206121,13.1617317,74.1678945,6.7548019,37.7066949,13.5750345,0.8730395,0.9480145,12.2091079,73.4552701,71.4114678,76.40223,20.2065978,34.9088465,16.8126358,62.8693946,32.7654516,52.485653,15.3573947,12.1183841,73.9811262,6.8768459,36.9259322,11.8837915,0.6623349,0.7392843,10.3219085,74.2766477,71.7117369,77.0312451,20.1157136,33.9190702,18.2751682,64.2744253,31.9528846,54.365438,14.2395328,10.7794634,74.4100511,7.3212284,36.1951526,11.4564872\r\n1715,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8730395,0.9480145,12.2091079,73.4552701,71.4114678,76.40223,20.2065978,34.9088465,16.8126358,62.8693946,32.7654516,52.485653,15.3573947,12.1183841,73.9811262,6.8768459,36.9259322,11.8837915,0.6623349,0.7392843,10.3219085,74.2766477,71.7117369,77.0312451,20.1157136,33.9190702,18.2751682,64.2744253,31.9528846,54.365438,14.2395328,10.7794634,74.4100511,7.3212284,36.1951526,11.4564872,0.6333909,0.6956809,10.003911,74.1950384,71.8102517,78.4325577,20.6402698,34.6315827,18.731845,64.3387794,31.4759335,54.358744,13.6102497,10.2411904,73.3450112,7.755338,36.1174508,11.7700794\r\n1716,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6623349,0.7392843,10.3219085,74.2766477,71.7117369,77.0312451,20.1157136,33.9190702,18.2751682,64.2744253,31.9528846,54.365438,14.2395328,10.7794634,74.4100511,7.3212284,36.1951526,11.4564872,0.6333909,0.6956809,10.003911,74.1950384,71.8102517,78.4325577,20.6402698,34.6315827,18.731845,64.3387794,31.4759335,54.358744,13.6102497,10.2411904,73.3450112,7.755338,36.1174508,11.7700794,0.5274917,0.5896746,9.8990938,74.0410598,69.9567215,77.5162903,21.5633368,33.825818,18.4512371,64.8472,31.8382124,54.1379042,13.3600826,10.0726269,72.8882891,7.8345407,36.2335442,11.3430168\r\n1717,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6333909,0.6956809,10.003911,74.1950384,71.8102517,78.4325577,20.6402698,34.6315827,18.731845,64.3387794,31.4759335,54.358744,13.6102497,10.2411904,73.3450112,7.755338,36.1174508,11.7700794,0.5274917,0.5896746,9.8990938,74.0410598,69.9567215,77.5162903,21.5633368,33.825818,18.4512371,64.8472,31.8382124,54.1379042,13.3600826,10.0726269,72.8882891,7.8345407,36.2335442,11.3430168,0.583626,0.6354222,9.342387,73.8809416,71.7340469,77.7661989,20.9442226,34.0912428,18.9733356,64.9601561,32.513311,53.2835328,12.8599136,9.5914371,72.3517831,7.8579748,36.6292847,11.2662984\r\n1718,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.5274917,0.5896746,9.8990938,74.0410598,69.9567215,77.5162903,21.5633368,33.825818,18.4512371,64.8472,31.8382124,54.1379042,13.3600826,10.0726269,72.8882891,7.8345407,36.2335442,11.3430168,0.583626,0.6354222,9.342387,73.8809416,71.7340469,77.7661989,20.9442226,34.0912428,18.9733356,64.9601561,32.513311,53.2835328,12.8599136,9.5914371,72.3517831,7.8579748,36.6292847,11.2662984,0.7023772,0.7813482,9.0426512,74.8085846,72.644239,78.3685459,20.6318371,34.87011,18.7610963,65.5507716,32.7567996,52.9629554,12.8230156,9.1425198,72.1821132,7.5877029,36.076956,12.6692337\r\n1719,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.583626,0.6354222,9.342387,73.8809416,71.7340469,77.7661989,20.9442226,34.0912428,18.9733356,64.9601561,32.513311,53.2835328,12.8599136,9.5914371,72.3517831,7.8579748,36.6292847,11.2662984,0.7023772,0.7813482,9.0426512,74.8085846,72.644239,78.3685459,20.6318371,34.87011,18.7610963,65.5507716,32.7567996,52.9629554,12.8230156,9.1425198,72.1821132,7.5877029,36.076956,12.6692337,0.8581248,0.9558378,8.8188211,73.4006134,72.3566003,77.1842167,20.662337,33.7524446,18.8947811,65.4859747,33.0928107,52.2796641,12.2789748,8.7819194,71.321141,7.4451105,36.0484321,12.6718935\r\n1720,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7023772,0.7813482,9.0426512,74.8085846,72.644239,78.3685459,20.6318371,34.87011,18.7610963,65.5507716,32.7567996,52.9629554,12.8230156,9.1425198,72.1821132,7.5877029,36.076956,12.6692337,0.8581248,0.9558378,8.8188211,73.4006134,72.3566003,77.1842167,20.662337,33.7524446,18.8947811,65.4859747,33.0928107,52.2796641,12.2789748,8.7819194,71.321141,7.4451105,36.0484321,12.6718935,0.8939472,0.965187,8.4304761,73.8808359,72.3731753,76.7967702,20.6718335,33.0530152,18.6933782,65.3090109,33.4851226,52.2929031,12.0308141,8.3168645,70.5055022,7.6722775,37.7508134,13.5270449\r\n1721,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8581248,0.9558378,8.8188211,73.4006134,72.3566003,77.1842167,20.662337,33.7524446,18.8947811,65.4859747,33.0928107,52.2796641,12.2789748,8.7819194,71.321141,7.4451105,36.0484321,12.6718935,0.8939472,0.965187,8.4304761,73.8808359,72.3731753,76.7967702,20.6718335,33.0530152,18.6933782,65.3090109,33.4851226,52.2929031,12.0308141,8.3168645,70.5055022,7.6722775,37.7508134,13.5270449,0.9042163,0.9757138,8.8313975,73.1422048,72.4704487,75.9337731,21.7714809,33.6518363,17.3032724,65.483605,34.2267663,51.4485632,12.3153647,8.7624683,68.9322383,7.6318981,38.4517649,12.8450003\r\n1722,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8939472,0.965187,8.4304761,73.8808359,72.3731753,76.7967702,20.6718335,33.0530152,18.6933782,65.3090109,33.4851226,52.2929031,12.0308141,8.3168645,70.5055022,7.6722775,37.7508134,13.5270449,0.9042163,0.9757138,8.8313975,73.1422048,72.4704487,75.9337731,21.7714809,33.6518363,17.3032724,65.483605,34.2267663,51.4485632,12.3153647,8.7624683,68.9322383,7.6318981,38.4517649,12.8450003,1.0059214,1.0240308,9.3561251,73.3727695,72.6624736,74.9720692,21.4450222,33.0141629,17.0787736,65.4849534,34.2391951,50.8757431,12.2852531,8.6096616,69.3931915,7.5635345,39.0848001,12.579268\r\n1723,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.9042163,0.9757138,8.8313975,73.1422048,72.4704487,75.9337731,21.7714809,33.6518363,17.3032724,65.483605,34.2267663,51.4485632,12.3153647,8.7624683,68.9322383,7.6318981,38.4517649,12.8450003,1.0059214,1.0240308,9.3561251,73.3727695,72.6624736,74.9720692,21.4450222,33.0141629,17.0787736,65.4849534,34.2391951,50.8757431,12.2852531,8.6096616,69.3931915,7.5635345,39.0848001,12.579268,1.0291435,1.0472791,8.934121,73.6967872,74.3676909,75.6421651,21.5311712,32.3018322,16.882771,65.3564355,34.4724767,51.4531541,11.9019146,8.1937792,68.9084105,7.6226901,38.8392834,11.0759353\r\n1724,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.0059214,1.0240308,9.3561251,73.3727695,72.6624736,74.9720692,21.4450222,33.0141629,17.0787736,65.4849534,34.2391951,50.8757431,12.2852531,8.6096616,69.3931915,7.5635345,39.0848001,12.579268,1.0291435,1.0472791,8.934121,73.6967872,74.3676909,75.6421651,21.5311712,32.3018322,16.882771,65.3564355,34.4724767,51.4531541,11.9019146,8.1937792,68.9084105,7.6226901,38.8392834,11.0759353,1.020287,1.020287,8.5557763,75.0849376,73.879633,75.4939204,21.6188654,31.2537966,15.9255671,65.6184229,34.2890481,50.3996922,12.0750952,8.0830029,68.4817712,7.6386146,39.4947776,9.8936021\r\n1725,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.0291435,1.0472791,8.934121,73.6967872,74.3676909,75.6421651,21.5311712,32.3018322,16.882771,65.3564355,34.4724767,51.4531541,11.9019146,8.1937792,68.9084105,7.6226901,38.8392834,11.0759353,1.020287,1.020287,8.5557763,75.0849376,73.879633,75.4939204,21.6188654,31.2537966,15.9255671,65.6184229,34.2890481,50.3996922,12.0750952,8.0830029,68.4817712,7.6386146,39.4947776,9.8936021,0.9736926,0.9471439,8.3024682,74.7267711,73.4395451,74.6027165,23.1859965,29.7941668,16.5219316,64.6216089,34.9573042,50.1607256,11.996082,7.8864956,68.1781505,8.1911969,40.0241336,9.1578986\r\n1726,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.020287,1.020287,8.5557763,75.0849376,73.879633,75.4939204,21.6188654,31.2537966,15.9255671,65.6184229,34.2890481,50.3996922,12.0750952,8.0830029,68.4817712,7.6386146,39.4947776,9.8936021,0.9736926,0.9471439,8.3024682,74.7267711,73.4395451,74.6027165,23.1859965,29.7941668,16.5219316,64.6216089,34.9573042,50.1607256,11.996082,7.8864956,68.1781505,8.1911969,40.0241336,9.1578986,0.8259416,0.781912,8.1855909,76.2585205,74.4474905,74.4703838,23.7390109,30.1787438,15.8257327,64.3918829,35.206135,51.277749,12.15953,8.0739331,68.5525799,8.6315416,40.1363241,8.7002133\r\n1727,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.9736926,0.9471439,8.3024682,74.7267711,73.4395451,74.6027165,23.1859965,29.7941668,16.5219316,64.6216089,34.9573042,50.1607256,11.996082,7.8864956,68.1781505,8.1911969,40.0241336,9.1578986,0.8259416,0.781912,8.1855909,76.2585205,74.4474905,74.4703838,23.7390109,30.1787438,15.8257327,64.3918829,35.206135,51.277749,12.15953,8.0739331,68.5525799,8.6315416,40.1363241,8.7002133,0.7755714,0.7225116,9.0467647,77.0507919,75.8489277,75.4766109,23.3560207,30.9451618,15.9355685,63.3382756,34.4577444,52.6519043,12.5391202,8.7050109,68.7223832,8.7465323,38.9204555,8.3850966\r\n1728,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8259416,0.781912,8.1855909,76.2585205,74.4474905,74.4703838,23.7390109,30.1787438,15.8257327,64.3918829,35.206135,51.277749,12.15953,8.0739331,68.5525799,8.6315416,40.1363241,8.7002133,0.7755714,0.7225116,9.0467647,77.0507919,75.8489277,75.4766109,23.3560207,30.9451618,15.9355685,63.3382756,34.4577444,52.6519043,12.5391202,8.7050109,68.7223832,8.7465323,38.9204555,8.3850966,0.7359158,0.6833026,8.7624301,76.5078819,75.8524865,75.5442549,23.816249,28.6270957,15.7433153,63.6647524,36.1736212,50.8795628,12.1135977,8.404176,68.2523931,8.9602237,38.8492072,8.4521419\r\n1729,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7755714,0.7225116,9.0467647,77.0507919,75.8489277,75.4766109,23.3560207,30.9451618,15.9355685,63.3382756,34.4577444,52.6519043,12.5391202,8.7050109,68.7223832,8.7465323,38.9204555,8.3850966,0.7359158,0.6833026,8.7624301,76.5078819,75.8524865,75.5442549,23.816249,28.6270957,15.7433153,63.6647524,36.1736212,50.8795628,12.1135977,8.404176,68.2523931,8.9602237,38.8492072,8.4521419,0.6059526,0.5880954,7.877576,75.6805477,75.4124576,76.4707753,24.1358477,27.301636,14.6594266,63.7870979,36.3183424,51.1120325,11.7101068,8.2346001,67.3473597,9.2489046,38.2661295,8.6638849\r\n1730,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7359158,0.6833026,8.7624301,76.5078819,75.8524865,75.5442549,23.816249,28.6270957,15.7433153,63.6647524,36.1736212,50.8795628,12.1135977,8.404176,68.2523931,8.9602237,38.8492072,8.4521419,0.6059526,0.5880954,7.877576,75.6805477,75.4124576,76.4707753,24.1358477,27.301636,14.6594266,63.7870979,36.3183424,51.1120325,11.7101068,8.2346001,67.3473597,9.2489046,38.2661295,8.6638849,0.6618008,0.680049,8.2678668,75.7529059,74.9466163,76.9103061,24.7088017,27.7934754,15.7372352,64.1353933,36.8749966,51.0188806,12.0104948,8.4578163,67.2941749,9.9100989,38.0653166,8.4551184\r\n1731,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6059526,0.5880954,7.877576,75.6805477,75.4124576,76.4707753,24.1358477,27.301636,14.6594266,63.7870979,36.3183424,51.1120325,11.7101068,8.2346001,67.3473597,9.2489046,38.2661295,8.6638849,0.6618008,0.680049,8.2678668,75.7529059,74.9466163,76.9103061,24.7088017,27.7934754,15.7372352,64.1353933,36.8749966,51.0188806,12.0104948,8.4578163,67.2941749,9.9100989,38.0653166,8.4551184,0.6137143,0.6576381,7.8278068,75.0838161,74.6232984,76.0400373,25.5781187,27.253073,16.3846434,64.3536519,37.2144477,51.2756432,11.3525604,8.2250243,65.6509213,10.3808401,37.2817902,8.6909909\r\n1732,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6618008,0.680049,8.2678668,75.7529059,74.9466163,76.9103061,24.7088017,27.7934754,15.7372352,64.1353933,36.8749966,51.0188806,12.0104948,8.4578163,67.2941749,9.9100989,38.0653166,8.4551184,0.6137143,0.6576381,7.8278068,75.0838161,74.6232984,76.0400373,25.5781187,27.253073,16.3846434,64.3536519,37.2144477,51.2756432,11.3525604,8.2250243,65.6509213,10.3808401,37.2817902,8.6909909,0.5781427,0.6353353,7.7482048,73.7148927,73.0507076,75.3149822,23.8201506,26.1913141,15.947625,64.1569997,36.5188729,51.0908535,11.0857862,8.0605093,64.9664211,10.3026577,36.9800299,7.6666701\r\n1733,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6137143,0.6576381,7.8278068,75.0838161,74.6232984,76.0400373,25.5781187,27.253073,16.3846434,64.3536519,37.2144477,51.2756432,11.3525604,8.2250243,65.6509213,10.3808401,37.2817902,8.6909909,0.5781427,0.6353353,7.7482048,73.7148927,73.0507076,75.3149822,23.8201506,26.1913141,15.947625,64.1569997,36.5188729,51.0908535,11.0857862,8.0605093,64.9664211,10.3026577,36.9800299,7.6666701,0.6955032,0.7666415,7.7548611,73.4088496,71.8714064,75.5325338,24.4524156,25.3240357,15.5292838,64.5673355,36.4998507,49.9579066,10.7429327,7.7458866,63.8530964,10.2722272,36.6415366,7.3598165\r\n1734,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.5781427,0.6353353,7.7482048,73.7148927,73.0507076,75.3149822,23.8201506,26.1913141,15.947625,64.1569997,36.5188729,51.0908535,11.0857862,8.0605093,64.9664211,10.3026577,36.9800299,7.6666701,0.6955032,0.7666415,7.7548611,73.4088496,71.8714064,75.5325338,24.4524156,25.3240357,15.5292838,64.5673355,36.4998507,49.9579066,10.7429327,7.7458866,63.8530964,10.2722272,36.6415366,7.3598165,0.7944889,0.866146,8.0739301,71.0585166,68.9204548,73.2633981,24.4186118,21.5051999,15.1367821,65.1276389,36.4757882,48.0076929,10.5699743,7.3798412,62.9653768,9.9401488,36.5843577,6.9476114\r\n1735,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6955032,0.7666415,7.7548611,73.4088496,71.8714064,75.5325338,24.4524156,25.3240357,15.5292838,64.5673355,36.4998507,49.9579066,10.7429327,7.7458866,63.8530964,10.2722272,36.6415366,7.3598165,0.7944889,0.866146,8.0739301,71.0585166,68.9204548,73.2633981,24.4186118,21.5051999,15.1367821,65.1276389,36.4757882,48.0076929,10.5699743,7.3798412,62.9653768,9.9401488,36.5843577,6.9476114,0.7969363,0.8688141,7.9572227,70.8137381,68.3858355,71.3801899,23.4015397,20.8199803,14.7547601,64.6464464,35.0281998,47.6945082,10.491457,7.0299172,62.1780968,9.7419388,36.4134975,6.7375918\r\n1736,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7944889,0.866146,8.0739301,71.0585166,68.9204548,73.2633981,24.4186118,21.5051999,15.1367821,65.1276389,36.4757882,48.0076929,10.5699743,7.3798412,62.9653768,9.9401488,36.5843577,6.9476114,0.7969363,0.8688141,7.9572227,70.8137381,68.3858355,71.3801899,23.4015397,20.8199803,14.7547601,64.6464464,35.0281998,47.6945082,10.491457,7.0299172,62.1780968,9.7419388,36.4134975,6.7375918,0.8150046,0.8864971,7.5377292,71.0347247,68.3844864,72.1048479,23.7401926,20.308866,15.7496692,65.1298312,35.1381373,46.3429871,10.2114217,6.6173395,61.5535282,9.3576061,37.1295384,5.414749\r\n1737,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7969363,0.8688141,7.9572227,70.8137381,68.3858355,71.3801899,23.4015397,20.8199803,14.7547601,64.6464464,35.0281998,47.6945082,10.491457,7.0299172,62.1780968,9.7419388,36.4134975,6.7375918,0.8150046,0.8864971,7.5377292,71.0347247,68.3844864,72.1048479,23.7401926,20.308866,15.7496692,65.1298312,35.1381373,46.3429871,10.2114217,6.6173395,61.5535282,9.3576061,37.1295384,5.414749,0.6953714,0.7189804,6.6309846,70.712577,68.3424615,71.6545915,23.3866612,19.1487627,14.593833,64.5271091,34.5434475,45.6202839,9.6153879,5.9805599,61.1956561,9.0655839,37.8480992,5.4479432\r\n1738,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8150046,0.8864971,7.5377292,71.0347247,68.3844864,72.1048479,23.7401926,20.308866,15.7496692,65.1298312,35.1381373,46.3429871,10.2114217,6.6173395,61.5535282,9.3576061,37.1295384,5.414749,0.6953714,0.7189804,6.6309846,70.712577,68.3424615,71.6545915,23.3866612,19.1487627,14.593833,64.5271091,34.5434475,45.6202839,9.6153879,5.9805599,61.1956561,9.0655839,37.8480992,5.4479432,0.6353975,0.6653669,7.0759625,70.5363486,69.3687562,73.2519528,23.1193513,18.2686394,13.5584149,64.4916059,34.5974956,44.8327064,9.888944,6.0871469,60.7648114,8.7837899,38.8554088,5.946582\r\n1739,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6953714,0.7189804,6.6309846,70.712577,68.3424615,71.6545915,23.3866612,19.1487627,14.593833,64.5271091,34.5434475,45.6202839,9.6153879,5.9805599,61.1956561,9.0655839,37.8480992,5.4479432,0.6353975,0.6653669,7.0759625,70.5363486,69.3687562,73.2519528,23.1193513,18.2686394,13.5584149,64.4916059,34.5974956,44.8327064,9.888944,6.0871469,60.7648114,8.7837899,38.8554088,5.946582,0.7193829,0.7410478,6.8687116,72.8409621,71.102237,74.5961602,23.8876614,17.8808742,13.4371021,65.2306284,35.9856661,44.8193934,10.2071724,6.2365176,60.4645913,8.6811744,39.2233729,5.6490185\r\n1740,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6353975,0.6653669,7.0759625,70.5363486,69.3687562,73.2519528,23.1193513,18.2686394,13.5584149,64.4916059,34.5974956,44.8327064,9.888944,6.0871469,60.7648114,8.7837899,38.8554088,5.946582,0.7193829,0.7410478,6.8687116,72.8409621,71.102237,74.5961602,23.8876614,17.8808742,13.4371021,65.2306284,35.9856661,44.8193934,10.2071724,6.2365176,60.4645913,8.6811744,39.2233729,5.6490185,0.7163446,0.7251204,6.9587569,73.4584004,71.5363249,75.4221493,23.1450989,17.5554323,15.2247662,65.182759,36.4028154,43.516863,10.1195789,6.1780344,59.4139376,8.8114781,40.5465829,5.0368354\r\n1741,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7193829,0.7410478,6.8687116,72.8409621,71.102237,74.5961602,23.8876614,17.8808742,13.4371021,65.2306284,35.9856661,44.8193934,10.2071724,6.2365176,60.4645913,8.6811744,39.2233729,5.6490185,0.7163446,0.7251204,6.9587569,73.4584004,71.5363249,75.4221493,23.1450989,17.5554323,15.2247662,65.182759,36.4028154,43.516863,10.1195789,6.1780344,59.4139376,8.8114781,40.5465829,5.0368354,0.6504213,0.6594141,6.2421739,74.9982459,73.2314987,76.8863483,23.4973717,18.5315543,14.477267,65.6302488,37.0136052,44.27731,10.1767943,6.2330015,57.5189675,9.0547522,41.5565825,4.8302649\r\n1742,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7163446,0.7251204,6.9587569,73.4584004,71.5363249,75.4221493,23.1450989,17.5554323,15.2247662,65.182759,36.4028154,43.516863,10.1195789,6.1780344,59.4139376,8.8114781,40.5465829,5.0368354,0.6504213,0.6594141,6.2421739,74.9982459,73.2314987,76.8863483,23.4973717,18.5315543,14.477267,65.6302488,37.0136052,44.27731,10.1767943,6.2330015,57.5189675,9.0547522,41.5565825,4.8302649,0.6348709,0.6440916,6.0711464,75.0042382,74.1182851,77.7992461,23.8760527,19.4989992,17.0486562,65.377213,38.09143,45.0784084,10.2701503,6.1714036,56.7326133,8.9370871,42.4456855,5.696183\r\n1743,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6504213,0.6594141,6.2421739,74.9982459,73.2314987,76.8863483,23.4973717,18.5315543,14.477267,65.6302488,37.0136052,44.27731,10.1767943,6.2330015,57.5189675,9.0547522,41.5565825,4.8302649,0.6348709,0.6440916,6.0711464,75.0042382,74.1182851,77.7992461,23.8760527,19.4989992,17.0486562,65.377213,38.09143,45.0784084,10.2701503,6.1714036,56.7326133,8.9370871,42.4456855,5.696183,0.6185893,0.6279364,6.6221425,75.6174712,74.7167434,76.718883,23.8309072,18.8213555,16.0699058,64.6823101,38.6418287,46.3787748,10.9767672,6.7567537,55.1275664,9.5641686,41.8087028,6.0321529\r\n1744,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6348709,0.6440916,6.0711464,75.0042382,74.1182851,77.7992461,23.8760527,19.4989992,17.0486562,65.377213,38.09143,45.0784084,10.2701503,6.1714036,56.7326133,8.9370871,42.4456855,5.696183,0.6185893,0.6279364,6.6221425,75.6174712,74.7167434,76.718883,23.8309072,18.8213555,16.0699058,64.6823101,38.6418287,46.3787748,10.9767672,6.7567537,55.1275664,9.5641686,41.8087028,6.0321529,0.7064124,0.7269229,7.2727856,75.9724626,74.8240729,76.7811332,23.3275782,17.7148126,16.1815797,64.4952351,37.6443653,45.5370398,11.8433876,7.2713985,53.0586306,9.4419576,43.1840274,7.4525575\r\n1745,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.6185893,0.6279364,6.6221425,75.6174712,74.7167434,76.718883,23.8309072,18.8213555,16.0699058,64.6823101,38.6418287,46.3787748,10.9767672,6.7567537,55.1275664,9.5641686,41.8087028,6.0321529,0.7064124,0.7269229,7.2727856,75.9724626,74.8240729,76.7811332,23.3275782,17.7148126,16.1815797,64.4952351,37.6443653,45.5370398,11.8433876,7.2713985,53.0586306,9.4419576,43.1840274,7.4525575,0.8705729,0.9275911,7.4326167,77.6011445,75.2213295,76.3460913,22.7658992,17.1978977,15.8563227,63.5832684,36.8316221,46.6144995,12.4197524,7.6296254,53.0061484,9.3639601,42.878496,7.0248011\r\n1746,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7064124,0.7269229,7.2727856,75.9724626,74.8240729,76.7811332,23.3275782,17.7148126,16.1815797,64.4952351,37.6443653,45.5370398,11.8433876,7.2713985,53.0586306,9.4419576,43.1840274,7.4525575,0.8705729,0.9275911,7.4326167,77.6011445,75.2213295,76.3460913,22.7658992,17.1978977,15.8563227,63.5832684,36.8316221,46.6144995,12.4197524,7.6296254,53.0061484,9.3639601,42.878496,7.0248011,0.9040185,0.9672626,7.5238498,77.1325729,74.6498764,76.6917868,22.6049786,17.3989068,15.9570126,63.6582053,35.9144615,46.2410114,12.3459825,7.713155,51.2761444,9.8637814,43.2994971,8.0736635\r\n1747,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8705729,0.9275911,7.4326167,77.6011445,75.2213295,76.3460913,22.7658992,17.1978977,15.8563227,63.5832684,36.8316221,46.6144995,12.4197524,7.6296254,53.0061484,9.3639601,42.878496,7.0248011,0.9040185,0.9672626,7.5238498,77.1325729,74.6498764,76.6917868,22.6049786,17.3989068,15.9570126,63.6582053,35.9144615,46.2410114,12.3459825,7.713155,51.2761444,9.8637814,43.2994971,8.0736635,0.7687171,0.8764118,7.3306345,76.4261995,75.3677643,75.5249248,22.8115478,17.8201633,15.3969611,64.0496503,35.7509624,47.1181896,12.5555057,7.9181069,51.6087705,9.6376525,43.1979786,8.6158265\r\n1748,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.9040185,0.9672626,7.5238498,77.1325729,74.6498764,76.6917868,22.6049786,17.3989068,15.9570126,63.6582053,35.9144615,46.2410114,12.3459825,7.713155,51.2761444,9.8637814,43.2994971,8.0736635,0.7687171,0.8764118,7.3306345,76.4261995,75.3677643,75.5249248,22.8115478,17.8201633,15.3969611,64.0496503,35.7509624,47.1181896,12.5555057,7.9181069,51.6087705,9.6376525,43.1979786,8.6158265,0.7182172,0.8372118,7.1773621,78.1521148,76.7041124,75.8607465,22.5130305,18.1124323,16.4158949,63.8091928,35.8497748,47.5813107,12.4320353,7.736036,52.5115241,9.7974753,42.2413933,7.6815707\r\n1749,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7687171,0.8764118,7.3306345,76.4261995,75.3677643,75.5249248,22.8115478,17.8201633,15.3969611,64.0496503,35.7509624,47.1181896,12.5555057,7.9181069,51.6087705,9.6376525,43.1979786,8.6158265,0.7182172,0.8372118,7.1773621,78.1521148,76.7041124,75.8607465,22.5130305,18.1124323,16.4158949,63.8091928,35.8497748,47.5813107,12.4320353,7.736036,52.5115241,9.7974753,42.2413933,7.6815707,0.8055417,0.9264242,7.6684468,78.9663415,76.9724835,76.3441454,23.5868965,16.8383412,13.9800817,63.8261466,35.8635589,46.093643,12.7131427,8.1995991,52.2870624,10.0155342,40.0313299,7.5714351\r\n1750,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7182172,0.8372118,7.1773621,78.1521148,76.7041124,75.8607465,22.5130305,18.1124323,16.4158949,63.8091928,35.8497748,47.5813107,12.4320353,7.736036,52.5115241,9.7974753,42.2413933,7.6815707,0.8055417,0.9264242,7.6684468,78.9663415,76.9724835,76.3441454,23.5868965,16.8383412,13.9800817,63.8261466,35.8635589,46.093643,12.7131427,8.1995991,52.2870624,10.0155342,40.0313299,7.5714351,0.8270823,0.99307,7.6296672,79.0196307,77.63884,75.5289085,24.8650883,17.5599991,15.5424576,65.1061508,36.6431783,46.0024102,13.0034836,8.3291944,51.530336,9.7820502,38.8241666,8.1196627\r\n1751,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8055417,0.9264242,7.6684468,78.9663415,76.9724835,76.3441454,23.5868965,16.8383412,13.9800817,63.8261466,35.8635589,46.093643,12.7131427,8.1995991,52.2870624,10.0155342,40.0313299,7.5714351,0.8270823,0.99307,7.6296672,79.0196307,77.63884,75.5289085,24.8650883,17.5599991,15.5424576,65.1061508,36.6431783,46.0024102,13.0034836,8.3291944,51.530336,9.7820502,38.8241666,8.1196627,0.8510974,1.0341686,7.5937923,77.4045617,77.0685306,75.6841436,25.6893594,17.6426017,15.8573239,65.2012421,37.6249592,46.5257539,12.7895498,8.1567277,51.5348553,9.4663989,36.490689,7.2033959\r\n1752,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8270823,0.99307,7.6296672,79.0196307,77.63884,75.5289085,24.8650883,17.5599991,15.5424576,65.1061508,36.6431783,46.0024102,13.0034836,8.3291944,51.530336,9.7820502,38.8241666,8.1196627,0.8510974,1.0341686,7.5937923,77.4045617,77.0685306,75.6841436,25.6893594,17.6426017,15.8573239,65.2012421,37.6249592,46.5257539,12.7895498,8.1567277,51.5348553,9.4663989,36.490689,7.2033959,0.8130322,0.9452136,7.5376117,76.7050142,76.0826289,75.9878009,26.4168791,17.4068991,16.3280312,65.8226922,38.8281569,47.0284984,12.9249915,8.1749991,49.6321622,10.1039008,36.2371152,7.2033939\r\n1753,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8510974,1.0341686,7.5937923,77.4045617,77.0685306,75.6841436,25.6893594,17.6426017,15.8573239,65.2012421,37.6249592,46.5257539,12.7895498,8.1567277,51.5348553,9.4663989,36.490689,7.2033959,0.8130322,0.9452136,7.5376117,76.7050142,76.0826289,75.9878009,26.4168791,17.4068991,16.3280312,65.8226922,38.8281569,47.0284984,12.9249915,8.1749991,49.6321622,10.1039008,36.2371152,7.2033939,0.7577543,0.8792853,7.7275498,75.2809071,74.3079757,76.3180926,26.8393169,15.9918224,16.2016461,65.2523336,38.5879143,46.7868893,13.2575666,8.4595948,49.8938965,10.2718292,35.8987619,7.3924771\r\n1754,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.8130322,0.9452136,7.5376117,76.7050142,76.0826289,75.9878009,26.4168791,17.4068991,16.3280312,65.8226922,38.8281569,47.0284984,12.9249915,8.1749991,49.6321622,10.1039008,36.2371152,7.2033939,0.7577543,0.8792853,7.7275498,75.2809071,74.3079757,76.3180926,26.8393169,15.9918224,16.2016461,65.2523336,38.5879143,46.7868893,13.2575666,8.4595948,49.8938965,10.2718292,35.8987619,7.3924771,0.9107602,0.955529,7.7023849,75.161217,72.8994595,78.6346245,26.4646278,15.260509,15.7605111,64.8151747,38.4160858,47.4070096,13.4033109,8.42285,49.1286414,10.8388119,34.5959503,9.3112316\r\n1755,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.7577543,0.8792853,7.7275498,75.2809071,74.3079757,76.3180926,26.8393169,15.9918224,16.2016461,65.2523336,38.5879143,46.7868893,13.2575666,8.4595948,49.8938965,10.2718292,35.8987619,7.3924771,0.9107602,0.955529,7.7023849,75.161217,72.8994595,78.6346245,26.4646278,15.260509,15.7605111,64.8151747,38.4160858,47.4070096,13.4033109,8.42285,49.1286414,10.8388119,34.5959503,9.3112316,1.0578516,1.1035569,7.564969,74.3138072,72.0937951,77.4539462,27.8960638,14.1018105,15.9851149,64.4164976,38.6126694,47.4908918,13.2183831,8.4367809,48.50457,10.3603648,35.0143943,10.1758896\r\n1756,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,0.9107602,0.955529,7.7023849,75.161217,72.8994595,78.6346245,26.4646278,15.260509,15.7605111,64.8151747,38.4160858,47.4070096,13.4033109,8.42285,49.1286414,10.8388119,34.5959503,9.3112316,1.0578516,1.1035569,7.564969,74.3138072,72.0937951,77.4539462,27.8960638,14.1018105,15.9851149,64.4164976,38.6126694,47.4908918,13.2183831,8.4367809,48.50457,10.3603648,35.0143943,10.1758896,1.2176015,1.3147571,7.8738191,73.6696179,71.8370499,77.7878811,27.0349905,14.0260857,16.0386882,64.4957126,37.2313713,48.1632458,13.451432,8.5957955,48.1763519,10.0227318,36.5294439,9.5410697\r\n1757,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.0578516,1.1035569,7.564969,74.3138072,72.0937951,77.4539462,27.8960638,14.1018105,15.9851149,64.4164976,38.6126694,47.4908918,13.2183831,8.4367809,48.50457,10.3603648,35.0143943,10.1758896,1.2176015,1.3147571,7.8738191,73.6696179,71.8370499,77.7878811,27.0349905,14.0260857,16.0386882,64.4957126,37.2313713,48.1632458,13.451432,8.5957955,48.1763519,10.0227318,36.5294439,9.5410697,1.3368576,1.4125895,8.3566168,72.333094,70.3781585,76.578511,26.3953168,13.4422678,15.4639384,63.7002186,36.1588014,47.8568562,13.3088809,8.6496939,49.3480122,10.1375342,37.7644677,9.3967583\r\n1758,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.2176015,1.3147571,7.8738191,73.6696179,71.8370499,77.7878811,27.0349905,14.0260857,16.0386882,64.4957126,37.2313713,48.1632458,13.451432,8.5957955,48.1763519,10.0227318,36.5294439,9.5410697,1.3368576,1.4125895,8.3566168,72.333094,70.3781585,76.578511,26.3953168,13.4422678,15.4639384,63.7002186,36.1588014,47.8568562,13.3088809,8.6496939,49.3480122,10.1375342,37.7644677,9.3967583,1.303229,1.3617311,8.6667485,71.5641744,69.5228799,75.2559942,26.5729965,13.40482,14.9333385,65.0424072,36.2911019,47.4905086,12.9817844,8.5345187,49.6008756,10.7890156,38.8163777,9.2465817\r\n1759,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.3368576,1.4125895,8.3566168,72.333094,70.3781585,76.578511,26.3953168,13.4422678,15.4639384,63.7002186,36.1588014,47.8568562,13.3088809,8.6496939,49.3480122,10.1375342,37.7644677,9.3967583,1.303229,1.3617311,8.6667485,71.5641744,69.5228799,75.2559942,26.5729965,13.40482,14.9333385,65.0424072,36.2911019,47.4905086,12.9817844,8.5345187,49.6008756,10.7890156,38.8163777,9.2465817,1.3415015,1.3992051,8.4854681,71.5343474,69.5259935,74.7589382,26.0432444,13.2112999,15.1857682,65.4252979,35.9813167,47.4878705,12.8488147,8.5589335,49.9780035,10.4319665,38.3944742,8.9569222\r\n1760,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.303229,1.3617311,8.6667485,71.5641744,69.5228799,75.2559942,26.5729965,13.40482,14.9333385,65.0424072,36.2911019,47.4905086,12.9817844,8.5345187,49.6008756,10.7890156,38.8163777,9.2465817,1.3415015,1.3992051,8.4854681,71.5343474,69.5259935,74.7589382,26.0432444,13.2112999,15.1857682,65.4252979,35.9813167,47.4878705,12.8488147,8.5589335,49.9780035,10.4319665,38.3944742,8.9569222,1.4068239,1.4682875,9.522602,71.8125102,70.3781757,73.9714538,26.9560919,13.2753395,14.8710764,66.1869682,36.5842339,47.5382072,13.3537827,8.8957065,49.436493,10.2045174,39.7727126,8.1797292\r\n1761,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.3415015,1.3992051,8.4854681,71.5343474,69.5259935,74.7589382,26.0432444,13.2112999,15.1857682,65.4252979,35.9813167,47.4878705,12.8488147,8.5589335,49.9780035,10.4319665,38.3944742,8.9569222,1.4068239,1.4682875,9.522602,71.8125102,70.3781757,73.9714538,26.9560919,13.2753395,14.8710764,66.1869682,36.5842339,47.5382072,13.3537827,8.8957065,49.436493,10.2045174,39.7727126,8.1797292,1.4329878,1.5312657,10.1417395,72.3062897,71.7888924,72.9203953,27.3948259,12.4116445,14.4026878,65.6248218,35.8238504,46.6245901,13.6977895,9.3570864,49.543478,9.7649588,39.8642424,6.2500028\r\n1762,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.0,0.0,0.0,0.0,0.0,0.0,1.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,0.0,1.4068239,1.4682875,9.522602,71.8125102,70.3781757,73.9714538,26.9560919,13.2753395,14.8710764,66.1869682,36.5842339,47.5382072,13.3537827,8.8957065,49.436493,10.2045174,39.7727126,8.1797292,1.4329878,1.5312657,10.1417395,72.3062897,71.7888924,72.9203953,27.3948259,12.4116445,14.4026878,65.6248218,35.8238504,46.6245901,13.6977895,9.3570864,49.543478,9.7649588,39.8642424,6.2500028,1.3787769,1.4674981,10.1945243,72.2706971,71.6682904,73.2366748,26.3972666,12.8963295,13.4841269,65.0300223,34.9742462,45.8827125,13.9746316,9.619453,49.61781,10.3669348,39.675922,6.5217406\r\n1763,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.7016121,2.8473697,26.1769511,76.71092,78.4860414,69.5104987,19.524283,53.5886805,19.9802147,59.8237113,28.0626474,64.1565359,29.9873219,24.2486046,87.1514999,3.2546217,38.8136991,20.9082959,2.8310486,2.9726839,25.6881569,78.2461414,76.9568559,69.3430447,18.9834672,53.9110544,20.0732605,59.2172026,28.7164421,64.6616364,30.2581923,24.2674138,87.482399,3.1478179,37.7320701,18.8241949,3.0722869,3.2755714,27.1044275,76.6148253,75.1191084,69.8517552,18.2774925,56.6611775,22.7040401,59.9999953,29.0777659,62.9880787,31.0801131,25.2991097,88.0879044,3.1119092,37.2010305,19.700478\r\n1764,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.8310486,2.9726839,25.6881569,78.2461414,76.9568559,69.3430447,18.9834672,53.9110544,20.0732605,59.2172026,28.7164421,64.6616364,30.2581923,24.2674138,87.482399,3.1478179,37.7320701,18.8241949,3.0722869,3.2755714,27.1044275,76.6148253,75.1191084,69.8517552,18.2774925,56.6611775,22.7040401,59.9999953,29.0777659,62.9880787,31.0801131,25.2991097,88.0879044,3.1119092,37.2010305,19.700478,3.4116491,3.56063,28.0804848,76.6973022,73.1964763,69.4106034,19.0725363,56.3698845,21.9769048,60.5112842,29.6891747,61.5826716,31.956918,26.3843859,87.9618349,3.1379043,37.2993955,18.4626852\r\n1765,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.0722869,3.2755714,27.1044275,76.6148253,75.1191084,69.8517552,18.2774925,56.6611775,22.7040401,59.9999953,29.0777659,62.9880787,31.0801131,25.2991097,88.0879044,3.1119092,37.2010305,19.700478,3.4116491,3.56063,28.0804848,76.6973022,73.1964763,69.4106034,19.0725363,56.3698845,21.9769048,60.5112842,29.6891747,61.5826716,31.956918,26.3843859,87.9618349,3.1379043,37.2993955,18.4626852,3.5911347,3.7279656,29.0755544,76.523138,73.2697174,70.0353264,18.6166203,58.1744849,23.169034,60.4514958,29.6078798,61.2288641,33.1538444,27.5220637,88.0122915,3.0493516,38.1986478,19.087514\r\n1766,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.4116491,3.56063,28.0804848,76.6973022,73.1964763,69.4106034,19.0725363,56.3698845,21.9769048,60.5112842,29.6891747,61.5826716,31.956918,26.3843859,87.9618349,3.1379043,37.2993955,18.4626852,3.5911347,3.7279656,29.0755544,76.523138,73.2697174,70.0353264,18.6166203,58.1744849,23.169034,60.4514958,29.6078798,61.2288641,33.1538444,27.5220637,88.0122915,3.0493516,38.1986478,19.087514,3.7439964,3.857577,30.8907034,74.7280868,72.2242567,69.1492345,17.1217186,57.2464218,21.8078758,60.2266763,29.9412542,62.3188926,34.724057,28.9304025,87.0675612,2.7314599,38.2078279,20.1578503\r\n1767,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.5911347,3.7279656,29.0755544,76.523138,73.2697174,70.0353264,18.6166203,58.1744849,23.169034,60.4514958,29.6078798,61.2288641,33.1538444,27.5220637,88.0122915,3.0493516,38.1986478,19.087514,3.7439964,3.857577,30.8907034,74.7280868,72.2242567,69.1492345,17.1217186,57.2464218,21.8078758,60.2266763,29.9412542,62.3188926,34.724057,28.9304025,87.0675612,2.7314599,38.2078279,20.1578503,3.7294115,3.8421761,32.5537375,75.9015571,73.7267206,70.3287199,18.0172887,57.6414464,22.6126074,60.8943607,29.9993587,62.4862087,35.7951274,30.0001396,86.0701617,3.1344336,39.1246273,21.2597015\r\n1768,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.7439964,3.857577,30.8907034,74.7280868,72.2242567,69.1492345,17.1217186,57.2464218,21.8078758,60.2266763,29.9412542,62.3188926,34.724057,28.9304025,87.0675612,2.7314599,38.2078279,20.1578503,3.7294115,3.8421761,32.5537375,75.9015571,73.7267206,70.3287199,18.0172887,57.6414464,22.6126074,60.8943607,29.9993587,62.4862087,35.7951274,30.0001396,86.0701617,3.1344336,39.1246273,21.2597015,3.5812085,3.7545253,34.105579,77.4677222,73.6743603,69.997292,17.9620517,60.3664907,23.7107719,60.2991975,29.3375977,62.07624,36.6640404,30.9307783,86.5330125,2.763825,40.1385755,20.6794113\r\n1769,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.7294115,3.8421761,32.5537375,75.9015571,73.7267206,70.3287199,18.0172887,57.6414464,22.6126074,60.8943607,29.9993587,62.4862087,35.7951274,30.0001396,86.0701617,3.1344336,39.1246273,21.2597015,3.5812085,3.7545253,34.105579,77.4677222,73.6743603,69.997292,17.9620517,60.3664907,23.7107719,60.2991975,29.3375977,62.07624,36.6640404,30.9307783,86.5330125,2.763825,40.1385755,20.6794113,3.6946949,3.8919065,36.4674907,75.3694818,74.9370063,71.3389728,19.8317483,60.6926603,25.0737977,60.6907928,30.6515761,61.0159887,37.9659272,32.0701317,86.239595,2.8983262,39.9685006,23.326894\r\n1770,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.5812085,3.7545253,34.105579,77.4677222,73.6743603,69.997292,17.9620517,60.3664907,23.7107719,60.2991975,29.3375977,62.07624,36.6640404,30.9307783,86.5330125,2.763825,40.1385755,20.6794113,3.6946949,3.8919065,36.4674907,75.3694818,74.9370063,71.3389728,19.8317483,60.6926603,25.0737977,60.6907928,30.6515761,61.0159887,37.9659272,32.0701317,86.239595,2.8983262,39.9685006,23.326894,3.99457,4.1555384,37.1228882,75.8477765,74.8754451,71.4955433,19.9657782,60.4632252,23.7974526,59.2839912,30.1750492,61.0854315,39.5201574,33.0608835,86.2752937,2.4852299,40.3088103,26.2905986\r\n1771,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.6946949,3.8919065,36.4674907,75.3694818,74.9370063,71.3389728,19.8317483,60.6926603,25.0737977,60.6907928,30.6515761,61.0159887,37.9659272,32.0701317,86.239595,2.8983262,39.9685006,23.326894,3.99457,4.1555384,37.1228882,75.8477765,74.8754451,71.4955433,19.9657782,60.4632252,23.7974526,59.2839912,30.1750492,61.0854315,39.5201574,33.0608835,86.2752937,2.4852299,40.3088103,26.2905986,3.9213786,4.1557499,37.9435739,74.7828019,74.1684921,70.390034,18.277954,61.2261199,25.5250249,58.5558038,29.9361496,62.8551232,40.3043518,33.6471795,86.796155,2.3385178,40.1607251,26.7002586\r\n1772,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.99457,4.1555384,37.1228882,75.8477765,74.8754451,71.4955433,19.9657782,60.4632252,23.7974526,59.2839912,30.1750492,61.0854315,39.5201574,33.0608835,86.2752937,2.4852299,40.3088103,26.2905986,3.9213786,4.1557499,37.9435739,74.7828019,74.1684921,70.390034,18.277954,61.2261199,25.5250249,58.5558038,29.9361496,62.8551232,40.3043518,33.6471795,86.796155,2.3385178,40.1607251,26.7002586,3.8555437,4.0096177,38.9643802,75.0017719,75.2078298,69.8334795,18.8430855,59.8786801,26.7182706,57.2045126,29.5193766,64.3842291,40.9232804,34.3471718,86.5999212,2.4938657,40.4428265,26.7666022\r\n1773,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.9213786,4.1557499,37.9435739,74.7828019,74.1684921,70.390034,18.277954,61.2261199,25.5250249,58.5558038,29.9361496,62.8551232,40.3043518,33.6471795,86.796155,2.3385178,40.1607251,26.7002586,3.8555437,4.0096177,38.9643802,75.0017719,75.2078298,69.8334795,18.8430855,59.8786801,26.7182706,57.2045126,29.5193766,64.3842291,40.9232804,34.3471718,86.5999212,2.4938657,40.4428265,26.7666022,3.6108089,3.7944831,39.1562788,76.5921082,75.9561754,69.2133092,18.6127884,62.8572542,29.0516614,56.9934505,27.8178248,64.2851049,41.3834602,34.9219012,87.6939559,2.4664843,40.273476,27.0527543\r\n1774,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.8555437,4.0096177,38.9643802,75.0017719,75.2078298,69.8334795,18.8430855,59.8786801,26.7182706,57.2045126,29.5193766,64.3842291,40.9232804,34.3471718,86.5999212,2.4938657,40.4428265,26.7666022,3.6108089,3.7944831,39.1562788,76.5921082,75.9561754,69.2133092,18.6127884,62.8572542,29.0516614,56.9934505,27.8178248,64.2851049,41.3834602,34.9219012,87.6939559,2.4664843,40.273476,27.0527543,3.4928098,3.6633174,37.4520241,74.3425702,74.2926781,67.9655308,18.3994984,62.8518786,28.3097273,55.9925257,27.6563984,63.6156909,40.7258976,34.2224,88.7880227,2.0165003,38.4544766,27.6113229\r\n1775,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.6108089,3.7944831,39.1562788,76.5921082,75.9561754,69.2133092,18.6127884,62.8572542,29.0516614,56.9934505,27.8178248,64.2851049,41.3834602,34.9219012,87.6939559,2.4664843,40.273476,27.0527543,3.4928098,3.6633174,37.4520241,74.3425702,74.2926781,67.9655308,18.3994984,62.8518786,28.3097273,55.9925257,27.6563984,63.6156909,40.7258976,34.2224,88.7880227,2.0165003,38.4544766,27.6113229,3.9593391,4.0571702,37.4380635,74.9388319,74.9139435,66.2966287,18.532719,63.6647557,28.1818187,55.7661634,27.6851676,64.9043225,41.5460609,34.9667017,87.9389369,2.2246892,38.7014654,29.4899924\r\n1776,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.4928098,3.6633174,37.4520241,74.3425702,74.2926781,67.9655308,18.3994984,62.8518786,28.3097273,55.9925257,27.6563984,63.6156909,40.7258976,34.2224,88.7880227,2.0165003,38.4544766,27.6113229,3.9593391,4.0571702,37.4380635,74.9388319,74.9139435,66.2966287,18.532719,63.6647557,28.1818187,55.7661634,27.6851676,64.9043225,41.5460609,34.9667017,87.9389369,2.2246892,38.7014654,29.4899924,4.0661093,4.1471906,37.3391013,75.4854004,75.5099734,66.468407,16.9198155,64.9918572,28.349256,55.2586543,26.0404899,65.0256294,42.9763656,36.1912151,88.189437,1.8136823,38.5960324,31.8139911\r\n1777,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.9593391,4.0571702,37.4380635,74.9388319,74.9139435,66.2966287,18.532719,63.6647557,28.1818187,55.7661634,27.6851676,64.9043225,41.5460609,34.9667017,87.9389369,2.2246892,38.7014654,29.4899924,4.0661093,4.1471906,37.3391013,75.4854004,75.5099734,66.468407,16.9198155,64.9918572,28.349256,55.2586543,26.0404899,65.0256294,42.9763656,36.1912151,88.189437,1.8136823,38.5960324,31.8139911,4.1781781,4.3126598,38.0550816,74.8163445,74.808764,65.0402589,16.455054,65.3827051,27.2137927,55.8501937,26.2004741,63.6629298,44.4863455,37.6170646,87.8799753,1.9516319,38.9596851,30.8154206\r\n1778,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.0661093,4.1471906,37.3391013,75.4854004,75.5099734,66.468407,16.9198155,64.9918572,28.349256,55.2586543,26.0404899,65.0256294,42.9763656,36.1912151,88.189437,1.8136823,38.5960324,31.8139911,4.1781781,4.3126598,38.0550816,74.8163445,74.808764,65.0402589,16.455054,65.3827051,27.2137927,55.8501937,26.2004741,63.6629298,44.4863455,37.6170646,87.8799753,1.9516319,38.9596851,30.8154206,4.3010208,4.3737939,38.8106691,75.6103354,75.3665187,64.9404256,16.7263271,64.0662893,26.0373645,54.7713226,25.3460726,61.8297304,45.4997745,38.3744585,87.8294852,2.109486,39.9116536,32.2642362\r\n1779,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.1781781,4.3126598,38.0550816,74.8163445,74.808764,65.0402589,16.455054,65.3827051,27.2137927,55.8501937,26.2004741,63.6629298,44.4863455,37.6170646,87.8799753,1.9516319,38.9596851,30.8154206,4.3010208,4.3737939,38.8106691,75.6103354,75.3665187,64.9404256,16.7263271,64.0662893,26.0373645,54.7713226,25.3460726,61.8297304,45.4997745,38.3744585,87.8294852,2.109486,39.9116536,32.2642362,4.425629,4.5264373,38.3618361,74.7234111,74.4905141,65.8715439,15.5629339,65.7938282,25.0379103,55.7401607,26.0024507,60.0930933,45.1699621,37.8755353,87.8799874,1.9566134,39.0656596,32.0668003\r\n1780,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.3010208,4.3737939,38.8106691,75.6103354,75.3665187,64.9404256,16.7263271,64.0662893,26.0373645,54.7713226,25.3460726,61.8297304,45.4997745,38.3744585,87.8294852,2.109486,39.9116536,32.2642362,4.425629,4.5264373,38.3618361,74.7234111,74.4905141,65.8715439,15.5629339,65.7938282,25.0379103,55.7401607,26.0024507,60.0930933,45.1699621,37.8755353,87.8799874,1.9566134,39.0656596,32.0668003,4.3520342,4.4476379,38.7982976,74.734037,75.1547708,66.227451,15.699549,64.0091104,26.0040235,56.2406243,27.01562,60.4795081,45.8644963,38.745179,87.8398571,2.0169091,39.683835,31.2779445\r\n1781,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.425629,4.5264373,38.3618361,74.7234111,74.4905141,65.8715439,15.5629339,65.7938282,25.0379103,55.7401607,26.0024507,60.0930933,45.1699621,37.8755353,87.8799874,1.9566134,39.0656596,32.0668003,4.3520342,4.4476379,38.7982976,74.734037,75.1547708,66.227451,15.699549,64.0091104,26.0040235,56.2406243,27.01562,60.4795081,45.8644963,38.745179,87.8398571,2.0169091,39.683835,31.2779445,4.429752,4.5873238,40.3681697,76.9238715,77.2490564,65.5620227,14.3525087,64.0027343,26.6459182,55.2925806,25.4620752,63.7965344,46.3888266,39.1777711,88.6845701,2.0852081,40.361776,31.6066213\r\n1782,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.3520342,4.4476379,38.7982976,74.734037,75.1547708,66.227451,15.699549,64.0091104,26.0040235,56.2406243,27.01562,60.4795081,45.8644963,38.745179,87.8398571,2.0169091,39.683835,31.2779445,4.429752,4.5873238,40.3681697,76.9238715,77.2490564,65.5620227,14.3525087,64.0027343,26.6459182,55.2925806,25.4620752,63.7965344,46.3888266,39.1777711,88.6845701,2.0852081,40.361776,31.6066213,4.5762907,4.6915063,40.2118685,76.7779373,76.6942456,65.557799,14.743852,61.5812953,27.3741621,56.34303,26.096646,61.7816291,46.7086865,39.6215717,88.7482771,1.8905229,39.5722988,32.1249223\r\n1783,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.429752,4.5873238,40.3681697,76.9238715,77.2490564,65.5620227,14.3525087,64.0027343,26.6459182,55.2925806,25.4620752,63.7965344,46.3888266,39.1777711,88.6845701,2.0852081,40.361776,31.6066213,4.5762907,4.6915063,40.2118685,76.7779373,76.6942456,65.557799,14.743852,61.5812953,27.3741621,56.34303,26.096646,61.7816291,46.7086865,39.6215717,88.7482771,1.8905229,39.5722988,32.1249223,4.5497299,4.6565898,40.4791912,78.4498288,75.9129062,66.0840295,14.5360713,60.331602,26.1611383,55.8979122,25.3204371,61.6052601,46.736681,39.9883223,88.8472564,2.0834453,39.7208462,30.3949947\r\n1784,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.5762907,4.6915063,40.2118685,76.7779373,76.6942456,65.557799,14.743852,61.5812953,27.3741621,56.34303,26.096646,61.7816291,46.7086865,39.6215717,88.7482771,1.8905229,39.5722988,32.1249223,4.5497299,4.6565898,40.4791912,78.4498288,75.9129062,66.0840295,14.5360713,60.331602,26.1611383,55.8979122,25.3204371,61.6052601,46.736681,39.9883223,88.8472564,2.0834453,39.7208462,30.3949947,3.9613505,4.0681078,40.508395,80.3052132,77.1357337,65.9705603,14.3004318,59.6635051,27.4127978,56.3838091,25.6822078,64.5511324,46.1066781,39.772656,89.2161173,2.2957527,40.219853,30.1218406\r\n1785,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.5497299,4.6565898,40.4791912,78.4498288,75.9129062,66.0840295,14.5360713,60.331602,26.1611383,55.8979122,25.3204371,61.6052601,46.736681,39.9883223,88.8472564,2.0834453,39.7208462,30.3949947,3.9613505,4.0681078,40.508395,80.3052132,77.1357337,65.9705603,14.3004318,59.6635051,27.4127978,56.3838091,25.6822078,64.5511324,46.1066781,39.772656,89.2161173,2.2957527,40.219853,30.1218406,3.9894315,4.0851428,39.7448645,80.4823586,76.3647705,64.6029103,14.280109,60.3618609,27.2755612,56.7078434,26.4215402,64.5782044,44.995308,38.9051227,88.3814043,2.5187747,39.5772846,30.419401\r\n1786,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.9613505,4.0681078,40.508395,80.3052132,77.1357337,65.9705603,14.3004318,59.6635051,27.4127978,56.3838091,25.6822078,64.5511324,46.1066781,39.772656,89.2161173,2.2957527,40.219853,30.1218406,3.9894315,4.0851428,39.7448645,80.4823586,76.3647705,64.6029103,14.280109,60.3618609,27.2755612,56.7078434,26.4215402,64.5782044,44.995308,38.9051227,88.3814043,2.5187747,39.5772846,30.419401,3.96936,4.0928452,40.2357895,80.2313615,75.6849518,63.0371758,14.3808915,60.7780118,27.5241244,56.3755605,25.8161318,64.0638256,45.4329051,39.3916438,88.9264765,2.7271726,40.2557652,31.5850643\r\n1787,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.9894315,4.0851428,39.7448645,80.4823586,76.3647705,64.6029103,14.280109,60.3618609,27.2755612,56.7078434,26.4215402,64.5782044,44.995308,38.9051227,88.3814043,2.5187747,39.5772846,30.419401,3.96936,4.0928452,40.2357895,80.2313615,75.6849518,63.0371758,14.3808915,60.7780118,27.5241244,56.3755605,25.8161318,64.0638256,45.4329051,39.3916438,88.9264765,2.7271726,40.2557652,31.5850643,4.3998697,4.4980852,38.0110898,78.6426655,74.4498344,63.5268058,13.2955405,59.2771069,26.9287727,56.0825264,24.4721281,63.6411877,44.6743398,37.9401948,89.051927,2.4818423,41.0761563,33.7615849\r\n1788,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.96936,4.0928452,40.2357895,80.2313615,75.6849518,63.0371758,14.3808915,60.7780118,27.5241244,56.3755605,25.8161318,64.0638256,45.4329051,39.3916438,88.9264765,2.7271726,40.2557652,31.5850643,4.3998697,4.4980852,38.0110898,78.6426655,74.4498344,63.5268058,13.2955405,59.2771069,26.9287727,56.0825264,24.4721281,63.6411877,44.6743398,37.9401948,89.051927,2.4818423,41.0761563,33.7615849,4.1559468,4.1736829,37.8053009,77.8847895,72.6765017,66.3221433,13.3603976,59.3586833,27.2949198,56.0340845,25.3928824,61.171684,44.1746529,37.5796638,88.6504826,2.8957887,39.3617461,34.275157\r\n1789,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.3998697,4.4980852,38.0110898,78.6426655,74.4498344,63.5268058,13.2955405,59.2771069,26.9287727,56.0825264,24.4721281,63.6411877,44.6743398,37.9401948,89.051927,2.4818423,41.0761563,33.7615849,4.1559468,4.1736829,37.8053009,77.8847895,72.6765017,66.3221433,13.3603976,59.3586833,27.2949198,56.0340845,25.3928824,61.171684,44.1746529,37.5796638,88.6504826,2.8957887,39.3617461,34.275157,3.6357864,3.6942133,36.1080394,76.8560587,71.6388479,67.6369837,13.4071313,59.783335,26.2087389,56.0999592,25.2938842,62.3338751,42.4022769,35.5183335,88.8823282,3.1819123,39.5807211,33.3643853\r\n1790,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.1559468,4.1736829,37.8053009,77.8847895,72.6765017,66.3221433,13.3603976,59.3586833,27.2949198,56.0340845,25.3928824,61.171684,44.1746529,37.5796638,88.6504826,2.8957887,39.3617461,34.275157,3.6357864,3.6942133,36.1080394,76.8560587,71.6388479,67.6369837,13.4071313,59.783335,26.2087389,56.0999592,25.2938842,62.3338751,42.4022769,35.5183335,88.8823282,3.1819123,39.5807211,33.3643853,3.4147792,3.4734589,35.844111,75.8199961,72.4973953,67.8371989,13.6603228,61.6953676,27.1645816,56.6293928,26.5317389,63.1570921,42.1649789,35.1585973,89.0923248,3.0204558,39.7703987,32.5113677\r\n1791,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.6357864,3.6942133,36.1080394,76.8560587,71.6388479,67.6369837,13.4071313,59.783335,26.2087389,56.0999592,25.2938842,62.3338751,42.4022769,35.5183335,88.8823282,3.1819123,39.5807211,33.3643853,3.4147792,3.4734589,35.844111,75.8199961,72.4973953,67.8371989,13.6603228,61.6953676,27.1645816,56.6293928,26.5317389,63.1570921,42.1649789,35.1585973,89.0923248,3.0204558,39.7703987,32.5113677,3.8347585,3.8393279,35.1163837,75.3084418,73.1332678,67.2281654,14.293421,62.6833717,26.2508496,55.5881266,25.8299016,62.3250165,41.9938641,34.4620118,88.8298641,3.0623386,38.4329856,32.6100079\r\n1792,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.4147792,3.4734589,35.844111,75.8199961,72.4973953,67.8371989,13.6603228,61.6953676,27.1645816,56.6293928,26.5317389,63.1570921,42.1649789,35.1585973,89.0923248,3.0204558,39.7703987,32.5113677,3.8347585,3.8393279,35.1163837,75.3084418,73.1332678,67.2281654,14.293421,62.6833717,26.2508496,55.5881266,25.8299016,62.3250165,41.9938641,34.4620118,88.8298641,3.0623386,38.4329856,32.6100079,3.6718869,3.6765405,33.912302,73.952286,74.0209474,67.7152485,14.3015544,65.6981146,29.9094554,56.2835659,25.9860172,61.9927958,41.7861547,34.034064,89.6000146,2.6201192,39.1134984,33.4154162\r\n1793,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.8347585,3.8393279,35.1163837,75.3084418,73.1332678,67.2281654,14.293421,62.6833717,26.2508496,55.5881266,25.8299016,62.3250165,41.9938641,34.4620118,88.8298641,3.0623386,38.4329856,32.6100079,3.6718869,3.6765405,33.912302,73.952286,74.0209474,67.7152485,14.3015544,65.6981146,29.9094554,56.2835659,25.9860172,61.9927958,41.7861547,34.034064,89.6000146,2.6201192,39.1134984,33.4154162,3.3752106,3.3608481,32.1456367,73.4497313,74.2045918,67.6344604,15.5537857,63.4706316,27.8033792,56.868556,26.3149267,60.5593264,40.0065604,32.4900632,89.0423658,2.6809398,39.0613654,31.747777\r\n1794,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.6718869,3.6765405,33.912302,73.952286,74.0209474,67.7152485,14.3015544,65.6981146,29.9094554,56.2835659,25.9860172,61.9927958,41.7861547,34.034064,89.6000146,2.6201192,39.1134984,33.4154162,3.3752106,3.3608481,32.1456367,73.4497313,74.2045918,67.6344604,15.5537857,63.4706316,27.8033792,56.868556,26.3149267,60.5593264,40.0065604,32.4900632,89.0423658,2.6809398,39.0613654,31.747777,3.0307225,3.0453638,30.8343798,74.55217,74.7960159,66.8732925,17.288995,66.362337,27.8823334,58.3237564,27.3191056,57.9263887,38.333372,31.800947,88.9816582,3.1960443,38.1565724,28.8860131\r\n1795,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.3752106,3.3608481,32.1456367,73.4497313,74.2045918,67.6344604,15.5537857,63.4706316,27.8033792,56.868556,26.3149267,60.5593264,40.0065604,32.4900632,89.0423658,2.6809398,39.0613654,31.747777,3.0307225,3.0453638,30.8343798,74.55217,74.7960159,66.8732925,17.288995,66.362337,27.8823334,58.3237564,27.3191056,57.9263887,38.333372,31.800947,88.9816582,3.1960443,38.1565724,28.8860131,3.0294473,3.09313,28.8226899,73.9891853,75.2791781,66.7862771,17.2290059,67.1660703,28.9031305,58.0592798,26.3640917,57.5384728,36.8891977,30.1247226,88.2559007,2.7448321,38.901857,27.8909006\r\n1796,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.0307225,3.0453638,30.8343798,74.55217,74.7960159,66.8732925,17.288995,66.362337,27.8823334,58.3237564,27.3191056,57.9263887,38.333372,31.800947,88.9816582,3.1960443,38.1565724,28.8860131,3.0294473,3.09313,28.8226899,73.9891853,75.2791781,66.7862771,17.2290059,67.1660703,28.9031305,58.0592798,26.3640917,57.5384728,36.8891977,30.1247226,88.2559007,2.7448321,38.901857,27.8909006,2.9369965,2.9984956,29.1175707,73.3178908,74.8788994,66.3970722,17.8859356,67.0638843,29.2859131,57.7348093,27.4025084,55.8889574,36.3172015,29.5423949,88.2040513,2.8332434,39.5584074,28.4918557\r\n1797,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.0294473,3.09313,28.8226899,73.9891853,75.2791781,66.7862771,17.2290059,67.1660703,28.9031305,58.0592798,26.3640917,57.5384728,36.8891977,30.1247226,88.2559007,2.7448321,38.901857,27.8909006,2.9369965,2.9984956,29.1175707,73.3178908,74.8788994,66.3970722,17.8859356,67.0638843,29.2859131,57.7348093,27.4025084,55.8889574,36.3172015,29.5423949,88.2040513,2.8332434,39.5584074,28.4918557,2.8031384,2.8660669,28.1856825,71.7982287,74.2603502,66.0506815,17.7828222,65.0154418,29.0240896,58.1595453,27.3286236,54.2997879,35.2077974,28.5296555,87.3329217,2.9620448,39.4963841,29.8166642\r\n1798,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.9369965,2.9984956,29.1175707,73.3178908,74.8788994,66.3970722,17.8859356,67.0638843,29.2859131,57.7348093,27.4025084,55.8889574,36.3172015,29.5423949,88.2040513,2.8332434,39.5584074,28.4918557,2.8031384,2.8660669,28.1856825,71.7982287,74.2603502,66.0506815,17.7828222,65.0154418,29.0240896,58.1595453,27.3286236,54.2997879,35.2077974,28.5296555,87.3329217,2.9620448,39.4963841,29.8166642,2.3627737,2.4262987,27.0390812,70.6238081,73.5181148,66.9034344,18.2451909,63.303599,29.7388285,58.5180811,27.9351689,52.9394084,33.1769996,27.1904114,86.746039,2.7722234,39.8237389,29.5153715\r\n1799,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.8031384,2.8660669,28.1856825,71.7982287,74.2603502,66.0506815,17.7828222,65.0154418,29.0240896,58.1595453,27.3286236,54.2997879,35.2077974,28.5296555,87.3329217,2.9620448,39.4963841,29.8166642,2.3627737,2.4262987,27.0390812,70.6238081,73.5181148,66.9034344,18.2451909,63.303599,29.7388285,58.5180811,27.9351689,52.9394084,33.1769996,27.1904114,86.746039,2.7722234,39.8237389,29.5153715,2.2366946,2.3012871,26.5911583,71.1750656,73.1131519,68.0052998,18.5431243,60.9449108,28.3194263,58.9394892,27.8380124,53.272027,32.1992805,26.5808499,86.250399,2.9394386,39.8810408,27.1189768\r\n1800,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.3627737,2.4262987,27.0390812,70.6238081,73.5181148,66.9034344,18.2451909,63.303599,29.7388285,58.5180811,27.9351689,52.9394084,33.1769996,27.1904114,86.746039,2.7722234,39.8237389,29.5153715,2.2366946,2.3012871,26.5911583,71.1750656,73.1131519,68.0052998,18.5431243,60.9449108,28.3194263,58.9394892,27.8380124,53.272027,32.1992805,26.5808499,86.250399,2.9394386,39.8810408,27.1189768,1.9935043,2.0581352,25.9133946,69.8074855,72.3588619,70.2584641,17.5957676,62.4923222,30.1596987,59.4170929,28.4162917,52.8669857,31.5155112,26.2397756,86.3143374,2.596264,38.7039483,26.4100323\r\n1801,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.2366946,2.3012871,26.5911583,71.1750656,73.1131519,68.0052998,18.5431243,60.9449108,28.3194263,58.9394892,27.8380124,53.272027,32.1992805,26.5808499,86.250399,2.9394386,39.8810408,27.1189768,1.9935043,2.0581352,25.9133946,69.8074855,72.3588619,70.2584641,17.5957676,62.4923222,30.1596987,59.4170929,28.4162917,52.8669857,31.5155112,26.2397756,86.3143374,2.596264,38.7039483,26.4100323,1.857658,1.9238457,26.1232348,68.5449092,71.0806947,71.5547953,17.0256379,61.6515005,28.349845,58.5611467,28.8880061,55.4575145,31.221068,25.4542707,85.7646774,2.4198184,39.273582,28.5478718\r\n1802,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.9935043,2.0581352,25.9133946,69.8074855,72.3588619,70.2584641,17.5957676,62.4923222,30.1596987,59.4170929,28.4162917,52.8669857,31.5155112,26.2397756,86.3143374,2.596264,38.7039483,26.4100323,1.857658,1.9238457,26.1232348,68.5449092,71.0806947,71.5547953,17.0256379,61.6515005,28.349845,58.5611467,28.8880061,55.4575145,31.221068,25.4542707,85.7646774,2.4198184,39.273582,28.5478718,1.8631153,1.9434898,25.2548521,69.1366822,69.3214167,69.9947735,17.6608078,61.8590686,27.6216829,60.6512714,31.1441088,54.3786154,29.8963436,24.6926398,85.8309602,2.5191424,39.8696562,27.1298794\r\n1803,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.857658,1.9238457,26.1232348,68.5449092,71.0806947,71.5547953,17.0256379,61.6515005,28.349845,58.5611467,28.8880061,55.4575145,31.221068,25.4542707,85.7646774,2.4198184,39.273582,28.5478718,1.8631153,1.9434898,25.2548521,69.1366822,69.3214167,69.9947735,17.6608078,61.8590686,27.6216829,60.6512714,31.1441088,54.3786154,29.8963436,24.6926398,85.8309602,2.5191424,39.8696562,27.1298794,1.7279373,1.7956557,24.4919986,67.5718406,67.7048966,69.323716,17.1661365,58.7166962,26.1223322,61.7581959,29.9593335,52.1462065,29.0579431,24.2914831,85.6536735,2.4214197,39.0577723,25.4437142\r\n1804,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.8631153,1.9434898,25.2548521,69.1366822,69.3214167,69.9947735,17.6608078,61.8590686,27.6216829,60.6512714,31.1441088,54.3786154,29.8963436,24.6926398,85.8309602,2.5191424,39.8696562,27.1298794,1.7279373,1.7956557,24.4919986,67.5718406,67.7048966,69.323716,17.1661365,58.7166962,26.1223322,61.7581959,29.9593335,52.1462065,29.0579431,24.2914831,85.6536735,2.4214197,39.0577723,25.4437142,1.6541073,1.7219918,22.416722,67.7908938,66.8249689,69.0314654,17.469742,58.13765,25.8912972,59.7504035,29.130135,51.5727796,27.4662364,22.3220891,85.657606,2.7268443,39.9590057,25.7360123\r\n1805,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.7279373,1.7956557,24.4919986,67.5718406,67.7048966,69.323716,17.1661365,58.7166962,26.1223322,61.7581959,29.9593335,52.1462065,29.0579431,24.2914831,85.6536735,2.4214197,39.0577723,25.4437142,1.6541073,1.7219918,22.416722,67.7908938,66.8249689,69.0314654,17.469742,58.13765,25.8912972,59.7504035,29.130135,51.5727796,27.4662364,22.3220891,85.657606,2.7268443,39.9590057,25.7360123,1.6396918,1.7104704,22.350267,69.7327986,66.4217933,70.5959566,17.0930875,60.1545494,25.2464548,60.6121924,29.7753788,53.2710592,27.1613167,21.7159221,85.7704574,2.7638726,40.9525681,25.0194806\r\n1806,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.6541073,1.7219918,22.416722,67.7908938,66.8249689,69.0314654,17.469742,58.13765,25.8912972,59.7504035,29.130135,51.5727796,27.4662364,22.3220891,85.657606,2.7268443,39.9590057,25.7360123,1.6396918,1.7104704,22.350267,69.7327986,66.4217933,70.5959566,17.0930875,60.1545494,25.2464548,60.6121924,29.7753788,53.2710592,27.1613167,21.7159221,85.7704574,2.7638726,40.9525681,25.0194806,1.7492123,1.8208093,21.4048506,68.6457293,65.8050808,70.0656993,17.6761199,59.7063611,23.3197818,61.230318,31.1800634,53.6898524,26.1087541,20.5422129,85.49008,3.1316252,37.5386345,24.3929051\r\n1807,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.6396918,1.7104704,22.350267,69.7327986,66.4217933,70.5959566,17.0930875,60.1545494,25.2464548,60.6121924,29.7753788,53.2710592,27.1613167,21.7159221,85.7704574,2.7638726,40.9525681,25.0194806,1.7492123,1.8208093,21.4048506,68.6457293,65.8050808,70.0656993,17.6761199,59.7063611,23.3197818,61.230318,31.1800634,53.6898524,26.1087541,20.5422129,85.49008,3.1316252,37.5386345,24.3929051,1.7063928,1.7794257,21.5712399,71.0701544,66.1195892,69.1366098,20.4211377,56.8666152,24.3761161,61.1053693,32.4776041,55.6225906,26.2607772,20.0933331,85.113162,3.5923072,38.8043497,24.7893562\r\n1808,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.7492123,1.8208093,21.4048506,68.6457293,65.8050808,70.0656993,17.6761199,59.7063611,23.3197818,61.230318,31.1800634,53.6898524,26.1087541,20.5422129,85.49008,3.1316252,37.5386345,24.3929051,1.7063928,1.7794257,21.5712399,71.0701544,66.1195892,69.1366098,20.4211377,56.8666152,24.3761161,61.1053693,32.4776041,55.6225906,26.2607772,20.0933331,85.113162,3.5923072,38.8043497,24.7893562,1.3559359,1.4283147,20.8539826,72.2462583,67.4301559,69.6509633,21.491321,57.2051282,25.6406157,60.6070782,33.8764651,55.2076783,25.2890203,19.5130551,84.6094038,3.1568227,37.3533199,21.5907803\r\n1809,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.7063928,1.7794257,21.5712399,71.0701544,66.1195892,69.1366098,20.4211377,56.8666152,24.3761161,61.1053693,32.4776041,55.6225906,26.2607772,20.0933331,85.113162,3.5923072,38.8043497,24.7893562,1.3559359,1.4283147,20.8539826,72.2462583,67.4301559,69.6509633,21.491321,57.2051282,25.6406157,60.6070782,33.8764651,55.2076783,25.2890203,19.5130551,84.6094038,3.1568227,37.3533199,21.5907803,1.509337,1.509337,21.404351,71.2159864,69.0711121,70.0113973,21.8655416,57.1180608,25.2546394,60.4517639,34.0399875,55.4073412,25.2235736,19.2389517,83.7583267,3.2369554,36.8292173,22.6393275\r\n1810,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3559359,1.4283147,20.8539826,72.2462583,67.4301559,69.6509633,21.491321,57.2051282,25.6406157,60.6070782,33.8764651,55.2076783,25.2890203,19.5130551,84.6094038,3.1568227,37.3533199,21.5907803,1.509337,1.509337,21.404351,71.2159864,69.0711121,70.0113973,21.8655416,57.1180608,25.2546394,60.4517639,34.0399875,55.4073412,25.2235736,19.2389517,83.7583267,3.2369554,36.8292173,22.6393275,1.6247657,1.6247657,19.9288519,72.8758115,71.1280417,71.4101838,22.2474044,60.9695681,28.0319036,58.3664098,34.3055938,57.1680016,24.3766426,18.8497094,83.3840662,3.0559058,36.0768795,22.3138102\r\n1811,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.509337,1.509337,21.404351,71.2159864,69.0711121,70.0113973,21.8655416,57.1180608,25.2546394,60.4517639,34.0399875,55.4073412,25.2235736,19.2389517,83.7583267,3.2369554,36.8292173,22.6393275,1.6247657,1.6247657,19.9288519,72.8758115,71.1280417,71.4101838,22.2474044,60.9695681,28.0319036,58.3664098,34.3055938,57.1680016,24.3766426,18.8497094,83.3840662,3.0559058,36.0768795,22.3138102,1.7512236,1.7512236,20.2558178,72.8340801,73.0840312,71.4410725,22.1492549,59.8882362,27.660446,60.551722,36.5609408,55.8122816,23.7155375,18.7019434,82.6210617,2.8082155,35.6073451,19.8504683\r\n1812,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.6247657,1.6247657,19.9288519,72.8758115,71.1280417,71.4101838,22.2474044,60.9695681,28.0319036,58.3664098,34.3055938,57.1680016,24.3766426,18.8497094,83.3840662,3.0559058,36.0768795,22.3138102,1.7512236,1.7512236,20.2558178,72.8340801,73.0840312,71.4410725,22.1492549,59.8882362,27.660446,60.551722,36.5609408,55.8122816,23.7155375,18.7019434,82.6210617,2.8082155,35.6073451,19.8504683,1.6733813,1.6733813,18.4654792,68.998173,71.2608662,67.5462289,24.4737167,53.3887257,26.1443254,62.1358742,38.4505853,52.2050661,22.2959083,17.4827168,81.1279371,3.1068093,34.1519358,19.0174957\r\n1813,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.7512236,1.7512236,20.2558178,72.8340801,73.0840312,71.4410725,22.1492549,59.8882362,27.660446,60.551722,36.5609408,55.8122816,23.7155375,18.7019434,82.6210617,2.8082155,35.6073451,19.8504683,1.6733813,1.6733813,18.4654792,68.998173,71.2608662,67.5462289,24.4737167,53.3887257,26.1443254,62.1358742,38.4505853,52.2050661,22.2959083,17.4827168,81.1279371,3.1068093,34.1519358,19.0174957,1.6376148,1.7077101,18.2000748,69.0489768,71.4303008,67.9985459,26.2498002,51.1132745,25.88355,61.3975222,38.830903,52.761162,22.6176511,17.3285359,79.959467,2.8448742,37.7652517,18.0458015\r\n1814,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.6733813,1.6733813,18.4654792,68.998173,71.2608662,67.5462289,24.4737167,53.3887257,26.1443254,62.1358742,38.4505853,52.2050661,22.2959083,17.4827168,81.1279371,3.1068093,34.1519358,19.0174957,1.6376148,1.7077101,18.2000748,69.0489768,71.4303008,67.9985459,26.2498002,51.1132745,25.88355,61.3975222,38.830903,52.761162,22.6176511,17.3285359,79.959467,2.8448742,37.7652517,18.0458015,1.8186511,1.889016,16.8548281,69.7075674,72.521607,66.8741424,24.1178325,49.153654,24.5186022,62.2659207,39.2915462,50.7979151,21.5207016,16.6777142,79.183273,2.6241938,37.0698508,19.6655954\r\n1815,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.6376148,1.7077101,18.2000748,69.0489768,71.4303008,67.9985459,26.2498002,51.1132745,25.88355,61.3975222,38.830903,52.761162,22.6176511,17.3285359,79.959467,2.8448742,37.7652517,18.0458015,1.8186511,1.889016,16.8548281,69.7075674,72.521607,66.8741424,24.1178325,49.153654,24.5186022,62.2659207,39.2915462,50.7979151,21.5207016,16.6777142,79.183273,2.6241938,37.0698508,19.6655954,2.1418654,2.2123025,17.4862927,67.413042,70.7957056,65.8496175,23.7188958,45.2138115,24.8261143,62.7255713,38.93704,49.5725857,21.561589,16.1061732,77.7454218,3.3886117,38.5002832,19.0415747\r\n1816,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.8186511,1.889016,16.8548281,69.7075674,72.521607,66.8741424,24.1178325,49.153654,24.5186022,62.2659207,39.2915462,50.7979151,21.5207016,16.6777142,79.183273,2.6241938,37.0698508,19.6655954,2.1418654,2.2123025,17.4862927,67.413042,70.7957056,65.8496175,23.7188958,45.2138115,24.8261143,62.7255713,38.93704,49.5725857,21.561589,16.1061732,77.7454218,3.3886117,38.5002832,19.0415747,1.909066,1.9817234,16.7169573,68.674931,71.5657428,66.5297142,24.7760136,39.8387388,23.3644928,62.8711326,39.2363232,50.1806984,21.0525514,15.7116426,76.2144287,3.1795433,37.0925935,18.3685614\r\n1817,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.1418654,2.2123025,17.4862927,67.413042,70.7957056,65.8496175,23.7188958,45.2138115,24.8261143,62.7255713,38.93704,49.5725857,21.561589,16.1061732,77.7454218,3.3886117,38.5002832,19.0415747,1.909066,1.9817234,16.7169573,68.674931,71.5657428,66.5297142,24.7760136,39.8387388,23.3644928,62.8711326,39.2363232,50.1806984,21.0525514,15.7116426,76.2144287,3.1795433,37.0925935,18.3685614,1.8196232,1.8940445,16.1078249,70.7773728,73.9334591,67.5195921,23.6551423,35.9843303,22.5048739,64.1996053,37.9865888,50.1616023,20.7284459,14.9231942,75.3315709,3.2630595,37.5385698,18.5269561\r\n1818,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.909066,1.9817234,16.7169573,68.674931,71.5657428,66.5297142,24.7760136,39.8387388,23.3644928,62.8711326,39.2363232,50.1806984,21.0525514,15.7116426,76.2144287,3.1795433,37.0925935,18.3685614,1.8196232,1.8940445,16.1078249,70.7773728,73.9334591,67.5195921,23.6551423,35.9843303,22.5048739,64.1996053,37.9865888,50.1616023,20.7284459,14.9231942,75.3315709,3.2630595,37.5385698,18.5269561,1.6783658,1.7548852,15.1130259,70.0442671,71.5612074,67.253366,24.3260657,32.0250026,22.1535614,64.5724511,37.7938729,48.3465802,19.885962,13.971562,73.3145151,3.4233138,37.5078818,16.4217779\r\n1819,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.8196232,1.8940445,16.1078249,70.7773728,73.9334591,67.5195921,23.6551423,35.9843303,22.5048739,64.1996053,37.9865888,50.1616023,20.7284459,14.9231942,75.3315709,3.2630595,37.5385698,18.5269561,1.6783658,1.7548852,15.1130259,70.0442671,71.5612074,67.253366,24.3260657,32.0250026,22.1535614,64.5724511,37.7938729,48.3465802,19.885962,13.971562,73.3145151,3.4233138,37.5078818,16.4217779,1.5862064,1.6657799,15.1191217,72.9945154,73.6284923,71.6705418,21.5292448,31.9125069,22.875163,62.4843126,36.0943504,49.452337,20.5134884,13.9616913,73.0237869,2.9508078,37.6226574,16.1693634\r\n1820,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.6783658,1.7548852,15.1130259,70.0442671,71.5612074,67.253366,24.3260657,32.0250026,22.1535614,64.5724511,37.7938729,48.3465802,19.885962,13.971562,73.3145151,3.4233138,37.5078818,16.4217779,1.5862064,1.6657799,15.1191217,72.9945154,73.6284923,71.6705418,21.5292448,31.9125069,22.875163,62.4843126,36.0943504,49.452337,20.5134884,13.9616913,73.0237869,2.9508078,37.6226574,16.1693634,1.4586639,1.4586639,15.1123537,73.9310665,74.0222346,71.8815545,20.3929961,28.5250302,23.8425735,63.3591675,35.9489233,47.6567863,19.8545632,13.9087079,71.2618418,2.9740697,35.4530831,18.3419482\r\n1821,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.5862064,1.6657799,15.1191217,72.9945154,73.6284923,71.6705418,21.5292448,31.9125069,22.875163,62.4843126,36.0943504,49.452337,20.5134884,13.9616913,73.0237869,2.9508078,37.6226574,16.1693634,1.4586639,1.4586639,15.1123537,73.9310665,74.0222346,71.8815545,20.3929961,28.5250302,23.8425735,63.3591675,35.9489233,47.6567863,19.8545632,13.9087079,71.2618418,2.9740697,35.4530831,18.3419482,1.4129298,1.3709349,15.7450027,74.0424927,73.8406823,72.6570982,21.9720092,27.0155452,22.1526843,62.2115097,35.546098,50.6989896,19.6917153,13.7237708,69.7670352,3.122356,36.0338329,16.2502113\r\n1822,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4586639,1.4586639,15.1123537,73.9310665,74.0222346,71.8815545,20.3929961,28.5250302,23.8425735,63.3591675,35.9489233,47.6567863,19.8545632,13.9087079,71.2618418,2.9740697,35.4530831,18.3419482,1.4129298,1.3709349,15.7450027,74.0424927,73.8406823,72.6570982,21.9720092,27.0155452,22.1526843,62.2115097,35.546098,50.6989896,19.6917153,13.7237708,69.7670352,3.122356,36.0338329,16.2502113,1.1891734,1.1457208,14.163042,74.3679249,73.6088687,71.7307141,23.7526587,24.6667209,20.409456,63.3009155,36.4450757,50.6841542,18.5575471,13.1663328,67.9411688,2.6979361,35.3721623,16.071486\r\n1823,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4129298,1.3709349,15.7450027,74.0424927,73.8406823,72.6570982,21.9720092,27.0155452,22.1526843,62.2115097,35.546098,50.6989896,19.6917153,13.7237708,69.7670352,3.122356,36.0338329,16.2502113,1.1891734,1.1457208,14.163042,74.3679249,73.6088687,71.7307141,23.7526587,24.6667209,20.409456,63.3009155,36.4450757,50.6841542,18.5575471,13.1663328,67.9411688,2.6979361,35.3721623,16.071486,0.9376782,0.894646,12.6742597,74.8443728,73.8032307,73.3425879,23.7885906,23.8067957,21.8967791,64.3252825,35.5136179,49.2568056,17.1556062,12.1176314,67.9407209,2.8761584,38.8451155,14.4737223\r\n1824,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.1891734,1.1457208,14.163042,74.3679249,73.6088687,71.7307141,23.7526587,24.6667209,20.409456,63.3009155,36.4450757,50.6841542,18.5575471,13.1663328,67.9411688,2.6979361,35.3721623,16.071486,0.9376782,0.894646,12.6742597,74.8443728,73.8032307,73.3425879,23.7885906,23.8067957,21.8967791,64.3252825,35.5136179,49.2568056,17.1556062,12.1176314,67.9407209,2.8761584,38.8451155,14.4737223,0.8300281,0.7861242,12.5075684,74.765311,73.6416913,72.0338691,24.5334753,21.7156322,23.3617794,65.7003831,36.8339785,49.8000671,16.7475658,11.7751751,65.1472035,2.9351002,38.5807351,13.3166164\r\n1825,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.9376782,0.894646,12.6742597,74.8443728,73.8032307,73.3425879,23.7885906,23.8067957,21.8967791,64.3252825,35.5136179,49.2568056,17.1556062,12.1176314,67.9407209,2.8761584,38.8451155,14.4737223,0.8300281,0.7861242,12.5075684,74.765311,73.6416913,72.0338691,24.5334753,21.7156322,23.3617794,65.7003831,36.8339785,49.8000671,16.7475658,11.7751751,65.1472035,2.9351002,38.5807351,13.3166164,0.8087219,0.7635597,13.0538844,77.4868965,76.4124921,72.1550557,25.1516387,21.0142663,23.2522813,64.6576334,36.6502189,53.3476559,17.1467743,12.1201165,64.6738273,2.748109,39.4203798,13.144357\r\n1826,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.8300281,0.7861242,12.5075684,74.765311,73.6416913,72.0338691,24.5334753,21.7156322,23.3617794,65.7003831,36.8339785,49.8000671,16.7475658,11.7751751,65.1472035,2.9351002,38.5807351,13.3166164,0.8087219,0.7635597,13.0538844,77.4868965,76.4124921,72.1550557,25.1516387,21.0142663,23.2522813,64.6576334,36.6502189,53.3476559,17.1467743,12.1201165,64.6738273,2.748109,39.4203798,13.144357,0.9369136,0.8911461,13.2002299,77.0895887,76.9739158,70.2887253,26.6421999,18.9725597,23.2943618,66.9735308,37.5672466,54.2712484,16.9061424,12.0579609,63.0734674,3.3756043,39.8355872,15.6915227\r\n1827,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.8087219,0.7635597,13.0538844,77.4868965,76.4124921,72.1550557,25.1516387,21.0142663,23.2522813,64.6576334,36.6502189,53.3476559,17.1467743,12.1201165,64.6738273,2.748109,39.4203798,13.144357,0.9369136,0.8911461,13.2002299,77.0895887,76.9739158,70.2887253,26.6421999,18.9725597,23.2943618,66.9735308,37.5672466,54.2712484,16.9061424,12.0579609,63.0734674,3.3756043,39.8355872,15.6915227,0.9664,0.9120702,12.2426974,77.3884195,76.8306244,71.1946826,27.0064757,19.3854101,22.9932855,66.9384499,37.5726209,53.7325541,16.4433285,11.4184256,62.5591488,3.9200061,40.6621006,12.204813\r\n1828,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.9369136,0.8911461,13.2002299,77.0895887,76.9739158,70.2887253,26.6421999,18.9725597,23.2943618,66.9735308,37.5672466,54.2712484,16.9061424,12.0579609,63.0734674,3.3756043,39.8355872,15.6915227,0.9664,0.9120702,12.2426974,77.3884195,76.8306244,71.1946826,27.0064757,19.3854101,22.9932855,66.9384499,37.5726209,53.7325541,16.4433285,11.4184256,62.5591488,3.9200061,40.6621006,12.204813,0.9051695,0.8965214,13.2576347,74.9325942,75.0927744,71.9761559,28.0344499,17.2795653,21.8492807,66.8421303,36.8173163,50.2325988,17.1473863,12.0957651,61.3768613,3.9008784,41.3244109,10.7694369\r\n1829,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.9664,0.9120702,12.2426974,77.3884195,76.8306244,71.1946826,27.0064757,19.3854101,22.9932855,66.9384499,37.5726209,53.7325541,16.4433285,11.4184256,62.5591488,3.9200061,40.6621006,12.204813,0.9051695,0.8965214,13.2576347,74.9325942,75.0927744,71.9761559,28.0344499,17.2795653,21.8492807,66.8421303,36.8173163,50.2325988,17.1473863,12.0957651,61.3768613,3.9008784,41.3244109,10.7694369,0.7608425,0.7520296,13.3563269,76.6976543,77.0646089,73.4651787,26.4761757,16.1498121,22.5066726,65.7678179,36.625496,50.2226758,16.8860234,12.1195698,60.2434883,3.889406,42.067713,11.1841619\r\n1830,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.9051695,0.8965214,13.2576347,74.9325942,75.0927744,71.9761559,28.0344499,17.2795653,21.8492807,66.8421303,36.8173163,50.2325988,17.1473863,12.0957651,61.3768613,3.9008784,41.3244109,10.7694369,0.7608425,0.7520296,13.3563269,76.6976543,77.0646089,73.4651787,26.4761757,16.1498121,22.5066726,65.7678179,36.625496,50.2226758,16.8860234,12.1195698,60.2434883,3.889406,42.067713,11.1841619,1.0529633,1.0387613,13.4488988,78.3113451,76.3338051,73.8931522,25.9497337,13.7116113,20.1290099,64.0002308,37.8131116,50.3088112,18.0682533,12.4491313,59.7292255,4.1159791,41.6641068,11.6519683\r\n1831,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,0.7608425,0.7520296,13.3563269,76.6976543,77.0646089,73.4651787,26.4761757,16.1498121,22.5066726,65.7678179,36.625496,50.2226758,16.8860234,12.1195698,60.2434883,3.889406,42.067713,11.1841619,1.0529633,1.0387613,13.4488988,78.3113451,76.3338051,73.8931522,25.9497337,13.7116113,20.1290099,64.0002308,37.8131116,50.3088112,18.0682533,12.4491313,59.7292255,4.1159791,41.6641068,11.6519683,1.1377403,1.1236786,14.7037244,77.0157128,74.5593793,73.9005538,27.9061647,12.4730231,17.5658292,63.0060532,38.2329675,50.8169257,19.0585852,13.5077669,59.3960827,4.1775776,42.6187587,14.0094261\r\n1832,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0529633,1.0387613,13.4488988,78.3113451,76.3338051,73.8931522,25.9497337,13.7116113,20.1290099,64.0002308,37.8131116,50.3088112,18.0682533,12.4491313,59.7292255,4.1159791,41.6641068,11.6519683,1.1377403,1.1236786,14.7037244,77.0157128,74.5593793,73.9005538,27.9061647,12.4730231,17.5658292,63.0060532,38.2329675,50.8169257,19.0585852,13.5077669,59.3960827,4.1775776,42.6187587,14.0094261,1.2179885,1.2039373,13.782407,73.4411573,71.0654898,73.5259701,29.0200455,11.6269262,16.4803556,63.892906,38.3416789,49.8756665,18.6840453,12.9451056,57.907927,4.4651974,43.09899,14.7571853\r\n1833,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.1377403,1.1236786,14.7037244,77.0157128,74.5593793,73.9005538,27.9061647,12.4730231,17.5658292,63.0060532,38.2329675,50.8169257,19.0585852,13.5077669,59.3960827,4.1775776,42.6187587,14.0094261,1.2179885,1.2039373,13.782407,73.4411573,71.0654898,73.5259701,29.0200455,11.6269262,16.4803556,63.892906,38.3416789,49.8756665,18.6840453,12.9451056,57.907927,4.4651974,43.09899,14.7571853,1.1368538,1.1226371,12.8425423,74.2931164,71.0075352,74.3591416,28.6897237,10.8499229,17.6222656,63.1869047,38.3419591,49.1665124,17.6366069,12.3224723,56.4117124,4.250519,43.6890586,11.1888605\r\n1834,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.2179885,1.2039373,13.782407,73.4411573,71.0654898,73.5259701,29.0200455,11.6269262,16.4803556,63.892906,38.3416789,49.8756665,18.6840453,12.9451056,57.907927,4.4651974,43.09899,14.7571853,1.1368538,1.1226371,12.8425423,74.2931164,71.0075352,74.3591416,28.6897237,10.8499229,17.6222656,63.1869047,38.3419591,49.1665124,17.6366069,12.3224723,56.4117124,4.250519,43.6890586,11.1888605,1.3468108,1.3412449,14.3724064,73.7061844,72.4813919,72.79191,28.0051159,9.2849291,16.2457437,61.5291393,37.1207408,48.6170955,17.5592747,12.7567298,56.1514239,4.0759948,43.8523776,11.9466268\r\n1835,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.1368538,1.1226371,12.8425423,74.2931164,71.0075352,74.3591416,28.6897237,10.8499229,17.6222656,63.1869047,38.3419591,49.1665124,17.6366069,12.3224723,56.4117124,4.250519,43.6890586,11.1888605,1.3468108,1.3412449,14.3724064,73.7061844,72.4813919,72.79191,28.0051159,9.2849291,16.2457437,61.5291393,37.1207408,48.6170955,17.5592747,12.7567298,56.1514239,4.0759948,43.8523776,11.9466268,1.3956301,1.3899703,12.5305038,74.3197032,73.190595,71.3024265,25.9172173,9.8374807,18.6526976,62.8806135,37.6160289,49.0771753,16.6510491,11.7625989,54.8600372,4.2290184,43.2030429,11.9126122\r\n1836,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3468108,1.3412449,14.3724064,73.7061844,72.4813919,72.79191,28.0051159,9.2849291,16.2457437,61.5291393,37.1207408,48.6170955,17.5592747,12.7567298,56.1514239,4.0759948,43.8523776,11.9466268,1.3956301,1.3899703,12.5305038,74.3197032,73.190595,71.3024265,25.9172173,9.8374807,18.6526976,62.8806135,37.6160289,49.0771753,16.6510491,11.7625989,54.8600372,4.2290184,43.2030429,11.9126122,1.5012496,1.4956739,12.3140403,72.9469157,72.8651967,70.6939951,26.791129,11.1157159,17.8564909,63.7893364,36.8344739,48.3597616,16.4223156,11.2996964,55.6285918,3.9403206,42.2022718,12.2118919\r\n1837,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3956301,1.3899703,12.5305038,74.3197032,73.190595,71.3024265,25.9172173,9.8374807,18.6526976,62.8806135,37.6160289,49.0771753,16.6510491,11.7625989,54.8600372,4.2290184,43.2030429,11.9126122,1.5012496,1.4956739,12.3140403,72.9469157,72.8651967,70.6939951,26.791129,11.1157159,17.8564909,63.7893364,36.8344739,48.3597616,16.4223156,11.2996964,55.6285918,3.9403206,42.2022718,12.2118919,1.3534065,1.3534065,12.3371156,69.8532787,72.2628009,68.7782103,28.1247156,12.2878377,19.2668873,65.674628,38.0663666,48.4306091,15.381593,11.0291935,54.7071054,3.9264923,41.0367679,10.5751264\r\n1838,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.5012496,1.4956739,12.3140403,72.9469157,72.8651967,70.6939951,26.791129,11.1157159,17.8564909,63.7893364,36.8344739,48.3597616,16.4223156,11.2996964,55.6285918,3.9403206,42.2022718,12.2118919,1.3534065,1.3534065,12.3371156,69.8532787,72.2628009,68.7782103,28.1247156,12.2878377,19.2668873,65.674628,38.0663666,48.4306091,15.381593,11.0291935,54.7071054,3.9264923,41.0367679,10.5751264,1.4054999,1.4054999,10.6225157,72.2348435,75.3074849,70.5043762,27.9525733,12.9811676,20.6364422,65.7279091,38.0320805,46.8742507,14.1939009,10.0221611,55.7404163,4.1415854,40.5469026,9.541992\r\n1839,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3534065,1.3534065,12.3371156,69.8532787,72.2628009,68.7782103,28.1247156,12.2878377,19.2668873,65.674628,38.0663666,48.4306091,15.381593,11.0291935,54.7071054,3.9264923,41.0367679,10.5751264,1.4054999,1.4054999,10.6225157,72.2348435,75.3074849,70.5043762,27.9525733,12.9811676,20.6364422,65.7279091,38.0320805,46.8742507,14.1939009,10.0221611,55.7404163,4.1415854,40.5469026,9.541992,1.4489763,1.4489763,10.1329247,74.2727436,76.9727348,69.1530061,27.2106502,13.2206551,21.8589554,64.9788714,39.3273089,46.036058,13.22699,9.6435301,56.3571783,3.7189731,39.8121579,8.7121278\r\n1840,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4054999,1.4054999,10.6225157,72.2348435,75.3074849,70.5043762,27.9525733,12.9811676,20.6364422,65.7279091,38.0320805,46.8742507,14.1939009,10.0221611,55.7404163,4.1415854,40.5469026,9.541992,1.4489763,1.4489763,10.1329247,74.2727436,76.9727348,69.1530061,27.2106502,13.2206551,21.8589554,64.9788714,39.3273089,46.036058,13.22699,9.6435301,56.3571783,3.7189731,39.8121579,8.7121278,1.5560491,1.5560491,10.4970753,73.3198718,76.4523285,68.4605707,28.0022222,14.8733149,21.0116619,64.8318421,39.4520824,45.3558177,13.1004056,9.683667,57.2525964,3.8391327,40.2026257,7.1428679\r\n1841,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4489763,1.4489763,10.1329247,74.2727436,76.9727348,69.1530061,27.2106502,13.2206551,21.8589554,64.9788714,39.3273089,46.036058,13.22699,9.6435301,56.3571783,3.7189731,39.8121579,8.7121278,1.5560491,1.5560491,10.4970753,73.3198718,76.4523285,68.4605707,28.0022222,14.8733149,21.0116619,64.8318421,39.4520824,45.3558177,13.1004056,9.683667,57.2525964,3.8391327,40.2026257,7.1428679,1.2109128,1.2109128,10.0892848,74.0862555,75.9477597,69.5784439,29.5153721,15.0336004,21.8296853,67.281332,40.4584501,46.3604444,13.0594658,10.034764,55.4839865,4.3433788,39.0406072,8.3333466\r\n1842,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.5560491,1.5560491,10.4970753,73.3198718,76.4523285,68.4605707,28.0022222,14.8733149,21.0116619,64.8318421,39.4520824,45.3558177,13.1004056,9.683667,57.2525964,3.8391327,40.2026257,7.1428679,1.2109128,1.2109128,10.0892848,74.0862555,75.9477597,69.5784439,29.5153721,15.0336004,21.8296853,67.281332,40.4584501,46.3604444,13.0594658,10.034764,55.4839865,4.3433788,39.0406072,8.3333466,1.2242784,1.2242784,9.8718265,74.0890304,75.2841368,69.9366188,30.6815736,14.0160601,19.667859,66.8509343,40.7556597,46.3864315,13.2660468,10.0664274,55.4634418,4.4457753,37.0184696,9.4174142\r\n1843,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.2109128,1.2109128,10.0892848,74.0862555,75.9477597,69.5784439,29.5153721,15.0336004,21.8296853,67.281332,40.4584501,46.3604444,13.0594658,10.034764,55.4839865,4.3433788,39.0406072,8.3333466,1.2242784,1.2242784,9.8718265,74.0890304,75.2841368,69.9366188,30.6815736,14.0160601,19.667859,66.8509343,40.7556597,46.3864315,13.2660468,10.0664274,55.4634418,4.4457753,37.0184696,9.4174142,1.4673096,1.4673096,10.2140427,75.8228187,74.823398,69.4131161,29.6440721,13.154402,20.2816212,66.7850008,40.4020603,48.7922821,14.1515891,10.6530428,54.2076891,4.9348103,37.4784456,9.4951785\r\n1844,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.2242784,1.2242784,9.8718265,74.0890304,75.2841368,69.9366188,30.6815736,14.0160601,19.667859,66.8509343,40.7556597,46.3864315,13.2660468,10.0664274,55.4634418,4.4457753,37.0184696,9.4174142,1.4673096,1.4673096,10.2140427,75.8228187,74.823398,69.4131161,29.6440721,13.154402,20.2816212,66.7850008,40.4020603,48.7922821,14.1515891,10.6530428,54.2076891,4.9348103,37.4784456,9.4951785,1.3934308,1.3934308,9.7273137,76.3610522,75.9627191,68.4656375,27.8871127,11.8967816,19.2847743,64.2530247,40.0560758,48.5894358,14.1959964,9.8919962,53.295871,4.6481185,35.1983549,8.1117474\r\n1845,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4673096,1.4673096,10.2140427,75.8228187,74.823398,69.4131161,29.6440721,13.154402,20.2816212,66.7850008,40.4020603,48.7922821,14.1515891,10.6530428,54.2076891,4.9348103,37.4784456,9.4951785,1.3934308,1.3934308,9.7273137,76.3610522,75.9627191,68.4656375,27.8871127,11.8967816,19.2847743,64.2530247,40.0560758,48.5894358,14.1959964,9.8919962,53.295871,4.6481185,35.1983549,8.1117474,1.5161699,1.5161699,10.3349583,73.3030465,73.0476938,67.2676598,27.9378444,10.3943609,19.0952893,64.7748178,42.3361212,49.0013005,15.6109552,10.0331537,51.3100156,4.8702671,34.7618021,6.0664887\r\n1846,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3934308,1.3934308,9.7273137,76.3610522,75.9627191,68.4656375,27.8871127,11.8967816,19.2847743,64.2530247,40.0560758,48.5894358,14.1959964,9.8919962,53.295871,4.6481185,35.1983549,8.1117474,1.5161699,1.5161699,10.3349583,73.3030465,73.0476938,67.2676598,27.9378444,10.3943609,19.0952893,64.7748178,42.3361212,49.0013005,15.6109552,10.0331537,51.3100156,4.8702671,34.7618021,6.0664887,1.3787174,1.3787174,10.1864966,72.4179545,73.4975474,69.0746889,27.4884143,9.9036528,18.7816995,65.45094,40.3833538,47.2044094,15.9355084,10.00262,49.5240534,5.1422554,33.8100462,6.6847742\r\n1847,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.5161699,1.5161699,10.3349583,73.3030465,73.0476938,67.2676598,27.9378444,10.3943609,19.0952893,64.7748178,42.3361212,49.0013005,15.6109552,10.0331537,51.3100156,4.8702671,34.7618021,6.0664887,1.3787174,1.3787174,10.1864966,72.4179545,73.4975474,69.0746889,27.4884143,9.9036528,18.7816995,65.45094,40.3833538,47.2044094,15.9355084,10.00262,49.5240534,5.1422554,33.8100462,6.6847742,1.343081,1.343081,10.9811599,72.5347759,73.3673146,67.1716369,25.3977744,8.8725445,19.1382289,64.1348322,39.1082232,47.11224,16.5536018,10.3226765,49.1519228,5.2248455,33.3310209,7.6941114\r\n1848,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3787174,1.3787174,10.1864966,72.4179545,73.4975474,69.0746889,27.4884143,9.9036528,18.7816995,65.45094,40.3833538,47.2044094,15.9355084,10.00262,49.5240534,5.1422554,33.8100462,6.6847742,1.343081,1.343081,10.9811599,72.5347759,73.3673146,67.1716369,25.3977744,8.8725445,19.1382289,64.1348322,39.1082232,47.11224,16.5536018,10.3226765,49.1519228,5.2248455,33.3310209,7.6941114,1.409476,1.409476,10.1913815,72.79237,73.0823644,68.112507,24.0841643,8.6414034,18.798457,62.9213376,39.3122452,44.4635082,16.492695,9.8589561,49.8863229,4.7017638,34.0940959,8.1869238\r\n1849,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.343081,1.343081,10.9811599,72.5347759,73.3673146,67.1716369,25.3977744,8.8725445,19.1382289,64.1348322,39.1082232,47.11224,16.5536018,10.3226765,49.1519228,5.2248455,33.3310209,7.6941114,1.409476,1.409476,10.1913815,72.79237,73.0823644,68.112507,24.0841643,8.6414034,18.798457,62.9213376,39.3122452,44.4635082,16.492695,9.8589561,49.8863229,4.7017638,34.0940959,8.1869238,1.2588009,1.2588009,10.7046475,74.6051262,75.3318922,69.1955629,24.1288888,8.515622,19.6822945,63.3835026,38.7517474,44.60796,16.6006683,10.1199282,48.8716823,4.264651,35.8152821,7.757459\r\n1850,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.409476,1.409476,10.1913815,72.79237,73.0823644,68.112507,24.0841643,8.6414034,18.798457,62.9213376,39.3122452,44.4635082,16.492695,9.8589561,49.8863229,4.7017638,34.0940959,8.1869238,1.2588009,1.2588009,10.7046475,74.6051262,75.3318922,69.1955629,24.1288888,8.515622,19.6822945,63.3835026,38.7517474,44.60796,16.6006683,10.1199282,48.8716823,4.264651,35.8152821,7.757459,1.105898,1.105898,10.6834568,73.4078028,75.0457052,71.0631529,24.7493718,7.9466593,19.4206909,62.8083907,39.7017531,42.9231007,16.3663279,10.0427194,47.9027982,4.3824028,35.9923737,7.2878637\r\n1851,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.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.2588009,1.2588009,10.7046475,74.6051262,75.3318922,69.1955629,24.1288888,8.515622,19.6822945,63.3835026,38.7517474,44.60796,16.6006683,10.1199282,48.8716823,4.264651,35.8152821,7.757459,1.105898,1.105898,10.6834568,73.4078028,75.0457052,71.0631529,24.7493718,7.9466593,19.4206909,62.8083907,39.7017531,42.9231007,16.3663279,10.0427194,47.9027982,4.3824028,35.9923737,7.2878637,1.1022009,1.1022009,11.3778578,74.3061898,75.0905754,71.3793822,25.6824227,8.6898225,18.9450073,64.1820923,39.4203566,44.5723258,16.9439927,10.8844658,47.7634451,4.5419705,35.6353415,6.6269746\r\n1852,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.6089433,3.7046367,32.9232378,79.065312,75.888916,76.418603,18.838805,61.7262547,20.8641137,56.6012478,23.1283548,61.0364939,38.0611675,31.91413,86.8286628,10.4889509,39.7193242,19.1050264,3.7180635,3.8026549,34.1592124,78.7036258,75.2348103,77.1508018,17.527122,62.0722112,20.8872535,55.6401891,22.8869298,61.376823,38.789738,32.6230854,87.311549,10.2668874,39.5582367,19.5887836,3.7929364,3.8751548,34.7563359,78.1898513,75.320701,76.9861678,16.3931358,61.9550296,21.511959,55.5761217,23.0982594,61.3100011,39.8640784,33.517508,87.6072831,9.9989871,39.1942569,20.444109\r\n1853,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.7180635,3.8026549,34.1592124,78.7036258,75.2348103,77.1508018,17.527122,62.0722112,20.8872535,55.6401891,22.8869298,61.376823,38.789738,32.6230854,87.311549,10.2668874,39.5582367,19.5887836,3.7929364,3.8751548,34.7563359,78.1898513,75.320701,76.9861678,16.3931358,61.9550296,21.511959,55.5761217,23.0982594,61.3100011,39.8640784,33.517508,87.6072831,9.9989871,39.1942569,20.444109,3.8933311,3.9816653,35.673849,78.0419428,74.7711346,76.6775503,15.4091635,61.7369048,21.2591585,55.4976923,22.8876607,61.5622806,40.8742511,34.489618,87.8278358,10.0281214,39.6402878,21.2960239\r\n1854,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.7929364,3.8751548,34.7563359,78.1898513,75.320701,76.9861678,16.3931358,61.9550296,21.511959,55.5761217,23.0982594,61.3100011,39.8640784,33.517508,87.6072831,9.9989871,39.1942569,20.444109,3.8933311,3.9816653,35.673849,78.0419428,74.7711346,76.6775503,15.4091635,61.7369048,21.2591585,55.4976923,22.8876607,61.5622806,40.8742511,34.489618,87.8278358,10.0281214,39.6402878,21.2960239,4.0232184,4.1076658,36.5934435,77.7724136,74.5580612,76.8386344,14.7909415,62.1437888,21.2492869,54.9766526,22.2466902,62.4879064,41.8477219,35.5334632,88.0405733,9.9668278,39.6817175,22.439675\r\n1855,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.8933311,3.9816653,35.673849,78.0419428,74.7711346,76.6775503,15.4091635,61.7369048,21.2591585,55.4976923,22.8876607,61.5622806,40.8742511,34.489618,87.8278358,10.0281214,39.6402878,21.2960239,4.0232184,4.1076658,36.5934435,77.7724136,74.5580612,76.8386344,14.7909415,62.1437888,21.2492869,54.9766526,22.2466902,62.4879064,41.8477219,35.5334632,88.0405733,9.9668278,39.6817175,22.439675,4.0201211,4.1212232,36.9263848,77.7344654,74.2339868,75.7933527,14.3567556,62.9609381,21.329627,55.1026427,21.8039889,62.7932924,42.422629,36.1073475,88.1841588,9.8428753,39.8203609,23.1001707\r\n1856,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.0232184,4.1076658,36.5934435,77.7724136,74.5580612,76.8386344,14.7909415,62.1437888,21.2492869,54.9766526,22.2466902,62.4879064,41.8477219,35.5334632,88.0405733,9.9668278,39.6817175,22.439675,4.0201211,4.1212232,36.9263848,77.7344654,74.2339868,75.7933527,14.3567556,62.9609381,21.329627,55.1026427,21.8039889,62.7932924,42.422629,36.1073475,88.1841588,9.8428753,39.8203609,23.1001707,4.0353372,4.1391178,37.8107597,77.0682426,73.6182771,75.6159623,14.0358983,63.3195777,21.3921827,55.1010393,21.3499045,62.880503,43.4323448,36.9418421,88.5060435,9.859508,40.4074557,23.8236095\r\n1857,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.0201211,4.1212232,36.9263848,77.7344654,74.2339868,75.7933527,14.3567556,62.9609381,21.329627,55.1026427,21.8039889,62.7932924,42.422629,36.1073475,88.1841588,9.8428753,39.8203609,23.1001707,4.0353372,4.1391178,37.8107597,77.0682426,73.6182771,75.6159623,14.0358983,63.3195777,21.3921827,55.1010393,21.3499045,62.880503,43.4323448,36.9418421,88.5060435,9.859508,40.4074557,23.8236095,4.0334226,4.1507428,38.0666478,76.9174311,73.7427948,75.3801356,13.7485151,63.1305912,21.9419615,54.3791336,20.8064676,63.4110054,44.1373601,37.6092834,88.7986368,10.1364248,40.9617388,24.9232044\r\n1858,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.0353372,4.1391178,37.8107597,77.0682426,73.6182771,75.6159623,14.0358983,63.3195777,21.3921827,55.1010393,21.3499045,62.880503,43.4323448,36.9418421,88.5060435,9.859508,40.4074557,23.8236095,4.0334226,4.1507428,38.0666478,76.9174311,73.7427948,75.3801356,13.7485151,63.1305912,21.9419615,54.3791336,20.8064676,63.4110054,44.1373601,37.6092834,88.7986368,10.1364248,40.9617388,24.9232044,3.9469849,4.1212897,37.8310484,77.1911059,74.2506575,75.3173304,13.7104471,63.9086709,22.5915656,54.2852844,20.9886355,62.382397,44.501366,37.8854389,88.8604836,9.9909148,41.8077351,25.4714372\r\n1859,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,4.0334226,4.1507428,38.0666478,76.9174311,73.7427948,75.3801356,13.7485151,63.1305912,21.9419615,54.3791336,20.8064676,63.4110054,44.1373601,37.6092834,88.7986368,10.1364248,40.9617388,24.9232044,3.9469849,4.1212897,37.8310484,77.1911059,74.2506575,75.3173304,13.7104471,63.9086709,22.5915656,54.2852844,20.9886355,62.382397,44.501366,37.8854389,88.8604836,9.9909148,41.8077351,25.4714372,3.9395161,4.1234558,38.2014348,77.5798737,74.1300104,75.8495777,13.5102938,64.8635349,23.1463119,54.6522821,20.5922237,62.9502242,44.7903161,38.2358762,89.0250384,10.3389853,43.0437598,26.2366528\r\n1860,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.9469849,4.1212897,37.8310484,77.1911059,74.2506575,75.3173304,13.7104471,63.9086709,22.5915656,54.2852844,20.9886355,62.382397,44.501366,37.8854389,88.8604836,9.9909148,41.8077351,25.4714372,3.9395161,4.1234558,38.2014348,77.5798737,74.1300104,75.8495777,13.5102938,64.8635349,23.1463119,54.6522821,20.5922237,62.9502242,44.7903161,38.2358762,89.0250384,10.3389853,43.0437598,26.2366528,3.8863468,4.0715903,37.7705322,77.6086433,74.0986703,75.8893137,13.1952305,66.1860809,23.1273633,54.6390685,20.7017321,63.1439661,44.28948,37.8689483,89.2598975,10.1909846,42.8065318,26.7144521\r\n1861,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.9395161,4.1234558,38.2014348,77.5798737,74.1300104,75.8495777,13.5102938,64.8635349,23.1463119,54.6522821,20.5922237,62.9502242,44.7903161,38.2358762,89.0250384,10.3389853,43.0437598,26.2366528,3.8863468,4.0715903,37.7705322,77.6086433,74.0986703,75.8893137,13.1952305,66.1860809,23.1273633,54.6390685,20.7017321,63.1439661,44.28948,37.8689483,89.2598975,10.1909846,42.8065318,26.7144521,3.6537183,3.8327528,37.1710398,77.5338242,74.3889004,76.2181009,12.7936781,67.4439267,23.2734476,54.427901,20.5526872,63.0957866,43.4588089,37.174737,89.6591396,10.3534031,43.3066655,26.5918137\r\n1862,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.8863468,4.0715903,37.7705322,77.6086433,74.0986703,75.8893137,13.1952305,66.1860809,23.1273633,54.6390685,20.7017321,63.1439661,44.28948,37.8689483,89.2598975,10.1909846,42.8065318,26.7144521,3.6537183,3.8327528,37.1710398,77.5338242,74.3889004,76.2181009,12.7936781,67.4439267,23.2734476,54.427901,20.5526872,63.0957866,43.4588089,37.174737,89.6591396,10.3534031,43.3066655,26.5918137,3.5417429,3.7307406,36.9328088,77.2153025,74.5196693,76.5271756,12.5190243,67.3021171,23.0101942,53.4114981,20.3913172,63.262293,43.0958917,36.9369844,89.9474292,10.7351955,43.1937234,27.0519057\r\n1863,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.6537183,3.8327528,37.1710398,77.5338242,74.3889004,76.2181009,12.7936781,67.4439267,23.2734476,54.427901,20.5526872,63.0957866,43.4588089,37.174737,89.6591396,10.3534031,43.3066655,26.5918137,3.5417429,3.7307406,36.9328088,77.2153025,74.5196693,76.5271756,12.5190243,67.3021171,23.0101942,53.4114981,20.3913172,63.262293,43.0958917,36.9369844,89.9474292,10.7351955,43.1937234,27.0519057,3.4195505,3.5897096,35.9711985,77.8867483,75.0142812,75.9288869,12.6410896,66.9111072,23.2784635,53.9558457,20.7812494,63.4790321,42.0652076,36.168045,89.9219318,10.6680643,43.137017,26.7640352\r\n1864,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.5417429,3.7307406,36.9328088,77.2153025,74.5196693,76.5271756,12.5190243,67.3021171,23.0101942,53.4114981,20.3913172,63.262293,43.0958917,36.9369844,89.9474292,10.7351955,43.1937234,27.0519057,3.4195505,3.5897096,35.9711985,77.8867483,75.0142812,75.9288869,12.6410896,66.9111072,23.2784635,53.9558457,20.7812494,63.4790321,42.0652076,36.168045,89.9219318,10.6680643,43.137017,26.7640352,3.2915392,3.475164,35.3474194,77.7152967,74.4053007,75.3635107,12.5227479,67.2298293,22.8684697,54.1503631,20.668171,62.220604,40.782496,35.1760288,90.067965,10.693107,42.883904,26.716419\r\n1865,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.4195505,3.5897096,35.9711985,77.8867483,75.0142812,75.9288869,12.6410896,66.9111072,23.2784635,53.9558457,20.7812494,63.4790321,42.0652076,36.168045,89.9219318,10.6680643,43.137017,26.7640352,3.2915392,3.475164,35.3474194,77.7152967,74.4053007,75.3635107,12.5227479,67.2298293,22.8684697,54.1503631,20.668171,62.220604,40.782496,35.1760288,90.067965,10.693107,42.883904,26.716419,3.1668289,3.3140685,34.805507,77.3397295,73.9920123,75.4458481,12.2209088,67.391311,22.8058208,54.7493979,20.7672796,62.5522363,39.8785425,34.4303019,90.3461396,11.0789081,42.1285338,26.8574149\r\n1866,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.2915392,3.475164,35.3474194,77.7152967,74.4053007,75.3635107,12.5227479,67.2298293,22.8684697,54.1503631,20.668171,62.220604,40.782496,35.1760288,90.067965,10.693107,42.883904,26.716419,3.1668289,3.3140685,34.805507,77.3397295,73.9920123,75.4458481,12.2209088,67.391311,22.8058208,54.7493979,20.7672796,62.5522363,39.8785425,34.4303019,90.3461396,11.0789081,42.1285338,26.8574149,3.0162193,3.1637917,33.7110895,77.0810589,74.0277153,75.5533189,12.4458569,67.8051873,22.4991792,54.9135917,21.1244278,61.7853082,38.4942839,33.1058981,90.5582314,11.1659725,41.0967162,26.3416974\r\n1867,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.1668289,3.3140685,34.805507,77.3397295,73.9920123,75.4458481,12.2209088,67.391311,22.8058208,54.7493979,20.7672796,62.5522363,39.8785425,34.4303019,90.3461396,11.0789081,42.1285338,26.8574149,3.0162193,3.1637917,33.7110895,77.0810589,74.0277153,75.5533189,12.4458569,67.8051873,22.4991792,54.9135917,21.1244278,61.7853082,38.4942839,33.1058981,90.5582314,11.1659725,41.0967162,26.3416974,2.7525498,2.9057782,32.849871,77.6054291,74.4281276,75.7815651,12.4182858,68.1354221,23.3611688,55.4814178,21.3844409,61.2479542,37.8114392,32.3839026,90.3467502,11.3864343,41.253297,26.4281162\r\n1868,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,3.0162193,3.1637917,33.7110895,77.0810589,74.0277153,75.5533189,12.4458569,67.8051873,22.4991792,54.9135917,21.1244278,61.7853082,38.4942839,33.1058981,90.5582314,11.1659725,41.0967162,26.3416974,2.7525498,2.9057782,32.849871,77.6054291,74.4281276,75.7815651,12.4182858,68.1354221,23.3611688,55.4814178,21.3844409,61.2479542,37.8114392,32.3839026,90.3467502,11.3864343,41.253297,26.4281162,2.7815008,2.9219092,32.0716213,77.6910567,74.3911249,75.0274932,12.673935,67.1948569,23.599678,55.5851834,22.3728128,60.2658239,37.312282,31.612861,90.0150073,11.8076515,40.8116618,26.5368604\r\n1869,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.7525498,2.9057782,32.849871,77.6054291,74.4281276,75.7815651,12.4182858,68.1354221,23.3611688,55.4814178,21.3844409,61.2479542,37.8114392,32.3839026,90.3467502,11.3864343,41.253297,26.4281162,2.7815008,2.9219092,32.0716213,77.6910567,74.3911249,75.0274932,12.673935,67.1948569,23.599678,55.5851834,22.3728128,60.2658239,37.312282,31.612861,90.0150073,11.8076515,40.8116618,26.5368604,2.6178825,2.7366717,30.8756366,77.6714509,74.0513813,75.2946605,13.0351161,67.5761823,23.8977143,56.9494644,22.5963781,59.9238011,36.2450553,30.6436987,89.6211764,11.6331493,41.1988904,26.2231312\r\n1870,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.7815008,2.9219092,32.0716213,77.6910567,74.3911249,75.0274932,12.673935,67.1948569,23.599678,55.5851834,22.3728128,60.2658239,37.312282,31.612861,90.0150073,11.8076515,40.8116618,26.5368604,2.6178825,2.7366717,30.8756366,77.6714509,74.0513813,75.2946605,13.0351161,67.5761823,23.8977143,56.9494644,22.5963781,59.9238011,36.2450553,30.6436987,89.6211764,11.6331493,41.1988904,26.2231312,2.5444772,2.6643019,29.8710015,77.2827218,74.2292151,75.8159709,13.2699955,67.9600552,23.9350799,56.6787592,22.5370708,58.8861597,35.3954581,29.8505044,89.7116818,11.6163816,41.3085952,25.9011112\r\n1871,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.6178825,2.7366717,30.8756366,77.6714509,74.0513813,75.2946605,13.0351161,67.5761823,23.8977143,56.9494644,22.5963781,59.9238011,36.2450553,30.6436987,89.6211764,11.6331493,41.1988904,26.2231312,2.5444772,2.6643019,29.8710015,77.2827218,74.2292151,75.8159709,13.2699955,67.9600552,23.9350799,56.6787592,22.5370708,58.8861597,35.3954581,29.8505044,89.7116818,11.6163816,41.3085952,25.9011112,2.3560928,2.4476933,29.0048982,77.0712226,74.9686524,76.4640232,13.6850238,67.8556442,24.1215294,56.9064205,23.2184606,58.6943698,34.7509667,29.0588588,89.5284652,11.4703916,41.1170327,25.0000107\r\n1872,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.5444772,2.6643019,29.8710015,77.2827218,74.2292151,75.8159709,13.2699955,67.9600552,23.9350799,56.6787592,22.5370708,58.8861597,35.3954581,29.8505044,89.7116818,11.6163816,41.3085952,25.9011112,2.3560928,2.4476933,29.0048982,77.0712226,74.9686524,76.4640232,13.6850238,67.8556442,24.1215294,56.9064205,23.2184606,58.6943698,34.7509667,29.0588588,89.5284652,11.4703916,41.1170327,25.0000107,2.2505599,2.3314068,28.1285457,76.7723657,74.7607523,76.5493473,13.7305422,66.3098651,24.1172616,56.5882726,23.1382138,58.3824422,33.6074976,28.0858147,89.1160207,11.4253374,41.0710021,24.2520088\r\n1873,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.3560928,2.4476933,29.0048982,77.0712226,74.9686524,76.4640232,13.6850238,67.8556442,24.1215294,56.9064205,23.2184606,58.6943698,34.7509667,29.0588588,89.5284652,11.4703916,41.1170327,25.0000107,2.2505599,2.3314068,28.1285457,76.7723657,74.7607523,76.5493473,13.7305422,66.3098651,24.1172616,56.5882726,23.1382138,58.3824422,33.6074976,28.0858147,89.1160207,11.4253374,41.0710021,24.2520088,2.1267932,2.2024806,27.5329243,76.5412912,74.3827793,76.0357635,14.1994535,65.6097689,23.8275609,57.1774262,23.4692611,57.7796209,32.9856641,27.6016756,88.8812726,11.3952347,42.0692155,24.0279775\r\n1874,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.2505599,2.3314068,28.1285457,76.7723657,74.7607523,76.5493473,13.7305422,66.3098651,24.1172616,56.5882726,23.1382138,58.3824422,33.6074976,28.0858147,89.1160207,11.4253374,41.0710021,24.2520088,2.1267932,2.2024806,27.5329243,76.5412912,74.3827793,76.0357635,14.1994535,65.6097689,23.8275609,57.1774262,23.4692611,57.7796209,32.9856641,27.6016756,88.8812726,11.3952347,42.0692155,24.0279775,2.1279518,2.20433,27.1055605,75.9171768,74.4084894,75.4244358,15.0173218,64.6589888,23.0898615,57.1672792,24.0504304,57.162693,32.1552404,26.9764335,88.7166731,11.3360552,42.4193524,23.7009596\r\n1875,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.1267932,2.2024806,27.5329243,76.5412912,74.3827793,76.0357635,14.1994535,65.6097689,23.8275609,57.1774262,23.4692611,57.7796209,32.9856641,27.6016756,88.8812726,11.3952347,42.0692155,24.0279775,2.1279518,2.20433,27.1055605,75.9171768,74.4084894,75.4244358,15.0173218,64.6589888,23.0898615,57.1672792,24.0504304,57.162693,32.1552404,26.9764335,88.7166731,11.3360552,42.4193524,23.7009596,2.0119254,2.0939326,26.7133381,75.398171,73.666239,75.4504319,15.799468,64.558425,22.9040867,58.1385225,23.8101004,56.7220809,31.3291906,26.4437138,88.4256254,10.9733036,42.7543485,22.9213103\r\n1876,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.1279518,2.20433,27.1055605,75.9171768,74.4084894,75.4244358,15.0173218,64.6589888,23.0898615,57.1672792,24.0504304,57.162693,32.1552404,26.9764335,88.7166731,11.3360552,42.4193524,23.7009596,2.0119254,2.0939326,26.7133381,75.398171,73.666239,75.4504319,15.799468,64.558425,22.9040867,58.1385225,23.8101004,56.7220809,31.3291906,26.4437138,88.4256254,10.9733036,42.7543485,22.9213103,1.9659243,2.0516035,25.9654205,75.5563804,74.0870531,75.3764934,16.3832929,63.8187433,22.8414101,57.9578519,24.590324,56.2760907,30.7793009,25.9912742,88.4014842,11.2175336,42.7029069,22.0627661\r\n1877,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,2.0119254,2.0939326,26.7133381,75.398171,73.666239,75.4504319,15.799468,64.558425,22.9040867,58.1385225,23.8101004,56.7220809,31.3291906,26.4437138,88.4256254,10.9733036,42.7543485,22.9213103,1.9659243,2.0516035,25.9654205,75.5563804,74.0870531,75.3764934,16.3832929,63.8187433,22.8414101,57.9578519,24.590324,56.2760907,30.7793009,25.9912742,88.4014842,11.2175336,42.7029069,22.0627661,1.8481845,1.9195056,25.6252154,74.8596655,73.0350549,75.4675814,16.4852698,62.9428472,23.0272002,58.3592539,24.8751725,55.8037498,30.3943851,25.6162314,87.8362206,11.3910086,42.104556,22.0062841\r\n1878,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.9659243,2.0516035,25.9654205,75.5563804,74.0870531,75.3764934,16.3832929,63.8187433,22.8414101,57.9578519,24.590324,56.2760907,30.7793009,25.9912742,88.4014842,11.2175336,42.7029069,22.0627661,1.8481845,1.9195056,25.6252154,74.8596655,73.0350549,75.4675814,16.4852698,62.9428472,23.0272002,58.3592539,24.8751725,55.8037498,30.3943851,25.6162314,87.8362206,11.3910086,42.104556,22.0062841,1.8414265,1.9101844,25.220211,74.6706722,72.5410359,75.4212336,16.5533376,62.2311647,22.9366425,58.8607027,24.9367827,54.7600519,29.6722126,25.2255116,87.7266694,11.4665769,41.8043637,22.4361627\r\n1879,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.8481845,1.9195056,25.6252154,74.8596655,73.0350549,75.4675814,16.4852698,62.9428472,23.0272002,58.3592539,24.8751725,55.8037498,30.3943851,25.6162314,87.8362206,11.3910086,42.104556,22.0062841,1.8414265,1.9101844,25.220211,74.6706722,72.5410359,75.4212336,16.5533376,62.2311647,22.9366425,58.8607027,24.9367827,54.7600519,29.6722126,25.2255116,87.7266694,11.4665769,41.8043637,22.4361627,1.8321744,1.893148,24.655462,74.1983246,72.0144107,75.7173938,17.0385744,63.1118513,22.3832237,59.0934721,25.3177102,54.4946893,29.0090412,24.5000635,87.4366874,11.4770052,41.8304959,22.2199382\r\n1880,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.8414265,1.9101844,25.220211,74.6706722,72.5410359,75.4212336,16.5533376,62.2311647,22.9366425,58.8607027,24.9367827,54.7600519,29.6722126,25.2255116,87.7266694,11.4665769,41.8043637,22.4361627,1.8321744,1.893148,24.655462,74.1983246,72.0144107,75.7173938,17.0385744,63.1118513,22.3832237,59.0934721,25.3177102,54.4946893,29.0090412,24.5000635,87.4366874,11.4770052,41.8304959,22.2199382,1.7977472,1.8382475,23.6059905,73.8854441,72.8962749,75.2507048,16.8910512,63.3634872,22.5977396,58.8255636,25.0149168,54.5915529,27.7575663,23.5221516,87.131611,11.485056,40.9314358,21.5116331\r\n1881,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.8321744,1.893148,24.655462,74.1983246,72.0144107,75.7173938,17.0385744,63.1118513,22.3832237,59.0934721,25.3177102,54.4946893,29.0090412,24.5000635,87.4366874,11.4770052,41.8304959,22.2199382,1.7977472,1.8382475,23.6059905,73.8854441,72.8962749,75.2507048,16.8910512,63.3634872,22.5977396,58.8255636,25.0149168,54.5915529,27.7575663,23.5221516,87.131611,11.485056,40.9314358,21.5116331,1.6989871,1.7266918,22.7157845,73.7014651,72.1033125,75.68001,16.4158278,63.0252666,22.7795094,59.1600222,24.4691192,54.9795354,27.0592075,22.856216,87.0820326,11.6527394,39.8388413,20.5816114\r\n1882,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.7977472,1.8382475,23.6059905,73.8854441,72.8962749,75.2507048,16.8910512,63.3634872,22.5977396,58.8255636,25.0149168,54.5915529,27.7575663,23.5221516,87.131611,11.485056,40.9314358,21.5116331,1.6989871,1.7266918,22.7157845,73.7014651,72.1033125,75.68001,16.4158278,63.0252666,22.7795094,59.1600222,24.4691192,54.9795354,27.0592075,22.856216,87.0820326,11.6527394,39.8388413,20.5816114,1.5851984,1.6024496,21.4420677,73.6162974,72.6625625,76.0459158,16.2614573,64.2041278,23.1578889,59.054047,24.3777101,54.9454367,25.7934409,21.7865644,87.2726076,11.7055736,38.8377908,19.9117175\r\n1883,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.6989871,1.7266918,22.7157845,73.7014651,72.1033125,75.68001,16.4158278,63.0252666,22.7795094,59.1600222,24.4691192,54.9795354,27.0592075,22.856216,87.0820326,11.6527394,39.8388413,20.5816114,1.5851984,1.6024496,21.4420677,73.6162974,72.6625625,76.0459158,16.2614573,64.2041278,23.1578889,59.054047,24.3777101,54.9454367,25.7934409,21.7865644,87.2726076,11.7055736,38.8377908,19.9117175,1.5321682,1.563673,20.7592678,72.7006046,72.3265604,75.9300136,15.6981111,64.1229504,23.2097012,59.2622194,24.2594232,53.9647945,25.0033629,20.8753532,87.1450743,11.5915292,37.7205553,19.5174476\r\n1884,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.5851984,1.6024496,21.4420677,73.6162974,72.6625625,76.0459158,16.2614573,64.2041278,23.1578889,59.054047,24.3777101,54.9454367,25.7934409,21.7865644,87.2726076,11.7055736,38.8377908,19.9117175,1.5321682,1.563673,20.7592678,72.7006046,72.3265604,75.9300136,15.6981111,64.1229504,23.2097012,59.2622194,24.2594232,53.9647945,25.0033629,20.8753532,87.1450743,11.5915292,37.7205553,19.5174476,1.5263609,1.5584768,19.3550898,73.4704848,72.9668204,76.0132699,16.141867,64.9763121,23.5356831,59.5174373,24.8398834,53.6657874,23.6132169,19.7178255,87.0724441,11.6985602,38.1453764,18.2021989\r\n1885,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.5321682,1.563673,20.7592678,72.7006046,72.3265604,75.9300136,15.6981111,64.1229504,23.2097012,59.2622194,24.2594232,53.9647945,25.0033629,20.8753532,87.1450743,11.5915292,37.7205553,19.5174476,1.5263609,1.5584768,19.3550898,73.4704848,72.9668204,76.0132699,16.141867,64.9763121,23.5356831,59.5174373,24.8398834,53.6657874,23.6132169,19.7178255,87.0724441,11.6985602,38.1453764,18.2021989,1.4300197,1.4434433,18.3335229,73.219155,72.3217122,75.4997166,16.2048648,65.356184,23.4804671,58.7552493,25.169813,53.8780634,22.7716519,18.7683041,86.9271175,11.6935481,38.1139255,17.3789995\r\n1886,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.5263609,1.5584768,19.3550898,73.4704848,72.9668204,76.0132699,16.141867,64.9763121,23.5356831,59.5174373,24.8398834,53.6657874,23.6132169,19.7178255,87.0724441,11.6985602,38.1453764,18.2021989,1.4300197,1.4434433,18.3335229,73.219155,72.3217122,75.4997166,16.2048648,65.356184,23.4804671,58.7552493,25.169813,53.8780634,22.7716519,18.7683041,86.9271175,11.6935481,38.1139255,17.3789995,1.3032221,1.3300721,17.4416263,73.5872381,72.6436625,74.8744646,16.4624608,64.6576983,23.1775345,58.6948244,25.0395984,53.3557103,21.9486062,18.0656653,86.6999221,11.9453679,38.0959517,16.9450557\r\n1887,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4300197,1.4434433,18.3335229,73.219155,72.3217122,75.4997166,16.2048648,65.356184,23.4804671,58.7552493,25.169813,53.8780634,22.7716519,18.7683041,86.9271175,11.6935481,38.1139255,17.3789995,1.3032221,1.3300721,17.4416263,73.5872381,72.6436625,74.8744646,16.4624608,64.6576983,23.1775345,58.6948244,25.0395984,53.3557103,21.9486062,18.0656653,86.6999221,11.9453679,38.0959517,16.9450557,1.2993281,1.319896,16.8144607,73.8698616,71.5927502,74.6679029,16.7281021,63.9398335,23.0865488,59.0015437,25.9254482,52.7791457,21.374873,17.4280751,86.1906301,12.2611236,38.6518541,17.4141815\r\n1888,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3032221,1.3300721,17.4416263,73.5872381,72.6436625,74.8744646,16.4624608,64.6576983,23.1775345,58.6948244,25.0395984,53.3557103,21.9486062,18.0656653,86.6999221,11.9453679,38.0959517,16.9450557,1.2993281,1.319896,16.8144607,73.8698616,71.5927502,74.6679029,16.7281021,63.9398335,23.0865488,59.0015437,25.9254482,52.7791457,21.374873,17.4280751,86.1906301,12.2611236,38.6518541,17.4141815,1.4241641,1.4546875,16.1999532,73.4655605,71.2623901,74.9628992,17.6290149,64.3399541,22.587388,59.0607693,27.0540419,51.7801718,20.7831301,16.6544204,86.0015236,12.4204773,38.9526128,16.8536231\r\n1889,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.2993281,1.319896,16.8144607,73.8698616,71.5927502,74.6679029,16.7281021,63.9398335,23.0865488,59.0015437,25.9254482,52.7791457,21.374873,17.4280751,86.1906301,12.2611236,38.6518541,17.4141815,1.4241641,1.4546875,16.1999532,73.4655605,71.2623901,74.9628992,17.6290149,64.3399541,22.587388,59.0607693,27.0540419,51.7801718,20.7831301,16.6544204,86.0015236,12.4204773,38.9526128,16.8536231,1.4332987,1.4638016,16.0620008,74.1024378,71.5766979,74.2936609,17.8865553,63.4303613,22.0302329,59.5389049,27.5012759,52.2886069,20.5865039,16.367777,85.470675,12.4130279,38.8098171,17.0682769\r\n1890,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4241641,1.4546875,16.1999532,73.4655605,71.2623901,74.9628992,17.6290149,64.3399541,22.587388,59.0607693,27.0540419,51.7801718,20.7831301,16.6544204,86.0015236,12.4204773,38.9526128,16.8536231,1.4332987,1.4638016,16.0620008,74.1024378,71.5766979,74.2936609,17.8865553,63.4303613,22.0302329,59.5389049,27.5012759,52.2886069,20.5865039,16.367777,85.470675,12.4130279,38.8098171,17.0682769,1.4894411,1.5185531,15.9245434,75.3397855,72.0358994,74.8649346,18.1926818,63.4050432,22.0019909,59.7451687,27.9695952,52.1141912,20.0460107,16.0679791,85.1258096,12.1664183,39.6068297,16.4403798\r\n1891,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4332987,1.4638016,16.0620008,74.1024378,71.5766979,74.2936609,17.8865553,63.4303613,22.0302329,59.5389049,27.5012759,52.2886069,20.5865039,16.367777,85.470675,12.4130279,38.8098171,17.0682769,1.4894411,1.5185531,15.9245434,75.3397855,72.0358994,74.8649346,18.1926818,63.4050432,22.0019909,59.7451687,27.9695952,52.1141912,20.0460107,16.0679791,85.1258096,12.1664183,39.6068297,16.4403798,1.3912236,1.4279113,15.6716834,74.7688179,71.2211774,74.7877542,18.4623562,62.1001439,20.8323438,60.2421699,27.8427157,52.0894674,19.8067938,15.7780401,84.5178883,12.0130872,39.4263616,16.4506204\r\n1892,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4894411,1.5185531,15.9245434,75.3397855,72.0358994,74.8649346,18.1926818,63.4050432,22.0019909,59.7451687,27.9695952,52.1141912,20.0460107,16.0679791,85.1258096,12.1664183,39.6068297,16.4403798,1.3912236,1.4279113,15.6716834,74.7688179,71.2211774,74.7877542,18.4623562,62.1001439,20.8323438,60.2421699,27.8427157,52.0894674,19.8067938,15.7780401,84.5178883,12.0130872,39.4263616,16.4506204,1.3756061,1.4507619,15.0981016,74.4358505,71.114125,75.029869,19.0143105,60.9237324,19.578142,61.0246129,28.6086775,51.2051118,19.4120357,15.3745782,84.0985196,12.5565094,39.8824663,15.2558404\r\n1893,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3912236,1.4279113,15.6716834,74.7688179,71.2211774,74.7877542,18.4623562,62.1001439,20.8323438,60.2421699,27.8427157,52.0894674,19.8067938,15.7780401,84.5178883,12.0130872,39.4263616,16.4506204,1.3756061,1.4507619,15.0981016,74.4358505,71.114125,75.029869,19.0143105,60.9237324,19.578142,61.0246129,28.6086775,51.2051118,19.4120357,15.3745782,84.0985196,12.5565094,39.8824663,15.2558404,1.4082141,1.4622697,14.6679317,74.2086522,71.6313029,75.3527495,19.7363146,59.8574193,19.863432,61.9296738,30.0047216,51.1220309,18.910355,14.8145285,83.6137818,12.9962509,39.4059695,14.7378415\r\n1894,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3756061,1.4507619,15.0981016,74.4358505,71.114125,75.029869,19.0143105,60.9237324,19.578142,61.0246129,28.6086775,51.2051118,19.4120357,15.3745782,84.0985196,12.5565094,39.8824663,15.2558404,1.4082141,1.4622697,14.6679317,74.2086522,71.6313029,75.3527495,19.7363146,59.8574193,19.863432,61.9296738,30.0047216,51.1220309,18.910355,14.8145285,83.6137818,12.9962509,39.4059695,14.7378415,1.3553901,1.4081398,14.6764373,73.67971,71.6221772,76.1086493,20.7465445,57.3634095,18.9368803,62.9799354,31.0515263,50.7941057,18.8377204,14.642799,82.5208576,13.1243036,38.6143398,13.3709378\r\n1895,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4082141,1.4622697,14.6679317,74.2086522,71.6313029,75.3527495,19.7363146,59.8574193,19.863432,61.9296738,30.0047216,51.1220309,18.910355,14.8145285,83.6137818,12.9962509,39.4059695,14.7378415,1.3553901,1.4081398,14.6764373,73.67971,71.6221772,76.1086493,20.7465445,57.3634095,18.9368803,62.9799354,31.0515263,50.7941057,18.8377204,14.642799,82.5208576,13.1243036,38.6143398,13.3709378,1.2760454,1.3185172,14.5706877,73.6158944,71.3193591,75.5342051,21.1331247,54.4996674,19.6322078,63.7750782,31.0804172,49.6161647,18.3231294,14.3121762,80.97508,12.9735469,38.3344241,13.4291748\r\n1896,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.3553901,1.4081398,14.6764373,73.67971,71.6221772,76.1086493,20.7465445,57.3634095,18.9368803,62.9799354,31.0515263,50.7941057,18.8377204,14.642799,82.5208576,13.1243036,38.6143398,13.3709378,1.2760454,1.3185172,14.5706877,73.6158944,71.3193591,75.5342051,21.1331247,54.4996674,19.6322078,63.7750782,31.0804172,49.6161647,18.3231294,14.3121762,80.97508,12.9735469,38.3344241,13.4291748,1.2196308,1.2631345,13.9409357,73.176214,70.8662386,75.9220269,21.3162959,51.8612381,19.7360261,64.0458848,31.9194533,48.6098646,17.7640245,13.7871268,79.8170665,13.2859546,38.8107182,11.7668412\r\n1897,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.2760454,1.3185172,14.5706877,73.6158944,71.3193591,75.5342051,21.1331247,54.4996674,19.6322078,63.7750782,31.0804172,49.6161647,18.3231294,14.3121762,80.97508,12.9735469,38.3344241,13.4291748,1.2196308,1.2631345,13.9409357,73.176214,70.8662386,75.9220269,21.3162959,51.8612381,19.7360261,64.0458848,31.9194533,48.6098646,17.7640245,13.7871268,79.8170665,13.2859546,38.8107182,11.7668412,1.1032696,1.1062995,13.2074181,73.0352081,70.745731,75.3021817,21.9645335,49.7300791,19.7354632,63.9203791,31.8127668,49.1520041,17.4738771,13.2774915,78.4460527,13.3451074,38.6578728,11.7841474\r\n1898,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.2196308,1.2631345,13.9409357,73.176214,70.8662386,75.9220269,21.3162959,51.8612381,19.7360261,64.0458848,31.9194533,48.6098646,17.7640245,13.7871268,79.8170665,13.2859546,38.8107182,11.7668412,1.1032696,1.1062995,13.2074181,73.0352081,70.745731,75.3021817,21.9645335,49.7300791,19.7354632,63.9203791,31.8127668,49.1520041,17.4738771,13.2774915,78.4460527,13.3451074,38.6578728,11.7841474,1.1321012,1.13492,12.8208303,73.203136,71.9614157,74.8911569,22.622275,46.2724487,19.8728181,64.0961192,32.5285211,48.8479744,17.2757765,12.9673089,76.9103856,13.0732797,39.0571776,11.8411341\r\n1899,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.1032696,1.1062995,13.2074181,73.0352081,70.745731,75.3021817,21.9645335,49.7300791,19.7354632,63.9203791,31.8127668,49.1520041,17.4738771,13.2774915,78.4460527,13.3451074,38.6578728,11.7841474,1.1321012,1.13492,12.8208303,73.203136,71.9614157,74.8911569,22.622275,46.2724487,19.8728181,64.0961192,32.5285211,48.8479744,17.2757765,12.9673089,76.9103856,13.0732797,39.0571776,11.8411341,1.0852521,1.0780726,13.1829721,73.7271365,72.4321737,75.2381799,22.7551655,43.071048,20.7305263,64.4469799,32.5869888,49.09378,17.0823591,12.8138609,75.2465833,12.9748451,38.4233879,11.5007608\r\n1900,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.1321012,1.13492,12.8208303,73.203136,71.9614157,74.8911569,22.622275,46.2724487,19.8728181,64.0961192,32.5285211,48.8479744,17.2757765,12.9673089,76.9103856,13.0732797,39.0571776,11.8411341,1.0852521,1.0780726,13.1829721,73.7271365,72.4321737,75.2381799,22.7551655,43.071048,20.7305263,64.4469799,32.5869888,49.09378,17.0823591,12.8138609,75.2465833,12.9748451,38.4233879,11.5007608,1.0809513,1.0736993,12.882903,73.1253806,71.7618689,74.5113221,22.7814477,39.9547085,20.1663311,64.1134366,32.4863845,48.1830377,16.9816107,12.5780323,73.622049,12.7755939,39.3119085,10.6620554\r\n1901,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0852521,1.0780726,13.1829721,73.7271365,72.4321737,75.2381799,22.7551655,43.071048,20.7305263,64.4469799,32.5869888,49.09378,17.0823591,12.8138609,75.2465833,12.9748451,38.4233879,11.5007608,1.0809513,1.0736993,12.882903,73.1253806,71.7618689,74.5113221,22.7814477,39.9547085,20.1663311,64.1134366,32.4863845,48.1830377,16.9816107,12.5780323,73.622049,12.7755939,39.3119085,10.6620554,1.0998833,1.1029831,12.3069227,73.3283384,71.9544174,74.0432299,22.4172554,38.9986956,20.5033488,63.9654276,32.3669274,47.6699097,16.3256783,12.1666963,73.0755821,12.8727213,39.3986778,10.6240143\r\n1902,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0809513,1.0736993,12.882903,73.1253806,71.7618689,74.5113221,22.7814477,39.9547085,20.1663311,64.1134366,32.4863845,48.1830377,16.9816107,12.5780323,73.622049,12.7755939,39.3119085,10.6620554,1.0998833,1.1029831,12.3069227,73.3283384,71.9544174,74.0432299,22.4172554,38.9986956,20.5033488,63.9654276,32.3669274,47.6699097,16.3256783,12.1666963,73.0755821,12.8727213,39.3986778,10.6240143,0.9620615,0.9620615,11.8312837,73.9298891,72.5070172,74.3656419,22.2756808,37.4737799,19.8491056,63.2134004,32.632309,48.7428895,15.9170482,11.9523626,72.3896098,12.8680192,39.200412,9.619954\r\n1903,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0998833,1.1029831,12.3069227,73.3283384,71.9544174,74.0432299,22.4172554,38.9986956,20.5033488,63.9654276,32.3669274,47.6699097,16.3256783,12.1666963,73.0755821,12.8727213,39.3986778,10.6240143,0.9620615,0.9620615,11.8312837,73.9298891,72.5070172,74.3656419,22.2756808,37.4737799,19.8491056,63.2134004,32.632309,48.7428895,15.9170482,11.9523626,72.3896098,12.8680192,39.200412,9.619954,0.9262948,0.9416746,12.2322771,74.1279159,72.9536034,74.5373784,22.4580258,35.2808657,19.7781628,62.8427566,32.8745701,49.6821323,15.8736808,12.1104172,71.125168,12.8527951,39.1868492,9.7417848\r\n1904,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9620615,0.9620615,11.8312837,73.9298891,72.5070172,74.3656419,22.2756808,37.4737799,19.8491056,63.2134004,32.632309,48.7428895,15.9170482,11.9523626,72.3896098,12.8680192,39.200412,9.619954,0.9262948,0.9416746,12.2322771,74.1279159,72.9536034,74.5373784,22.4580258,35.2808657,19.7781628,62.8427566,32.8745701,49.6821323,15.8736808,12.1104172,71.125168,12.8527951,39.1868492,9.7417848,0.9705276,1.0044207,12.0111805,73.6730147,72.5916352,75.0385654,22.4167988,32.4952884,18.5440078,62.960424,33.372639,49.0230094,15.5092268,11.8375211,69.8645593,13.282972,38.6112993,9.2812021\r\n1905,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9262948,0.9416746,12.2322771,74.1279159,72.9536034,74.5373784,22.4580258,35.2808657,19.7781628,62.8427566,32.8745701,49.6821323,15.8736808,12.1104172,71.125168,12.8527951,39.1868492,9.7417848,0.9705276,1.0044207,12.0111805,73.6730147,72.5916352,75.0385654,22.4167988,32.4952884,18.5440078,62.960424,33.372639,49.0230094,15.5092268,11.8375211,69.8645593,13.282972,38.6112993,9.2812021,0.9542223,0.9845536,12.05632,73.0241613,71.8067265,74.7974442,21.8065369,31.9172296,18.5554295,63.4844298,33.8772252,48.2607517,15.0796361,11.4752778,69.2542807,13.9616487,39.1882502,8.9313515\r\n1906,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9705276,1.0044207,12.0111805,73.6730147,72.5916352,75.0385654,22.4167988,32.4952884,18.5440078,62.960424,33.372639,49.0230094,15.5092268,11.8375211,69.8645593,13.282972,38.6112993,9.2812021,0.9542223,0.9845536,12.05632,73.0241613,71.8067265,74.7974442,21.8065369,31.9172296,18.5554295,63.4844298,33.8772252,48.2607517,15.0796361,11.4752778,69.2542807,13.9616487,39.1882502,8.9313515,1.0113277,1.0340478,11.3315104,72.5469269,71.6851729,73.9797402,21.7523957,31.2806273,18.2902078,63.7997132,33.9412471,47.7295231,14.6220064,10.9939288,68.0811835,13.6779408,38.9139432,9.6914422\r\n1907,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9542223,0.9845536,12.05632,73.0241613,71.8067265,74.7974442,21.8065369,31.9172296,18.5554295,63.4844298,33.8772252,48.2607517,15.0796361,11.4752778,69.2542807,13.9616487,39.1882502,8.9313515,1.0113277,1.0340478,11.3315104,72.5469269,71.6851729,73.9797402,21.7523957,31.2806273,18.2902078,63.7997132,33.9412471,47.7295231,14.6220064,10.9939288,68.0811835,13.6779408,38.9139432,9.6914422,0.9577078,1.003852,11.2776718,73.3863393,72.210742,75.0437923,21.7845425,31.075868,18.3825041,63.7687287,33.8438502,48.2971069,14.4745725,10.9548726,67.8802193,13.5958105,39.2254679,9.3032334\r\n1908,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0113277,1.0340478,11.3315104,72.5469269,71.6851729,73.9797402,21.7523957,31.2806273,18.2902078,63.7997132,33.9412471,47.7295231,14.6220064,10.9939288,68.0811835,13.6779408,38.9139432,9.6914422,0.9577078,1.003852,11.2776718,73.3863393,72.210742,75.0437923,21.7845425,31.075868,18.3825041,63.7687287,33.8438502,48.2971069,14.4745725,10.9548726,67.8802193,13.5958105,39.2254679,9.3032334,0.9871261,0.9941772,11.6772325,73.1211782,72.1544665,75.2736774,22.2023056,30.2107146,18.5347037,63.7896697,33.7737449,47.8332106,14.6929439,11.106414,67.0862752,13.3950154,39.1962381,8.7041238\r\n1909,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9577078,1.003852,11.2776718,73.3863393,72.210742,75.0437923,21.7845425,31.075868,18.3825041,63.7687287,33.8438502,48.2971069,14.4745725,10.9548726,67.8802193,13.5958105,39.2254679,9.3032334,0.9871261,0.9941772,11.6772325,73.1211782,72.1544665,75.2736774,22.2023056,30.2107146,18.5347037,63.7896697,33.7737449,47.8332106,14.6929439,11.106414,67.0862752,13.3950154,39.1962381,8.7041238,1.0924139,1.0994605,11.4963721,72.4193769,72.5746348,75.5020192,22.2388074,29.1853618,19.0363651,64.4444494,33.9446527,47.1597182,14.7068716,10.9562413,66.6049536,13.6024288,39.1281443,8.7780158\r\n1910,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9871261,0.9941772,11.6772325,73.1211782,72.1544665,75.2736774,22.2023056,30.2107146,18.5347037,63.7896697,33.7737449,47.8332106,14.6929439,11.106414,67.0862752,13.3950154,39.1962381,8.7041238,1.0924139,1.0994605,11.4963721,72.4193769,72.5746348,75.5020192,22.2388074,29.1853618,19.0363651,64.4444494,33.9446527,47.1597182,14.7068716,10.9562413,66.6049536,13.6024288,39.1281443,8.7780158,1.0849379,1.0789021,10.7576708,72.009937,71.869799,75.2795327,22.2550084,29.1703487,18.2123832,64.7078732,33.4860147,44.4502257,14.1432176,10.2898535,66.1201867,13.6808082,39.0377082,8.5196403\r\n1911,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0924139,1.0994605,11.4963721,72.4193769,72.5746348,75.5020192,22.2388074,29.1853618,19.0363651,64.4444494,33.9446527,47.1597182,14.7068716,10.9562413,66.6049536,13.6024288,39.1281443,8.7780158,1.0849379,1.0789021,10.7576708,72.009937,71.869799,75.2795327,22.2550084,29.1703487,18.2123832,64.7078732,33.4860147,44.4502257,14.1432176,10.2898535,66.1201867,13.6808082,39.0377082,8.5196403,0.9935033,0.9842836,10.6886159,72.5379522,72.4408663,75.1970901,22.1109336,29.060666,18.5159867,65.6237445,33.4947252,44.3972844,14.1573936,10.153975,65.5736389,13.9455174,39.3224441,8.2024902\r\n1912,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0849379,1.0789021,10.7576708,72.009937,71.869799,75.2795327,22.2550084,29.1703487,18.2123832,64.7078732,33.4860147,44.4502257,14.1432176,10.2898535,66.1201867,13.6808082,39.0377082,8.5196403,0.9935033,0.9842836,10.6886159,72.5379522,72.4408663,75.1970901,22.1109336,29.060666,18.5159867,65.6237445,33.4947252,44.3972844,14.1573936,10.153975,65.5736389,13.9455174,39.3224441,8.2024902,0.9403892,0.9253092,10.2628508,73.0114074,72.8582421,75.1203095,22.5236013,28.4222971,18.2263787,64.6868794,33.0153914,45.4981954,13.9054212,9.8911364,65.0260117,13.7715573,38.8174306,7.6344797\r\n1913,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9935033,0.9842836,10.6886159,72.5379522,72.4408663,75.1970901,22.1109336,29.060666,18.5159867,65.6237445,33.4947252,44.3972844,14.1573936,10.153975,65.5736389,13.9455174,39.3224441,8.2024902,0.9403892,0.9253092,10.2628508,73.0114074,72.8582421,75.1203095,22.5236013,28.4222971,18.2263787,64.6868794,33.0153914,45.4981954,13.9054212,9.8911364,65.0260117,13.7715573,38.8174306,7.6344797,0.8714654,0.8602398,10.0475832,72.4362343,72.7905072,75.732033,23.5968416,28.5223113,17.6253636,64.7572607,33.4448671,44.612944,13.6067765,9.7362538,64.6584652,14.2032325,39.3292691,6.6536898\r\n1914,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9403892,0.9253092,10.2628508,73.0114074,72.8582421,75.1203095,22.5236013,28.4222971,18.2263787,64.6868794,33.0153914,45.4981954,13.9054212,9.8911364,65.0260117,13.7715573,38.8174306,7.6344797,0.8714654,0.8602398,10.0475832,72.4362343,72.7905072,75.732033,23.5968416,28.5223113,17.6253636,64.7572607,33.4448671,44.612944,13.6067765,9.7362538,64.6584652,14.2032325,39.3292691,6.6536898,0.8746795,0.8362925,9.935392,71.786543,72.5818216,74.7090703,24.3565077,27.2888597,17.9238613,65.2489117,34.7363376,43.2849147,13.2165855,9.4528634,62.5814391,14.2479497,38.7991203,6.8019093\r\n1915,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.8714654,0.8602398,10.0475832,72.4362343,72.7905072,75.732033,23.5968416,28.5223113,17.6253636,64.7572607,33.4448671,44.612944,13.6067765,9.7362538,64.6584652,14.2032325,39.3292691,6.6536898,0.8746795,0.8362925,9.935392,71.786543,72.5818216,74.7090703,24.3565077,27.2888597,17.9238613,65.2489117,34.7363376,43.2849147,13.2165855,9.4528634,62.5814391,14.2479497,38.7991203,6.8019093,0.8586777,0.8525969,9.6808821,72.015432,72.6645466,74.5639326,24.1871989,26.4029079,17.8738896,65.1073643,34.7261299,43.5791403,12.8341807,9.217195,60.8537298,14.5193742,38.6007474,6.9389447\r\n1916,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.8746795,0.8362925,9.935392,71.786543,72.5818216,74.7090703,24.3565077,27.2888597,17.9238613,65.2489117,34.7363376,43.2849147,13.2165855,9.4528634,62.5814391,14.2479497,38.7991203,6.8019093,0.8586777,0.8525969,9.6808821,72.015432,72.6645466,74.5639326,24.1871989,26.4029079,17.8738896,65.1073643,34.7261299,43.5791403,12.8341807,9.217195,60.8537298,14.5193742,38.6007474,6.9389447,0.8630917,0.8692231,9.3514461,72.1551705,72.6794603,74.4960379,24.9851793,25.605143,16.9076511,65.128821,34.7465747,44.2322479,12.7556435,9.1237663,59.4133165,14.5975367,40.0037823,7.1596378\r\n1917,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.8586777,0.8525969,9.6808821,72.015432,72.6645466,74.5639326,24.1871989,26.4029079,17.8738896,65.1073643,34.7261299,43.5791403,12.8341807,9.217195,60.8537298,14.5193742,38.6007474,6.9389447,0.8630917,0.8692231,9.3514461,72.1551705,72.6794603,74.4960379,24.9851793,25.605143,16.9076511,65.128821,34.7465747,44.2322479,12.7556435,9.1237663,59.4133165,14.5975367,40.0037823,7.1596378,0.8353106,0.8387428,9.4011983,71.9973284,72.7949972,75.1797428,25.3234012,24.3619063,16.9546381,65.7996418,35.2323723,45.5142022,13.0747414,9.3822122,58.4900296,14.6366377,40.4998099,7.6332938\r\n1918,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.8630917,0.8692231,9.3514461,72.1551705,72.6794603,74.4960379,24.9851793,25.605143,16.9076511,65.128821,34.7465747,44.2322479,12.7556435,9.1237663,59.4133165,14.5975367,40.0037823,7.1596378,0.8353106,0.8387428,9.4011983,71.9973284,72.7949972,75.1797428,25.3234012,24.3619063,16.9546381,65.7996418,35.2323723,45.5142022,13.0747414,9.3822122,58.4900296,14.6366377,40.4998099,7.6332938,0.911581,0.9151031,9.8959954,70.6617732,71.6490892,75.8487392,26.0792738,22.9123596,17.1953285,65.6048443,35.6558397,45.4296615,12.9400008,9.5476944,57.1303483,14.4989579,40.7822403,7.7336788\r\n1919,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.8353106,0.8387428,9.4011983,71.9973284,72.7949972,75.1797428,25.3234012,24.3619063,16.9546381,65.7996418,35.2323723,45.5142022,13.0747414,9.3822122,58.4900296,14.6366377,40.4998099,7.6332938,0.911581,0.9151031,9.8959954,70.6617732,71.6490892,75.8487392,26.0792738,22.9123596,17.1953285,65.6048443,35.6558397,45.4296615,12.9400008,9.5476944,57.1303483,14.4989579,40.7822403,7.7336788,0.8582658,0.8639883,9.7541616,70.4776941,71.4679786,76.0131076,26.0109015,22.188796,17.203109,65.7032453,36.3198825,44.5440749,12.690032,9.4642222,55.9444017,14.734305,40.7253292,7.6760116\r\n1920,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.911581,0.9151031,9.8959954,70.6617732,71.6490892,75.8487392,26.0792738,22.9123596,17.1953285,65.6048443,35.6558397,45.4296615,12.9400008,9.5476944,57.1303483,14.4989579,40.7822403,7.7336788,0.8582658,0.8639883,9.7541616,70.4776941,71.4679786,76.0131076,26.0109015,22.188796,17.203109,65.7032453,36.3198825,44.5440749,12.690032,9.4642222,55.9444017,14.734305,40.7253292,7.6760116,0.9385323,0.9298275,9.9654984,71.8735962,72.6637018,76.7573287,25.5775445,20.3320205,16.8337406,65.3254816,36.1675313,45.0816654,13.3540464,9.8343712,54.6646623,14.2114591,41.4285702,7.6000151\r\n1921,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.8582658,0.8639883,9.7541616,70.4776941,71.4679786,76.0131076,26.0109015,22.188796,17.203109,65.7032453,36.3198825,44.5440749,12.690032,9.4642222,55.9444017,14.734305,40.7253292,7.6760116,0.9385323,0.9298275,9.9654984,71.8735962,72.6637018,76.7573287,25.5775445,20.3320205,16.8337406,65.3254816,36.1675313,45.0816654,13.3540464,9.8343712,54.6646623,14.2114591,41.4285702,7.6000151,0.9739617,0.9554594,9.7397354,71.9829612,72.0276608,76.9369745,24.9914808,20.8674337,16.3732836,66.19831,35.3768356,44.8756102,13.3289063,9.6997926,54.4951719,14.5377533,41.2156695,7.5513838\r\n1922,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9385323,0.9298275,9.9654984,71.8735962,72.6637018,76.7573287,25.5775445,20.3320205,16.8337406,65.3254816,36.1675313,45.0816654,13.3540464,9.8343712,54.6646623,14.2114591,41.4285702,7.6000151,0.9739617,0.9554594,9.7397354,71.9829612,72.0276608,76.9369745,24.9914808,20.8674337,16.3732836,66.19831,35.3768356,44.8756102,13.3289063,9.6997926,54.4951719,14.5377533,41.2156695,7.5513838,0.9475969,0.9347436,9.2339247,72.4899461,72.2664856,76.9499734,24.9443332,19.9058128,15.6619791,65.6793711,35.1364977,44.6510005,13.3840832,9.4719583,53.505725,14.1409084,41.8096395,7.4606017\r\n1923,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9739617,0.9554594,9.7397354,71.9829612,72.0276608,76.9369745,24.9914808,20.8674337,16.3732836,66.19831,35.3768356,44.8756102,13.3289063,9.6997926,54.4951719,14.5377533,41.2156695,7.5513838,0.9475969,0.9347436,9.2339247,72.4899461,72.2664856,76.9499734,24.9443332,19.9058128,15.6619791,65.6793711,35.1364977,44.6510005,13.3840832,9.4719583,53.505725,14.1409084,41.8096395,7.4606017,0.82641,0.7954626,9.594634,72.9324825,72.2826404,76.6034152,24.5496678,19.1245704,15.3090133,64.9917436,34.7072225,43.094878,13.6434616,9.7620463,52.6909589,14.1653102,41.2864848,6.7142762\r\n1924,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9475969,0.9347436,9.2339247,72.4899461,72.2664856,76.9499734,24.9443332,19.9058128,15.6619791,65.6793711,35.1364977,44.6510005,13.3840832,9.4719583,53.505725,14.1409084,41.8096395,7.4606017,0.82641,0.7954626,9.594634,72.9324825,72.2826404,76.6034152,24.5496678,19.1245704,15.3090133,64.9917436,34.7072225,43.094878,13.6434616,9.7620463,52.6909589,14.1653102,41.2864848,6.7142762,0.9764701,0.9542034,10.1016291,73.9680419,73.1750378,75.6850962,24.1832947,18.2596905,14.7611322,64.4862507,35.0220648,41.9323409,13.742346,9.6522456,51.4613118,14.1046758,41.611444,6.3697222\r\n1925,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.82641,0.7954626,9.594634,72.9324825,72.2826404,76.6034152,24.5496678,19.1245704,15.3090133,64.9917436,34.7072225,43.094878,13.6434616,9.7620463,52.6909589,14.1653102,41.2864848,6.7142762,0.9764701,0.9542034,10.1016291,73.9680419,73.1750378,75.6850962,24.1832947,18.2596905,14.7611322,64.4862507,35.0220648,41.9323409,13.742346,9.6522456,51.4613118,14.1046758,41.611444,6.3697222,0.9828622,0.9697166,9.7218741,74.4849703,73.4483279,73.5174845,24.261823,17.6576244,14.4378608,64.8482526,35.0916423,41.607564,13.770981,9.4669337,50.8821676,14.0435581,40.8057926,6.2804199\r\n1926,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9764701,0.9542034,10.1016291,73.9680419,73.1750378,75.6850962,24.1832947,18.2596905,14.7611322,64.4862507,35.0220648,41.9323409,13.742346,9.6522456,51.4613118,14.1046758,41.611444,6.3697222,0.9828622,0.9697166,9.7218741,74.4849703,73.4483279,73.5174845,24.261823,17.6576244,14.4378608,64.8482526,35.0916423,41.607564,13.770981,9.4669337,50.8821676,14.0435581,40.8057926,6.2804199,1.093207,1.0798375,10.6085107,74.4824037,73.1976193,73.704903,24.3155649,17.3907942,14.4893292,65.4326228,34.5526641,41.7481447,14.7928436,10.368065,50.6525492,13.7343093,40.7209992,6.9526549\r\n1927,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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.9828622,0.9697166,9.7218741,74.4849703,73.4483279,73.5174845,24.261823,17.6576244,14.4378608,64.8482526,35.0916423,41.607564,13.770981,9.4669337,50.8821676,14.0435581,40.8057926,6.2804199,1.093207,1.0798375,10.6085107,74.4824037,73.1976193,73.704903,24.3155649,17.3907942,14.4893292,65.4326228,34.5526641,41.7481447,14.7928436,10.368065,50.6525492,13.7343093,40.7209992,6.9526549,1.0781535,1.0755364,10.6864557,74.1939411,72.1576697,72.9962259,24.9015124,17.462116,14.8684667,65.6100298,35.2734524,43.0326023,14.3869413,10.1766328,50.2830438,14.0801541,39.7263362,6.8363201\r\n1928,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.093207,1.0798375,10.6085107,74.4824037,73.1976193,73.704903,24.3155649,17.3907942,14.4893292,65.4326228,34.5526641,41.7481447,14.7928436,10.368065,50.6525492,13.7343093,40.7209992,6.9526549,1.0781535,1.0755364,10.6864557,74.1939411,72.1576697,72.9962259,24.9015124,17.462116,14.8684667,65.6100298,35.2734524,43.0326023,14.3869413,10.1766328,50.2830438,14.0801541,39.7263362,6.8363201,1.0342383,1.0675083,10.7500424,74.2434313,72.4776038,73.5252026,25.1123072,15.4856785,14.7283817,64.8068055,35.5048595,43.9461342,14.3553101,10.1886451,49.7916678,13.6080037,39.28258,6.8913495\r\n1929,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0781535,1.0755364,10.6864557,74.1939411,72.1576697,72.9962259,24.9015124,17.462116,14.8684667,65.6100298,35.2734524,43.0326023,14.3869413,10.1766328,50.2830438,14.0801541,39.7263362,6.8363201,1.0342383,1.0675083,10.7500424,74.2434313,72.4776038,73.5252026,25.1123072,15.4856785,14.7283817,64.8068055,35.5048595,43.9461342,14.3553101,10.1886451,49.7916678,13.6080037,39.28258,6.8913495,1.0476941,1.0935164,11.350091,74.473584,72.7761693,74.0829328,25.5203615,15.05356,14.6303511,66.0582016,36.2963856,44.5480962,14.7485052,10.5878775,49.4103559,14.0885769,39.2402246,7.3061659\r\n1930,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0342383,1.0675083,10.7500424,74.2434313,72.4776038,73.5252026,25.1123072,15.4856785,14.7283817,64.8068055,35.5048595,43.9461342,14.3553101,10.1886451,49.7916678,13.6080037,39.28258,6.8913495,1.0476941,1.0935164,11.350091,74.473584,72.7761693,74.0829328,25.5203615,15.05356,14.6303511,66.0582016,36.2963856,44.5480962,14.7485052,10.5878775,49.4103559,14.0885769,39.2402246,7.3061659,1.2093405,1.2604359,11.6490749,73.8107918,71.9640117,73.5133265,25.965884,14.7124197,14.8007561,67.1639752,37.7233115,45.1296648,14.8911734,10.7053227,48.6900074,14.7071565,38.2079638,7.5518285\r\n1931,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.0476941,1.0935164,11.350091,74.473584,72.7761693,74.0829328,25.5203615,15.05356,14.6303511,66.0582016,36.2963856,44.5480962,14.7485052,10.5878775,49.4103559,14.0885769,39.2402246,7.3061659,1.2093405,1.2604359,11.6490749,73.8107918,71.9640117,73.5133265,25.965884,14.7124197,14.8007561,67.1639752,37.7233115,45.1296648,14.8911734,10.7053227,48.6900074,14.7071565,38.2079638,7.5518285,1.1856004,1.2281979,11.0877806,72.9035825,70.7500856,73.6917378,26.9006444,14.7176077,15.6357815,67.1260394,37.5326434,45.9295322,14.9307816,10.8390264,48.587271,15.0513501,37.3788502,7.9434721\r\n1932,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.2093405,1.2604359,11.6490749,73.8107918,71.9640117,73.5133265,25.965884,14.7124197,14.8007561,67.1639752,37.7233115,45.1296648,14.8911734,10.7053227,48.6900074,14.7071565,38.2079638,7.5518285,1.1856004,1.2281979,11.0877806,72.9035825,70.7500856,73.6917378,26.9006444,14.7176077,15.6357815,67.1260394,37.5326434,45.9295322,14.9307816,10.8390264,48.587271,15.0513501,37.3788502,7.9434721,1.233699,1.2846438,11.5220163,72.8282565,70.4944385,74.749325,27.2573201,14.8861652,15.854234,66.586593,37.3825278,46.1950745,15.5468247,11.4911344,48.4278765,15.4627306,38.5720392,8.156682\r\n1933,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.1856004,1.2281979,11.0877806,72.9035825,70.7500856,73.6917378,26.9006444,14.7176077,15.6357815,67.1260394,37.5326434,45.9295322,14.9307816,10.8390264,48.587271,15.0513501,37.3788502,7.9434721,1.233699,1.2846438,11.5220163,72.8282565,70.4944385,74.749325,27.2573201,14.8861652,15.854234,66.586593,37.3825278,46.1950745,15.5468247,11.4911344,48.4278765,15.4627306,38.5720392,8.156682,1.348326,1.4005635,11.3941721,73.2974825,71.2062908,74.499701,27.5329997,14.7139374,15.9831189,65.9269698,37.1424126,45.5933825,15.8039537,11.3481326,47.6290118,15.5135244,38.1605082,8.3758496\r\n1934,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.233699,1.2846438,11.5220163,72.8282565,70.4944385,74.749325,27.2573201,14.8861652,15.854234,66.586593,37.3825278,46.1950745,15.5468247,11.4911344,48.4278765,15.4627306,38.5720392,8.156682,1.348326,1.4005635,11.3941721,73.2974825,71.2062908,74.499701,27.5329997,14.7139374,15.9831189,65.9269698,37.1424126,45.5933825,15.8039537,11.3481326,47.6290118,15.5135244,38.1605082,8.3758496,1.4068775,1.4479556,11.5088902,72.8242259,70.8626552,74.1939441,26.9324579,14.080813,15.8243728,65.472317,36.1597856,44.0475534,16.1886818,11.6612652,47.5814123,15.1036791,37.8816799,9.0725792\r\n1935,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.348326,1.4005635,11.3941721,73.2974825,71.2062908,74.499701,27.5329997,14.7139374,15.9831189,65.9269698,37.1424126,45.5933825,15.8039537,11.3481326,47.6290118,15.5135244,38.1605082,8.3758496,1.4068775,1.4479556,11.5088902,72.8242259,70.8626552,74.1939441,26.9324579,14.080813,15.8243728,65.472317,36.1597856,44.0475534,16.1886818,11.6612652,47.5814123,15.1036791,37.8816799,9.0725792,1.4457199,1.4905432,12.0097178,73.0228097,72.0116434,74.0357558,26.8213016,15.0307712,16.0307948,65.7631938,36.0508682,43.9779518,17.0074602,12.2595837,47.4074748,15.2013642,38.1309437,9.6612772\r\n1936,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4068775,1.4479556,11.5088902,72.8242259,70.8626552,74.1939441,26.9324579,14.080813,15.8243728,65.472317,36.1597856,44.0475534,16.1886818,11.6612652,47.5814123,15.1036791,37.8816799,9.0725792,1.4457199,1.4905432,12.0097178,73.0228097,72.0116434,74.0357558,26.8213016,15.0307712,16.0307948,65.7631938,36.0508682,43.9779518,17.0074602,12.2595837,47.4074748,15.2013642,38.1309437,9.6612772,1.541777,1.5704268,12.3258572,72.4228341,71.3877063,74.2725536,27.4313571,15.3226934,16.5254499,64.8613684,36.6073738,43.9096498,17.4789876,12.5364795,47.9677014,15.4017429,38.4039526,10.0760433\r\n1937,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4457199,1.4905432,12.0097178,73.0228097,72.0116434,74.0357558,26.8213016,15.0307712,16.0307948,65.7631938,36.0508682,43.9779518,17.0074602,12.2595837,47.4074748,15.2013642,38.1309437,9.6612772,1.541777,1.5704268,12.3258572,72.4228341,71.3877063,74.2725536,27.4313571,15.3226934,16.5254499,64.8613684,36.6073738,43.9096498,17.4789876,12.5364795,47.9677014,15.4017429,38.4039526,10.0760433,1.4454302,1.4776153,12.7630314,72.4235952,71.3845199,74.4625332,27.3507355,15.2135439,16.2945642,64.9765003,36.0125822,43.2551848,17.8553394,12.869706,47.6990811,15.0149854,38.6775371,10.6821581\r\n1938,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.541777,1.5704268,12.3258572,72.4228341,71.3877063,74.2725536,27.4313571,15.3226934,16.5254499,64.8613684,36.6073738,43.9096498,17.4789876,12.5364795,47.9677014,15.4017429,38.4039526,10.0760433,1.4454302,1.4776153,12.7630314,72.4235952,71.3845199,74.4625332,27.3507355,15.2135439,16.2945642,64.9765003,36.0125822,43.2551848,17.8553394,12.869706,47.6990811,15.0149854,38.6775371,10.6821581,1.5013035,1.52424,13.4549155,71.9155334,71.3544544,73.912592,27.1437537,14.6138513,15.4767186,64.9742319,35.6400312,42.9692383,18.5387645,13.3596839,47.5708108,14.3972602,38.711415,11.1235111\r\n1939,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.4454302,1.4776153,12.7630314,72.4235952,71.3845199,74.4625332,27.3507355,15.2135439,16.2945642,64.9765003,36.0125822,43.2551848,17.8553394,12.869706,47.6990811,15.0149854,38.6775371,10.6821581,1.5013035,1.52424,13.4549155,71.9155334,71.3544544,73.912592,27.1437537,14.6138513,15.4767186,64.9742319,35.6400312,42.9692383,18.5387645,13.3596839,47.5708108,14.3972602,38.711415,11.1235111,1.5710668,1.599514,13.7417887,72.2218997,71.5278808,73.8383344,27.0500668,15.1465718,15.5838588,64.8008242,35.2399049,42.5830097,18.6416202,13.3203024,47.3966854,14.0277506,38.2374482,11.5355513\r\n1940,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.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,1.5013035,1.52424,13.4549155,71.9155334,71.3544544,73.912592,27.1437537,14.6138513,15.4767186,64.9742319,35.6400312,42.9692383,18.5387645,13.3596839,47.5708108,14.3972602,38.711415,11.1235111,1.5710668,1.599514,13.7417887,72.2218997,71.5278808,73.8383344,27.0500668,15.1465718,15.5838588,64.8008242,35.2399049,42.5830097,18.6416202,13.3203024,47.3966854,14.0277506,38.2374482,11.5355513,1.5326468,1.5512027,13.7824855,72.2217205,71.1369037,74.2073416,26.9199227,14.8154794,14.988898,65.2084685,35.6776872,43.6045685,18.8246684,13.4662725,47.0615888,14.1476397,38.2002997,11.8181809\r\n1941,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9432038,2.9804259,25.1633421,71.190779,71.8965665,61.4556342,24.397526,23.5313407,18.472411,63.7057962,32.0415878,51.0117616,32.4398216,25.8174137,69.8965312,2.9748422,32.8051084,19.5557792,2.9754131,3.029591,26.5162347,71.0111482,71.9935871,62.9686282,23.6002045,24.7321128,18.5842714,63.3129767,32.0705362,51.6722087,33.7427557,26.9669047,70.6357378,2.9057031,33.3747051,20.7477641,3.1489306,3.211125,28.0399169,70.991944,72.1407132,63.2607726,22.260256,24.9218538,18.6921682,63.7315624,32.4789426,53.1326478,35.1971919,28.3449081,71.2329951,2.9601491,34.2689085,20.8428528\r\n1942,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9754131,3.029591,26.5162347,71.0111482,71.9935871,62.9686282,23.6002045,24.7321128,18.5842714,63.3129767,32.0705362,51.6722087,33.7427557,26.9669047,70.6357378,2.9057031,33.3747051,20.7477641,3.1489306,3.211125,28.0399169,70.991944,72.1407132,63.2607726,22.260256,24.9218538,18.6921682,63.7315624,32.4789426,53.1326478,35.1971919,28.3449081,71.2329951,2.9601491,34.2689085,20.8428528,3.2989285,3.3838049,29.7763021,70.2569312,72.0053372,62.4218027,21.6060789,24.3402166,19.1406633,63.3270218,32.7562196,52.4999609,36.3138217,29.3858766,70.9089488,2.9808704,34.2823788,22.1287662\r\n1943,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.1489306,3.211125,28.0399169,70.991944,72.1407132,63.2607726,22.260256,24.9218538,18.6921682,63.7315624,32.4789426,53.1326478,35.1971919,28.3449081,71.2329951,2.9601491,34.2689085,20.8428528,3.2989285,3.3838049,29.7763021,70.2569312,72.0053372,62.4218027,21.6060789,24.3402166,19.1406633,63.3270218,32.7562196,52.4999609,36.3138217,29.3858766,70.9089488,2.9808704,34.2823788,22.1287662,3.5479709,3.646333,30.5390671,69.7276425,72.0261009,63.607171,21.0464211,24.3395054,19.4095752,61.6820825,32.3085883,52.061142,37.285919,30.1146621,71.2951079,2.970686,34.2148524,23.1179168\r\n1944,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2989285,3.3838049,29.7763021,70.2569312,72.0053372,62.4218027,21.6060789,24.3402166,19.1406633,63.3270218,32.7562196,52.4999609,36.3138217,29.3858766,70.9089488,2.9808704,34.2823788,22.1287662,3.5479709,3.646333,30.5390671,69.7276425,72.0261009,63.607171,21.0464211,24.3395054,19.4095752,61.6820825,32.3085883,52.061142,37.285919,30.1146621,71.2951079,2.970686,34.2148524,23.1179168,3.7696498,3.8703048,31.807217,70.4545279,72.5281372,64.8539188,19.9838431,26.2126885,20.0174071,60.2496603,31.4032639,52.5654908,38.4256266,31.2499829,71.7213932,2.7933356,35.0799931,23.2693651\r\n1945,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.5479709,3.646333,30.5390671,69.7276425,72.0261009,63.607171,21.0464211,24.3395054,19.4095752,61.6820825,32.3085883,52.061142,37.285919,30.1146621,71.2951079,2.970686,34.2148524,23.1179168,3.7696498,3.8703048,31.807217,70.4545279,72.5281372,64.8539188,19.9838431,26.2126885,20.0174071,60.2496603,31.4032639,52.5654908,38.4256266,31.2499829,71.7213932,2.7933356,35.0799931,23.2693651,3.8741409,3.989638,33.4287185,70.2738917,72.2551933,65.7503221,19.9155097,27.0612657,19.9001247,60.0180542,30.6618721,52.4791119,39.7494848,32.6648074,72.2954234,2.7795633,36.0279922,25.7658335\r\n1946,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7696498,3.8703048,31.807217,70.4545279,72.5281372,64.8539188,19.9838431,26.2126885,20.0174071,60.2496603,31.4032639,52.5654908,38.4256266,31.2499829,71.7213932,2.7933356,35.0799931,23.2693651,3.8741409,3.989638,33.4287185,70.2738917,72.2551933,65.7503221,19.9155097,27.0612657,19.9001247,60.0180542,30.6618721,52.4791119,39.7494848,32.6648074,72.2954234,2.7795633,36.0279922,25.7658335,4.0658691,4.1819148,35.6642281,70.463335,71.838843,66.1666549,18.5537225,27.4739726,20.1486616,59.9543085,29.9329808,53.7077027,41.1561945,34.173041,73.1167995,2.5096173,36.4536142,27.1731894\r\n1947,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8741409,3.989638,33.4287185,70.2738917,72.2551933,65.7503221,19.9155097,27.0612657,19.9001247,60.0180542,30.6618721,52.4791119,39.7494848,32.6648074,72.2954234,2.7795633,36.0279922,25.7658335,4.0658691,4.1819148,35.6642281,70.463335,71.838843,66.1666549,18.5537225,27.4739726,20.1486616,59.9543085,29.9329808,53.7077027,41.1561945,34.173041,73.1167995,2.5096173,36.4536142,27.1731894,4.0380424,4.1728927,35.9108015,71.2008943,72.7674372,64.3769942,17.4125195,27.2951208,21.0468495,59.6405638,29.4176597,54.963614,41.6215819,34.8737615,73.1421794,2.4530663,36.151657,28.1631252\r\n1948,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0658691,4.1819148,35.6642281,70.463335,71.838843,66.1666549,18.5537225,27.4739726,20.1486616,59.9543085,29.9329808,53.7077027,41.1561945,34.173041,73.1167995,2.5096173,36.4536142,27.1731894,4.0380424,4.1728927,35.9108015,71.2008943,72.7674372,64.3769942,17.4125195,27.2951208,21.0468495,59.6405638,29.4176597,54.963614,41.6215819,34.8737615,73.1421794,2.4530663,36.151657,28.1631252,4.0437505,4.1608701,36.3137101,71.5907868,73.0738582,64.6339725,17.2719578,28.0101536,21.4034029,59.1384985,29.0202314,54.9383812,41.9731762,35.2502365,73.0725719,2.5193454,36.3388996,29.4653895\r\n1949,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0380424,4.1728927,35.9108015,71.2008943,72.7674372,64.3769942,17.4125195,27.2951208,21.0468495,59.6405638,29.4176597,54.963614,41.6215819,34.8737615,73.1421794,2.4530663,36.151657,28.1631252,4.0437505,4.1608701,36.3137101,71.5907868,73.0738582,64.6339725,17.2719578,28.0101536,21.4034029,59.1384985,29.0202314,54.9383812,41.9731762,35.2502365,73.0725719,2.5193454,36.3388996,29.4653895,4.0486232,4.09948,36.8626288,72.345217,72.8896623,65.0126898,16.7523411,29.0092833,20.8470002,59.488905,28.2454626,55.9899599,42.8667544,36.353462,73.7616706,2.4189768,36.6907631,29.857669\r\n1950,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0437505,4.1608701,36.3137101,71.5907868,73.0738582,64.6339725,17.2719578,28.0101536,21.4034029,59.1384985,29.0202314,54.9383812,41.9731762,35.2502365,73.0725719,2.5193454,36.3388996,29.4653895,4.0486232,4.09948,36.8626288,72.345217,72.8896623,65.0126898,16.7523411,29.0092833,20.8470002,59.488905,28.2454626,55.9899599,42.8667544,36.353462,73.7616706,2.4189768,36.6907631,29.857669,3.982414,4.041864,37.9796904,72.819142,72.7669412,64.1724264,16.4454695,29.2234719,20.806132,59.555053,27.5848693,55.818533,43.3033071,37.0865384,74.1162454,2.2836344,36.9801239,29.9759441\r\n1951,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0486232,4.09948,36.8626288,72.345217,72.8896623,65.0126898,16.7523411,29.0092833,20.8470002,59.488905,28.2454626,55.9899599,42.8667544,36.353462,73.7616706,2.4189768,36.6907631,29.857669,3.982414,4.041864,37.9796904,72.819142,72.7669412,64.1724264,16.4454695,29.2234719,20.806132,59.555053,27.5848693,55.818533,43.3033071,37.0865384,74.1162454,2.2836344,36.9801239,29.9759441,4.0591896,4.1262201,39.3032134,71.8641625,72.2303216,62.9447812,17.2861956,28.0443984,20.3865035,60.3822551,28.3749217,55.6868301,44.0595601,37.9339669,74.0079747,2.3111604,36.7713535,31.7019976\r\n1952,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.982414,4.041864,37.9796904,72.819142,72.7669412,64.1724264,16.4454695,29.2234719,20.806132,59.555053,27.5848693,55.818533,43.3033071,37.0865384,74.1162454,2.2836344,36.9801239,29.9759441,4.0591896,4.1262201,39.3032134,71.8641625,72.2303216,62.9447812,17.2861956,28.0443984,20.3865035,60.3822551,28.3749217,55.6868301,44.0595601,37.9339669,74.0079747,2.3111604,36.7713535,31.7019976,4.117627,4.1485723,39.3402601,72.7808851,72.5979872,62.7210232,16.7356957,29.1554522,19.7047761,59.5879479,28.4781994,55.3057585,44.441678,38.1677602,74.1320773,2.3854954,36.378001,31.3899848\r\n1953,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0591896,4.1262201,39.3032134,71.8641625,72.2303216,62.9447812,17.2861956,28.0443984,20.3865035,60.3822551,28.3749217,55.6868301,44.0595601,37.9339669,74.0079747,2.3111604,36.7713535,31.7019976,4.117627,4.1485723,39.3402601,72.7808851,72.5979872,62.7210232,16.7356957,29.1554522,19.7047761,59.5879479,28.4781994,55.3057585,44.441678,38.1677602,74.1320773,2.3854954,36.378001,31.3899848,4.1948432,4.2538024,39.4564144,72.4409164,72.654698,61.3782112,17.1562973,28.7415526,19.5003108,59.8289511,28.0034117,53.9630881,45.0050238,38.7968669,74.4334584,2.5043639,35.9363502,32.5082444\r\n1954,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.117627,4.1485723,39.3402601,72.7808851,72.5979872,62.7210232,16.7356957,29.1554522,19.7047761,59.5879479,28.4781994,55.3057585,44.441678,38.1677602,74.1320773,2.3854954,36.378001,31.3899848,4.1948432,4.2538024,39.4564144,72.4409164,72.654698,61.3782112,17.1562973,28.7415526,19.5003108,59.8289511,28.0034117,53.9630881,45.0050238,38.7968669,74.4334584,2.5043639,35.9363502,32.5082444,4.5279881,4.5545983,40.8822155,71.7633116,71.959787,62.2967559,17.1316841,29.8600571,19.3482816,60.3517137,27.9558986,53.7168571,46.724854,40.3987913,75.2191939,2.4371939,36.3088783,33.0508559\r\n1955,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1948432,4.2538024,39.4564144,72.4409164,72.654698,61.3782112,17.1562973,28.7415526,19.5003108,59.8289511,28.0034117,53.9630881,45.0050238,38.7968669,74.4334584,2.5043639,35.9363502,32.5082444,4.5279881,4.5545983,40.8822155,71.7633116,71.959787,62.2967559,17.1316841,29.8600571,19.3482816,60.3517137,27.9558986,53.7168571,46.724854,40.3987913,75.2191939,2.4371939,36.3088783,33.0508559,4.6596733,4.6828419,40.5542216,71.4047771,71.2865073,61.4336643,16.6459019,29.3679672,19.0959363,60.7433965,27.7458222,53.7856991,47.159176,40.4300986,76.2540464,2.3817315,35.5551455,33.1975048\r\n1956,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5279881,4.5545983,40.8822155,71.7633116,71.959787,62.2967559,17.1316841,29.8600571,19.3482816,60.3517137,27.9558986,53.7168571,46.724854,40.3987913,75.2191939,2.4371939,36.3088783,33.0508559,4.6596733,4.6828419,40.5542216,71.4047771,71.2865073,61.4336643,16.6459019,29.3679672,19.0959363,60.7433965,27.7458222,53.7856991,47.159176,40.4300986,76.2540464,2.3817315,35.5551455,33.1975048,4.7003519,4.7507039,40.225371,70.385828,70.601007,61.5416384,16.0433689,29.8722383,19.0401208,59.2889865,26.8325934,52.9681491,46.7836585,40.0810012,76.3867566,2.4214797,35.4668543,34.1872228\r\n1957,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.6596733,4.6828419,40.5542216,71.4047771,71.2865073,61.4336643,16.6459019,29.3679672,19.0959363,60.7433965,27.7458222,53.7856991,47.159176,40.4300986,76.2540464,2.3817315,35.5551455,33.1975048,4.7003519,4.7507039,40.225371,70.385828,70.601007,61.5416384,16.0433689,29.8722383,19.0401208,59.2889865,26.8325934,52.9681491,46.7836585,40.0810012,76.3867566,2.4214797,35.4668543,34.1872228,4.8003774,4.8788219,40.5008718,70.8964967,71.5094501,62.3489243,15.6767177,30.2868938,19.0767893,58.4086174,26.6264775,53.7783024,46.8800299,40.1080312,77.072546,2.5805851,35.9040425,35.6194781\r\n1958,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.7003519,4.7507039,40.225371,70.385828,70.601007,61.5416384,16.0433689,29.8722383,19.0401208,59.2889865,26.8325934,52.9681491,46.7836585,40.0810012,76.3867566,2.4214797,35.4668543,34.1872228,4.8003774,4.8788219,40.5008718,70.8964967,71.5094501,62.3489243,15.6767177,30.2868938,19.0767893,58.4086174,26.6264775,53.7783024,46.8800299,40.1080312,77.072546,2.5805851,35.9040425,35.6194781,4.6069875,4.6572634,39.2964098,71.2640438,71.463389,62.3676895,14.6014159,30.5029677,19.5264588,58.0164877,25.6984452,53.5454442,46.1401276,39.3969946,77.3857216,2.5241872,36.2532998,36.0330215\r\n1959,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.8003774,4.8788219,40.5008718,70.8964967,71.5094501,62.3489243,15.6767177,30.2868938,19.0767893,58.4086174,26.6264775,53.7783024,46.8800299,40.1080312,77.072546,2.5805851,35.9040425,35.6194781,4.6069875,4.6572634,39.2964098,71.2640438,71.463389,62.3676895,14.6014159,30.5029677,19.5264588,58.0164877,25.6984452,53.5454442,46.1401276,39.3969946,77.3857216,2.5241872,36.2532998,36.0330215,4.6738148,4.7741714,39.2235237,70.3653485,70.8416004,62.5632943,14.509175,29.5579176,20.0877257,59.5420448,25.8303482,53.5634097,45.7057407,39.2023888,77.1354858,2.3485834,36.8363386,35.7508674\r\n1960,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.6069875,4.6572634,39.2964098,71.2640438,71.463389,62.3676895,14.6014159,30.5029677,19.5264588,58.0164877,25.6984452,53.5454442,46.1401276,39.3969946,77.3857216,2.5241872,36.2532998,36.0330215,4.6738148,4.7741714,39.2235237,70.3653485,70.8416004,62.5632943,14.509175,29.5579176,20.0877257,59.5420448,25.8303482,53.5634097,45.7057407,39.2023888,77.1354858,2.3485834,36.8363386,35.7508674,4.4766615,4.59193,38.4626423,69.7780532,70.1084433,64.0188427,14.1414865,30.1532311,19.8816683,59.4342017,26.1493639,53.1533959,45.2954789,38.6307485,77.1868142,2.5222058,36.9323281,35.5411715\r\n1961,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.6738148,4.7741714,39.2235237,70.3653485,70.8416004,62.5632943,14.509175,29.5579176,20.0877257,59.5420448,25.8303482,53.5634097,45.7057407,39.2023888,77.1354858,2.3485834,36.8363386,35.7508674,4.4766615,4.59193,38.4626423,69.7780532,70.1084433,64.0188427,14.1414865,30.1532311,19.8816683,59.4342017,26.1493639,53.1533959,45.2954789,38.6307485,77.1868142,2.5222058,36.9323281,35.5411715,4.2348623,4.3702211,37.2060805,68.9964872,69.3931545,63.4061881,13.9591551,29.9896963,19.5430577,58.3261209,26.1322811,52.159382,43.7433213,37.1509181,77.0843603,2.5075117,36.8974271,35.8318739\r\n1962,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.4766615,4.59193,38.4626423,69.7780532,70.1084433,64.0188427,14.1414865,30.1532311,19.8816683,59.4342017,26.1493639,53.1533959,45.2954789,38.6307485,77.1868142,2.5222058,36.9323281,35.5411715,4.2348623,4.3702211,37.2060805,68.9964872,69.3931545,63.4061881,13.9591551,29.9896963,19.5430577,58.3261209,26.1322811,52.159382,43.7433213,37.1509181,77.0843603,2.5075117,36.8974271,35.8318739,4.015623,4.1941856,37.2181411,68.9866038,69.3629066,64.7007078,13.5086867,29.9142213,19.5827412,57.44038,25.5197356,52.190951,43.4157291,37.025798,76.7694677,2.3774969,37.5288465,37.344048\r\n1963,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.2348623,4.3702211,37.2060805,68.9964872,69.3931545,63.4061881,13.9591551,29.9896963,19.5430577,58.3261209,26.1322811,52.159382,43.7433213,37.1509181,77.0843603,2.5075117,36.8974271,35.8318739,4.015623,4.1941856,37.2181411,68.9866038,69.3629066,64.7007078,13.5086867,29.9142213,19.5827412,57.44038,25.5197356,52.190951,43.4157291,37.025798,76.7694677,2.3774969,37.5288465,37.344048,4.1291234,4.3139892,36.9809695,69.435854,69.2273269,64.1984935,13.8881554,29.1722384,19.2181851,58.6810636,26.1336061,52.968365,43.7658871,37.2379244,77.1711089,2.3265364,38.086388,37.5759682\r\n1964,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.015623,4.1941856,37.2181411,68.9866038,69.3629066,64.7007078,13.5086867,29.9142213,19.5827412,57.44038,25.5197356,52.190951,43.4157291,37.025798,76.7694677,2.3774969,37.5288465,37.344048,4.1291234,4.3139892,36.9809695,69.435854,69.2273269,64.1984935,13.8881554,29.1722384,19.2181851,58.6810636,26.1336061,52.968365,43.7658871,37.2379244,77.1711089,2.3265364,38.086388,37.5759682,3.9374545,4.1088368,36.2771473,68.4238563,68.4059505,63.2888307,14.0654472,28.9237198,20.2485574,60.0709329,26.5317741,51.6029329,43.1092357,36.817308,76.5118722,2.2290328,37.5340034,37.7784627\r\n1965,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1291234,4.3139892,36.9809695,69.435854,69.2273269,64.1984935,13.8881554,29.1722384,19.2181851,58.6810636,26.1336061,52.968365,43.7658871,37.2379244,77.1711089,2.3265364,38.086388,37.5759682,3.9374545,4.1088368,36.2771473,68.4238563,68.4059505,63.2888307,14.0654472,28.9237198,20.2485574,60.0709329,26.5317741,51.6029329,43.1092357,36.817308,76.5118722,2.2290328,37.5340034,37.7784627,3.9814058,4.1518064,35.8899802,68.1703901,68.5779904,63.3517299,14.3053629,29.1588867,20.3898365,60.0402305,26.7417389,52.2224856,42.8352863,36.6044001,76.6230409,2.1576116,37.0984207,38.0086238\r\n1966,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.9374545,4.1088368,36.2771473,68.4238563,68.4059505,63.2888307,14.0654472,28.9237198,20.2485574,60.0709329,26.5317741,51.6029329,43.1092357,36.817308,76.5118722,2.2290328,37.5340034,37.7784627,3.9814058,4.1518064,35.8899802,68.1703901,68.5779904,63.3517299,14.3053629,29.1588867,20.3898365,60.0402305,26.7417389,52.2224856,42.8352863,36.6044001,76.6230409,2.1576116,37.0984207,38.0086238,3.9338592,4.0618308,35.3996695,68.4863366,69.4215084,62.6501263,14.4289461,28.6632923,20.8281153,59.058645,26.0676184,52.3369101,42.3642477,35.9001263,76.9007828,2.1742738,36.985587,38.9372367\r\n1967,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.9814058,4.1518064,35.8899802,68.1703901,68.5779904,63.3517299,14.3053629,29.1588867,20.3898365,60.0402305,26.7417389,52.2224856,42.8352863,36.6044001,76.6230409,2.1576116,37.0984207,38.0086238,3.9338592,4.0618308,35.3996695,68.4863366,69.4215084,62.6501263,14.4289461,28.6632923,20.8281153,59.058645,26.0676184,52.3369101,42.3642477,35.9001263,76.9007828,2.1742738,36.985587,38.9372367,3.7846559,3.8693787,34.6050502,69.499865,70.2152306,63.0670484,14.7062223,29.3994338,20.8055892,58.7401125,26.6142595,53.4225528,41.0279653,34.853492,76.603194,2.0543225,36.2817644,39.2302713\r\n1968,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.9338592,4.0618308,35.3996695,68.4863366,69.4215084,62.6501263,14.4289461,28.6632923,20.8281153,59.058645,26.0676184,52.3369101,42.3642477,35.9001263,76.9007828,2.1742738,36.985587,38.9372367,3.7846559,3.8693787,34.6050502,69.499865,70.2152306,63.0670484,14.7062223,29.3994338,20.8055892,58.7401125,26.6142595,53.4225528,41.0279653,34.853492,76.603194,2.0543225,36.2817644,39.2302713,3.642364,3.7493644,33.7616662,70.4924942,70.5805906,63.438086,15.0267053,29.9690425,21.2198606,59.5376479,26.9414495,54.7110193,40.1457849,34.0623284,76.6260885,2.1163579,36.4173202,39.0491761\r\n1969,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7846559,3.8693787,34.6050502,69.499865,70.2152306,63.0670484,14.7062223,29.3994338,20.8055892,58.7401125,26.6142595,53.4225528,41.0279653,34.853492,76.603194,2.0543225,36.2817644,39.2302713,3.642364,3.7493644,33.7616662,70.4924942,70.5805906,63.438086,15.0267053,29.9690425,21.2198606,59.5376479,26.9414495,54.7110193,40.1457849,34.0623284,76.6260885,2.1163579,36.4173202,39.0491761,3.6850859,3.7616652,33.6158757,69.1593475,69.9684721,62.1087205,16.036016,28.911044,20.6406706,60.5926819,28.7120277,54.233279,39.2367464,33.2120383,76.2931002,2.2871797,35.7455539,37.4916658\r\n1970,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.642364,3.7493644,33.7616662,70.4924942,70.5805906,63.438086,15.0267053,29.9690425,21.2198606,59.5376479,26.9414495,54.7110193,40.1457849,34.0623284,76.6260885,2.1163579,36.4173202,39.0491761,3.6850859,3.7616652,33.6158757,69.1593475,69.9684721,62.1087205,16.036016,28.911044,20.6406706,60.5926819,28.7120277,54.233279,39.2367464,33.2120383,76.2931002,2.2871797,35.7455539,37.4916658,3.4582474,3.5392219,32.688415,68.2209104,69.8721046,61.3780108,16.8855641,28.7611836,22.0975509,61.1644393,29.6429982,52.2863059,37.7350272,31.905969,75.9649182,2.2885131,35.5723415,37.8604767\r\n1971,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6850859,3.7616652,33.6158757,69.1593475,69.9684721,62.1087205,16.036016,28.911044,20.6406706,60.5926819,28.7120277,54.233279,39.2367464,33.2120383,76.2931002,2.2871797,35.7455539,37.4916658,3.4582474,3.5392219,32.688415,68.2209104,69.8721046,61.3780108,16.8855641,28.7611836,22.0975509,61.1644393,29.6429982,52.2863059,37.7350272,31.905969,75.9649182,2.2885131,35.5723415,37.8604767,3.2521424,3.3123154,31.6886024,67.9803151,69.6759261,60.9073225,16.8042393,28.7728929,20.7401479,60.7402872,29.377067,52.9428484,37.331582,31.3212202,76.3604208,2.2768221,35.6161998,37.5258468\r\n1972,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4582474,3.5392219,32.688415,68.2209104,69.8721046,61.3780108,16.8855641,28.7611836,22.0975509,61.1644393,29.6429982,52.2863059,37.7350272,31.905969,75.9649182,2.2885131,35.5723415,37.8604767,3.2521424,3.3123154,31.6886024,67.9803151,69.6759261,60.9073225,16.8042393,28.7728929,20.7401479,60.7402872,29.377067,52.9428484,37.331582,31.3212202,76.3604208,2.2768221,35.6161998,37.5258468,3.0554332,3.1142143,30.8659859,68.604462,70.5031989,60.6143092,17.6845271,28.4806038,20.0578778,61.2751028,29.8941929,52.6091768,36.3224953,30.397358,76.6052512,2.4415006,35.5015133,36.1209941\r\n1973,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2521424,3.3123154,31.6886024,67.9803151,69.6759261,60.9073225,16.8042393,28.7728929,20.7401479,60.7402872,29.377067,52.9428484,37.331582,31.3212202,76.3604208,2.2768221,35.6161998,37.5258468,3.0554332,3.1142143,30.8659859,68.604462,70.5031989,60.6143092,17.6845271,28.4806038,20.0578778,61.2751028,29.8941929,52.6091768,36.3224953,30.397358,76.6052512,2.4415006,35.5015133,36.1209941,2.7538124,2.8307485,29.525777,68.0428804,69.5150132,61.091257,18.2160847,28.5055639,19.780769,61.8674515,30.8683742,52.5024283,34.8911525,29.2024705,76.3261095,2.5911204,35.0195322,35.2607519\r\n1974,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0554332,3.1142143,30.8659859,68.604462,70.5031989,60.6143092,17.6845271,28.4806038,20.0578778,61.2751028,29.8941929,52.6091768,36.3224953,30.397358,76.6052512,2.4415006,35.5015133,36.1209941,2.7538124,2.8307485,29.525777,68.0428804,69.5150132,61.091257,18.2160847,28.5055639,19.780769,61.8674515,30.8683742,52.5024283,34.8911525,29.2024705,76.3261095,2.5911204,35.0195322,35.2607519,2.7586652,2.8550886,28.1525134,67.5270794,68.8578287,60.7079158,18.6503439,28.9456191,20.1172343,62.2823942,30.8018514,51.433841,33.9546514,28.2034295,76.2071966,2.5174954,34.9222218,33.3978173\r\n1975,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7538124,2.8307485,29.525777,68.0428804,69.5150132,61.091257,18.2160847,28.5055639,19.780769,61.8674515,30.8683742,52.5024283,34.8911525,29.2024705,76.3261095,2.5911204,35.0195322,35.2607519,2.7586652,2.8550886,28.1525134,67.5270794,68.8578287,60.7079158,18.6503439,28.9456191,20.1172343,62.2823942,30.8018514,51.433841,33.9546514,28.2034295,76.2071966,2.5174954,34.9222218,33.3978173,2.7318594,2.7990396,27.9241508,65.9913152,67.2074832,59.8860899,19.3480173,28.2878151,19.3302729,62.5390862,31.6766592,49.7126414,33.2470177,27.6083489,75.2971611,2.4349015,34.5561347,31.9852918\r\n1976,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7586652,2.8550886,28.1525134,67.5270794,68.8578287,60.7079158,18.6503439,28.9456191,20.1172343,62.2823942,30.8018514,51.433841,33.9546514,28.2034295,76.2071966,2.5174954,34.9222218,33.3978173,2.7318594,2.7990396,27.9241508,65.9913152,67.2074832,59.8860899,19.3480173,28.2878151,19.3302729,62.5390862,31.6766592,49.7126414,33.2470177,27.6083489,75.2971611,2.4349015,34.5561347,31.9852918,2.6403887,2.7084343,26.7495296,67.4778816,68.07779,60.4879061,20.1931562,29.5376886,19.8518567,62.568844,32.3142639,49.6731792,32.5904914,27.0046574,75.2689545,2.3379506,35.1290259,32.5551874\r\n1977,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7318594,2.7990396,27.9241508,65.9913152,67.2074832,59.8860899,19.3480173,28.2878151,19.3302729,62.5390862,31.6766592,49.7126414,33.2470177,27.6083489,75.2971611,2.4349015,34.5561347,31.9852918,2.6403887,2.7084343,26.7495296,67.4778816,68.07779,60.4879061,20.1931562,29.5376886,19.8518567,62.568844,32.3142639,49.6731792,32.5904914,27.0046574,75.2689545,2.3379506,35.1290259,32.5551874,2.450299,2.505408,26.2648682,67.5884724,67.4186637,61.0976236,21.0048894,29.5034667,18.7848509,62.8632526,32.9453497,50.1101848,32.0882224,26.3627312,74.859718,2.5922971,34.666372,30.9461824\r\n1978,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6403887,2.7084343,26.7495296,67.4778816,68.07779,60.4879061,20.1931562,29.5376886,19.8518567,62.568844,32.3142639,49.6731792,32.5904914,27.0046574,75.2689545,2.3379506,35.1290259,32.5551874,2.450299,2.505408,26.2648682,67.5884724,67.4186637,61.0976236,21.0048894,29.5034667,18.7848509,62.8632526,32.9453497,50.1101848,32.0882224,26.3627312,74.859718,2.5922971,34.666372,30.9461824,2.4705222,2.526286,25.5121145,67.3891813,66.6247387,62.2438485,22.4123005,29.3561413,20.0764553,64.5643417,34.2821972,48.8543616,30.9217079,25.3068958,73.8876111,2.6604563,34.1571526,30.7657519\r\n1979,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.450299,2.505408,26.2648682,67.5884724,67.4186637,61.0976236,21.0048894,29.5034667,18.7848509,62.8632526,32.9453497,50.1101848,32.0882224,26.3627312,74.859718,2.5922971,34.666372,30.9461824,2.4705222,2.526286,25.5121145,67.3891813,66.6247387,62.2438485,22.4123005,29.3561413,20.0764553,64.5643417,34.2821972,48.8543616,30.9217079,25.3068958,73.8876111,2.6604563,34.1571526,30.7657519,2.2270953,2.2814091,25.0682028,65.5615696,64.5530213,62.3385865,22.2015293,29.6346117,19.6882472,64.4841773,35.0203352,47.9819569,30.1896315,24.7427909,72.8059165,2.7052244,33.6262347,31.0912401\r\n1980,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4705222,2.526286,25.5121145,67.3891813,66.6247387,62.2438485,22.4123005,29.3561413,20.0764553,64.5643417,34.2821972,48.8543616,30.9217079,25.3068958,73.8876111,2.6604563,34.1571526,30.7657519,2.2270953,2.2814091,25.0682028,65.5615696,64.5530213,62.3385865,22.2015293,29.6346117,19.6882472,64.4841773,35.0203352,47.9819569,30.1896315,24.7427909,72.8059165,2.7052244,33.6262347,31.0912401,2.2457516,2.2905477,23.9127043,65.0104153,64.2016147,61.8090282,22.8787355,29.7632892,20.5631852,64.8741316,35.2602978,47.2707033,29.2192151,23.8538515,72.4288387,2.8344674,33.3830478,30.1699489\r\n1981,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2270953,2.2814091,25.0682028,65.5615696,64.5530213,62.3385865,22.2015293,29.6346117,19.6882472,64.4841773,35.0203352,47.9819569,30.1896315,24.7427909,72.8059165,2.7052244,33.6262347,31.0912401,2.2457516,2.2905477,23.9127043,65.0104153,64.2016147,61.8090282,22.8787355,29.7632892,20.5631852,64.8741316,35.2602978,47.2707033,29.2192151,23.8538515,72.4288387,2.8344674,33.3830478,30.1699489,2.0462879,2.0738476,23.8424721,65.8975167,65.4492855,62.1572307,23.7519275,29.476975,21.3449673,65.0995313,36.3781952,47.9774263,28.9379211,23.4478026,72.2788249,2.9163266,34.0557999,30.3191243\r\n1982,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2457516,2.2905477,23.9127043,65.0104153,64.2016147,61.8090282,22.8787355,29.7632892,20.5631852,64.8741316,35.2602978,47.2707033,29.2192151,23.8538515,72.4288387,2.8344674,33.3830478,30.1699489,2.0462879,2.0738476,23.8424721,65.8975167,65.4492855,62.1572307,23.7519275,29.476975,21.3449673,65.0995313,36.3781952,47.9774263,28.9379211,23.4478026,72.2788249,2.9163266,34.0557999,30.3191243,1.8680097,1.8770315,22.9462617,66.0312632,67.2695106,62.795426,24.1635553,29.0322216,21.7213186,64.9962944,36.7048695,48.0887895,28.3957024,22.8853302,71.7264607,3.0357192,34.5610859,31.2437907\r\n1983,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0462879,2.0738476,23.8424721,65.8975167,65.4492855,62.1572307,23.7519275,29.476975,21.3449673,65.0995313,36.3781952,47.9774263,28.9379211,23.4478026,72.2788249,2.9163266,34.0557999,30.3191243,1.8680097,1.8770315,22.9462617,66.0312632,67.2695106,62.795426,24.1635553,29.0322216,21.7213186,64.9962944,36.7048695,48.0887895,28.3957024,22.8853302,71.7264607,3.0357192,34.5610859,31.2437907,1.7881082,1.7941504,21.5729289,64.4835606,66.7574699,62.4510805,24.5850643,28.0961396,21.3968514,65.3485927,36.3926019,46.1802019,26.9836416,21.6939698,70.8853827,3.1338113,34.0180515,30.243595\r\n1984,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8680097,1.8770315,22.9462617,66.0312632,67.2695106,62.795426,24.1635553,29.0322216,21.7213186,64.9962944,36.7048695,48.0887895,28.3957024,22.8853302,71.7264607,3.0357192,34.5610859,31.2437907,1.7881082,1.7941504,21.5729289,64.4835606,66.7574699,62.4510805,24.5850643,28.0961396,21.3968514,65.3485927,36.3926019,46.1802019,26.9836416,21.6939698,70.8853827,3.1338113,34.0180515,30.243595,1.6751849,1.706292,20.7666744,64.7070978,67.5899008,63.8644475,24.3380897,27.6611132,21.6765435,65.5987274,36.7106057,45.8073772,26.1992361,21.2510927,69.8688677,2.989253,34.170501,29.1526858\r\n1985,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7881082,1.7941504,21.5729289,64.4835606,66.7574699,62.4510805,24.5850643,28.0961396,21.3968514,65.3485927,36.3926019,46.1802019,26.9836416,21.6939698,70.8853827,3.1338113,34.0180515,30.243595,1.6751849,1.706292,20.7666744,64.7070978,67.5899008,63.8644475,24.3380897,27.6611132,21.6765435,65.5987274,36.7106057,45.8073772,26.1992361,21.2510927,69.8688677,2.989253,34.170501,29.1526858,1.7139844,1.7274878,20.4428743,64.7113935,68.1627195,63.0086677,23.9720441,26.9554756,20.853925,64.9333928,36.5220557,46.2161581,25.6935576,20.6220293,70.1780987,3.0442608,34.8711878,27.517133\r\n1986,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6751849,1.706292,20.7666744,64.7070978,67.5899008,63.8644475,24.3380897,27.6611132,21.6765435,65.5987274,36.7106057,45.8073772,26.1992361,21.2510927,69.8688677,2.989253,34.170501,29.1526858,1.7139844,1.7274878,20.4428743,64.7113935,68.1627195,63.0086677,23.9720441,26.9554756,20.853925,64.9333928,36.5220557,46.2161581,25.6935576,20.6220293,70.1780987,3.0442608,34.8711878,27.517133,1.7025541,1.733668,19.3333237,64.5562892,67.7891094,62.3941408,24.72558,25.4841844,20.9673705,65.353233,36.7606626,46.1698473,24.4378476,19.3231973,70.0755108,2.9290185,35.1807717,25.9455927\r\n1987,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7139844,1.7274878,20.4428743,64.7113935,68.1627195,63.0086677,23.9720441,26.9554756,20.853925,64.9333928,36.5220557,46.2161581,25.6935576,20.6220293,70.1780987,3.0442608,34.8711878,27.517133,1.7025541,1.733668,19.3333237,64.5562892,67.7891094,62.3941408,24.72558,25.4841844,20.9673705,65.353233,36.7606626,46.1698473,24.4378476,19.3231973,70.0755108,2.9290185,35.1807717,25.9455927,1.4552182,1.492263,19.3827346,64.7101576,68.0362104,63.4447375,24.2275783,24.8144636,20.9506316,65.4669887,37.2991598,45.022357,24.1305539,19.2524915,69.2740943,2.7985998,34.4140159,24.9999812\r\n1988,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7025541,1.733668,19.3333237,64.5562892,67.7891094,62.3941408,24.72558,25.4841844,20.9673705,65.353233,36.7606626,46.1698473,24.4378476,19.3231973,70.0755108,2.9290185,35.1807717,25.9455927,1.4552182,1.492263,19.3827346,64.7101576,68.0362104,63.4447375,24.2275783,24.8144636,20.9506316,65.4669887,37.2991598,45.022357,24.1305539,19.2524915,69.2740943,2.7985998,34.4140159,24.9999812,1.5083078,1.5444219,18.9336561,63.9048209,67.6534674,63.4972418,23.8449106,23.9482331,20.2377399,65.7166516,37.266433,44.3172268,23.4158316,18.9986145,68.7240484,2.9503137,34.0019328,25.976549\r\n1989,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4552182,1.492263,19.3827346,64.7101576,68.0362104,63.4447375,24.2275783,24.8144636,20.9506316,65.4669887,37.2991598,45.022357,24.1305539,19.2524915,69.2740943,2.7985998,34.4140159,24.9999812,1.5083078,1.5444219,18.9336561,63.9048209,67.6534674,63.4972418,23.8449106,23.9482331,20.2377399,65.7166516,37.266433,44.3172268,23.4158316,18.9986145,68.7240484,2.9503137,34.0019328,25.976549,1.7102894,1.7339172,18.6321625,64.5409917,67.268181,62.8183644,23.6512127,23.0589596,19.8297407,65.6818149,37.4660405,43.752671,22.5180316,18.1236895,68.6981115,3.0038302,33.581032,24.7019903\r\n1990,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5083078,1.5444219,18.9336561,63.9048209,67.6534674,63.4972418,23.8449106,23.9482331,20.2377399,65.7166516,37.266433,44.3172268,23.4158316,18.9986145,68.7240484,2.9503137,34.0019328,25.976549,1.7102894,1.7339172,18.6321625,64.5409917,67.268181,62.8183644,23.6512127,23.0589596,19.8297407,65.6818149,37.4660405,43.752671,22.5180316,18.1236895,68.6981115,3.0038302,33.581032,24.7019903,1.554885,1.5927474,19.0635694,66.0544408,67.4265968,63.5069133,23.4391632,22.669081,19.7716511,65.5292049,37.6870237,45.6677815,22.7021566,18.256161,68.0720085,2.9955044,33.454103,24.8344373\r\n1991,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7102894,1.7339172,18.6321625,64.5409917,67.268181,62.8183644,23.6512127,23.0589596,19.8297407,65.6818149,37.4660405,43.752671,22.5180316,18.1236895,68.6981115,3.0038302,33.581032,24.7019903,1.554885,1.5927474,19.0635694,66.0544408,67.4265968,63.5069133,23.4391632,22.669081,19.7716511,65.5292049,37.6870237,45.6677815,22.7021566,18.256161,68.0720085,2.9955044,33.454103,24.8344373,1.4918319,1.5055946,18.337176,66.1034678,67.7004528,62.9705952,24.1880244,22.9274513,18.9679423,65.8968894,38.3272619,45.9210196,21.6090402,16.9890859,68.0588953,3.0868561,32.9116995,24.865236\r\n1992,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.554885,1.5927474,19.0635694,66.0544408,67.4265968,63.5069133,23.4391632,22.669081,19.7716511,65.5292049,37.6870237,45.6677815,22.7021566,18.256161,68.0720085,2.9955044,33.454103,24.8344373,1.4918319,1.5055946,18.337176,66.1034678,67.7004528,62.9705952,24.1880244,22.9274513,18.9679423,65.8968894,38.3272619,45.9210196,21.6090402,16.9890859,68.0588953,3.0868561,32.9116995,24.865236,1.4184056,1.4641247,17.3392581,65.9846242,67.5842501,63.4111036,24.7450802,22.6716657,18.8528119,66.4580836,38.9807832,45.0560517,20.8940139,16.5491422,66.7739746,3.1125243,32.0641819,23.4858697\r\n1993,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4918319,1.5055946,18.337176,66.1034678,67.7004528,62.9705952,24.1880244,22.9274513,18.9679423,65.8968894,38.3272619,45.9210196,21.6090402,16.9890859,68.0588953,3.0868561,32.9116995,24.865236,1.4184056,1.4641247,17.3392581,65.9846242,67.5842501,63.4111036,24.7450802,22.6716657,18.8528119,66.4580836,38.9807832,45.0560517,20.8940139,16.5491422,66.7739746,3.1125243,32.0641819,23.4858697,1.5297086,1.5594641,17.4465061,66.7438243,68.8528359,64.1921363,25.2533172,22.4458051,18.2700522,66.8781127,39.5235115,44.7906354,21.1012512,16.7920708,65.7372014,3.4503069,31.8999107,23.3333383\r\n1994,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4184056,1.4641247,17.3392581,65.9846242,67.5842501,63.4111036,24.7450802,22.6716657,18.8528119,66.4580836,38.9807832,45.0560517,20.8940139,16.5491422,66.7739746,3.1125243,32.0641819,23.4858697,1.5297086,1.5594641,17.4465061,66.7438243,68.8528359,64.1921363,25.2533172,22.4458051,18.2700522,66.8781127,39.5235115,44.7906354,21.1012512,16.7920708,65.7372014,3.4503069,31.8999107,23.3333383,1.5334261,1.5543833,16.7752616,67.9772421,69.3001454,63.3470675,25.1465911,22.2956106,17.6238483,67.0312508,39.5725546,44.2196411,20.3232641,15.9445292,65.5617196,3.570581,33.341617,22.7399222\r\n1995,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5297086,1.5594641,17.4465061,66.7438243,68.8528359,64.1921363,25.2533172,22.4458051,18.2700522,66.8781127,39.5235115,44.7906354,21.1012512,16.7920708,65.7372014,3.4503069,31.8999107,23.3333383,1.5334261,1.5543833,16.7752616,67.9772421,69.3001454,63.3470675,25.1465911,22.2956106,17.6238483,67.0312508,39.5725546,44.2196411,20.3232641,15.9445292,65.5617196,3.570581,33.341617,22.7399222,1.4806852,1.5019067,16.2249641,68.3716688,69.2247684,63.8361977,25.6756805,21.1971862,17.0853264,67.6548317,39.7949382,44.0341691,19.942077,15.469298,64.9975581,3.4743931,33.7646045,21.1566632\r\n1996,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5334261,1.5543833,16.7752616,67.9772421,69.3001454,63.3470675,25.1465911,22.2956106,17.6238483,67.0312508,39.5725546,44.2196411,20.3232641,15.9445292,65.5617196,3.570581,33.341617,22.7399222,1.4806852,1.5019067,16.2249641,68.3716688,69.2247684,63.8361977,25.6756805,21.1971862,17.0853264,67.6548317,39.7949382,44.0341691,19.942077,15.469298,64.9975581,3.4743931,33.7646045,21.1566632,1.1857703,1.2288433,15.4006516,68.0017218,68.5867583,64.6891611,25.5901901,21.2454037,16.9051024,67.8364249,40.5735648,44.8308836,19.57532,15.0499063,64.5981761,3.3777251,34.9512117,20.4407257\r\n1997,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4806852,1.5019067,16.2249641,68.3716688,69.2247684,63.8361977,25.6756805,21.1971862,17.0853264,67.6548317,39.7949382,44.0341691,19.942077,15.469298,64.9975581,3.4743931,33.7646045,21.1566632,1.1857703,1.2288433,15.4006516,68.0017218,68.5867583,64.6891611,25.5901901,21.2454037,16.9051024,67.8364249,40.5735648,44.8308836,19.57532,15.0499063,64.5981761,3.3777251,34.9512117,20.4407257,1.2456446,1.262817,14.4997102,66.4806225,67.1923545,64.49649,25.8589023,20.6557796,16.5390278,68.0666243,41.1376925,42.6349169,18.6175287,14.4488996,63.9325932,3.5855082,34.5085215,17.9873221\r\n1998,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1857703,1.2288433,15.4006516,68.0017218,68.5867583,64.6891611,25.5901901,21.2454037,16.9051024,67.8364249,40.5735648,44.8308836,19.57532,15.0499063,64.5981761,3.3777251,34.9512117,20.4407257,1.2456446,1.262817,14.4997102,66.4806225,67.1923545,64.49649,25.8589023,20.6557796,16.5390278,68.0666243,41.1376925,42.6349169,18.6175287,14.4488996,63.9325932,3.5855082,34.5085215,17.9873221,1.3786104,1.3759601,14.3762522,66.5229414,66.6026103,63.8708787,26.3693001,19.4923955,15.8750921,67.8447595,41.8410237,42.1509046,18.6684272,14.8259966,62.9168892,3.5786519,35.2957078,17.1592901\r\n1999,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2456446,1.262817,14.4997102,66.4806225,67.1923545,64.49649,25.8589023,20.6557796,16.5390278,68.0666243,41.1376925,42.6349169,18.6175287,14.4488996,63.9325932,3.5855082,34.5085215,17.9873221,1.3786104,1.3759601,14.3762522,66.5229414,66.6026103,63.8708787,26.3693001,19.4923955,15.8750921,67.8447595,41.8410237,42.1509046,18.6684272,14.8259966,62.9168892,3.5786519,35.2957078,17.1592901,1.3046093,1.3310211,13.7290768,66.0729221,66.7800135,64.0107723,26.2742917,18.6342803,15.6687089,68.0544195,41.8062954,42.8553003,18.1334939,14.029668,62.4770862,3.6304855,35.4042521,16.6666847\r\n2000,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3786104,1.3759601,14.3762522,66.5229414,66.6026103,63.8708787,26.3693001,19.4923955,15.8750921,67.8447595,41.8410237,42.1509046,18.6684272,14.8259966,62.9168892,3.5786519,35.2957078,17.1592901,1.3046093,1.3310211,13.7290768,66.0729221,66.7800135,64.0107723,26.2742917,18.6342803,15.6687089,68.0544195,41.8062954,42.8553003,18.1334939,14.029668,62.4770862,3.6304855,35.4042521,16.6666847,1.1032621,1.1359418,12.9131869,65.8735975,66.2321866,63.1124592,25.886051,17.7411632,15.7777339,67.9861191,41.2926881,42.2175733,16.9139743,13.0658939,61.9193303,3.1610681,35.7142983,15.3918197\r\n2001,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3046093,1.3310211,13.7290768,66.0729221,66.7800135,64.0107723,26.2742917,18.6342803,15.6687089,68.0544195,41.8062954,42.8553003,18.1334939,14.029668,62.4770862,3.6304855,35.4042521,16.6666847,1.1032621,1.1359418,12.9131869,65.8735975,66.2321866,63.1124592,25.886051,17.7411632,15.7777339,67.9861191,41.2926881,42.2175733,16.9139743,13.0658939,61.9193303,3.1610681,35.7142983,15.3918197,1.1082894,1.1454953,12.6734826,63.6005162,65.3241672,63.3456513,26.9026552,17.0481313,15.292184,67.8083624,41.1308984,43.2013899,16.7982529,12.7738079,60.9303314,3.1174783,35.1851974,14.5753025\r\n2002,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1032621,1.1359418,12.9131869,65.8735975,66.2321866,63.1124592,25.886051,17.7411632,15.7777339,67.9861191,41.2926881,42.2175733,16.9139743,13.0658939,61.9193303,3.1610681,35.7142983,15.3918197,1.1082894,1.1454953,12.6734826,63.6005162,65.3241672,63.3456513,26.9026552,17.0481313,15.292184,67.8083624,41.1308984,43.2013899,16.7982529,12.7738079,60.9303314,3.1174783,35.1851974,14.5753025,1.0947653,1.1321868,12.3193215,62.8453464,63.9770539,62.2655268,26.478106,16.2875375,15.6801741,67.0636928,40.7786965,43.1263145,16.5980853,12.6124896,59.6407399,3.1940744,35.1975549,13.3268677\r\n2003,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1082894,1.1454953,12.6734826,63.6005162,65.3241672,63.3456513,26.9026552,17.0481313,15.292184,67.8083624,41.1308984,43.2013899,16.7982529,12.7738079,60.9303314,3.1174783,35.1851974,14.5753025,1.0947653,1.1321868,12.3193215,62.8453464,63.9770539,62.2655268,26.478106,16.2875375,15.6801741,67.0636928,40.7786965,43.1263145,16.5980853,12.6124896,59.6407399,3.1940744,35.1975549,13.3268677,1.1690239,1.1742995,11.6575188,62.4876405,63.94686,62.3742805,27.577307,14.5328773,15.473423,67.9436618,39.4106018,41.0506395,16.0440825,12.0752136,58.444311,3.3614627,34.6933247,13.0040385\r\n2004,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0947653,1.1321868,12.3193215,62.8453464,63.9770539,62.2655268,26.478106,16.2875375,15.6801741,67.0636928,40.7786965,43.1263145,16.5980853,12.6124896,59.6407399,3.1940744,35.1975549,13.3268677,1.1690239,1.1742995,11.6575188,62.4876405,63.94686,62.3742805,27.577307,14.5328773,15.473423,67.9436618,39.4106018,41.0506395,16.0440825,12.0752136,58.444311,3.3614627,34.6933247,13.0040385,1.1669998,1.1772955,11.1516301,62.8438987,64.83412,63.0966725,27.8232056,14.1566061,16.3333512,68.1958579,39.4692021,41.8555986,15.7263248,11.481664,58.2298526,3.1682389,35.6239391,13.9751591\r\n2005,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1690239,1.1742995,11.6575188,62.4876405,63.94686,62.3742805,27.577307,14.5328773,15.473423,67.9436618,39.4106018,41.0506395,16.0440825,12.0752136,58.444311,3.3614627,34.6933247,13.0040385,1.1669998,1.1772955,11.1516301,62.8438987,64.83412,63.0966725,27.8232056,14.1566061,16.3333512,68.1958579,39.4692021,41.8555986,15.7263248,11.481664,58.2298526,3.1682389,35.6239391,13.9751591,1.1837008,1.1940322,10.3397178,63.0308182,64.8898784,63.7832482,28.5591074,14.0635582,17.2921021,68.7134911,39.2690068,41.1984228,15.1270462,10.627311,57.625945,3.2907572,35.589793,13.8104936\r\n2006,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1669998,1.1772955,11.1516301,62.8438987,64.83412,63.0966725,27.8232056,14.1566061,16.3333512,68.1958579,39.4692021,41.8555986,15.7263248,11.481664,58.2298526,3.1682389,35.6239391,13.9751591,1.1837008,1.1940322,10.3397178,63.0308182,64.8898784,63.7832482,28.5591074,14.0635582,17.2921021,68.7134911,39.2690068,41.1984228,15.1270462,10.627311,57.625945,3.2907572,35.589793,13.8104936,1.1618653,1.1222721,10.585671,63.8893458,64.5963803,62.7764927,29.4523088,13.1924271,16.7938702,68.9294078,39.9933136,40.6914603,15.3835895,11.0531879,56.1350594,3.3558065,36.6392143,13.7351794\r\n2007,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1837008,1.1940322,10.3397178,63.0308182,64.8898784,63.7832482,28.5591074,14.0635582,17.2921021,68.7134911,39.2690068,41.1984228,15.1270462,10.627311,57.625945,3.2907572,35.589793,13.8104936,1.1618653,1.1222721,10.585671,63.8893458,64.5963803,62.7764927,29.4523088,13.1924271,16.7938702,68.9294078,39.9933136,40.6914603,15.3835895,11.0531879,56.1350594,3.3558065,36.6392143,13.7351794,1.2608828,1.2271532,10.2492847,64.1109977,64.6330258,64.0434511,29.8290124,13.269143,17.0034417,68.4571817,40.9842957,40.7332887,15.4623887,10.7710914,54.6474252,3.741114,37.2836166,12.9064955\r\n2008,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1618653,1.1222721,10.585671,63.8893458,64.5963803,62.7764927,29.4523088,13.1924271,16.7938702,68.9294078,39.9933136,40.6914603,15.3835895,11.0531879,56.1350594,3.3558065,36.6392143,13.7351794,1.2608828,1.2271532,10.2492847,64.1109977,64.6330258,64.0434511,29.8290124,13.269143,17.0034417,68.4571817,40.9842957,40.7332887,15.4623887,10.7710914,54.6474252,3.741114,37.2836166,12.9064955,1.1815039,1.187888,9.7863638,65.8975709,66.0031263,65.1224574,29.7551926,12.6741395,16.9447291,68.17568,41.5700194,40.8644792,15.1115239,10.5685398,53.400752,3.6256845,37.9568854,13.2443465\r\n2009,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2608828,1.2271532,10.2492847,64.1109977,64.6330258,64.0434511,29.8290124,13.269143,17.0034417,68.4571817,40.9842957,40.7332887,15.4623887,10.7710914,54.6474252,3.741114,37.2836166,12.9064955,1.1815039,1.187888,9.7863638,65.8975709,66.0031263,65.1224574,29.7551926,12.6741395,16.9447291,68.17568,41.5700194,40.8644792,15.1115239,10.5685398,53.400752,3.6256845,37.9568854,13.2443465,1.2545595,1.2675062,9.1829049,66.2315233,66.6451674,65.406689,29.8432975,11.7166584,16.9760526,67.7235605,42.4043492,39.7185908,14.5152291,9.9285796,52.8791845,3.5849126,37.0048071,13.505168\r\n2010,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1815039,1.187888,9.7863638,65.8975709,66.0031263,65.1224574,29.7551926,12.6741395,16.9447291,68.17568,41.5700194,40.8644792,15.1115239,10.5685398,53.400752,3.6256845,37.9568854,13.2443465,1.2545595,1.2675062,9.1829049,66.2315233,66.6451674,65.406689,29.8432975,11.7166584,16.9760526,67.7235605,42.4043492,39.7185908,14.5152291,9.9285796,52.8791845,3.5849126,37.0048071,13.505168,1.3039399,1.352249,8.9527818,66.4743907,66.8723303,66.4649898,29.9604548,11.8057467,17.6073357,67.4629666,42.9608147,40.5691585,14.423606,9.8349126,52.143046,3.5344647,36.9975685,12.4738339\r\n2011,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2545595,1.2675062,9.1829049,66.2315233,66.6451674,65.406689,29.8432975,11.7166584,16.9760526,67.7235605,42.4043492,39.7185908,14.5152291,9.9285796,52.8791845,3.5849126,37.0048071,13.505168,1.3039399,1.352249,8.9527818,66.4743907,66.8723303,66.4649898,29.9604548,11.8057467,17.6073357,67.4629666,42.9608147,40.5691585,14.423606,9.8349126,52.143046,3.5344647,36.9975685,12.4738339,1.2163917,1.2652414,8.8853126,66.226891,66.4879031,65.2485049,30.5833879,10.8394456,17.4889062,67.6604406,43.8914252,39.7077209,14.0978388,9.7426358,50.3824795,3.6399107,36.4781682,11.1227212\r\n2012,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3039399,1.352249,8.9527818,66.4743907,66.8723303,66.4649898,29.9604548,11.8057467,17.6073357,67.4629666,42.9608147,40.5691585,14.423606,9.8349126,52.143046,3.5344647,36.9975685,12.4738339,1.2163917,1.2652414,8.8853126,66.226891,66.4879031,65.2485049,30.5833879,10.8394456,17.4889062,67.6604406,43.8914252,39.7077209,14.0978388,9.7426358,50.3824795,3.6399107,36.4781682,11.1227212,1.2293601,1.297497,9.5456399,66.4164662,66.854176,64.9799712,29.0607647,9.2696573,17.3989871,67.846965,44.4464257,40.1799754,14.4879717,10.0257297,49.367646,3.6997949,35.7930018,9.7587987\r\n2013,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2163917,1.2652414,8.8853126,66.226891,66.4879031,65.2485049,30.5833879,10.8394456,17.4889062,67.6604406,43.8914252,39.7077209,14.0978388,9.7426358,50.3824795,3.6399107,36.4781682,11.1227212,1.2293601,1.297497,9.5456399,66.4164662,66.854176,64.9799712,29.0607647,9.2696573,17.3989871,67.846965,44.4464257,40.1799754,14.4879717,10.0257297,49.367646,3.6997949,35.7930018,9.7587987,1.1489398,1.2182133,8.9667955,66.4937818,67.0591396,65.4822946,28.2073398,9.9448581,18.6187593,67.5626153,43.3806135,39.889638,13.5437631,9.179501,49.3589488,3.8791811,35.55486,9.1014118\r\n2014,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2293601,1.297497,9.5456399,66.4164662,66.854176,64.9799712,29.0607647,9.2696573,17.3989871,67.846965,44.4464257,40.1799754,14.4879717,10.0257297,49.367646,3.6997949,35.7930018,9.7587987,1.1489398,1.2182133,8.9667955,66.4937818,67.0591396,65.4822946,28.2073398,9.9448581,18.6187593,67.5626153,43.3806135,39.889638,13.5437631,9.179501,49.3589488,3.8791811,35.55486,9.1014118,1.1416362,1.1977746,8.8672876,67.0643262,68.2066376,65.5099813,27.5277977,8.8419699,18.2128188,67.5855573,42.4560125,40.4637652,13.3715639,8.9879279,49.0396583,3.4722289,34.9505344,8.0796551\r\n2015,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1489398,1.2182133,8.9667955,66.4937818,67.0591396,65.4822946,28.2073398,9.9448581,18.6187593,67.5626153,43.3806135,39.889638,13.5437631,9.179501,49.3589488,3.8791811,35.55486,9.1014118,1.1416362,1.1977746,8.8672876,67.0643262,68.2066376,65.5099813,27.5277977,8.8419699,18.2128188,67.5855573,42.4560125,40.4637652,13.3715639,8.9879279,49.0396583,3.4722289,34.9505344,8.0796551,1.3142579,1.3269447,9.1813867,66.3120403,67.1099138,64.1184331,27.4066674,8.0380948,18.1051338,68.2299214,42.6878997,40.0479102,13.7062665,9.1827472,48.632547,3.6762394,34.6373957,7.2966829\r\n2016,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1416362,1.1977746,8.8672876,67.0643262,68.2066376,65.5099813,27.5277977,8.8419699,18.2128188,67.5855573,42.4560125,40.4637652,13.3715639,8.9879279,49.0396583,3.4722289,34.9505344,8.0796551,1.3142579,1.3269447,9.1813867,66.3120403,67.1099138,64.1184331,27.4066674,8.0380948,18.1051338,68.2299214,42.6878997,40.0479102,13.7062665,9.1827472,48.632547,3.6762394,34.6373957,7.2966829,1.1866407,1.1852026,8.9281007,65.8005143,68.4407138,63.4071278,26.8763587,9.611918,17.8062325,68.8614564,41.696922,39.9423186,13.5914807,9.0866983,47.9084269,3.8299912,36.2640998,6.0794157\r\n2017,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3142579,1.3269447,9.1813867,66.3120403,67.1099138,64.1184331,27.4066674,8.0380948,18.1051338,68.2299214,42.6878997,40.0479102,13.7062665,9.1827472,48.632547,3.6762394,34.6373957,7.2966829,1.1866407,1.1852026,8.9281007,65.8005143,68.4407138,63.4071278,26.8763587,9.611918,17.8062325,68.8614564,41.696922,39.9423186,13.5914807,9.0866983,47.9084269,3.8299912,36.2640998,6.0794157,1.20724,1.1911015,8.5996341,67.2999108,68.850512,62.2893817,26.1776184,9.3788518,17.9397799,69.4467109,41.6823352,40.7143298,13.4288378,8.7374014,47.300478,3.7980909,36.3788262,6.7775036\r\n2018,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1866407,1.1852026,8.9281007,65.8005143,68.4407138,63.4071278,26.8763587,9.611918,17.8062325,68.8614564,41.696922,39.9423186,13.5914807,9.0866983,47.9084269,3.8299912,36.2640998,6.0794157,1.20724,1.1911015,8.5996341,67.2999108,68.850512,62.2893817,26.1776184,9.3788518,17.9397799,69.4467109,41.6823352,40.7143298,13.4288378,8.7374014,47.300478,3.7980909,36.3788262,6.7775036,1.3006419,1.2843456,8.9708915,67.7288376,69.6289713,61.9380716,25.4406436,9.7049752,17.4633255,69.0722027,41.0395579,40.6580729,13.8527451,8.6797857,47.3960208,3.7645097,37.1341113,6.9920697\r\n2019,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.20724,1.1911015,8.5996341,67.2999108,68.850512,62.2893817,26.1776184,9.3788518,17.9397799,69.4467109,41.6823352,40.7143298,13.4288378,8.7374014,47.300478,3.7980909,36.3788262,6.7775036,1.3006419,1.2843456,8.9708915,67.7288376,69.6289713,61.9380716,25.4406436,9.7049752,17.4633255,69.0722027,41.0395579,40.6580729,13.8527451,8.6797857,47.3960208,3.7645097,37.1341113,6.9920697,1.1609906,1.1088141,8.2468758,66.3512703,68.6499403,62.2149145,25.9826522,10.2868977,16.790689,68.8462544,40.3706885,39.8265114,13.0108604,8.3493,46.4188024,3.9482556,37.3783129,6.3342383\r\n2020,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3006419,1.2843456,8.9708915,67.7288376,69.6289713,61.9380716,25.4406436,9.7049752,17.4633255,69.0722027,41.0395579,40.6580729,13.8527451,8.6797857,47.3960208,3.7645097,37.1341113,6.9920697,1.1609906,1.1088141,8.2468758,66.3512703,68.6499403,62.2149145,25.9826522,10.2868977,16.790689,68.8462544,40.3706885,39.8265114,13.0108604,8.3493,46.4188024,3.9482556,37.3783129,6.3342383,1.1152258,1.0710172,8.5446082,66.4847614,68.5995512,62.0640237,25.8658966,9.2389881,15.5465532,68.1419381,40.7399039,39.8125978,13.149611,8.5511823,45.6867722,3.6662321,37.2085187,5.8583251\r\n2021,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1609906,1.1088141,8.2468758,66.3512703,68.6499403,62.2149145,25.9826522,10.2868977,16.790689,68.8462544,40.3706885,39.8265114,13.0108604,8.3493,46.4188024,3.9482556,37.3783129,6.3342383,1.1152258,1.0710172,8.5446082,66.4847614,68.5995512,62.0640237,25.8658966,9.2389881,15.5465532,68.1419381,40.7399039,39.8125978,13.149611,8.5511823,45.6867722,3.6662321,37.2085187,5.8583251,1.0350902,0.9915615,8.5443515,65.8772656,67.649348,60.8816171,26.5776554,9.4935965,15.6297446,68.4276911,41.0617395,39.962963,12.8288399,8.4339156,45.1326234,4.3313642,37.8222641,6.0160567\r\n2022,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1152258,1.0710172,8.5446082,66.4847614,68.5995512,62.0640237,25.8658966,9.2389881,15.5465532,68.1419381,40.7399039,39.8125978,13.149611,8.5511823,45.6867722,3.6662321,37.2085187,5.8583251,1.0350902,0.9915615,8.5443515,65.8772656,67.649348,60.8816171,26.5776554,9.4935965,15.6297446,68.4276911,41.0617395,39.962963,12.8288399,8.4339156,45.1326234,4.3313642,37.8222641,6.0160567,0.9842238,0.9706479,8.0955539,66.6691188,68.822991,61.1775669,26.9020896,9.9029618,15.2050984,69.0262643,41.2541957,39.8876591,12.8297986,8.1617825,44.9227716,4.4022301,36.6517516,6.4950853\r\n2023,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0350902,0.9915615,8.5443515,65.8772656,67.649348,60.8816171,26.5776554,9.4935965,15.6297446,68.4276911,41.0617395,39.962963,12.8288399,8.4339156,45.1326234,4.3313642,37.8222641,6.0160567,0.9842238,0.9706479,8.0955539,66.6691188,68.822991,61.1775669,26.9020896,9.9029618,15.2050984,69.0262643,41.2541957,39.8876591,12.8297986,8.1617825,44.9227716,4.4022301,36.6517516,6.4950853,1.0285814,1.0221214,8.3402942,66.167049,67.2723313,61.4819936,27.3914889,8.4046636,15.5724492,68.5587182,41.8019592,40.5090548,13.0320539,8.222771,45.0419746,4.270621,35.1343506,7.27481\r\n2024,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9842238,0.9706479,8.0955539,66.6691188,68.822991,61.1775669,26.9020896,9.9029618,15.2050984,69.0262643,41.2541957,39.8876591,12.8297986,8.1617825,44.9227716,4.4022301,36.6517516,6.4950853,1.0285814,1.0221214,8.3402942,66.167049,67.2723313,61.4819936,27.3914889,8.4046636,15.5724492,68.5587182,41.8019592,40.5090548,13.0320539,8.222771,45.0419746,4.270621,35.1343506,7.27481,0.9148782,0.9613606,9.2464381,63.9481054,66.5228538,60.7643194,27.9567151,8.0315778,15.2630893,67.3071974,42.1510096,39.1164542,13.5691071,9.0505541,44.7153528,4.2775423,33.8502197,6.5068131\r\n2025,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0285814,1.0221214,8.3402942,66.167049,67.2723313,61.4819936,27.3914889,8.4046636,15.5724492,68.5587182,41.8019592,40.5090548,13.0320539,8.222771,45.0419746,4.270621,35.1343506,7.27481,0.9148782,0.9613606,9.2464381,63.9481054,66.5228538,60.7643194,27.9567151,8.0315778,15.2630893,67.3071974,42.1510096,39.1164542,13.5691071,9.0505541,44.7153528,4.2775423,33.8502197,6.5068131,0.8995793,0.9454508,9.0038694,64.0110814,65.560251,61.2645034,28.4705846,7.730301,15.0315116,67.4977772,41.9389558,39.0929356,13.2384126,9.0074434,44.4428754,4.3557969,33.2855582,7.241343\r\n2026,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9148782,0.9613606,9.2464381,63.9481054,66.5228538,60.7643194,27.9567151,8.0315778,15.2630893,67.3071974,42.1510096,39.1164542,13.5691071,9.0505541,44.7153528,4.2775423,33.8502197,6.5068131,0.8995793,0.9454508,9.0038694,64.0110814,65.560251,61.2645034,28.4705846,7.730301,15.0315116,67.4977772,41.9389558,39.0929356,13.2384126,9.0074434,44.4428754,4.3557969,33.2855582,7.241343,0.9156015,0.9853689,9.5280952,63.6119504,65.4211855,60.5028956,27.8449613,7.3033385,14.7876079,67.3939949,41.1671678,38.7953588,13.8252961,9.3527939,44.9183754,4.1366886,32.3727002,8.3143148\r\n2027,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8995793,0.9454508,9.0038694,64.0110814,65.560251,61.2645034,28.4705846,7.730301,15.0315116,67.4977772,41.9389558,39.0929356,13.2384126,9.0074434,44.4428754,4.3557969,33.2855582,7.241343,0.9156015,0.9853689,9.5280952,63.6119504,65.4211855,60.5028956,27.8449613,7.3033385,14.7876079,67.3939949,41.1671678,38.7953588,13.8252961,9.3527939,44.9183754,4.1366886,32.3727002,8.3143148,1.1447072,1.2082147,9.7978183,62.9380794,65.0695064,60.6627606,28.4214823,7.2341853,15.2959868,68.8250931,42.7518784,37.9906384,14.3328812,9.5508526,44.573765,4.0667171,32.6858059,8.8043146\r\n2028,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9156015,0.9853689,9.5280952,63.6119504,65.4211855,60.5028956,27.8449613,7.3033385,14.7876079,67.3939949,41.1671678,38.7953588,13.8252961,9.3527939,44.9183754,4.1366886,32.3727002,8.3143148,1.1447072,1.2082147,9.7978183,62.9380794,65.0695064,60.6627606,28.4214823,7.2341853,15.2959868,68.8250931,42.7518784,37.9906384,14.3328812,9.5508526,44.573765,4.0667171,32.6858059,8.8043146,1.165839,1.229831,10.0065848,62.7166131,65.3884743,61.0798273,27.9756012,7.2529824,15.644849,69.3464174,42.8571119,37.2792822,14.5126699,9.7863744,44.3457597,3.8908841,32.0446714,10.1789372\r\n2029,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1447072,1.2082147,9.7978183,62.9380794,65.0695064,60.6627606,28.4214823,7.2341853,15.2959868,68.8250931,42.7518784,37.9906384,14.3328812,9.5508526,44.573765,4.0667171,32.6858059,8.8043146,1.165839,1.229831,10.0065848,62.7166131,65.3884743,61.0798273,27.9756012,7.2529824,15.644849,69.3464174,42.8571119,37.2792822,14.5126699,9.7863744,44.3457597,3.8908841,32.0446714,10.1789372,1.0999139,1.1406782,9.936372,61.8335924,64.602918,60.8583505,28.0455205,6.7321129,15.4319988,68.0036592,42.5463227,36.4731682,14.1537941,9.7160902,43.28122,3.8877792,31.8904416,11.0189338\r\n2030,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.3564185,4.3897344,41.2264434,68.1766751,67.5657748,59.9807442,24.4278463,12.264597,15.8658837,60.0696788,29.6939461,51.3164864,47.7374366,41.6809844,60.3168091,2.7920624,34.9508584,27.4663525,4.3262094,4.3806329,41.7598834,68.293519,67.3971998,60.5138528,22.8240563,12.9056378,15.6742862,59.2129905,29.6398019,51.0982976,48.3250508,42.2351962,60.6633376,2.7201017,35.1245452,28.4244921,4.5088053,4.5710753,42.2656825,68.8892725,68.3228088,60.3602736,21.1211698,12.883223,15.5600232,59.001981,30.1266086,52.0533912,48.8457551,42.6641306,61.093317,2.738709,35.3647361,28.7083353\r\n2031,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.3262094,4.3806329,41.7598834,68.293519,67.3971998,60.5138528,22.8240563,12.9056378,15.6742862,59.2129905,29.6398019,51.0982976,48.3250508,42.2351962,60.6633376,2.7201017,35.1245452,28.4244921,4.5088053,4.5710753,42.2656825,68.8892725,68.3228088,60.3602736,21.1211698,12.883223,15.5600232,59.001981,30.1266086,52.0533912,48.8457551,42.6641306,61.093317,2.738709,35.3647361,28.7083353,4.6474322,4.709773,43.0415193,69.5601445,69.0277662,60.630611,20.516145,13.4181636,15.5249626,58.3777747,29.9434297,52.2277559,49.4780431,43.3461698,61.6982257,2.6688758,34.7318774,30.4483558\r\n2032,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5088053,4.5710753,42.2656825,68.8892725,68.3228088,60.3602736,21.1211698,12.883223,15.5600232,59.001981,30.1266086,52.0533912,48.8457551,42.6641306,61.093317,2.738709,35.3647361,28.7083353,4.6474322,4.709773,43.0415193,69.5601445,69.0277662,60.630611,20.516145,13.4181636,15.5249626,58.3777747,29.9434297,52.2277559,49.4780431,43.3461698,61.6982257,2.6688758,34.7318774,30.4483558,4.6201185,4.6626513,43.3866341,69.172665,68.9412935,60.5939218,19.8551916,13.6788772,15.6787265,58.1630158,29.4245392,52.2308079,49.6721208,43.5949478,62.07451,2.8680139,34.5761888,31.3083259\r\n2033,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.6474322,4.709773,43.0415193,69.5601445,69.0277662,60.630611,20.516145,13.4181636,15.5249626,58.3777747,29.9434297,52.2277559,49.4780431,43.3461698,61.6982257,2.6688758,34.7318774,30.4483558,4.6201185,4.6626513,43.3866341,69.172665,68.9412935,60.5939218,19.8551916,13.6788772,15.6787265,58.1630158,29.4245392,52.2308079,49.6721208,43.5949478,62.07451,2.8680139,34.5761888,31.3083259,4.5959669,4.6646908,43.2662041,69.0780076,69.7205788,60.4002717,19.2211093,13.8559887,16.459846,58.3115514,29.1882417,52.3900228,50.2031397,43.9558832,62.0860677,2.6793893,34.4792246,33.0129951\r\n2034,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.6201185,4.6626513,43.3866341,69.172665,68.9412935,60.5939218,19.8551916,13.6788772,15.6787265,58.1630158,29.4245392,52.2308079,49.6721208,43.5949478,62.07451,2.8680139,34.5761888,31.3083259,4.5959669,4.6646908,43.2662041,69.0780076,69.7205788,60.4002717,19.2211093,13.8559887,16.459846,58.3115514,29.1882417,52.3900228,50.2031397,43.9558832,62.0860677,2.6793893,34.4792246,33.0129951,4.5354881,4.6290761,43.6746042,69.0647231,69.9163435,61.4867425,18.8455294,14.2151758,16.6412228,57.6959652,28.5307928,52.6907791,50.3123415,43.9096613,62.7769665,2.5490654,34.684686,33.1354058\r\n2035,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5959669,4.6646908,43.2662041,69.0780076,69.7205788,60.4002717,19.2211093,13.8559887,16.459846,58.3115514,29.1882417,52.3900228,50.2031397,43.9558832,62.0860677,2.6793893,34.4792246,33.0129951,4.5354881,4.6290761,43.6746042,69.0647231,69.9163435,61.4867425,18.8455294,14.2151758,16.6412228,57.6959652,28.5307928,52.6907791,50.3123415,43.9096613,62.7769665,2.5490654,34.684686,33.1354058,4.5989939,4.7016185,43.3147499,68.3446091,69.6141204,61.0991091,18.9971294,14.9818039,16.9624261,57.4952097,27.899639,52.4613248,50.2068872,43.74301,63.1890035,2.6707791,34.6537845,33.9131399\r\n2036,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5354881,4.6290761,43.6746042,69.0647231,69.9163435,61.4867425,18.8455294,14.2151758,16.6412228,57.6959652,28.5307928,52.6907791,50.3123415,43.9096613,62.7769665,2.5490654,34.684686,33.1354058,4.5989939,4.7016185,43.3147499,68.3446091,69.6141204,61.0991091,18.9971294,14.9818039,16.9624261,57.4952097,27.899639,52.4613248,50.2068872,43.74301,63.1890035,2.6707791,34.6537845,33.9131399,4.5658009,4.6588473,43.7483015,68.6360688,70.0348247,61.4778344,18.8552793,15.0000449,17.2301686,57.973748,27.7893892,52.9147526,50.3602376,43.9097159,63.6914099,2.6968532,34.2345304,34.3104723\r\n2037,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5989939,4.7016185,43.3147499,68.3446091,69.6141204,61.0991091,18.9971294,14.9818039,16.9624261,57.4952097,27.899639,52.4613248,50.2068872,43.74301,63.1890035,2.6707791,34.6537845,33.9131399,4.5658009,4.6588473,43.7483015,68.6360688,70.0348247,61.4778344,18.8552793,15.0000449,17.2301686,57.973748,27.7893892,52.9147526,50.3602376,43.9097159,63.6914099,2.6968532,34.2345304,34.3104723,4.5482474,4.6404356,44.0681743,67.6463498,69.8427027,60.7987426,18.8764591,14.9579965,17.8793672,58.3092638,27.620404,52.9370587,50.5995871,44.3181835,63.9977975,2.5414679,34.7491482,35.8487114\r\n2038,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5658009,4.6588473,43.7483015,68.6360688,70.0348247,61.4778344,18.8552793,15.0000449,17.2301686,57.973748,27.7893892,52.9147526,50.3602376,43.9097159,63.6914099,2.6968532,34.2345304,34.3104723,4.5482474,4.6404356,44.0681743,67.6463498,69.8427027,60.7987426,18.8764591,14.9579965,17.8793672,58.3092638,27.620404,52.9370587,50.5995871,44.3181835,63.9977975,2.5414679,34.7491482,35.8487114,4.4283195,4.5319253,44.0880378,66.3506989,68.7507769,60.3674638,18.9052827,14.5833729,17.8980346,58.7880862,28.0090089,52.550984,50.5333328,44.2260863,64.2164493,2.6163153,35.2834097,35.1527069\r\n2039,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5482474,4.6404356,44.0681743,67.6463498,69.8427027,60.7987426,18.8764591,14.9579965,17.8793672,58.3092638,27.620404,52.9370587,50.5995871,44.3181835,63.9977975,2.5414679,34.7491482,35.8487114,4.4283195,4.5319253,44.0880378,66.3506989,68.7507769,60.3674638,18.9052827,14.5833729,17.8980346,58.7880862,28.0090089,52.550984,50.5333328,44.2260863,64.2164493,2.6163153,35.2834097,35.1527069,4.4931702,4.6239185,44.2852462,66.9251232,69.3865426,60.2310852,18.7826018,15.2370822,18.0222131,58.8073093,28.2125969,52.7051423,50.3409706,44.0858239,64.7032745,2.5592255,35.6257553,34.3803925\r\n2040,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.4283195,4.5319253,44.0880378,66.3506989,68.7507769,60.3674638,18.9052827,14.5833729,17.8980346,58.7880862,28.0090089,52.550984,50.5333328,44.2260863,64.2164493,2.6163153,35.2834097,35.1527069,4.4931702,4.6239185,44.2852462,66.9251232,69.3865426,60.2310852,18.7826018,15.2370822,18.0222131,58.8073093,28.2125969,52.7051423,50.3409706,44.0858239,64.7032745,2.5592255,35.6257553,34.3803925,4.425402,4.5271914,44.0172242,67.2758154,68.6318294,60.2531686,18.9673987,14.8525568,17.7728687,58.0650522,27.4180665,51.946056,49.862662,43.8708977,64.9599163,2.6528474,35.7653732,33.6565046\r\n2041,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.4931702,4.6239185,44.2852462,66.9251232,69.3865426,60.2310852,18.7826018,15.2370822,18.0222131,58.8073093,28.2125969,52.7051423,50.3409706,44.0858239,64.7032745,2.5592255,35.6257553,34.3803925,4.425402,4.5271914,44.0172242,67.2758154,68.6318294,60.2531686,18.9673987,14.8525568,17.7728687,58.0650522,27.4180665,51.946056,49.862662,43.8708977,64.9599163,2.6528474,35.7653732,33.6565046,4.2440609,4.348393,42.3370004,65.4616141,67.1969138,59.230447,18.9766674,14.8992866,17.4529873,58.4699217,27.9598293,50.7164698,49.1095392,43.250373,64.7567984,2.7339878,35.9052898,33.8519019\r\n2042,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.425402,4.5271914,44.0172242,67.2758154,68.6318294,60.2531686,18.9673987,14.8525568,17.7728687,58.0650522,27.4180665,51.946056,49.862662,43.8708977,64.9599163,2.6528474,35.7653732,33.6565046,4.2440609,4.348393,42.3370004,65.4616141,67.1969138,59.230447,18.9766674,14.8992866,17.4529873,58.4699217,27.9598293,50.7164698,49.1095392,43.250373,64.7567984,2.7339878,35.9052898,33.8519019,4.1750688,4.325119,42.0654579,65.3854809,67.2743179,58.9496243,19.3328905,14.4589848,17.2103036,58.4083944,28.2964828,51.0557275,48.9990089,43.0892286,64.6176054,2.5878143,36.5542922,34.4461485\r\n2043,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.2440609,4.348393,42.3370004,65.4616141,67.1969138,59.230447,18.9766674,14.8992866,17.4529873,58.4699217,27.9598293,50.7164698,49.1095392,43.250373,64.7567984,2.7339878,35.9052898,33.8519019,4.1750688,4.325119,42.0654579,65.3854809,67.2743179,58.9496243,19.3328905,14.4589848,17.2103036,58.4083944,28.2964828,51.0557275,48.9990089,43.0892286,64.6176054,2.5878143,36.5542922,34.4461485,4.0261936,4.1709824,41.3270889,64.6892836,66.4299623,58.7352971,19.5575495,15.1080113,17.2188198,58.656872,28.8090346,50.0812337,47.8422744,42.1276117,64.4520055,2.5597055,37.3098982,34.6410505\r\n2044,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1750688,4.325119,42.0654579,65.3854809,67.2743179,58.9496243,19.3328905,14.4589848,17.2103036,58.4083944,28.2964828,51.0557275,48.9990089,43.0892286,64.6176054,2.5878143,36.5542922,34.4461485,4.0261936,4.1709824,41.3270889,64.6892836,66.4299623,58.7352971,19.5575495,15.1080113,17.2188198,58.656872,28.8090346,50.0812337,47.8422744,42.1276117,64.4520055,2.5597055,37.3098982,34.6410505,3.9896601,4.1356025,40.2986019,65.8069907,66.1830779,59.5231131,19.7353654,15.4453504,16.7507324,59.034614,29.4928581,49.9692285,47.0402416,41.1594053,64.3282159,2.6805135,37.7303156,33.9430036\r\n2045,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0261936,4.1709824,41.3270889,64.6892836,66.4299623,58.7352971,19.5575495,15.1080113,17.2188198,58.656872,28.8090346,50.0812337,47.8422744,42.1276117,64.4520055,2.5597055,37.3098982,34.6410505,3.9896601,4.1356025,40.2986019,65.8069907,66.1830779,59.5231131,19.7353654,15.4453504,16.7507324,59.034614,29.4928581,49.9692285,47.0402416,41.1594053,64.3282159,2.6805135,37.7303156,33.9430036,3.9821263,4.1025714,39.2436224,65.7689206,66.1833571,59.9365125,19.7492998,15.3836116,16.7717104,59.2502442,29.3802321,50.2160199,46.270309,40.0476895,64.4768886,2.4615621,38.1564656,34.8586512\r\n2046,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.9896601,4.1356025,40.2986019,65.8069907,66.1830779,59.5231131,19.7353654,15.4453504,16.7507324,59.034614,29.4928581,49.9692285,47.0402416,41.1594053,64.3282159,2.6805135,37.7303156,33.9430036,3.9821263,4.1025714,39.2436224,65.7689206,66.1833571,59.9365125,19.7492998,15.3836116,16.7717104,59.2502442,29.3802321,50.2160199,46.270309,40.0476895,64.4768886,2.4615621,38.1564656,34.8586512,3.870424,3.9816436,37.6935595,64.6990223,65.3807793,59.988455,19.8341636,15.3967712,17.6025098,58.0055752,29.3035402,49.4575949,45.0754677,38.6482037,64.2322384,2.3812769,38.4007999,35.4053944\r\n2047,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.9821263,4.1025714,39.2436224,65.7689206,66.1833571,59.9365125,19.7492998,15.3836116,16.7717104,59.2502442,29.3802321,50.2160199,46.270309,40.0476895,64.4768886,2.4615621,38.1564656,34.8586512,3.870424,3.9816436,37.6935595,64.6990223,65.3807793,59.988455,19.8341636,15.3967712,17.6025098,58.0055752,29.3035402,49.4575949,45.0754677,38.6482037,64.2322384,2.3812769,38.4007999,35.4053944,3.7378627,3.8515524,36.7143454,65.1946039,66.4159778,59.3162634,19.7677229,15.648981,17.9042211,58.3704177,30.4689213,50.5603785,44.595432,37.9947315,64.6178602,2.2579405,38.442165,35.3480723\r\n2048,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.870424,3.9816436,37.6935595,64.6990223,65.3807793,59.988455,19.8341636,15.3967712,17.6025098,58.0055752,29.3035402,49.4575949,45.0754677,38.6482037,64.2322384,2.3812769,38.4007999,35.4053944,3.7378627,3.8515524,36.7143454,65.1946039,66.4159778,59.3162634,19.7677229,15.648981,17.9042211,58.3704177,30.4689213,50.5603785,44.595432,37.9947315,64.6178602,2.2579405,38.442165,35.3480723,3.6533782,3.7465527,36.8783638,66.8185439,68.0072438,58.8992398,19.6990504,15.689474,18.4019921,58.3945059,30.0389542,52.1136962,44.3470554,37.876466,64.5032577,2.3905618,38.6238916,35.0268534\r\n2049,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7378627,3.8515524,36.7143454,65.1946039,66.4159778,59.3162634,19.7677229,15.648981,17.9042211,58.3704177,30.4689213,50.5603785,44.595432,37.9947315,64.6178602,2.2579405,38.442165,35.3480723,3.6533782,3.7465527,36.8783638,66.8185439,68.0072438,58.8992398,19.6990504,15.689474,18.4019921,58.3945059,30.0389542,52.1136962,44.3470554,37.876466,64.5032577,2.3905618,38.6238916,35.0268534,3.444953,3.4920276,35.9540159,66.7985222,68.1777855,59.1025625,19.3337333,15.8949228,18.2964416,58.2037422,30.3344865,51.5714401,43.332154,36.8135243,64.9231547,2.3883407,38.334142,34.0194075\r\n2050,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6533782,3.7465527,36.8783638,66.8185439,68.0072438,58.8992398,19.6990504,15.689474,18.4019921,58.3945059,30.0389542,52.1136962,44.3470554,37.876466,64.5032577,2.3905618,38.6238916,35.0268534,3.444953,3.4920276,35.9540159,66.7985222,68.1777855,59.1025625,19.3337333,15.8949228,18.2964416,58.2037422,30.3344865,51.5714401,43.332154,36.8135243,64.9231547,2.3883407,38.334142,34.0194075,3.2987953,3.3347148,34.8211114,66.5944347,67.9637932,58.5904667,19.3324922,15.0666137,18.6616805,58.7951763,30.3991936,50.5853551,42.6650542,36.062963,64.8171822,2.4963607,38.4026579,33.9807952\r\n2051,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.444953,3.4920276,35.9540159,66.7985222,68.1777855,59.1025625,19.3337333,15.8949228,18.2964416,58.2037422,30.3344865,51.5714401,43.332154,36.8135243,64.9231547,2.3883407,38.334142,34.0194075,3.2987953,3.3347148,34.8211114,66.5944347,67.9637932,58.5904667,19.3324922,15.0666137,18.6616805,58.7951763,30.3991936,50.5853551,42.6650542,36.062963,64.8171822,2.4963607,38.4026579,33.9807952,3.0324746,3.0603039,34.2804087,65.6263336,67.2024911,57.3800813,19.6024184,15.3452721,18.5670935,58.4399982,30.6702995,49.3784809,41.9934154,35.546045,65.0271333,2.5744351,37.2600624,34.309033\r\n2052,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2987953,3.3347148,34.8211114,66.5944347,67.9637932,58.5904667,19.3324922,15.0666137,18.6616805,58.7951763,30.3991936,50.5853551,42.6650542,36.062963,64.8171822,2.4963607,38.4026579,33.9807952,3.0324746,3.0603039,34.2804087,65.6263336,67.2024911,57.3800813,19.6024184,15.3452721,18.5670935,58.4399982,30.6702995,49.3784809,41.9934154,35.546045,65.0271333,2.5744351,37.2600624,34.309033,2.7400841,2.8012814,33.8359861,65.354838,66.8421957,56.494848,19.8077304,15.2868755,18.9895694,58.7796347,30.7714443,48.8085682,41.2629572,35.1543612,64.4632836,2.6867557,36.6637749,33.9813542\r\n2053,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0324746,3.0603039,34.2804087,65.6263336,67.2024911,57.3800813,19.6024184,15.3452721,18.5670935,58.4399982,30.6702995,49.3784809,41.9934154,35.546045,65.0271333,2.5744351,37.2600624,34.309033,2.7400841,2.8012814,33.8359861,65.354838,66.8421957,56.494848,19.8077304,15.2868755,18.9895694,58.7796347,30.7714443,48.8085682,41.2629572,35.1543612,64.4632836,2.6867557,36.6637749,33.9813542,2.5531885,2.6077827,33.0318682,65.3167876,66.2065365,56.4982119,20.1231629,14.6879143,18.6186954,60.0958914,31.1329269,49.281498,40.6975054,34.7476944,64.3578631,2.6641401,36.5158254,34.8259989\r\n2054,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7400841,2.8012814,33.8359861,65.354838,66.8421957,56.494848,19.8077304,15.2868755,18.9895694,58.7796347,30.7714443,48.8085682,41.2629572,35.1543612,64.4632836,2.6867557,36.6637749,33.9813542,2.5531885,2.6077827,33.0318682,65.3167876,66.2065365,56.4982119,20.1231629,14.6879143,18.6186954,60.0958914,31.1329269,49.281498,40.6975054,34.7476944,64.3578631,2.6641401,36.5158254,34.8259989,2.5386421,2.5990501,32.6913361,63.8663254,64.4101895,56.2647234,20.8342866,14.6210589,18.3200246,60.6417005,30.7959673,47.3991815,40.3055709,34.3724405,64.0951758,2.8585718,36.6348945,34.516684\r\n2055,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5531885,2.6077827,33.0318682,65.3167876,66.2065365,56.4982119,20.1231629,14.6879143,18.6186954,60.0958914,31.1329269,49.281498,40.6975054,34.7476944,64.3578631,2.6641401,36.5158254,34.8259989,2.5386421,2.5990501,32.6913361,63.8663254,64.4101895,56.2647234,20.8342866,14.6210589,18.3200246,60.6417005,30.7959673,47.3991815,40.3055709,34.3724405,64.0951758,2.8585718,36.6348945,34.516684,2.4832004,2.5476381,31.3792113,63.720402,63.9169333,57.3450449,21.5244666,14.3282525,18.5491809,60.8794514,31.2175783,46.8855376,39.1343408,33.1735653,64.0812646,2.8948903,36.4706933,34.6932324\r\n2056,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5386421,2.5990501,32.6913361,63.8663254,64.4101895,56.2647234,20.8342866,14.6210589,18.3200246,60.6417005,30.7959673,47.3991815,40.3055709,34.3724405,64.0951758,2.8585718,36.6348945,34.516684,2.4832004,2.5476381,31.3792113,63.720402,63.9169333,57.3450449,21.5244666,14.3282525,18.5491809,60.8794514,31.2175783,46.8855376,39.1343408,33.1735653,64.0812646,2.8948903,36.4706933,34.6932324,2.422803,2.4999204,30.736863,62.9460698,63.6374705,56.9917583,22.2072251,14.4470506,18.8193959,61.0207418,31.3784671,46.7703043,38.4825175,32.6958181,63.5876941,2.917212,36.6478823,35.566032\r\n2057,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4832004,2.5476381,31.3792113,63.720402,63.9169333,57.3450449,21.5244666,14.3282525,18.5491809,60.8794514,31.2175783,46.8855376,39.1343408,33.1735653,64.0812646,2.8948903,36.4706933,34.6932324,2.422803,2.4999204,30.736863,62.9460698,63.6374705,56.9917583,22.2072251,14.4470506,18.8193959,61.0207418,31.3784671,46.7703043,38.4825175,32.6958181,63.5876941,2.917212,36.6478823,35.566032,2.3414615,2.4289419,30.5226843,62.4840287,63.7958768,56.854193,22.6926783,14.7166691,18.3152923,60.816085,31.3463875,46.4358123,37.788833,32.0109684,63.1399405,2.8244076,35.9803453,34.6679677\r\n2058,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.422803,2.4999204,30.736863,62.9460698,63.6374705,56.9917583,22.2072251,14.4470506,18.8193959,61.0207418,31.3784671,46.7703043,38.4825175,32.6958181,63.5876941,2.917212,36.6478823,35.566032,2.3414615,2.4289419,30.5226843,62.4840287,63.7958768,56.854193,22.6926783,14.7166691,18.3152923,60.816085,31.3463875,46.4358123,37.788833,32.0109684,63.1399405,2.8244076,35.9803453,34.6679677,2.2498416,2.3277513,29.4039118,62.5705569,64.1731902,57.5731445,22.5008037,14.3907359,18.752433,61.0913245,30.99118,47.0336714,36.5886008,30.6737454,62.8081999,2.855677,36.4054834,34.0404737\r\n2059,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3414615,2.4289419,30.5226843,62.4840287,63.7958768,56.854193,22.6926783,14.7166691,18.3152923,60.816085,31.3463875,46.4358123,37.788833,32.0109684,63.1399405,2.8244076,35.9803453,34.6679677,2.2498416,2.3277513,29.4039118,62.5705569,64.1731902,57.5731445,22.5008037,14.3907359,18.752433,61.0913245,30.99118,47.0336714,36.5886008,30.6737454,62.8081999,2.855677,36.4054834,34.0404737,2.1740618,2.2445386,27.9734307,62.878205,63.8141402,58.0962426,22.5053885,14.3118677,17.8393114,61.3270194,31.0724706,46.5192277,35.336721,29.6208278,62.5287318,2.9080981,36.0472337,34.0389579\r\n2060,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2498416,2.3277513,29.4039118,62.5705569,64.1731902,57.5731445,22.5008037,14.3907359,18.752433,61.0913245,30.99118,47.0336714,36.5886008,30.6737454,62.8081999,2.855677,36.4054834,34.0404737,2.1740618,2.2445386,27.9734307,62.878205,63.8141402,58.0962426,22.5053885,14.3118677,17.8393114,61.3270194,31.0724706,46.5192277,35.336721,29.6208278,62.5287318,2.9080981,36.0472337,34.0389579,2.1059656,2.166024,27.0829903,62.4896944,64.1457617,57.8523825,23.0025517,14.3413167,16.8279379,61.9413964,31.7328227,45.3321806,34.3699139,28.6623552,62.1385707,2.9478654,35.5497847,32.0432203\r\n2061,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1740618,2.2445386,27.9734307,62.878205,63.8141402,58.0962426,22.5053885,14.3118677,17.8393114,61.3270194,31.0724706,46.5192277,35.336721,29.6208278,62.5287318,2.9080981,36.0472337,34.0389579,2.1059656,2.166024,27.0829903,62.4896944,64.1457617,57.8523825,23.0025517,14.3413167,16.8279379,61.9413964,31.7328227,45.3321806,34.3699139,28.6623552,62.1385707,2.9478654,35.5497847,32.0432203,1.9905826,2.0348204,25.8310793,62.636141,64.4215297,57.74054,23.0095662,13.9819341,15.856012,62.6163747,32.4670236,45.2630447,32.6034387,27.2231202,61.4551317,2.9530335,34.846124,31.8014589\r\n2062,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1059656,2.166024,27.0829903,62.4896944,64.1457617,57.8523825,23.0025517,14.3413167,16.8279379,61.9413964,31.7328227,45.3321806,34.3699139,28.6623552,62.1385707,2.9478654,35.5497847,32.0432203,1.9905826,2.0348204,25.8310793,62.636141,64.4215297,57.74054,23.0095662,13.9819341,15.856012,62.6163747,32.4670236,45.2630447,32.6034387,27.2231202,61.4551317,2.9530335,34.846124,31.8014589,1.8627295,1.9156173,24.8875148,62.1478122,64.6081558,57.4755962,22.6845798,13.9082873,15.8812508,62.9814513,32.3564322,44.7077512,31.7899681,26.3519462,61.2325457,2.8386034,33.9860144,30.4721104\r\n2063,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9905826,2.0348204,25.8310793,62.636141,64.4215297,57.74054,23.0095662,13.9819341,15.856012,62.6163747,32.4670236,45.2630447,32.6034387,27.2231202,61.4551317,2.9530335,34.846124,31.8014589,1.8627295,1.9156173,24.8875148,62.1478122,64.6081558,57.4755962,22.6845798,13.9082873,15.8812508,62.9814513,32.3564322,44.7077512,31.7899681,26.3519462,61.2325457,2.8386034,33.9860144,30.4721104,1.7259947,1.7628806,23.3503244,63.0922607,65.0344401,58.6957508,21.7143912,13.8212179,16.2694781,61.6297997,30.7945074,44.530882,30.318105,24.9538702,61.167798,2.6986199,33.6262238,28.7816736\r\n2064,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8627295,1.9156173,24.8875148,62.1478122,64.6081558,57.4755962,22.6845798,13.9082873,15.8812508,62.9814513,32.3564322,44.7077512,31.7899681,26.3519462,61.2325457,2.8386034,33.9860144,30.4721104,1.7259947,1.7628806,23.3503244,63.0922607,65.0344401,58.6957508,21.7143912,13.8212179,16.2694781,61.6297997,30.7945074,44.530882,30.318105,24.9538702,61.167798,2.6986199,33.6262238,28.7816736,1.6127563,1.6318339,21.9974216,63.1295163,64.9222261,58.830136,21.1922322,13.9941807,16.1394411,60.3092266,30.4539503,45.0523539,28.7087376,23.6751772,61.6345101,2.7804838,33.5551936,28.5423435\r\n2065,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7259947,1.7628806,23.3503244,63.0922607,65.0344401,58.6957508,21.7143912,13.8212179,16.2694781,61.6297997,30.7945074,44.530882,30.318105,24.9538702,61.167798,2.6986199,33.6262238,28.7816736,1.6127563,1.6318339,21.9974216,63.1295163,64.9222261,58.830136,21.1922322,13.9941807,16.1394411,60.3092266,30.4539503,45.0523539,28.7087376,23.6751772,61.6345101,2.7804838,33.5551936,28.5423435,1.5551263,1.5708217,21.0041611,62.8783535,64.4264355,58.2241539,21.3896817,14.2909316,15.5976477,60.6073849,30.7445406,44.4737278,27.3558949,22.4371296,61.3110252,2.8191176,33.8833252,28.2777976\r\n2066,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6127563,1.6318339,21.9974216,63.1295163,64.9222261,58.830136,21.1922322,13.9941807,16.1394411,60.3092266,30.4539503,45.0523539,28.7087376,23.6751772,61.6345101,2.7804838,33.5551936,28.5423435,1.5551263,1.5708217,21.0041611,62.8783535,64.4264355,58.2241539,21.3896817,14.2909316,15.5976477,60.6073849,30.7445406,44.4737278,27.3558949,22.4371296,61.3110252,2.8191176,33.8833252,28.2777976,1.6871941,1.6877864,20.9978706,63.3194217,65.0592359,57.6726162,22.0633386,14.2101783,16.4897252,60.79324,31.4964993,44.7592674,26.59064,21.7366468,61.2015329,2.7706751,33.719313,27.2684351\r\n2067,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5551263,1.5708217,21.0041611,62.8783535,64.4264355,58.2241539,21.3896817,14.2909316,15.5976477,60.6073849,30.7445406,44.4737278,27.3558949,22.4371296,61.3110252,2.8191176,33.8833252,28.2777976,1.6871941,1.6877864,20.9978706,63.3194217,65.0592359,57.6726162,22.0633386,14.2101783,16.4897252,60.79324,31.4964993,44.7592674,26.59064,21.7366468,61.2015329,2.7706751,33.719313,27.2684351,1.6158552,1.6320007,19.9083174,63.1911892,64.4640917,57.5738656,22.1459812,13.7322798,16.6975965,61.0931208,31.749082,44.2503393,25.2771363,20.594085,60.2483713,2.9538425,33.8950506,27.5518019\r\n2068,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6871941,1.6877864,20.9978706,63.3194217,65.0592359,57.6726162,22.0633386,14.2101783,16.4897252,60.79324,31.4964993,44.7592674,26.59064,21.7366468,61.2015329,2.7706751,33.719313,27.2684351,1.6158552,1.6320007,19.9083174,63.1911892,64.4640917,57.5738656,22.1459812,13.7322798,16.6975965,61.0931208,31.749082,44.2503393,25.2771363,20.594085,60.2483713,2.9538425,33.8950506,27.5518019,1.521861,1.5511826,18.697448,62.9789876,65.0466858,58.4037104,22.5379274,14.1568905,17.4326441,60.9929958,32.0624129,44.205136,24.2103928,19.3567198,59.8796303,2.9777328,34.1938794,26.727244\r\n2069,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6158552,1.6320007,19.9083174,63.1911892,64.4640917,57.5738656,22.1459812,13.7322798,16.6975965,61.0931208,31.749082,44.2503393,25.2771363,20.594085,60.2483713,2.9538425,33.8950506,27.5518019,1.521861,1.5511826,18.697448,62.9789876,65.0466858,58.4037104,22.5379274,14.1568905,17.4326441,60.9929958,32.0624129,44.205136,24.2103928,19.3567198,59.8796303,2.9777328,34.1938794,26.727244,1.4785866,1.5035893,18.3493849,63.3356337,64.777553,57.7963925,22.962396,13.8928971,17.1876379,60.7700724,32.6809093,43.0502138,23.5792567,18.6836728,59.7304603,3.0235485,34.5312272,27.1443447\r\n2070,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.521861,1.5511826,18.697448,62.9789876,65.0466858,58.4037104,22.5379274,14.1568905,17.4326441,60.9929958,32.0624129,44.205136,24.2103928,19.3567198,59.8796303,2.9777328,34.1938794,26.727244,1.4785866,1.5035893,18.3493849,63.3356337,64.777553,57.7963925,22.962396,13.8928971,17.1876379,60.7700724,32.6809093,43.0502138,23.5792567,18.6836728,59.7304603,3.0235485,34.5312272,27.1443447,1.5506028,1.5758843,18.4293162,62.8305017,64.6589316,57.0219966,24.3171784,13.0405325,16.824125,63.0858143,34.658237,42.3441294,23.2576306,18.3685876,58.8152291,3.3447553,34.911596,27.2677635\r\n2071,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4785866,1.5035893,18.3493849,63.3356337,64.777553,57.7963925,22.962396,13.8928971,17.1876379,60.7700724,32.6809093,43.0502138,23.5792567,18.6836728,59.7304603,3.0235485,34.5312272,27.1443447,1.5506028,1.5758843,18.4293162,62.8305017,64.6589316,57.0219966,24.3171784,13.0405325,16.824125,63.0858143,34.658237,42.3441294,23.2576306,18.3685876,58.8152291,3.3447553,34.911596,27.2677635,1.6802848,1.7063396,17.6203843,62.8345072,64.4662225,57.5428675,25.3796504,12.5653162,16.9281542,65.4100498,36.887861,41.9010202,22.8482159,17.6517872,57.8421649,3.4742947,35.3984289,26.8335157\r\n2072,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5506028,1.5758843,18.4293162,62.8305017,64.6589316,57.0219966,24.3171784,13.0405325,16.824125,63.0858143,34.658237,42.3441294,23.2576306,18.3685876,58.8152291,3.3447553,34.911596,27.2677635,1.6802848,1.7063396,17.6203843,62.8345072,64.4662225,57.5428675,25.3796504,12.5653162,16.9281542,65.4100498,36.887861,41.9010202,22.8482159,17.6517872,57.8421649,3.4742947,35.3984289,26.8335157,1.7667796,1.8108828,17.6949512,62.6111438,64.1557793,58.500132,26.3526829,11.838265,16.7468596,66.846576,37.7218902,40.8185495,22.4656309,17.5893682,57.3596267,3.6417559,34.5048848,25.8241664\r\n2073,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6802848,1.7063396,17.6203843,62.8345072,64.4662225,57.5428675,25.3796504,12.5653162,16.9281542,65.4100498,36.887861,41.9010202,22.8482159,17.6517872,57.8421649,3.4742947,35.3984289,26.8335157,1.7667796,1.8108828,17.6949512,62.6111438,64.1557793,58.500132,26.3526829,11.838265,16.7468596,66.846576,37.7218902,40.8185495,22.4656309,17.5893682,57.3596267,3.6417559,34.5048848,25.8241664,1.6800285,1.7248551,16.6408925,61.855157,63.3050212,58.5413291,27.0643918,11.9065295,16.4664603,67.8789047,38.1021588,39.5392059,21.6974224,16.7039373,56.8538334,3.8596205,35.1895515,24.5123346\r\n2074,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7667796,1.8108828,17.6949512,62.6111438,64.1557793,58.500132,26.3526829,11.838265,16.7468596,66.846576,37.7218902,40.8185495,22.4656309,17.5893682,57.3596267,3.6417559,34.5048848,25.8241664,1.6800285,1.7248551,16.6408925,61.855157,63.3050212,58.5413291,27.0643918,11.9065295,16.4664603,67.8789047,38.1021588,39.5392059,21.6974224,16.7039373,56.8538334,3.8596205,35.1895515,24.5123346,1.7856587,1.8170151,16.596979,62.3381322,63.2450661,57.9028762,27.6140863,11.9852473,15.9329798,67.6727622,38.9170394,39.5817845,21.6085699,16.5687814,56.6998406,3.9279438,35.4639895,24.2363584\r\n2075,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6800285,1.7248551,16.6408925,61.855157,63.3050212,58.5413291,27.0643918,11.9065295,16.4664603,67.8789047,38.1021588,39.5392059,21.6974224,16.7039373,56.8538334,3.8596205,35.1895515,24.5123346,1.7856587,1.8170151,16.596979,62.3381322,63.2450661,57.9028762,27.6140863,11.9852473,15.9329798,67.6727622,38.9170394,39.5817845,21.6085699,16.5687814,56.6998406,3.9279438,35.4639895,24.2363584,1.797788,1.8251303,16.2795037,61.7723502,62.6258031,57.7605902,28.1917208,11.520903,16.3788517,67.4531674,39.5256167,40.0304513,21.1383018,16.1498569,55.8641008,3.8361438,35.6795503,23.1249743\r\n2076,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7856587,1.8170151,16.596979,62.3381322,63.2450661,57.9028762,27.6140863,11.9852473,15.9329798,67.6727622,38.9170394,39.5817845,21.6085699,16.5687814,56.6998406,3.9279438,35.4639895,24.2363584,1.797788,1.8251303,16.2795037,61.7723502,62.6258031,57.7605902,28.1917208,11.520903,16.3788517,67.4531674,39.5256167,40.0304513,21.1383018,16.1498569,55.8641008,3.8361438,35.6795503,23.1249743,1.7621843,1.784817,15.7268286,61.9614356,63.425456,58.2603613,29.0675812,11.1428345,15.7779973,68.4369336,40.1071808,41.9267622,20.3813715,15.4944431,54.9693508,4.0004007,35.8442056,20.6628793\r\n2077,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.797788,1.8251303,16.2795037,61.7723502,62.6258031,57.7605902,28.1917208,11.520903,16.3788517,67.4531674,39.5256167,40.0304513,21.1383018,16.1498569,55.8641008,3.8361438,35.6795503,23.1249743,1.7621843,1.784817,15.7268286,61.9614356,63.425456,58.2603613,29.0675812,11.1428345,15.7779973,68.4369336,40.1071808,41.9267622,20.3813715,15.4944431,54.9693508,4.0004007,35.8442056,20.6628793,1.6550911,1.6826646,14.8303953,62.052263,63.4457726,58.4324934,28.5014537,11.5532624,15.0187713,67.9442048,40.4161105,41.8626536,19.9357289,14.8909309,54.7515112,4.0020219,35.6565698,18.9436265\r\n2078,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7621843,1.784817,15.7268286,61.9614356,63.425456,58.2603613,29.0675812,11.1428345,15.7779973,68.4369336,40.1071808,41.9267622,20.3813715,15.4944431,54.9693508,4.0004007,35.8442056,20.6628793,1.6550911,1.6826646,14.8303953,62.052263,63.4457726,58.4324934,28.5014537,11.5532624,15.0187713,67.9442048,40.4161105,41.8626536,19.9357289,14.8909309,54.7515112,4.0020219,35.6565698,18.9436265,1.5821879,1.6035476,14.1914003,62.025809,63.1899788,57.080832,28.4829141,11.1564508,14.8485767,67.5675944,39.7245675,41.7477714,19.3243812,14.2620769,54.254847,3.9555397,35.2905831,17.7466559\r\n2079,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6550911,1.6826646,14.8303953,62.052263,63.4457726,58.4324934,28.5014537,11.5532624,15.0187713,67.9442048,40.4161105,41.8626536,19.9357289,14.8909309,54.7515112,4.0020219,35.6565698,18.9436265,1.5821879,1.6035476,14.1914003,62.025809,63.1899788,57.080832,28.4829141,11.1564508,14.8485767,67.5675944,39.7245675,41.7477714,19.3243812,14.2620769,54.254847,3.9555397,35.2905831,17.7466559,1.390486,1.3935363,13.2820425,62.6141374,63.6259304,56.3468747,29.2603863,10.9628916,14.9172711,66.6238883,40.8134353,42.1722521,18.769501,13.5237938,53.1006676,4.0043922,35.9174738,15.6011777\r\n2080,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5821879,1.6035476,14.1914003,62.025809,63.1899788,57.080832,28.4829141,11.1564508,14.8485767,67.5675944,39.7245675,41.7477714,19.3243812,14.2620769,54.254847,3.9555397,35.2905831,17.7466559,1.390486,1.3935363,13.2820425,62.6141374,63.6259304,56.3468747,29.2603863,10.9628916,14.9172711,66.6238883,40.8134353,42.1722521,18.769501,13.5237938,53.1006676,4.0043922,35.9174738,15.6011777,1.4067042,1.389473,12.9167467,61.7009183,63.6234582,56.353387,29.2219337,11.0981157,14.6484802,65.8249293,41.3411368,41.7532083,18.603072,13.4155848,52.4471692,3.935367,35.7029268,15.4939671\r\n2081,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.390486,1.3935363,13.2820425,62.6141374,63.6259304,56.3468747,29.2603863,10.9628916,14.9172711,66.6238883,40.8134353,42.1722521,18.769501,13.5237938,53.1006676,4.0043922,35.9174738,15.6011777,1.4067042,1.389473,12.9167467,61.7009183,63.6234582,56.353387,29.2219337,11.0981157,14.6484802,65.8249293,41.3411368,41.7532083,18.603072,13.4155848,52.4471692,3.935367,35.7029268,15.4939671,1.3174925,1.3194062,12.6046481,60.8470444,63.8040976,56.7209516,28.9746681,10.8404953,15.094252,65.6371323,41.2268884,41.2825927,18.1932118,13.0447336,52.1550587,3.9705865,35.3343935,14.4658436\r\n2082,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4067042,1.389473,12.9167467,61.7009183,63.6234582,56.353387,29.2219337,11.0981157,14.6484802,65.8249293,41.3411368,41.7532083,18.603072,13.4155848,52.4471692,3.935367,35.7029268,15.4939671,1.3174925,1.3194062,12.6046481,60.8470444,63.8040976,56.7209516,28.9746681,10.8404953,15.094252,65.6371323,41.2268884,41.2825927,18.1932118,13.0447336,52.1550587,3.9705865,35.3343935,14.4658436,1.2856504,1.2807683,12.8887979,60.8805286,64.0416465,55.755908,28.7560827,10.5045427,14.8146931,65.9908557,40.7112926,41.0874051,18.0916598,12.9886354,52.1272047,4.0566959,35.3915183,14.4696603\r\n2083,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3174925,1.3194062,12.6046481,60.8470444,63.8040976,56.7209516,28.9746681,10.8404953,15.094252,65.6371323,41.2268884,41.2825927,18.1932118,13.0447336,52.1550587,3.9705865,35.3343935,14.4658436,1.2856504,1.2807683,12.8887979,60.8805286,64.0416465,55.755908,28.7560827,10.5045427,14.8146931,65.9908557,40.7112926,41.0874051,18.0916598,12.9886354,52.1272047,4.0566959,35.3915183,14.4696603,1.1863163,1.1740599,12.4277158,60.1531103,63.3342641,55.5928626,28.0925412,10.6930393,15.0927682,65.514187,40.6469763,38.9642745,17.4956306,12.6967198,51.1955434,4.1164812,35.3278113,14.7625882\r\n2084,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2856504,1.2807683,12.8887979,60.8805286,64.0416465,55.755908,28.7560827,10.5045427,14.8146931,65.9908557,40.7112926,41.0874051,18.0916598,12.9886354,52.1272047,4.0566959,35.3915183,14.4696603,1.1863163,1.1740599,12.4277158,60.1531103,63.3342641,55.5928626,28.0925412,10.6930393,15.0927682,65.514187,40.6469763,38.9642745,17.4956306,12.6967198,51.1955434,4.1164812,35.3278113,14.7625882,1.2073733,1.199653,12.5893699,59.7659421,62.9919639,55.5118054,28.2003109,10.1793939,15.1453332,65.9766711,39.7148081,38.7905286,17.4162647,12.7238966,50.9167005,4.1053592,35.0672537,14.8401567\r\n2085,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1863163,1.1740599,12.4277158,60.1531103,63.3342641,55.5928626,28.0925412,10.6930393,15.0927682,65.514187,40.6469763,38.9642745,17.4956306,12.6967198,51.1955434,4.1164812,35.3278113,14.7625882,1.2073733,1.199653,12.5893699,59.7659421,62.9919639,55.5118054,28.2003109,10.1793939,15.1453332,65.9766711,39.7148081,38.7905286,17.4162647,12.7238966,50.9167005,4.1053592,35.0672537,14.8401567,1.1227364,1.1211361,12.7924947,60.0509634,63.7711201,57.1697371,28.0725486,10.3966811,14.8076712,65.946708,39.5729681,37.9964973,17.2850302,12.8288052,50.3078317,4.1190548,34.9481649,14.2097025\r\n2086,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2073733,1.199653,12.5893699,59.7659421,62.9919639,55.5118054,28.2003109,10.1793939,15.1453332,65.9766711,39.7148081,38.7905286,17.4162647,12.7238966,50.9167005,4.1053592,35.0672537,14.8401567,1.1227364,1.1211361,12.7924947,60.0509634,63.7711201,57.1697371,28.0725486,10.3966811,14.8076712,65.946708,39.5729681,37.9964973,17.2850302,12.8288052,50.3078317,4.1190548,34.9481649,14.2097025,1.0835711,1.0881886,12.6361513,59.6257083,63.9090918,57.7616717,27.3969119,10.3891352,14.9730543,66.4839246,38.7583991,38.5590966,17.0805741,12.7438826,50.1655929,4.1413562,34.7623181,14.0528205\r\n2087,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1227364,1.1211361,12.7924947,60.0509634,63.7711201,57.1697371,28.0725486,10.3966811,14.8076712,65.946708,39.5729681,37.9964973,17.2850302,12.8288052,50.3078317,4.1190548,34.9481649,14.2097025,1.0835711,1.0881886,12.6361513,59.6257083,63.9090918,57.7616717,27.3969119,10.3891352,14.9730543,66.4839246,38.7583991,38.5590966,17.0805741,12.7438826,50.1655929,4.1413562,34.7623181,14.0528205,1.0122346,1.0375956,12.3279427,60.3998818,64.7634909,58.8658128,27.2778593,9.653097,14.3310641,66.6054484,38.7681006,38.522167,16.5977443,12.2687347,49.5831423,4.1632778,34.5757954,14.915046\r\n2088,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0835711,1.0881886,12.6361513,59.6257083,63.9090918,57.7616717,27.3969119,10.3891352,14.9730543,66.4839246,38.7583991,38.5590966,17.0805741,12.7438826,50.1655929,4.1413562,34.7623181,14.0528205,1.0122346,1.0375956,12.3279427,60.3998818,64.7634909,58.8658128,27.2778593,9.653097,14.3310641,66.6054484,38.7681006,38.522167,16.5977443,12.2687347,49.5831423,4.1632778,34.5757954,14.915046,0.9606196,0.956984,12.4222105,61.3575636,65.6123278,59.0560446,27.3180645,9.6645925,13.9817875,66.8636174,38.7639247,39.1083331,16.4570345,12.1855737,48.5620655,4.0104233,34.587594,14.8475723\r\n2089,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0122346,1.0375956,12.3279427,60.3998818,64.7634909,58.8658128,27.2778593,9.653097,14.3310641,66.6054484,38.7681006,38.522167,16.5977443,12.2687347,49.5831423,4.1632778,34.5757954,14.915046,0.9606196,0.956984,12.4222105,61.3575636,65.6123278,59.0560446,27.3180645,9.6645925,13.9817875,66.8636174,38.7639247,39.1083331,16.4570345,12.1855737,48.5620655,4.0104233,34.587594,14.8475723,0.9152564,0.9235553,11.8050783,61.5656563,65.7355343,59.8579955,27.5964196,9.2069941,13.6651955,67.0332744,39.6133704,37.9394111,15.933341,11.8768281,47.1941105,4.1094497,34.4315453,13.9251495\r\n2090,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9606196,0.956984,12.4222105,61.3575636,65.6123278,59.0560446,27.3180645,9.6645925,13.9817875,66.8636174,38.7639247,39.1083331,16.4570345,12.1855737,48.5620655,4.0104233,34.587594,14.8475723,0.9152564,0.9235553,11.8050783,61.5656563,65.7355343,59.8579955,27.5964196,9.2069941,13.6651955,67.0332744,39.6133704,37.9394111,15.933341,11.8768281,47.1941105,4.1094497,34.4315453,13.9251495,1.0199067,1.0166814,11.8857832,62.3061707,64.7490809,60.1821515,28.0009132,9.6330885,13.2439609,66.8478154,39.5892024,37.9056413,16.1023315,11.9212126,46.6601708,4.1479183,34.7283271,13.5434957\r\n2091,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9152564,0.9235553,11.8050783,61.5656563,65.7355343,59.8579955,27.5964196,9.2069941,13.6651955,67.0332744,39.6133704,37.9394111,15.933341,11.8768281,47.1941105,4.1094497,34.4315453,13.9251495,1.0199067,1.0166814,11.8857832,62.3061707,64.7490809,60.1821515,28.0009132,9.6330885,13.2439609,66.8478154,39.5892024,37.9056413,16.1023315,11.9212126,46.6601708,4.1479183,34.7283271,13.5434957,1.0617884,1.0487181,11.3848371,62.6656797,64.5281377,60.6541298,28.4913048,9.4083002,13.5385281,67.2678866,40.6603165,37.5515432,15.7225064,11.5670331,45.1323043,3.9848109,34.6256264,13.6833777\r\n2092,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0199067,1.0166814,11.8857832,62.3061707,64.7490809,60.1821515,28.0009132,9.6330885,13.2439609,66.8478154,39.5892024,37.9056413,16.1023315,11.9212126,46.6601708,4.1479183,34.7283271,13.5434957,1.0617884,1.0487181,11.3848371,62.6656797,64.5281377,60.6541298,28.4913048,9.4083002,13.5385281,67.2678866,40.6603165,37.5515432,15.7225064,11.5670331,45.1323043,3.9848109,34.6256264,13.6833777,1.1020018,1.08881,11.15261,63.180799,64.6700198,59.4625219,28.8498526,9.3833195,13.7002638,67.1654354,40.8849077,37.6758244,15.4414354,11.2348506,44.2230246,3.9352001,34.9529899,13.5727532\r\n2093,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0617884,1.0487181,11.3848371,62.6656797,64.5281377,60.6541298,28.4913048,9.4083002,13.5385281,67.2678866,40.6603165,37.5515432,15.7225064,11.5670331,45.1323043,3.9848109,34.6256264,13.6833777,1.1020018,1.08881,11.15261,63.180799,64.6700198,59.4625219,28.8498526,9.3833195,13.7002638,67.1654354,40.8849077,37.6758244,15.4414354,11.2348506,44.2230246,3.9352001,34.9529899,13.5727532,1.0877466,1.0657016,10.7587249,63.3805985,64.5543089,59.5499119,29.4265741,8.6391877,13.8997287,67.6621268,42.0100865,36.4830381,14.8848494,10.6592008,42.3676354,3.7961984,35.5730135,12.7383189\r\n2094,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1020018,1.08881,11.15261,63.180799,64.6700198,59.4625219,28.8498526,9.3833195,13.7002638,67.1654354,40.8849077,37.6758244,15.4414354,11.2348506,44.2230246,3.9352001,34.9529899,13.5727532,1.0877466,1.0657016,10.7587249,63.3805985,64.5543089,59.5499119,29.4265741,8.6391877,13.8997287,67.6621268,42.0100865,36.4830381,14.8848494,10.6592008,42.3676354,3.7961984,35.5730135,12.7383189,1.0169465,0.9843722,10.9054562,62.136836,63.6542193,58.4436882,29.8942317,8.0585809,13.7554873,67.6791596,42.2257031,34.8292686,14.7539231,10.5845703,41.3789045,4.0086387,35.7142747,10.0739334\r\n2095,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0877466,1.0657016,10.7587249,63.3805985,64.5543089,59.5499119,29.4265741,8.6391877,13.8997287,67.6621268,42.0100865,36.4830381,14.8848494,10.6592008,42.3676354,3.7961984,35.5730135,12.7383189,1.0169465,0.9843722,10.9054562,62.136836,63.6542193,58.4436882,29.8942317,8.0585809,13.7554873,67.6791596,42.2257031,34.8292686,14.7539231,10.5845703,41.3789045,4.0086387,35.7142747,10.0739334,1.0085183,0.99627,10.1933639,61.6185123,63.1499431,58.5259046,29.9695894,7.5716122,14.0948634,67.996239,42.3510141,34.2429804,14.1947357,10.0064782,41.0556708,4.2216696,36.2022448,9.9038404\r\n2096,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0169465,0.9843722,10.9054562,62.136836,63.6542193,58.4436882,29.8942317,8.0585809,13.7554873,67.6791596,42.2257031,34.8292686,14.7539231,10.5845703,41.3789045,4.0086387,35.7142747,10.0739334,1.0085183,0.99627,10.1933639,61.6185123,63.1499431,58.5259046,29.9695894,7.5716122,14.0948634,67.996239,42.3510141,34.2429804,14.1947357,10.0064782,41.0556708,4.2216696,36.2022448,9.9038404,1.0031272,0.9905722,9.8756569,61.5953042,62.5692116,58.0131668,29.6734551,7.2432836,14.5075235,68.3414032,42.0724214,34.1463869,14.5047543,9.8720576,40.2688503,4.1219087,36.6161485,9.1876138\r\n2097,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0085183,0.99627,10.1933639,61.6185123,63.1499431,58.5259046,29.9695894,7.5716122,14.0948634,67.996239,42.3510141,34.2429804,14.1947357,10.0064782,41.0556708,4.2216696,36.2022448,9.9038404,1.0031272,0.9905722,9.8756569,61.5953042,62.5692116,58.0131668,29.6734551,7.2432836,14.5075235,68.3414032,42.0724214,34.1463869,14.5047543,9.8720576,40.2688503,4.1219087,36.6161485,9.1876138,0.9064017,0.9148583,9.5389431,60.9791123,63.5803585,58.3034809,30.0410193,6.2493136,14.9502358,68.6698979,42.9511807,33.9038338,14.4722227,9.7634493,39.3397279,4.1342811,36.4654653,8.794474\r\n2098,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0031272,0.9905722,9.8756569,61.5953042,62.5692116,58.0131668,29.6734551,7.2432836,14.5075235,68.3414032,42.0724214,34.1463869,14.5047543,9.8720576,40.2688503,4.1219087,36.6161485,9.1876138,0.9064017,0.9148583,9.5389431,60.9791123,63.5803585,58.3034809,30.0410193,6.2493136,14.9502358,68.6698979,42.9511807,33.9038338,14.4722227,9.7634493,39.3397279,4.1342811,36.4654653,8.794474,0.9806963,0.9891817,9.8987317,61.7949607,63.9652279,57.8011435,30.5317639,6.1960169,15.1566213,68.466862,43.0619195,33.855919,14.662332,9.8833361,39.3899205,4.3256781,36.9333843,7.4552565\r\n2099,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9064017,0.9148583,9.5389431,60.9791123,63.5803585,58.3034809,30.0410193,6.2493136,14.9502358,68.6698979,42.9511807,33.9038338,14.4722227,9.7634493,39.3397279,4.1342811,36.4654653,8.794474,0.9806963,0.9891817,9.8987317,61.7949607,63.9652279,57.8011435,30.5317639,6.1960169,15.1566213,68.466862,43.0619195,33.855919,14.662332,9.8833361,39.3899205,4.3256781,36.9333843,7.4552565,0.9718846,0.9804261,10.4225786,60.1598321,61.7724654,57.7535407,30.7784108,6.782166,15.0415861,69.1996012,44.1422381,33.3614817,15.2670859,10.2421919,38.4045734,4.4849047,37.593815,7.2999854\r\n2100,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9806963,0.9891817,9.8987317,61.7949607,63.9652279,57.8011435,30.5317639,6.1960169,15.1566213,68.466862,43.0619195,33.855919,14.662332,9.8833361,39.3899205,4.3256781,36.9333843,7.4552565,0.9718846,0.9804261,10.4225786,60.1598321,61.7724654,57.7535407,30.7784108,6.782166,15.0415861,69.1996012,44.1422381,33.3614817,15.2670859,10.2421919,38.4045734,4.4849047,37.593815,7.2999854,1.0388099,1.049616,10.5275182,59.1970035,61.8551255,57.1577586,30.1752255,6.7795876,15.0293127,68.4397641,43.3923446,34.0400242,15.3573022,10.3641772,38.6324727,4.3640452,36.9689787,6.9358049\r\n2101,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9718846,0.9804261,10.4225786,60.1598321,61.7724654,57.7535407,30.7784108,6.782166,15.0415861,69.1996012,44.1422381,33.3614817,15.2670859,10.2421919,38.4045734,4.4849047,37.593815,7.2999854,1.0388099,1.049616,10.5275182,59.1970035,61.8551255,57.1577586,30.1752255,6.7795876,15.0293127,68.4397641,43.3923446,34.0400242,15.3573022,10.3641772,38.6324727,4.3640452,36.9689787,6.9358049,1.1508243,1.1799873,10.7011324,58.7924594,60.7272906,56.5525242,30.4473766,6.482909,15.3130963,68.753584,43.2033226,34.8654275,15.5728101,10.5635385,37.3031874,4.1432537,37.4452592,7.7962465\r\n2102,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0388099,1.049616,10.5275182,59.1970035,61.8551255,57.1577586,30.1752255,6.7795876,15.0293127,68.4397641,43.3923446,34.0400242,15.3573022,10.3641772,38.6324727,4.3640452,36.9689787,6.9358049,1.1508243,1.1799873,10.7011324,58.7924594,60.7272906,56.5525242,30.4473766,6.482909,15.3130963,68.753584,43.2033226,34.8654275,15.5728101,10.5635385,37.3031874,4.1432537,37.4452592,7.7962465,1.2982668,1.3149557,10.986576,59.6905846,61.924686,56.453762,30.8986306,6.1804412,15.3585846,68.1621326,42.5550145,35.459512,16.1736799,11.0624665,36.2354105,4.0681915,37.5810467,8.127562\r\n2103,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1508243,1.1799873,10.7011324,58.7924594,60.7272906,56.5525242,30.4473766,6.482909,15.3130963,68.753584,43.2033226,34.8654275,15.5728101,10.5635385,37.3031874,4.1432537,37.4452592,7.7962465,1.2982668,1.3149557,10.986576,59.6905846,61.924686,56.453762,30.8986306,6.1804412,15.3585846,68.1621326,42.5550145,35.459512,16.1736799,11.0624665,36.2354105,4.0681915,37.5810467,8.127562,1.2567324,1.2679256,11.2499839,59.4527737,61.5782345,56.6216296,32.0004417,6.0677346,15.6287002,67.6342084,42.8999939,35.9492127,16.0318895,11.2235152,35.3115628,4.3658938,37.8467006,8.0543832\r\n2104,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2982668,1.3149557,10.986576,59.6905846,61.924686,56.453762,30.8986306,6.1804412,15.3585846,68.1621326,42.5550145,35.459512,16.1736799,11.0624665,36.2354105,4.0681915,37.5810467,8.127562,1.2567324,1.2679256,11.2499839,59.4527737,61.5782345,56.6216296,32.0004417,6.0677346,15.6287002,67.6342084,42.8999939,35.9492127,16.0318895,11.2235152,35.3115628,4.3658938,37.8467006,8.0543832,1.3438209,1.3323028,11.7063644,59.3762009,60.7021923,57.3320407,32.2420602,5.7359488,15.0754576,67.7271283,42.4936487,35.2857695,15.8763043,11.3053006,34.4373815,4.3720959,38.1995924,7.878143\r\n2105,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2567324,1.2679256,11.2499839,59.4527737,61.5782345,56.6216296,32.0004417,6.0677346,15.6287002,67.6342084,42.8999939,35.9492127,16.0318895,11.2235152,35.3115628,4.3658938,37.8467006,8.0543832,1.3438209,1.3323028,11.7063644,59.3762009,60.7021923,57.3320407,32.2420602,5.7359488,15.0754576,67.7271283,42.4936487,35.2857695,15.8763043,11.3053006,34.4373815,4.3720959,38.1995924,7.878143,1.3173415,1.3056511,11.5018402,58.4317859,60.5599627,56.9467805,32.0375224,5.8717884,14.7856269,67.4288113,43.145127,34.926372,15.6257657,11.0408818,33.5448433,4.2433104,37.7272933,8.1111039\r\n2106,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3438209,1.3323028,11.7063644,59.3762009,60.7021923,57.3320407,32.2420602,5.7359488,15.0754576,67.7271283,42.4936487,35.2857695,15.8763043,11.3053006,34.4373815,4.3720959,38.1995924,7.878143,1.3173415,1.3056511,11.5018402,58.4317859,60.5599627,56.9467805,32.0375224,5.8717884,14.7856269,67.4288113,43.145127,34.926372,15.6257657,11.0408818,33.5448433,4.2433104,37.7272933,8.1111039,1.3374808,1.3198129,10.7818021,58.9503805,61.8975728,56.8002172,32.40055,4.2970009,14.372441,67.7640306,42.8021563,34.0582882,15.0112226,10.5689928,33.1289363,4.1235774,35.9602066,8.2392739\r\n2107,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3173415,1.3056511,11.5018402,58.4317859,60.5599627,56.9467805,32.0375224,5.8717884,14.7856269,67.4288113,43.145127,34.926372,15.6257657,11.0408818,33.5448433,4.2433104,37.7272933,8.1111039,1.3374808,1.3198129,10.7818021,58.9503805,61.8975728,56.8002172,32.40055,4.2970009,14.372441,67.7640306,42.8021563,34.0582882,15.0112226,10.5689928,33.1289363,4.1235774,35.9602066,8.2392739,1.3373096,1.3198026,10.7643991,59.6494165,61.9090459,56.2591568,32.4778628,4.1312085,13.8269882,67.9129141,42.3044344,33.76863,15.4899929,10.503567,32.5195706,4.3187191,35.4366371,9.7972907\r\n2108,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3374808,1.3198129,10.7818021,58.9503805,61.8975728,56.8002172,32.40055,4.2970009,14.372441,67.7640306,42.8021563,34.0582882,15.0112226,10.5689928,33.1289363,4.1235774,35.9602066,8.2392739,1.3373096,1.3198026,10.7643991,59.6494165,61.9090459,56.2591568,32.4778628,4.1312085,13.8269882,67.9129141,42.3044344,33.76863,15.4899929,10.503567,32.5195706,4.3187191,35.4366371,9.7972907,1.1909486,1.1748966,10.8939507,60.5072462,64.0319306,56.4334731,31.860739,4.2263244,13.9437674,67.8122745,42.9336252,34.2220378,15.7366022,10.8506867,32.0339985,4.40326,35.8315719,9.2045371\r\n2109,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3373096,1.3198026,10.7643991,59.6494165,61.9090459,56.2591568,32.4778628,4.1312085,13.8269882,67.9129141,42.3044344,33.76863,15.4899929,10.503567,32.5195706,4.3187191,35.4366371,9.7972907,1.1909486,1.1748966,10.8939507,60.5072462,64.0319306,56.4334731,31.860739,4.2263244,13.9437674,67.8122745,42.9336252,34.2220378,15.7366022,10.8506867,32.0339985,4.40326,35.8315719,9.2045371,1.0126991,0.9985981,11.0376379,59.7407468,62.9738744,57.4263712,31.5381627,4.0804374,12.969125,68.4728439,43.6937864,33.2850744,15.2351451,10.6311845,31.5796513,4.3804257,35.0212277,8.0681708\r\n2110,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1909486,1.1748966,10.8939507,60.5072462,64.0319306,56.4334731,31.860739,4.2263244,13.9437674,67.8122745,42.9336252,34.2220378,15.7366022,10.8506867,32.0339985,4.40326,35.8315719,9.2045371,1.0126991,0.9985981,11.0376379,59.7407468,62.9738744,57.4263712,31.5381627,4.0804374,12.969125,68.4728439,43.6937864,33.2850744,15.2351451,10.6311845,31.5796513,4.3804257,35.0212277,8.0681708,1.1202092,1.106473,11.1454649,59.3441706,63.0330026,58.1903373,31.46273,3.8881123,11.6945762,68.7986017,43.7358096,31.8586519,15.3149851,10.6082493,31.6001978,4.2984654,34.7208006,8.8169544\r\n2111,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0126991,0.9985981,11.0376379,59.7407468,62.9738744,57.4263712,31.5381627,4.0804374,12.969125,68.4728439,43.6937864,33.2850744,15.2351451,10.6311845,31.5796513,4.3804257,35.0212277,8.0681708,1.1202092,1.106473,11.1454649,59.3441706,63.0330026,58.1903373,31.46273,3.8881123,11.6945762,68.7986017,43.7358096,31.8586519,15.3149851,10.6082493,31.6001978,4.2984654,34.7208006,8.8169544,1.1824673,1.2270748,11.1811657,58.7262897,63.1735089,55.8513485,31.5117509,3.8146402,11.8288175,68.8445075,43.8294622,32.4953633,15.5866288,10.5843493,31.7815123,4.4767102,34.4353389,10.6593509\r\n2112,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1202092,1.106473,11.1454649,59.3441706,63.0330026,58.1903373,31.46273,3.8881123,11.6945762,68.7986017,43.7358096,31.8586519,15.3149851,10.6082493,31.6001978,4.2984654,34.7208006,8.8169544,1.1824673,1.2270748,11.1811657,58.7262897,63.1735089,55.8513485,31.5117509,3.8146402,11.8288175,68.8445075,43.8294622,32.4953633,15.5866288,10.5843493,31.7815123,4.4767102,34.4353389,10.6593509,1.2154939,1.2374283,11.1357952,57.8113927,62.4245371,55.2866644,31.9054818,3.2711859,11.5472565,69.4470447,43.9234598,31.9026967,15.6155133,10.7607218,31.3097095,4.6939113,35.3143663,10.3125122\r\n2113,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1824673,1.2270748,11.1811657,58.7262897,63.1735089,55.8513485,31.5117509,3.8146402,11.8288175,68.8445075,43.8294622,32.4953633,15.5866288,10.5843493,31.7815123,4.4767102,34.4353389,10.6593509,1.2154939,1.2374283,11.1357952,57.8113927,62.4245371,55.2866644,31.9054818,3.2711859,11.5472565,69.4470447,43.9234598,31.9026967,15.6155133,10.7607218,31.3097095,4.6939113,35.3143663,10.3125122,1.2531831,1.2794743,11.3300066,57.7975527,62.2695768,55.4663439,31.3987773,3.2989646,11.8476052,68.8677036,43.8443743,32.4484726,15.8942391,10.9226805,30.4765059,4.8815477,36.9643621,10.2385604\r\n2114,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2154939,1.2374283,11.1357952,57.8113927,62.4245371,55.2866644,31.9054818,3.2711859,11.5472565,69.4470447,43.9234598,31.9026967,15.6155133,10.7607218,31.3097095,4.6939113,35.3143663,10.3125122,1.2531831,1.2794743,11.3300066,57.7975527,62.2695768,55.4663439,31.3987773,3.2989646,11.8476052,68.8677036,43.8443743,32.4484726,15.8942391,10.9226805,30.4765059,4.8815477,36.9643621,10.2385604,1.3048208,1.3397835,11.5073945,58.0800899,62.3345866,55.2313166,31.6323613,3.175331,11.8683917,68.7541243,44.3674903,32.3933386,15.6602562,11.0426197,29.8609465,5.2417468,37.3485964,8.9423008\r\n2115,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2531831,1.2794743,11.3300066,57.7975527,62.2695768,55.4663439,31.3987773,3.2989646,11.8476052,68.8677036,43.8443743,32.4484726,15.8942391,10.9226805,30.4765059,4.8815477,36.9643621,10.2385604,1.3048208,1.3397835,11.5073945,58.0800899,62.3345866,55.2313166,31.6323613,3.175331,11.8683917,68.7541243,44.3674903,32.3933386,15.6602562,11.0426197,29.8609465,5.2417468,37.3485964,8.9423008,1.3755366,1.4021047,10.9436742,58.3394175,61.5550501,55.6297905,31.9453571,2.9543024,11.8276879,68.3989665,43.754546,31.9326759,15.4138423,10.7311536,30.0287855,5.1051293,37.3448649,9.6190421\r\n2116,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3048208,1.3397835,11.5073945,58.0800899,62.3345866,55.2313166,31.6323613,3.175331,11.8683917,68.7541243,44.3674903,32.3933386,15.6602562,11.0426197,29.8609465,5.2417468,37.3485964,8.9423008,1.3755366,1.4021047,10.9436742,58.3394175,61.5550501,55.6297905,31.9453571,2.9543024,11.8276879,68.3989665,43.754546,31.9326759,15.4138423,10.7311536,30.0287855,5.1051293,37.3448649,9.6190421,1.4163734,1.4380184,10.8081598,58.8117371,61.532637,56.0600945,31.6359213,3.0034146,11.819467,67.9032221,43.4555435,32.6734016,15.697323,10.8027881,29.8849197,5.1772538,37.5552652,9.7402561\r\n2117,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3755366,1.4021047,10.9436742,58.3394175,61.5550501,55.6297905,31.9453571,2.9543024,11.8276879,68.3989665,43.754546,31.9326759,15.4138423,10.7311536,30.0287855,5.1051293,37.3448649,9.6190421,1.4163734,1.4380184,10.8081598,58.8117371,61.532637,56.0600945,31.6359213,3.0034146,11.819467,67.9032221,43.4555435,32.6734016,15.697323,10.8027881,29.8849197,5.1772538,37.5552652,9.7402561,1.3601848,1.3771849,10.8193697,59.1938663,61.3675822,56.1777486,31.5699406,2.9922994,12.1860338,67.4570937,43.5023726,32.6421189,15.660046,10.9692956,29.2871603,5.4110179,36.798443,9.9056378\r\n2118,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4163734,1.4380184,10.8081598,58.8117371,61.532637,56.0600945,31.6359213,3.0034146,11.819467,67.9032221,43.4555435,32.6734016,15.697323,10.8027881,29.8849197,5.1772538,37.5552652,9.7402561,1.3601848,1.3771849,10.8193697,59.1938663,61.3675822,56.1777486,31.5699406,2.9922994,12.1860338,67.4570937,43.5023726,32.6421189,15.660046,10.9692956,29.2871603,5.4110179,36.798443,9.9056378,1.2877353,1.2790883,9.7034215,59.6659937,61.5133132,57.9413243,31.1892414,2.8579452,12.6785195,67.5569895,44.1768107,31.9583281,15.2033818,10.4045803,28.6098208,5.2410182,36.3572344,8.4138878\r\n2119,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.1481394,3.2533132,28.0636139,60.1928633,62.9375612,53.28719,31.6389329,5.3340498,14.6642469,64.6749314,36.9159635,43.9407666,34.4576657,27.6258623,44.8649553,3.1908298,39.7205011,19.2010468,3.2674519,3.3496511,28.0784815,60.1398249,62.1370497,53.9614433,29.2677382,6.4809976,15.3648403,65.066702,37.5257623,44.7648825,35.4489578,27.9221107,45.1800927,2.9629688,40.1124449,20.6444103,3.5316446,3.508079,28.2441046,60.4479698,63.1886872,54.9844391,27.6702886,6.1668499,15.3827984,64.0968982,36.985223,45.718127,36.2111854,28.512718,46.6534714,2.7626756,41.042547,22.9490244\r\n2120,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2674519,3.3496511,28.0784815,60.1398249,62.1370497,53.9614433,29.2677382,6.4809976,15.3648403,65.066702,37.5257623,44.7648825,35.4489578,27.9221107,45.1800927,2.9629688,40.1124449,20.6444103,3.5316446,3.508079,28.2441046,60.4479698,63.1886872,54.9844391,27.6702886,6.1668499,15.3827984,64.0968982,36.985223,45.718127,36.2111854,28.512718,46.6534714,2.7626756,41.042547,22.9490244,3.6739988,3.6275263,29.7001701,60.6992367,63.5947238,53.6264539,25.7810283,6.5800514,15.4938651,63.3531782,36.5979482,45.1846643,37.3389145,30.1401971,46.2436356,2.5388273,41.8271562,23.7552015\r\n2121,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.5316446,3.508079,28.2441046,60.4479698,63.1886872,54.9844391,27.6702886,6.1668499,15.3827984,64.0968982,36.985223,45.718127,36.2111854,28.512718,46.6534714,2.7626756,41.042547,22.9490244,3.6739988,3.6275263,29.7001701,60.6992367,63.5947238,53.6264539,25.7810283,6.5800514,15.4938651,63.3531782,36.5979482,45.1846643,37.3389145,30.1401971,46.2436356,2.5388273,41.8271562,23.7552015,4.0427783,3.9684714,30.5252403,60.4050712,62.7156243,53.639119,25.3351467,7.0532776,15.3097764,62.5147191,36.4453197,44.8912612,38.6292263,31.1270082,47.2581864,2.5290801,41.1979682,24.6534751\r\n2122,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6739988,3.6275263,29.7001701,60.6992367,63.5947238,53.6264539,25.7810283,6.5800514,15.4938651,63.3531782,36.5979482,45.1846643,37.3389145,30.1401971,46.2436356,2.5388273,41.8271562,23.7552015,4.0427783,3.9684714,30.5252403,60.4050712,62.7156243,53.639119,25.3351467,7.0532776,15.3097764,62.5147191,36.4453197,44.8912612,38.6292263,31.1270082,47.2581864,2.5290801,41.1979682,24.6534751,4.4373534,4.3356151,31.7581632,61.6125213,64.0317025,51.7688746,24.2899071,6.811727,14.9256042,61.3336617,35.5308288,45.1067833,40.2950802,31.9613517,47.0831374,2.4497945,40.0254228,28.0909062\r\n2123,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0427783,3.9684714,30.5252403,60.4050712,62.7156243,53.639119,25.3351467,7.0532776,15.3097764,62.5147191,36.4453197,44.8912612,38.6292263,31.1270082,47.2581864,2.5290801,41.1979682,24.6534751,4.4373534,4.3356151,31.7581632,61.6125213,64.0317025,51.7688746,24.2899071,6.811727,14.9256042,61.3336617,35.5308288,45.1067833,40.2950802,31.9613517,47.0831374,2.4497945,40.0254228,28.0909062,4.6171964,4.5847577,33.838482,61.5144732,63.6348913,52.2331319,23.7766146,6.5577458,14.9846098,61.3829115,35.5851864,45.4019826,41.8371899,33.7785983,46.7185215,2.5075471,39.7376256,29.1738411\r\n2124,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.4373534,4.3356151,31.7581632,61.6125213,64.0317025,51.7688746,24.2899071,6.811727,14.9256042,61.3336617,35.5308288,45.1067833,40.2950802,31.9613517,47.0831374,2.4497945,40.0254228,28.0909062,4.6171964,4.5847577,33.838482,61.5144732,63.6348913,52.2331319,23.7766146,6.5577458,14.9846098,61.3829115,35.5851864,45.4019826,41.8371899,33.7785983,46.7185215,2.5075471,39.7376256,29.1738411,4.6449626,4.6736035,34.8229938,62.353878,64.6379426,52.7392996,22.8907733,6.9284058,15.0062731,60.4074864,35.5662616,46.1522774,43.151911,34.9174747,47.1603213,2.6480401,41.1489468,30.3660551\r\n2125,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.6171964,4.5847577,33.838482,61.5144732,63.6348913,52.2331319,23.7766146,6.5577458,14.9846098,61.3829115,35.5851864,45.4019826,41.8371899,33.7785983,46.7185215,2.5075471,39.7376256,29.1738411,4.6449626,4.6736035,34.8229938,62.353878,64.6379426,52.7392996,22.8907733,6.9284058,15.0062731,60.4074864,35.5662616,46.1522774,43.151911,34.9174747,47.1603213,2.6480401,41.1489468,30.3660551,4.8767088,4.9395315,37.1506505,63.148593,66.7484803,52.0514585,22.1312639,6.96044,15.0815957,58.8304065,34.6610157,46.7406311,45.3479981,37.3709211,47.8522486,2.584787,41.108829,34.1331118\r\n2126,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.6449626,4.6736035,34.8229938,62.353878,64.6379426,52.7392996,22.8907733,6.9284058,15.0062731,60.4074864,35.5662616,46.1522774,43.151911,34.9174747,47.1603213,2.6480401,41.1489468,30.3660551,4.8767088,4.9395315,37.1506505,63.148593,66.7484803,52.0514585,22.1312639,6.96044,15.0815957,58.8304065,34.6610157,46.7406311,45.3479981,37.3709211,47.8522486,2.584787,41.108829,34.1331118,4.9555609,5.0334134,39.8301495,63.180804,66.1130469,51.7847893,22.4517046,7.1442456,16.2199369,59.179474,34.8243744,46.1265509,47.4320762,39.682164,48.083441,2.4533428,40.8464047,35.2122797\r\n2127,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.8767088,4.9395315,37.1506505,63.148593,66.7484803,52.0514585,22.1312639,6.96044,15.0815957,58.8304065,34.6610157,46.7406311,45.3479981,37.3709211,47.8522486,2.584787,41.108829,34.1331118,4.9555609,5.0334134,39.8301495,63.180804,66.1130469,51.7847893,22.4517046,7.1442456,16.2199369,59.179474,34.8243744,46.1265509,47.4320762,39.682164,48.083441,2.4533428,40.8464047,35.2122797,5.4132452,5.5287184,41.6450512,63.0747986,65.514027,52.8797454,21.5704327,6.8318452,16.5322628,59.3280185,34.3013048,47.8310766,49.6365333,41.8845231,49.3594345,2.4701423,40.2715123,36.3187447\r\n2128,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.9555609,5.0334134,39.8301495,63.180804,66.1130469,51.7847893,22.4517046,7.1442456,16.2199369,59.179474,34.8243744,46.1265509,47.4320762,39.682164,48.083441,2.4533428,40.8464047,35.2122797,5.4132452,5.5287184,41.6450512,63.0747986,65.514027,52.8797454,21.5704327,6.8318452,16.5322628,59.3280185,34.3013048,47.8310766,49.6365333,41.8845231,49.3594345,2.4701423,40.2715123,36.3187447,5.8861256,6.0249445,43.8878449,63.2350942,65.4135065,54.6113651,20.8002306,6.7153877,16.5308387,58.2319289,33.7006116,48.0234503,52.1515994,44.2056334,49.8653066,2.5447703,41.1049254,38.0920317\r\n2129,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.4132452,5.5287184,41.6450512,63.0747986,65.514027,52.8797454,21.5704327,6.8318452,16.5322628,59.3280185,34.3013048,47.8310766,49.6365333,41.8845231,49.3594345,2.4701423,40.2715123,36.3187447,5.8861256,6.0249445,43.8878449,63.2350942,65.4135065,54.6113651,20.8002306,6.7153877,16.5308387,58.2319289,33.7006116,48.0234503,52.1515994,44.2056334,49.8653066,2.5447703,41.1049254,38.0920317,5.9478855,6.1188862,45.9938676,62.5641498,65.2355274,54.8589523,20.6290238,6.3772062,15.4782456,58.7842885,33.7509626,48.5865,53.4385688,46.0161286,50.5650441,2.3006355,42.0848088,37.6595958\r\n2130,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.8861256,6.0249445,43.8878449,63.2350942,65.4135065,54.6113651,20.8002306,6.7153877,16.5308387,58.2319289,33.7006116,48.0234503,52.1515994,44.2056334,49.8653066,2.5447703,41.1049254,38.0920317,5.9478855,6.1188862,45.9938676,62.5641498,65.2355274,54.8589523,20.6290238,6.3772062,15.4782456,58.7842885,33.7509626,48.5865,53.4385688,46.0161286,50.5650441,2.3006355,42.0848088,37.6595958,5.9512054,6.1336827,47.6954979,60.6216257,63.7552029,54.4085922,19.8064677,6.3969823,14.2278142,57.0651537,32.5104656,48.4626435,54.7867053,47.5467164,51.5725166,2.3537827,43.1338692,38.4444672\r\n2131,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.9478855,6.1188862,45.9938676,62.5641498,65.2355274,54.8589523,20.6290238,6.3772062,15.4782456,58.7842885,33.7509626,48.5865,53.4385688,46.0161286,50.5650441,2.3006355,42.0848088,37.6595958,5.9512054,6.1336827,47.6954979,60.6216257,63.7552029,54.4085922,19.8064677,6.3969823,14.2278142,57.0651537,32.5104656,48.4626435,54.7867053,47.5467164,51.5725166,2.3537827,43.1338692,38.4444672,6.752564,6.8561588,50.1821439,58.7658658,62.8912197,54.101493,19.8527316,6.3117708,14.2619331,57.6848578,31.3760855,47.8685546,57.1774424,50.3802027,53.9765692,2.0887704,42.5248162,42.0948797\r\n2132,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.9512054,6.1336827,47.6954979,60.6216257,63.7552029,54.4085922,19.8064677,6.3969823,14.2278142,57.0651537,32.5104656,48.4626435,54.7867053,47.5467164,51.5725166,2.3537827,43.1338692,38.4444672,6.752564,6.8561588,50.1821439,58.7658658,62.8912197,54.101493,19.8527316,6.3117708,14.2619331,57.6848578,31.3760855,47.8685546,57.1774424,50.3802027,53.9765692,2.0887704,42.5248162,42.0948797,6.937563,7.12495,50.6788474,57.8877692,61.1039864,53.7533917,19.2670157,6.3928031,14.7265962,58.5364033,31.2626818,48.2111134,57.8598624,51.1472636,55.2753665,2.2906557,42.0995309,40.5649211\r\n2133,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.752564,6.8561588,50.1821439,58.7658658,62.8912197,54.101493,19.8527316,6.3117708,14.2619331,57.6848578,31.3760855,47.8685546,57.1774424,50.3802027,53.9765692,2.0887704,42.5248162,42.0948797,6.937563,7.12495,50.6788474,57.8877692,61.1039864,53.7533917,19.2670157,6.3928031,14.7265962,58.5364033,31.2626818,48.2111134,57.8598624,51.1472636,55.2753665,2.2906557,42.0995309,40.5649211,7.3074134,7.5089571,51.3905864,57.9427262,60.9409718,52.7244357,18.8706253,6.6342113,14.6210169,58.1575229,31.1940325,48.760258,59.2427144,52.3945909,56.7693297,2.3483016,42.6205658,41.5148347\r\n2134,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.937563,7.12495,50.6788474,57.8877692,61.1039864,53.7533917,19.2670157,6.3928031,14.7265962,58.5364033,31.2626818,48.2111134,57.8598624,51.1472636,55.2753665,2.2906557,42.0995309,40.5649211,7.3074134,7.5089571,51.3905864,57.9427262,60.9409718,52.7244357,18.8706253,6.6342113,14.6210169,58.1575229,31.1940325,48.760258,59.2427144,52.3945909,56.7693297,2.3483016,42.6205658,41.5148347,7.4156739,7.5896827,52.7564194,59.2180985,61.7593746,53.5984781,18.8601287,7.1805974,15.264362,56.7758667,30.476581,49.5112706,60.1654632,53.2958232,58.1380363,2.3793696,43.2676118,43.1147871\r\n2135,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.3074134,7.5089571,51.3905864,57.9427262,60.9409718,52.7244357,18.8706253,6.6342113,14.6210169,58.1575229,31.1940325,48.760258,59.2427144,52.3945909,56.7693297,2.3483016,42.6205658,41.5148347,7.4156739,7.5896827,52.7564194,59.2180985,61.7593746,53.5984781,18.8601287,7.1805974,15.264362,56.7758667,30.476581,49.5112706,60.1654632,53.2958232,58.1380363,2.3793696,43.2676118,43.1147871,7.1598142,7.3090047,52.4245851,59.3354259,61.7079544,52.983196,18.8439164,7.2546551,15.4238497,57.3059453,29.9790578,50.3488008,59.6250539,53.043365,59.0177591,2.3049271,43.5669716,43.8029728\r\n2136,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.4156739,7.5896827,52.7564194,59.2180985,61.7593746,53.5984781,18.8601287,7.1805974,15.264362,56.7758667,30.476581,49.5112706,60.1654632,53.2958232,58.1380363,2.3793696,43.2676118,43.1147871,7.1598142,7.3090047,52.4245851,59.3354259,61.7079544,52.983196,18.8439164,7.2546551,15.4238497,57.3059453,29.9790578,50.3488008,59.6250539,53.043365,59.0177591,2.3049271,43.5669716,43.8029728,7.1910279,7.3348607,52.2805856,60.0498312,61.9702008,52.1451597,18.6713475,7.8477364,15.8637174,57.0814554,29.5799537,50.579041,59.7095612,52.9869947,59.1736839,2.4325617,43.059293,44.7957114\r\n2137,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.1598142,7.3090047,52.4245851,59.3354259,61.7079544,52.983196,18.8439164,7.2546551,15.4238497,57.3059453,29.9790578,50.3488008,59.6250539,53.043365,59.0177591,2.3049271,43.5669716,43.8029728,7.1910279,7.3348607,52.2805856,60.0498312,61.9702008,52.1451597,18.6713475,7.8477364,15.8637174,57.0814554,29.5799537,50.579041,59.7095612,52.9869947,59.1736839,2.4325617,43.059293,44.7957114,7.043524,7.1704083,51.5446296,60.7525409,63.068875,51.8322065,18.4027602,7.5786394,16.9019818,57.9045578,29.0230637,50.9329088,59.6466892,52.5830924,59.7516668,2.3163608,43.1153472,45.7922896\r\n2138,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.1910279,7.3348607,52.2805856,60.0498312,61.9702008,52.1451597,18.6713475,7.8477364,15.8637174,57.0814554,29.5799537,50.579041,59.7095612,52.9869947,59.1736839,2.4325617,43.059293,44.7957114,7.043524,7.1704083,51.5446296,60.7525409,63.068875,51.8322065,18.4027602,7.5786394,16.9019818,57.9045578,29.0230637,50.9329088,59.6466892,52.5830924,59.7516668,2.3163608,43.1153472,45.7922896,6.7805809,6.9215408,50.2889177,61.4952102,62.6640317,52.9235064,18.1947469,7.9149421,17.1063513,56.7723215,27.8689919,51.1664473,59.2831262,51.6684009,59.4046705,2.5683044,43.9228156,45.6099715\r\n2139,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.043524,7.1704083,51.5446296,60.7525409,63.068875,51.8322065,18.4027602,7.5786394,16.9019818,57.9045578,29.0230637,50.9329088,59.6466892,52.5830924,59.7516668,2.3163608,43.1153472,45.7922896,6.7805809,6.9215408,50.2889177,61.4952102,62.6640317,52.9235064,18.1947469,7.9149421,17.1063513,56.7723215,27.8689919,51.1664473,59.2831262,51.6684009,59.4046705,2.5683044,43.9228156,45.6099715,6.5613415,6.6025905,50.0400237,62.0224069,63.4584373,53.5671065,17.8519894,6.9136419,16.4878362,56.0401457,27.0164036,51.3994904,58.5181378,51.0280283,59.7007332,2.3446725,44.5570385,46.2025347\r\n2140,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.7805809,6.9215408,50.2889177,61.4952102,62.6640317,52.9235064,18.1947469,7.9149421,17.1063513,56.7723215,27.8689919,51.1664473,59.2831262,51.6684009,59.4046705,2.5683044,43.9228156,45.6099715,6.5613415,6.6025905,50.0400237,62.0224069,63.4584373,53.5671065,17.8519894,6.9136419,16.4878362,56.0401457,27.0164036,51.3994904,58.5181378,51.0280283,59.7007332,2.3446725,44.5570385,46.2025347,6.1288827,6.1514423,48.9827309,61.7120817,64.1320453,54.2491684,17.5441891,7.7233549,16.3962505,55.8317448,27.3991188,51.4246082,57.392799,50.2456848,59.6701567,2.5216117,44.0772097,46.3330068\r\n2141,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.5613415,6.6025905,50.0400237,62.0224069,63.4584373,53.5671065,17.8519894,6.9136419,16.4878362,56.0401457,27.0164036,51.3994904,58.5181378,51.0280283,59.7007332,2.3446725,44.5570385,46.2025347,6.1288827,6.1514423,48.9827309,61.7120817,64.1320453,54.2491684,17.5441891,7.7233549,16.3962505,55.8317448,27.3991188,51.4246082,57.392799,50.2456848,59.6701567,2.5216117,44.0772097,46.3330068,5.9869554,5.9972612,47.0887694,60.677407,62.527154,52.8328247,18.2351418,7.1634632,14.9960139,56.944693,28.077212,51.3033052,55.5095049,48.4934279,58.6085692,2.6570005,43.950187,46.9524726\r\n2142,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.1288827,6.1514423,48.9827309,61.7120817,64.1320453,54.2491684,17.5441891,7.7233549,16.3962505,55.8317448,27.3991188,51.4246082,57.392799,50.2456848,59.6701567,2.5216117,44.0772097,46.3330068,5.9869554,5.9972612,47.0887694,60.677407,62.527154,52.8328247,18.2351418,7.1634632,14.9960139,56.944693,28.077212,51.3033052,55.5095049,48.4934279,58.6085692,2.6570005,43.950187,46.9524726,5.806488,5.811747,47.3210384,59.7819328,62.3791244,52.7712027,18.8329758,7.189956,15.8266819,56.5609559,29.0085031,49.831298,55.2401552,48.4273851,59.0057854,2.7817274,44.3089041,46.5005393\r\n2143,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.9869554,5.9972612,47.0887694,60.677407,62.527154,52.8328247,18.2351418,7.1634632,14.9960139,56.944693,28.077212,51.3033052,55.5095049,48.4934279,58.6085692,2.6570005,43.950187,46.9524726,5.806488,5.811747,47.3210384,59.7819328,62.3791244,52.7712027,18.8329758,7.189956,15.8266819,56.5609559,29.0085031,49.831298,55.2401552,48.4273851,59.0057854,2.7817274,44.3089041,46.5005393,5.6011819,5.6065357,46.5664903,59.8191916,61.7663383,53.9592615,19.1970355,8.2581244,16.4899523,55.824026,28.3612015,49.0362448,54.5263474,47.8174959,59.9253747,2.8068291,45.3121627,46.8473607\r\n2144,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.806488,5.811747,47.3210384,59.7819328,62.3791244,52.7712027,18.8329758,7.189956,15.8266819,56.5609559,29.0085031,49.831298,55.2401552,48.4273851,59.0057854,2.7817274,44.3089041,46.5005393,5.6011819,5.6065357,46.5664903,59.8191916,61.7663383,53.9592615,19.1970355,8.2581244,16.4899523,55.824026,28.3612015,49.0362448,54.5263474,47.8174959,59.9253747,2.8068291,45.3121627,46.8473607,5.5687494,5.5958677,46.3952484,59.8625019,60.6220594,54.5714514,19.469703,8.3454867,15.7675337,55.7248394,29.0278696,48.7444647,53.7704925,47.2626942,59.4700261,2.8569427,45.0787486,45.4808954\r\n2145,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.6011819,5.6065357,46.5664903,59.8191916,61.7663383,53.9592615,19.1970355,8.2581244,16.4899523,55.824026,28.3612015,49.0362448,54.5263474,47.8174959,59.9253747,2.8068291,45.3121627,46.8473607,5.5687494,5.5958677,46.3952484,59.8625019,60.6220594,54.5714514,19.469703,8.3454867,15.7675337,55.7248394,29.0278696,48.7444647,53.7704925,47.2626942,59.4700261,2.8569427,45.0787486,45.4808954,5.2258023,5.2258023,45.5095886,59.5055058,61.0072435,54.1774852,20.1386008,7.6865035,15.6142659,55.8507817,30.3020088,48.7205723,52.2871983,46.1845722,59.69213,2.5326345,43.7607405,45.0542974\r\n2146,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.5687494,5.5958677,46.3952484,59.8625019,60.6220594,54.5714514,19.469703,8.3454867,15.7675337,55.7248394,29.0278696,48.7444647,53.7704925,47.2626942,59.4700261,2.8569427,45.0787486,45.4808954,5.2258023,5.2258023,45.5095886,59.5055058,61.0072435,54.1774852,20.1386008,7.6865035,15.6142659,55.8507817,30.3020088,48.7205723,52.2871983,46.1845722,59.69213,2.5326345,43.7607405,45.0542974,5.1642416,5.1817496,44.2631477,58.6397576,60.5051337,54.5146242,20.5334962,8.0892079,15.1630452,56.4671285,30.8101893,47.1237926,51.8244306,45.391587,60.3045549,2.451282,43.7096998,46.8750112\r\n2147,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.2258023,5.2258023,45.5095886,59.5055058,61.0072435,54.1774852,20.1386008,7.6865035,15.6142659,55.8507817,30.3020088,48.7205723,52.2871983,46.1845722,59.69213,2.5326345,43.7607405,45.0542974,5.1642416,5.1817496,44.2631477,58.6397576,60.5051337,54.5146242,20.5334962,8.0892079,15.1630452,56.4671285,30.8101893,47.1237926,51.8244306,45.391587,60.3045549,2.451282,43.7096998,46.8750112,5.1739546,5.2019297,44.3219009,59.566149,61.2033658,54.5735223,21.2073052,7.0458139,15.2301058,57.5058968,31.6401461,47.5603693,51.6186073,44.8519043,59.6869688,2.3663112,44.229724,45.6462499\r\n2148,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.1642416,5.1817496,44.2631477,58.6397576,60.5051337,54.5146242,20.5334962,8.0892079,15.1630452,56.4671285,30.8101893,47.1237926,51.8244306,45.391587,60.3045549,2.451282,43.7096998,46.8750112,5.1739546,5.2019297,44.3219009,59.566149,61.2033658,54.5735223,21.2073052,7.0458139,15.2301058,57.5058968,31.6401461,47.5603693,51.6186073,44.8519043,59.6869688,2.3663112,44.229724,45.6462499,4.620613,4.6599183,43.0824839,59.6074131,61.4652176,54.5765937,22.1541048,7.6411486,16.7121968,57.8735837,32.4887639,45.8217109,50.8318342,43.9440421,59.7675054,2.140414,42.9900386,44.8005668\r\n2149,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.1739546,5.2019297,44.3219009,59.566149,61.2033658,54.5735223,21.2073052,7.0458139,15.2301058,57.5058968,31.6401461,47.5603693,51.6186073,44.8519043,59.6869688,2.3663112,44.229724,45.6462499,4.620613,4.6599183,43.0824839,59.6074131,61.4652176,54.5765937,22.1541048,7.6411486,16.7121968,57.8735837,32.4887639,45.8217109,50.8318342,43.9440421,59.7675054,2.140414,42.9900386,44.8005668,4.4897888,4.5447948,41.0425249,60.3006884,61.9974976,55.028465,21.548775,7.4489518,16.1474289,58.7026647,31.7231278,45.9753473,49.5595664,42.4258605,59.3445399,2.0187466,42.1055044,45.3505917\r\n2150,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.620613,4.6599183,43.0824839,59.6074131,61.4652176,54.5765937,22.1541048,7.6411486,16.7121968,57.8735837,32.4887639,45.8217109,50.8318342,43.9440421,59.7675054,2.140414,42.9900386,44.8005668,4.4897888,4.5447948,41.0425249,60.3006884,61.9974976,55.028465,21.548775,7.4489518,16.1474289,58.7026647,31.7231278,45.9753473,49.5595664,42.4258605,59.3445399,2.0187466,42.1055044,45.3505917,4.1205919,4.1779371,39.7773717,58.5306243,60.6359254,54.5112702,22.5976383,6.7948614,15.4930138,60.4627806,32.9238851,45.0007713,47.9921966,40.5728987,59.0249666,2.0984188,40.855501,43.055544\r\n2151,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.4897888,4.5447948,41.0425249,60.3006884,61.9974976,55.028465,21.548775,7.4489518,16.1474289,58.7026647,31.7231278,45.9753473,49.5595664,42.4258605,59.3445399,2.0187466,42.1055044,45.3505917,4.1205919,4.1779371,39.7773717,58.5306243,60.6359254,54.5112702,22.5976383,6.7948614,15.4930138,60.4627806,32.9238851,45.0007713,47.9921966,40.5728987,59.0249666,2.0984188,40.855501,43.055544,3.8557941,3.9006531,37.0695218,60.5805337,63.3469522,54.6603662,22.205584,7.3482764,16.688284,60.4304861,31.4936306,44.5329765,45.9178039,38.09891,59.1293149,2.2738137,40.5395924,43.3216046\r\n2152,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1205919,4.1779371,39.7773717,58.5306243,60.6359254,54.5112702,22.5976383,6.7948614,15.4930138,60.4627806,32.9238851,45.0007713,47.9921966,40.5728987,59.0249666,2.0984188,40.855501,43.055544,3.8557941,3.9006531,37.0695218,60.5805337,63.3469522,54.6603662,22.205584,7.3482764,16.688284,60.4304861,31.4936306,44.5329765,45.9178039,38.09891,59.1293149,2.2738137,40.5395924,43.3216046,3.4978019,3.5601886,34.2876147,60.8135215,62.7243515,55.140323,21.5389894,7.8406624,17.0803854,59.4452532,30.3634631,44.2239189,42.9804255,35.1337984,58.7944418,2.5207308,40.3883039,41.6037626\r\n2153,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8557941,3.9006531,37.0695218,60.5805337,63.3469522,54.6603662,22.205584,7.3482764,16.688284,60.4304861,31.4936306,44.5329765,45.9178039,38.09891,59.1293149,2.2738137,40.5395924,43.3216046,3.4978019,3.5601886,34.2876147,60.8135215,62.7243515,55.140323,21.5389894,7.8406624,17.0803854,59.4452532,30.3634631,44.2239189,42.9804255,35.1337984,58.7944418,2.5207308,40.3883039,41.6037626,3.2384596,3.3222717,31.8233971,59.119776,60.6408261,52.3008454,22.1894028,6.9954216,16.9744311,58.9227471,31.1464557,44.1626864,40.995058,33.6297542,58.0564632,2.5485411,40.1780678,39.4999721\r\n2154,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4978019,3.5601886,34.2876147,60.8135215,62.7243515,55.140323,21.5389894,7.8406624,17.0803854,59.4452532,30.3634631,44.2239189,42.9804255,35.1337984,58.7944418,2.5207308,40.3883039,41.6037626,3.2384596,3.3222717,31.8233971,59.119776,60.6408261,52.3008454,22.1894028,6.9954216,16.9744311,58.9227471,31.1464557,44.1626864,40.995058,33.6297542,58.0564632,2.5485411,40.1780678,39.4999721,2.9969455,3.0703352,29.693237,58.1389892,59.4236141,53.5478971,23.3102449,7.3084674,17.2467379,59.1704994,30.573064,43.7991715,38.0978176,31.0667701,58.1213667,2.4892228,39.8573464,38.3870653\r\n2155,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2384596,3.3222717,31.8233971,59.119776,60.6408261,52.3008454,22.1894028,6.9954216,16.9744311,58.9227471,31.1464557,44.1626864,40.995058,33.6297542,58.0564632,2.5485411,40.1780678,39.4999721,2.9969455,3.0703352,29.693237,58.1389892,59.4236141,53.5478971,23.3102449,7.3084674,17.2467379,59.1704994,30.573064,43.7991715,38.0978176,31.0667701,58.1213667,2.4892228,39.8573464,38.3870653,3.1201477,3.1821241,29.175826,57.3617857,59.7624718,53.3534858,21.8520204,7.5643605,16.4816068,59.3672427,30.9198081,42.766121,36.9862708,29.6783893,57.6575653,2.4673908,40.0307046,36.990936\r\n2156,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9969455,3.0703352,29.693237,58.1389892,59.4236141,53.5478971,23.3102449,7.3084674,17.2467379,59.1704994,30.573064,43.7991715,38.0978176,31.0667701,58.1213667,2.4892228,39.8573464,38.3870653,3.1201477,3.1821241,29.175826,57.3617857,59.7624718,53.3534858,21.8520204,7.5643605,16.4816068,59.3672427,30.9198081,42.766121,36.9862708,29.6783893,57.6575653,2.4673908,40.0307046,36.990936,2.9201088,2.9745114,29.1018844,57.7729785,60.0805351,53.0737004,21.5567303,7.62059,16.6164745,59.6882494,31.3385513,42.9890362,35.3932436,28.3417046,57.1793083,2.3273515,40.5332696,33.9160764\r\n2157,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.1201477,3.1821241,29.175826,57.3617857,59.7624718,53.3534858,21.8520204,7.5643605,16.4816068,59.3672427,30.9198081,42.766121,36.9862708,29.6783893,57.6575653,2.4673908,40.0307046,36.990936,2.9201088,2.9745114,29.1018844,57.7729785,60.0805351,53.0737004,21.5567303,7.62059,16.6164745,59.6882494,31.3385513,42.9890362,35.3932436,28.3417046,57.1793083,2.3273515,40.5332696,33.9160764,2.5185015,2.6496929,27.2407966,60.3868809,61.8229962,52.5831317,20.9559452,6.8491735,16.2169826,58.4026567,31.240923,43.5298693,34.5791299,27.4328689,56.2495647,2.4340972,40.7867882,34.634753\r\n2158,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9201088,2.9745114,29.1018844,57.7729785,60.0805351,53.0737004,21.5567303,7.62059,16.6164745,59.6882494,31.3385513,42.9890362,35.3932436,28.3417046,57.1793083,2.3273515,40.5332696,33.9160764,2.5185015,2.6496929,27.2407966,60.3868809,61.8229962,52.5831317,20.9559452,6.8491735,16.2169826,58.4026567,31.240923,43.5298693,34.5791299,27.4328689,56.2495647,2.4340972,40.7867882,34.634753,2.2998581,2.435727,26.573225,59.3549894,59.5424181,53.3574281,22.3501953,6.4870394,15.3173275,58.9906165,34.0767234,43.5557508,33.1591426,26.3664885,54.7202524,2.3491093,40.0588117,31.8666667\r\n2159,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5185015,2.6496929,27.2407966,60.3868809,61.8229962,52.5831317,20.9559452,6.8491735,16.2169826,58.4026567,31.240923,43.5298693,34.5791299,27.4328689,56.2495647,2.4340972,40.7867882,34.634753,2.2998581,2.435727,26.573225,59.3549894,59.5424181,53.3574281,22.3501953,6.4870394,15.3173275,58.9906165,34.0767234,43.5557508,33.1591426,26.3664885,54.7202524,2.3491093,40.0588117,31.8666667,2.1740137,2.3140618,27.3181274,59.3404967,61.1133923,51.5400496,23.7044564,5.5586923,14.360494,61.6836204,36.5806503,43.3240389,33.459734,26.7512407,53.6198575,2.4382056,40.0836296,29.4520323\r\n2160,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2998581,2.435727,26.573225,59.3549894,59.5424181,53.3574281,22.3501953,6.4870394,15.3173275,58.9906165,34.0767234,43.5557508,33.1591426,26.3664885,54.7202524,2.3491093,40.0588117,31.8666667,2.1740137,2.3140618,27.3181274,59.3404967,61.1133923,51.5400496,23.7044564,5.5586923,14.360494,61.6836204,36.5806503,43.3240389,33.459734,26.7512407,53.6198575,2.4382056,40.0836296,29.4520323,1.9286481,2.0202179,26.9928065,59.4259533,62.2391131,52.7841553,24.7531274,6.5465942,15.5457,63.3566009,38.2967599,41.5147236,32.7819359,25.9057168,51.8078047,2.8439365,38.7941468,27.6203791\r\n2161,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1740137,2.3140618,27.3181274,59.3404967,61.1133923,51.5400496,23.7044564,5.5586923,14.360494,61.6836204,36.5806503,43.3240389,33.459734,26.7512407,53.6198575,2.4382056,40.0836296,29.4520323,1.9286481,2.0202179,26.9928065,59.4259533,62.2391131,52.7841553,24.7531274,6.5465942,15.5457,63.3566009,38.2967599,41.5147236,32.7819359,25.9057168,51.8078047,2.8439365,38.7941468,27.6203791,1.8045743,1.8958432,26.3065694,58.2669493,60.6424103,50.3772188,25.1506606,6.0481393,14.4166004,64.0131121,40.2006995,40.2824083,31.5582104,25.2064543,51.0434028,2.9680718,39.3512611,28.7572215\r\n2162,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9286481,2.0202179,26.9928065,59.4259533,62.2391131,52.7841553,24.7531274,6.5465942,15.5457,63.3566009,38.2967599,41.5147236,32.7819359,25.9057168,51.8078047,2.8439365,38.7941468,27.6203791,1.8045743,1.8958432,26.3065694,58.2669493,60.6424103,50.3772188,25.1506606,6.0481393,14.4166004,64.0131121,40.2006995,40.2824083,31.5582104,25.2064543,51.0434028,2.9680718,39.3512611,28.7572215,1.4797932,1.5735787,25.1218142,58.8799518,62.0636123,50.6444785,27.0574602,5.0032857,13.8739691,64.9596995,40.5773429,40.7812045,30.8617322,24.7922428,50.9044216,2.9723583,39.8159436,25.9878352\r\n2163,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8045743,1.8958432,26.3065694,58.2669493,60.6424103,50.3772188,25.1506606,6.0481393,14.4166004,64.0131121,40.2006995,40.2824083,31.5582104,25.2064543,51.0434028,2.9680718,39.3512611,28.7572215,1.4797932,1.5735787,25.1218142,58.8799518,62.0636123,50.6444785,27.0574602,5.0032857,13.8739691,64.9596995,40.5773429,40.7812045,30.8617322,24.7922428,50.9044216,2.9723583,39.8159436,25.9878352,1.4839095,1.5703596,22.7170378,57.9937227,59.3211385,49.2374414,29.5625145,5.488723,12.1675896,65.4097832,42.6700712,40.082154,30.1160674,23.7661195,49.6025859,3.4227788,37.8107226,25.6289155\r\n2164,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4797932,1.5735787,25.1218142,58.8799518,62.0636123,50.6444785,27.0574602,5.0032857,13.8739691,64.9596995,40.5773429,40.7812045,30.8617322,24.7922428,50.9044216,2.9723583,39.8159436,25.9878352,1.4839095,1.5703596,22.7170378,57.9937227,59.3211385,49.2374414,29.5625145,5.488723,12.1675896,65.4097832,42.6700712,40.082154,30.1160674,23.7661195,49.6025859,3.4227788,37.8107226,25.6289155,1.5573054,1.5573054,22.234468,55.5008753,58.6058457,49.6551619,30.2585253,5.431691,12.8624705,67.4677251,44.5289185,39.3538175,28.6013295,23.1593568,49.2415483,3.1668705,37.5804709,23.7704746\r\n2165,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4839095,1.5703596,22.7170378,57.9937227,59.3211385,49.2374414,29.5625145,5.488723,12.1675896,65.4097832,42.6700712,40.082154,30.1160674,23.7661195,49.6025859,3.4227788,37.8107226,25.6289155,1.5573054,1.5573054,22.234468,55.5008753,58.6058457,49.6551619,30.2585253,5.431691,12.8624705,67.4677251,44.5289185,39.3538175,28.6013295,23.1593568,49.2415483,3.1668705,37.5804709,23.7704746,1.4140558,1.4140558,21.0042551,53.8658316,59.1491662,47.2875202,30.9084179,4.897002,12.7742586,68.4879978,43.8515916,39.4281583,27.1783493,21.9481541,49.074048,3.3717458,39.206701,24.0614157\r\n2166,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5573054,1.5573054,22.234468,55.5008753,58.6058457,49.6551619,30.2585253,5.431691,12.8624705,67.4677251,44.5289185,39.3538175,28.6013295,23.1593568,49.2415483,3.1668705,37.5804709,23.7704746,1.4140558,1.4140558,21.0042551,53.8658316,59.1491662,47.2875202,30.9084179,4.897002,12.7742586,68.4879978,43.8515916,39.4281583,27.1783493,21.9481541,49.074048,3.3717458,39.206701,24.0614157,1.4980581,1.4980581,19.3468265,53.9910622,58.1248049,49.1148106,31.0799103,5.5757631,13.9696479,68.1294202,43.7953491,38.5755918,26.021724,20.6726455,48.2524603,3.495709,39.051332,22.9477612\r\n2167,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4140558,1.4140558,21.0042551,53.8658316,59.1491662,47.2875202,30.9084179,4.897002,12.7742586,68.4879978,43.8515916,39.4281583,27.1783493,21.9481541,49.074048,3.3717458,39.206701,24.0614157,1.4980581,1.4980581,19.3468265,53.9910622,58.1248049,49.1148106,31.0799103,5.5757631,13.9696479,68.1294202,43.7953491,38.5755918,26.021724,20.6726455,48.2524603,3.495709,39.051332,22.9477612,1.606517,1.606517,18.4279968,55.8890022,59.0666539,50.4283047,31.6355678,4.8163666,12.7633429,67.8117783,42.6936502,40.1309313,25.0308158,19.8914189,48.9634105,3.6061112,39.7157418,19.6564961\r\n2168,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4980581,1.4980581,19.3468265,53.9910622,58.1248049,49.1148106,31.0799103,5.5757631,13.9696479,68.1294202,43.7953491,38.5755918,26.021724,20.6726455,48.2524603,3.495709,39.051332,22.9477612,1.606517,1.606517,18.4279968,55.8890022,59.0666539,50.4283047,31.6355678,4.8163666,12.7633429,67.8117783,42.6936502,40.1309313,25.0308158,19.8914189,48.9634105,3.6061112,39.7157418,19.6564961,1.509434,1.509434,17.0456671,56.3351338,59.9773564,50.4323747,31.5155013,4.5093767,12.3383872,67.4270976,42.3335188,40.3618877,24.4948496,19.1599856,48.3107828,3.9718176,38.3812187,15.8436279\r\n2169,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.606517,1.606517,18.4279968,55.8890022,59.0666539,50.4283047,31.6355678,4.8163666,12.7633429,67.8117783,42.6936502,40.1309313,25.0308158,19.8914189,48.9634105,3.6061112,39.7157418,19.6564961,1.509434,1.509434,17.0456671,56.3351338,59.9773564,50.4323747,31.5155013,4.5093767,12.3383872,67.4270976,42.3335188,40.3618877,24.4948496,19.1599856,48.3107828,3.9718176,38.3812187,15.8436279,1.6521089,1.6521089,16.1609912,56.6821716,58.3778992,50.7535226,31.8132613,4.7450377,12.5128372,67.3307454,42.7246769,40.2587133,23.2272279,17.8794909,47.7486758,4.3491128,39.1153227,15.1709467\r\n2170,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.509434,1.509434,17.0456671,56.3351338,59.9773564,50.4323747,31.5155013,4.5093767,12.3383872,67.4270976,42.3335188,40.3618877,24.4948496,19.1599856,48.3107828,3.9718176,38.3812187,15.8436279,1.6521089,1.6521089,16.1609912,56.6821716,58.3778992,50.7535226,31.8132613,4.7450377,12.5128372,67.3307454,42.7246769,40.2587133,23.2272279,17.8794909,47.7486758,4.3491128,39.1153227,15.1709467,1.5495684,1.5495684,15.9076208,57.7495465,61.0302695,50.8051641,30.0756859,4.1425799,13.6482734,67.4796071,41.0053084,41.099919,22.4417092,17.3251275,47.7951454,4.0863862,39.960125,13.0136986\r\n2171,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6521089,1.6521089,16.1609912,56.6821716,58.3778992,50.7535226,31.8132613,4.7450377,12.5128372,67.3307454,42.7246769,40.2587133,23.2272279,17.8794909,47.7486758,4.3491128,39.1153227,15.1709467,1.5495684,1.5495684,15.9076208,57.7495465,61.0302695,50.8051641,30.0756859,4.1425799,13.6482734,67.4796071,41.0053084,41.099919,22.4417092,17.3251275,47.7951454,4.0863862,39.960125,13.0136986,1.8537242,1.8537242,14.9111211,57.9928542,61.0254043,50.712413,29.7699063,4.4512711,13.1779341,66.0824932,39.988399,41.6582384,21.4472879,16.4702008,47.8007142,4.0040452,40.4212147,11.5909493\r\n2172,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5495684,1.5495684,15.9076208,57.7495465,61.0302695,50.8051641,30.0756859,4.1425799,13.6482734,67.4796071,41.0053084,41.099919,22.4417092,17.3251275,47.7951454,4.0863862,39.960125,13.0136986,1.8537242,1.8537242,14.9111211,57.9928542,61.0254043,50.712413,29.7699063,4.4512711,13.1779341,66.0824932,39.988399,41.6582384,21.4472879,16.4702008,47.8007142,4.0040452,40.4212147,11.5909493,2.2278335,2.1976075,16.055866,59.6727387,61.1071293,52.1413476,27.7033342,4.784959,12.5912904,64.3814586,38.7350823,41.01322,22.4802334,17.4351345,47.4148961,3.8230003,40.2765835,12.8378378\r\n2173,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8537242,1.8537242,14.9111211,57.9928542,61.0254043,50.712413,29.7699063,4.4512711,13.1779341,66.0824932,39.988399,41.6582384,21.4472879,16.4702008,47.8007142,4.0040452,40.4212147,11.5909493,2.2278335,2.1976075,16.055866,59.6727387,61.1071293,52.1413476,27.7033342,4.784959,12.5912904,64.3814586,38.7350823,41.01322,22.4802334,17.4351345,47.4148961,3.8230003,40.2765835,12.8378378,2.1042101,2.0735392,14.9567802,58.8176195,61.7129426,50.7124344,27.706322,4.2099994,12.1809165,64.5648185,39.13696,39.970817,21.4221735,16.6479819,47.8257128,3.268069,41.312957,12.4434389\r\n2174,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2278335,2.1976075,16.055866,59.6727387,61.1071293,52.1413476,27.7033342,4.784959,12.5912904,64.3814586,38.7350823,41.01322,22.4802334,17.4351345,47.4148961,3.8230003,40.2765835,12.8378378,2.1042101,2.0735392,14.9567802,58.8176195,61.7129426,50.7124344,27.706322,4.2099994,12.1809165,64.5648185,39.13696,39.970817,21.4221735,16.6479819,47.8257128,3.268069,41.312957,12.4434389,1.914272,1.8838252,15.2424211,59.8238337,63.0960036,51.5334306,27.3739154,4.2233028,12.656173,64.5105092,39.4111136,39.0241304,21.4547609,16.7674225,47.4794411,3.0957545,42.7473836,14.4549695\r\n2175,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1042101,2.0735392,14.9567802,58.8176195,61.7129426,50.7124344,27.706322,4.2099994,12.1809165,64.5648185,39.13696,39.970817,21.4221735,16.6479819,47.8257128,3.268069,41.312957,12.4434389,1.914272,1.8838252,15.2424211,59.8238337,63.0960036,51.5334306,27.3739154,4.2233028,12.656173,64.5105092,39.4111136,39.0241304,21.4547609,16.7674225,47.4794411,3.0957545,42.7473836,14.4549695,2.0164789,1.9739025,15.2166743,61.5066348,64.4756223,52.0972043,26.8786481,4.4603733,13.5062684,64.7387119,39.6132503,39.3402252,21.4827355,16.4633506,47.2260323,2.4849966,41.6746784,16.0098443\r\n2176,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.914272,1.8838252,15.2424211,59.8238337,63.0960036,51.5334306,27.3739154,4.2233028,12.656173,64.5105092,39.4111136,39.0241304,21.4547609,16.7674225,47.4794411,3.0957545,42.7473836,14.4549695,2.0164789,1.9739025,15.2166743,61.5066348,64.4756223,52.0972043,26.8786481,4.4603733,13.5062684,64.7387119,39.6132503,39.3402252,21.4827355,16.4633506,47.2260323,2.4849966,41.6746784,16.0098443,1.8151139,1.7961334,14.3469923,60.3297689,65.0180855,53.284743,26.8279787,4.4422132,14.3886735,64.6105702,38.9184007,38.8156029,21.2774687,16.3756775,46.4535303,2.2937954,39.9020943,15.7767246\r\n2177,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0164789,1.9739025,15.2166743,61.5066348,64.4756223,52.0972043,26.8786481,4.4603733,13.5062684,64.7387119,39.6132503,39.3402252,21.4827355,16.4633506,47.2260323,2.4849966,41.6746784,16.0098443,1.8151139,1.7961334,14.3469923,60.3297689,65.0180855,53.284743,26.8279787,4.4422132,14.3886735,64.6105702,38.9184007,38.8156029,21.2774687,16.3756775,46.4535303,2.2937954,39.9020943,15.7767246,1.8647915,1.8453872,13.5106915,58.7314134,63.945289,52.6369731,29.1460362,4.0603919,14.2242012,64.8659098,40.027179,37.7124791,20.2870179,15.4402909,46.2001478,2.3531655,40.6392252,15.9091678\r\n2178,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8151139,1.7961334,14.3469923,60.3297689,65.0180855,53.284743,26.8279787,4.4422132,14.3886735,64.6105702,38.9184007,38.8156029,21.2774687,16.3756775,46.4535303,2.2937954,39.9020943,15.7767246,1.8647915,1.8453872,13.5106915,58.7314134,63.945289,52.6369731,29.1460362,4.0603919,14.2242012,64.8659098,40.027179,37.7124791,20.2870179,15.4402909,46.2001478,2.3531655,40.6392252,15.9091678,1.5341218,1.5144601,13.5258611,58.6758367,64.4418398,52.2756967,28.8608537,4.2313814,14.1958536,65.8624372,40.3095187,37.0996112,20.2908736,14.8406331,44.3541417,2.6494886,40.7245612,16.2500256\r\n2179,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8647915,1.8453872,13.5106915,58.7314134,63.945289,52.6369731,29.1460362,4.0603919,14.2242012,64.8659098,40.027179,37.7124791,20.2870179,15.4402909,46.2001478,2.3531655,40.6392252,15.9091678,1.5341218,1.5144601,13.5258611,58.6758367,64.4418398,52.2756967,28.8608537,4.2313814,14.1958536,65.8624372,40.3095187,37.0996112,20.2908736,14.8406331,44.3541417,2.6494886,40.7245612,16.2500256,1.1118338,1.1240501,11.6679096,59.4840595,65.321478,51.5582488,30.7977305,4.0263935,14.4857892,67.9078272,41.670708,37.1643252,18.341131,13.1404392,43.8895979,2.6613607,40.8813587,12.894815\r\n2180,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5341218,1.5144601,13.5258611,58.6758367,64.4418398,52.2756967,28.8608537,4.2313814,14.1958536,65.8624372,40.3095187,37.0996112,20.2908736,14.8406331,44.3541417,2.6494886,40.7245612,16.2500256,1.1118338,1.1240501,11.6679096,59.4840595,65.321478,51.5582488,30.7977305,4.0263935,14.4857892,67.9078272,41.670708,37.1643252,18.341131,13.1404392,43.8895979,2.6613607,40.8813587,12.894815,1.1716204,1.2058802,12.4382859,57.8734115,63.7244895,50.4805529,32.6146775,3.3847482,12.9647943,68.7034316,42.629294,35.82274,18.2664117,13.2177399,42.0428258,3.5920207,40.5197712,11.8785438\r\n2181,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1118338,1.1240501,11.6679096,59.4840595,65.321478,51.5582488,30.7977305,4.0263935,14.4857892,67.9078272,41.670708,37.1643252,18.341131,13.1404392,43.8895979,2.6613607,40.8813587,12.894815,1.1716204,1.2058802,12.4382859,57.8734115,63.7244895,50.4805529,32.6146775,3.3847482,12.9647943,68.7034316,42.629294,35.82274,18.2664117,13.2177399,42.0428258,3.5920207,40.5197712,11.8785438,1.1087062,1.1428317,10.9705536,56.7797584,61.8549957,49.3395674,32.5897859,3.1281893,12.3932202,69.8305088,43.8474681,36.2209972,17.3156769,12.1593039,39.6344409,3.59463,40.666809,9.4286696\r\n2182,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1716204,1.2058802,12.4382859,57.8734115,63.7244895,50.4805529,32.6146775,3.3847482,12.9647943,68.7034316,42.629294,35.82274,18.2664117,13.2177399,42.0428258,3.5920207,40.5197712,11.8785438,1.1087062,1.1428317,10.9705536,56.7797584,61.8549957,49.3395674,32.5897859,3.1281893,12.3932202,69.8305088,43.8474681,36.2209972,17.3156769,12.1593039,39.6344409,3.59463,40.666809,9.4286696,1.0952619,1.1252573,10.8833247,56.0401419,60.8258236,49.3538631,33.6761503,2.9193799,11.3169592,69.7910026,44.1716952,35.152108,16.5413222,11.6702683,39.6162128,4.1958886,39.8475833,8.7079629\r\n2183,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1087062,1.1428317,10.9705536,56.7797584,61.8549957,49.3395674,32.5897859,3.1281893,12.3932202,69.8305088,43.8474681,36.2209972,17.3156769,12.1593039,39.6344409,3.59463,40.666809,9.4286696,1.0952619,1.1252573,10.8833247,56.0401419,60.8258236,49.3538631,33.6761503,2.9193799,11.3169592,69.7910026,44.1716952,35.152108,16.5413222,11.6702683,39.6162128,4.1958886,39.8475833,8.7079629,1.2272087,1.232395,11.1016454,55.4633397,59.2627808,46.0169827,34.8025465,2.3920178,10.4844929,70.1389737,45.1945706,34.3085767,16.4447861,11.4153938,39.1625609,4.0736628,41.4595587,7.9882249\r\n2184,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0952619,1.1252573,10.8833247,56.0401419,60.8258236,49.3538631,33.6761503,2.9193799,11.3169592,69.7910026,44.1716952,35.152108,16.5413222,11.6702683,39.6162128,4.1958886,39.8475833,8.7079629,1.2272087,1.232395,11.1016454,55.4633397,59.2627808,46.0169827,34.8025465,2.3920178,10.4844929,70.1389737,45.1945706,34.3085767,16.4447861,11.4153938,39.1625609,4.0736628,41.4595587,7.9882249,1.120362,1.1254851,12.3327197,56.5238334,60.8498545,47.431944,33.4204295,2.2241061,10.6767875,69.4725688,45.0521633,34.3158018,17.0803215,12.0509312,38.1708805,4.1495222,42.1527829,6.9697012\r\n2185,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2272087,1.232395,11.1016454,55.4633397,59.2627808,46.0169827,34.8025465,2.3920178,10.4844929,70.1389737,45.1945706,34.3085767,16.4447861,11.4153938,39.1625609,4.0736628,41.4595587,7.9882249,1.120362,1.1254851,12.3327197,56.5238334,60.8498545,47.431944,33.4204295,2.2241061,10.6767875,69.4725688,45.0521633,34.3158018,17.0803215,12.0509312,38.1708805,4.1495222,42.1527829,6.9697012,1.2298411,1.2504662,13.0821142,57.1691042,59.752555,48.8656015,34.9180251,1.5040766,10.9664977,70.3194,45.1155006,34.6944896,17.6837105,12.6968358,37.3661384,4.0596833,42.7053802,7.0000093\r\n2186,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.120362,1.1254851,12.3327197,56.5238334,60.8498545,47.431944,33.4204295,2.2241061,10.6767875,69.4725688,45.0521633,34.3158018,17.0803215,12.0509312,38.1708805,4.1495222,42.1527829,6.9697012,1.2298411,1.2504662,13.0821142,57.1691042,59.752555,48.8656015,34.9180251,1.5040766,10.9664977,70.3194,45.1155006,34.6944896,17.6837105,12.6968358,37.3661384,4.0596833,42.7053802,7.0000093,1.3891474,1.4103214,13.3758321,54.9197461,58.5207626,49.6785521,34.7190762,1.4125726,11.5940735,70.6993734,45.7846438,33.1865096,18.0929446,12.9426482,35.8290593,3.8652439,41.4511683,6.8344752\r\n2187,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2298411,1.2504662,13.0821142,57.1691042,59.752555,48.8656015,34.9180251,1.5040766,10.9664977,70.3194,45.1155006,34.6944896,17.6837105,12.6968358,37.3661384,4.0596833,42.7053802,7.0000093,1.3891474,1.4103214,13.3758321,54.9197461,58.5207626,49.6785521,34.7190762,1.4125726,11.5940735,70.6993734,45.7846438,33.1865096,18.0929446,12.9426482,35.8290593,3.8652439,41.4511683,6.8344752,1.3519481,1.3647023,13.602099,58.6052737,59.7752405,50.5783304,33.8489623,1.8730978,11.7085828,70.3413455,45.1294544,35.9026623,18.3494629,12.8951299,36.1151444,3.1560224,41.0014778,8.214226\r\n2188,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3891474,1.4103214,13.3758321,54.9197461,58.5207626,49.6785521,34.7190762,1.4125726,11.5940735,70.6993734,45.7846438,33.1865096,18.0929446,12.9426482,35.8290593,3.8652439,41.4511683,6.8344752,1.3519481,1.3647023,13.602099,58.6052737,59.7752405,50.5783304,33.8489623,1.8730978,11.7085828,70.3413455,45.1294544,35.9026623,18.3494629,12.8951299,36.1151444,3.1560224,41.0014778,8.214226,1.5601816,1.5734345,13.6243364,58.8353436,60.5856189,50.0284105,33.3874247,1.7493543,11.2443728,70.0087157,44.0512249,35.6630969,18.9115275,12.8766826,36.2982506,3.3678702,40.9021747,8.6465674\r\n2189,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3519481,1.3647023,13.602099,58.6052737,59.7752405,50.5783304,33.8489623,1.8730978,11.7085828,70.3413455,45.1294544,35.9026623,18.3494629,12.8951299,36.1151444,3.1560224,41.0014778,8.214226,1.5601816,1.5734345,13.6243364,58.8353436,60.5856189,50.0284105,33.3874247,1.7493543,11.2443728,70.0087157,44.0512249,35.6630969,18.9115275,12.8766826,36.2982506,3.3678702,40.9021747,8.6465674,1.5536331,1.5850994,13.1349044,57.4554784,60.2357407,50.9320886,33.1434041,1.4291961,11.7725408,70.6957374,43.8673803,34.879297,18.7538318,12.6376509,36.0305949,3.10534,45.0965081,7.6612406\r\n2190,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5601816,1.5734345,13.6243364,58.8353436,60.5856189,50.0284105,33.3874247,1.7493543,11.2443728,70.0087157,44.0512249,35.6630969,18.9115275,12.8766826,36.2982506,3.3678702,40.9021747,8.6465674,1.5536331,1.5850994,13.1349044,57.4554784,60.2357407,50.9320886,33.1434041,1.4291961,11.7725408,70.6957374,43.8673803,34.879297,18.7538318,12.6376509,36.0305949,3.10534,45.0965081,7.6612406,1.5679697,1.5643521,13.3109836,58.4633228,61.1909471,54.4175913,31.2049691,2.2202729,12.6952801,69.503839,42.7267627,34.404615,19.3503225,13.3200545,35.3658661,3.2139888,45.5686015,8.2030725\r\n2191,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5536331,1.5850994,13.1349044,57.4554784,60.2357407,50.9320886,33.1434041,1.4291961,11.7725408,70.6957374,43.8673803,34.879297,18.7538318,12.6376509,36.0305949,3.10534,45.0965081,7.6612406,1.5679697,1.5643521,13.3109836,58.4633228,61.1909471,54.4175913,31.2049691,2.2202729,12.6952801,69.503839,42.7267627,34.404615,19.3503225,13.3200545,35.3658661,3.2139888,45.5686015,8.2030725,1.5366672,1.5331488,11.7611043,57.836595,60.6520928,53.2879928,31.0158633,2.2980293,12.3313397,69.5700131,42.6432533,33.2242924,18.4084792,11.9113812,34.5238294,2.9880413,44.6341664,9.7655774\r\n2192,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5679697,1.5643521,13.3109836,58.4633228,61.1909471,54.4175913,31.2049691,2.2202729,12.6952801,69.503839,42.7267627,34.404615,19.3503225,13.3200545,35.3658661,3.2139888,45.5686015,8.2030725,1.5366672,1.5331488,11.7611043,57.836595,60.6520928,53.2879928,31.0158633,2.2980293,12.3313397,69.5700131,42.6432533,33.2242924,18.4084792,11.9113812,34.5238294,2.9880413,44.6341664,9.7655774,1.2653228,1.2450539,10.5195264,56.0311712,61.4717932,52.9475569,29.9037367,2.581684,12.8788584,69.1889466,43.6200814,30.5857982,17.1699183,11.0506792,34.5275857,3.3333262,44.0902072,6.9342538\r\n2193,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5366672,1.5331488,11.7611043,57.836595,60.6520928,53.2879928,31.0158633,2.2980293,12.3313397,69.5700131,42.6432533,33.2242924,18.4084792,11.9113812,34.5238294,2.9880413,44.6341664,9.7655774,1.2653228,1.2450539,10.5195264,56.0311712,61.4717932,52.9475569,29.9037367,2.581684,12.8788584,69.1889466,43.6200814,30.5857982,17.1699183,11.0506792,34.5275857,3.3333262,44.0902072,6.9342538,1.1152629,1.1119928,10.3215563,57.2360315,61.1473439,51.8845948,30.5978157,2.5928809,11.9684003,69.2033563,44.2051022,30.5260328,16.7248522,10.8589423,35.4531845,3.97179,44.5537016,7.4468244\r\n2194,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2653228,1.2450539,10.5195264,56.0311712,61.4717932,52.9475569,29.9037367,2.581684,12.8788584,69.1889466,43.6200814,30.5857982,17.1699183,11.0506792,34.5275857,3.3333262,44.0902072,6.9342538,1.1152629,1.1119928,10.3215563,57.2360315,61.1473439,51.8845948,30.5978157,2.5928809,11.9684003,69.2033563,44.2051022,30.5260328,16.7248522,10.8589423,35.4531845,3.97179,44.5537016,7.4468244,0.9777729,0.9613147,10.6866755,55.3814371,60.1098601,52.0773488,29.627391,2.5958341,12.7108892,70.2318237,44.1157855,28.6721657,16.2782402,10.9110208,34.656927,4.4502706,45.3101456,7.1428733\r\n2195,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1152629,1.1119928,10.3215563,57.2360315,61.1473439,51.8845948,30.5978157,2.5928809,11.9684003,69.2033563,44.2051022,30.5260328,16.7248522,10.8589423,35.4531845,3.97179,44.5537016,7.4468244,0.9777729,0.9613147,10.6866755,55.3814371,60.1098601,52.0773488,29.627391,2.5958341,12.7108892,70.2318237,44.1157855,28.6721657,16.2782402,10.9110208,34.656927,4.4502706,45.3101456,7.1428733,0.980436,0.9645124,11.8332826,54.6523173,59.0596552,50.4484805,30.3800759,2.6983532,12.2404802,69.8236323,45.1076544,27.0616797,15.9959048,11.2210194,33.6438451,4.3178602,43.6507926,10.4316622\r\n2196,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9777729,0.9613147,10.6866755,55.3814371,60.1098601,52.0773488,29.627391,2.5958341,12.7108892,70.2318237,44.1157855,28.6721657,16.2782402,10.9110208,34.656927,4.4502706,45.3101456,7.1428733,0.980436,0.9645124,11.8332826,54.6523173,59.0596552,50.4484805,30.3800759,2.6983532,12.2404802,69.8236323,45.1076544,27.0616797,15.9959048,11.2210194,33.6438451,4.3178602,43.6507926,10.4316622,0.8215892,0.8061761,12.5285604,55.0112045,58.9170847,49.758505,29.5553834,2.781218,12.9779822,68.9035861,44.0430851,27.4234536,16.6003821,11.4976836,32.0216817,4.3249025,41.7496267,10.5839416\r\n2197,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.980436,0.9645124,11.8332826,54.6523173,59.0596552,50.4484805,30.3800759,2.6983532,12.2404802,69.8236323,45.1076544,27.0616797,15.9959048,11.2210194,33.6438451,4.3178602,43.6507926,10.4316622,0.8215892,0.8061761,12.5285604,55.0112045,58.9170847,49.758505,29.5553834,2.781218,12.9779822,68.9035861,44.0430851,27.4234536,16.6003821,11.4976836,32.0216817,4.3249025,41.7496267,10.5839416,0.8124922,0.8075349,12.13359,55.4992881,59.1398068,47.8242563,29.9992816,2.1932089,12.4450128,69.8978194,44.6088554,28.027794,15.6429727,10.716567,31.5120474,4.4660922,40.8843383,10.9929156\r\n2198,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8215892,0.8061761,12.5285604,55.0112045,58.9170847,49.758505,29.5553834,2.781218,12.9779822,68.9035861,44.0430851,27.4234536,16.6003821,11.4976836,32.0216817,4.3249025,41.7496267,10.5839416,0.8124922,0.8075349,12.13359,55.4992881,59.1398068,47.8242563,29.9992816,2.1932089,12.4450128,69.8978194,44.6088554,28.027794,15.6429727,10.716567,31.5120474,4.4660922,40.8843383,10.9929156,0.889733,0.8848789,13.2156913,56.8045321,59.6143503,48.0585679,30.535216,2.3757446,12.5913107,70.4593561,43.9620232,27.489353,15.6195585,11.1301116,31.8111855,4.922561,41.6253188,10.8391684\r\n2199,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8124922,0.8075349,12.13359,55.4992881,59.1398068,47.8242563,29.9992816,2.1932089,12.4450128,69.8978194,44.6088554,28.027794,15.6429727,10.716567,31.5120474,4.4660922,40.8843383,10.9929156,0.889733,0.8848789,13.2156913,56.8045321,59.6143503,48.0585679,30.535216,2.3757446,12.5913107,70.4593561,43.9620232,27.489353,15.6195585,11.1301116,31.8111855,4.922561,41.6253188,10.8391684,1.0244497,1.0196013,13.525386,58.76561,59.2889168,49.1414219,31.8827675,2.2644195,12.0451617,70.3838335,43.6080912,28.6145928,15.8393401,11.4205165,31.3178795,4.7828035,40.8923067,10.4430578\r\n2200,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.889733,0.8848789,13.2156913,56.8045321,59.6143503,48.0585679,30.535216,2.3757446,12.5913107,70.4593561,43.9620232,27.489353,15.6195585,11.1301116,31.8111855,4.922561,41.6253188,10.8391684,1.0244497,1.0196013,13.525386,58.76561,59.2889168,49.1414219,31.8827675,2.2644195,12.0451617,70.3838335,43.6080912,28.6145928,15.8393401,11.4205165,31.3178795,4.7828035,40.8923067,10.4430578,1.1038022,1.1227764,13.974744,57.4095142,59.0452888,50.1974277,31.5409291,2.1519563,13.28213,70.7965815,44.4090788,29.0770459,16.5677766,11.8254501,30.655333,4.3860885,41.83928,9.1195141\r\n2201,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0244497,1.0196013,13.525386,58.76561,59.2889168,49.1414219,31.8827675,2.2644195,12.0451617,70.3838335,43.6080912,28.6145928,15.8393401,11.4205165,31.3178795,4.7828035,40.8923067,10.4430578,1.1038022,1.1227764,13.974744,57.4095142,59.0452888,50.1974277,31.5409291,2.1519563,13.28213,70.7965815,44.4090788,29.0770459,16.5677766,11.8254501,30.655333,4.3860885,41.83928,9.1195141,1.1244069,1.1491982,13.3817004,57.8239359,60.0911054,50.8852038,32.0666176,2.1192925,13.3237144,70.504927,45.6506267,29.8541424,16.4394509,11.8490375,30.4407231,4.7205498,41.9779657,8.3851088\r\n2202,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1038022,1.1227764,13.974744,57.4095142,59.0452888,50.1974277,31.5409291,2.1519563,13.28213,70.7965815,44.4090788,29.0770459,16.5677766,11.8254501,30.655333,4.3860885,41.83928,9.1195141,1.1244069,1.1491982,13.3817004,57.8239359,60.0911054,50.8852038,32.0666176,2.1192925,13.3237144,70.504927,45.6506267,29.8541424,16.4394509,11.8490375,30.4407231,4.7205498,41.9779657,8.3851088,1.0703725,1.0953665,12.1630658,57.9364038,60.5426409,52.5989093,32.9430154,2.1900651,14.00078,69.4347822,46.2489373,30.8481929,16.0819173,11.3468512,30.3200789,4.5572486,43.3049624,5.2469265\r\n2203,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1244069,1.1491982,13.3817004,57.8239359,60.0911054,50.8852038,32.0666176,2.1192925,13.3237144,70.504927,45.6506267,29.8541424,16.4394509,11.8490375,30.4407231,4.7205498,41.9779657,8.3851088,1.0703725,1.0953665,12.1630658,57.9364038,60.5426409,52.5989093,32.9430154,2.1900651,14.00078,69.4347822,46.2489373,30.8481929,16.0819173,11.3468512,30.3200789,4.5572486,43.3049624,5.2469265,1.3116398,1.3186405,12.1298786,57.1589681,61.8463561,52.4858784,34.562732,2.6515098,13.7242182,70.9333029,48.4351772,30.9742419,15.7737566,11.0386708,29.5953375,4.8249299,44.9767547,6.4815015\r\n2204,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0703725,1.0953665,12.1630658,57.9364038,60.5426409,52.5989093,32.9430154,2.1900651,14.00078,69.4347822,46.2489373,30.8481929,16.0819173,11.3468512,30.3200789,4.5572486,43.3049624,5.2469265,1.3116398,1.3186405,12.1298786,57.1589681,61.8463561,52.4858784,34.562732,2.6515098,13.7242182,70.9333029,48.4351772,30.9742419,15.7737566,11.0386708,29.5953375,4.8249299,44.9767547,6.4815015,1.2599942,1.3009256,12.5681725,56.5234133,63.3261897,53.4766541,35.4794537,2.5821472,13.1631165,70.7292979,49.3155275,32.0310205,16.2746677,11.3281482,29.9255714,4.6838704,46.0560756,6.375856\r\n2205,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3116398,1.3186405,12.1298786,57.1589681,61.8463561,52.4858784,34.562732,2.6515098,13.7242182,70.9333029,48.4351772,30.9742419,15.7737566,11.0386708,29.5953375,4.8249299,44.9767547,6.4815015,1.2599942,1.3009256,12.5681725,56.5234133,63.3261897,53.4766541,35.4794537,2.5821472,13.1631165,70.7292979,49.3155275,32.0310205,16.2746677,11.3281482,29.9255714,4.6838704,46.0560756,6.375856,1.2179755,1.2607811,11.8660757,55.5375045,61.8455649,54.1058007,35.6565679,2.9205192,13.1036621,70.4749798,50.4732012,32.8997637,16.1780412,11.3726831,29.5349586,4.6925582,45.3214411,5.2083442\r\n2206,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2599942,1.3009256,12.5681725,56.5234133,63.3261897,53.4766541,35.4794537,2.5821472,13.1631165,70.7292979,49.3155275,32.0310205,16.2746677,11.3281482,29.9255714,4.6838704,46.0560756,6.375856,1.2179755,1.2607811,11.8660757,55.5375045,61.8455649,54.1058007,35.6565679,2.9205192,13.1036621,70.4749798,50.4732012,32.8997637,16.1780412,11.3726831,29.5349586,4.6925582,45.3214411,5.2083442,1.0978436,1.1427382,11.8142643,53.8778225,60.9943049,52.8720289,35.4987299,2.7483397,12.5501411,70.1140677,50.5616723,31.9085011,15.9071049,11.1316017,29.3576634,4.3407863,45.5044948,5.5084839\r\n2207,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2179755,1.2607811,11.8660757,55.5375045,61.8455649,54.1058007,35.6565679,2.9205192,13.1036621,70.4749798,50.4732012,32.8997637,16.1780412,11.3726831,29.5349586,4.6925582,45.3214411,5.2083442,1.0978436,1.1427382,11.8142643,53.8778225,60.9943049,52.8720289,35.4987299,2.7483397,12.5501411,70.1140677,50.5616723,31.9085011,15.9071049,11.1316017,29.3576634,4.3407863,45.5044948,5.5084839,1.1345768,1.1373219,11.6049489,55.2723864,62.2739134,54.4129068,36.0947434,2.5587617,11.9089454,68.9271997,49.5928782,33.0981584,15.5241054,10.758233,28.8060957,4.3534673,44.1432976,8.119672\r\n2208,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.8052954,1.8305673,18.3278491,73.7095536,74.1897278,68.6705893,19.0324012,62.7483663,25.1234474,61.2469342,27.119465,50.6149831,22.302548,17.5565874,83.7212253,4.1731438,33.661434,10.1160415,1.7551446,1.8103041,19.3750521,73.8211155,73.4023662,68.3633863,18.4867691,62.2498336,25.1330923,60.3580571,27.0322045,50.6797863,23.5025416,18.6085109,83.9444253,3.8755372,33.6487646,12.2143609,1.9829473,2.0368984,21.0102898,73.4305879,73.4367236,68.404185,18.8902648,60.0293227,24.7726615,61.4693803,28.6376999,51.6529043,24.5172189,19.6531782,84.1508443,4.2103377,33.903875,13.4309148\r\n2209,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7551446,1.8103041,19.3750521,73.8211155,73.4023662,68.3633863,18.4867691,62.2498336,25.1330923,60.3580571,27.0322045,50.6797863,23.5025416,18.6085109,83.9444253,3.8755372,33.6487646,12.2143609,1.9829473,2.0368984,21.0102898,73.4305879,73.4367236,68.404185,18.8902648,60.0293227,24.7726615,61.4693803,28.6376999,51.6529043,24.5172189,19.6531782,84.1508443,4.2103377,33.903875,13.4309148,1.9984954,2.0293747,21.8471806,73.8753161,73.3920016,68.4216789,18.1191461,59.2261359,24.0269346,61.7346675,28.7866798,51.3641149,26.2066068,21.2385949,84.1913535,4.0244951,33.7798357,13.9955377\r\n2210,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9829473,2.0368984,21.0102898,73.4305879,73.4367236,68.404185,18.8902648,60.0293227,24.7726615,61.4693803,28.6376999,51.6529043,24.5172189,19.6531782,84.1508443,4.2103377,33.903875,13.4309148,1.9984954,2.0293747,21.8471806,73.8753161,73.3920016,68.4216789,18.1191461,59.2261359,24.0269346,61.7346675,28.7866798,51.3641149,26.2066068,21.2385949,84.1913535,4.0244951,33.7798357,13.9955377,1.9631358,2.022791,23.4533927,74.5730522,73.1837296,68.7160589,17.4977422,59.3417963,24.9890119,61.0234198,29.238478,52.0615332,27.6321313,22.7757831,84.9427228,3.954697,33.2270314,15.1481074\r\n2211,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9984954,2.0293747,21.8471806,73.8753161,73.3920016,68.4216789,18.1191461,59.2261359,24.0269346,61.7346675,28.7866798,51.3641149,26.2066068,21.2385949,84.1913535,4.0244951,33.7798357,13.9955377,1.9631358,2.022791,23.4533927,74.5730522,73.1837296,68.7160589,17.4977422,59.3417963,24.9890119,61.0234198,29.238478,52.0615332,27.6321313,22.7757831,84.9427228,3.954697,33.2270314,15.1481074,2.0568977,2.111845,24.6902346,74.5264867,72.7749068,69.8558695,17.4878756,59.5971774,26.321508,61.8981975,29.5461292,52.6685081,28.9586296,24.2474039,85.3255716,4.1265415,33.4172588,15.604965\r\n2212,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9631358,2.022791,23.4533927,74.5730522,73.1837296,68.7160589,17.4977422,59.3417963,24.9890119,61.0234198,29.238478,52.0615332,27.6321313,22.7757831,84.9427228,3.954697,33.2270314,15.1481074,2.0568977,2.111845,24.6902346,74.5264867,72.7749068,69.8558695,17.4878756,59.5971774,26.321508,61.8981975,29.5461292,52.6685081,28.9586296,24.2474039,85.3255716,4.1265415,33.4172588,15.604965,1.9077051,1.9790371,26.3621463,74.7046884,72.8891381,69.4533731,17.010761,60.0035902,26.7866484,61.0847145,29.2214827,54.0979951,30.5947056,26.0908766,85.102057,3.9728922,33.3213545,17.9243908\r\n2213,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0568977,2.111845,24.6902346,74.5264867,72.7749068,69.8558695,17.4878756,59.5971774,26.321508,61.8981975,29.5461292,52.6685081,28.9586296,24.2474039,85.3255716,4.1265415,33.4172588,15.604965,1.9077051,1.9790371,26.3621463,74.7046884,72.8891381,69.4533731,17.010761,60.0035902,26.7866484,61.0847145,29.2214827,54.0979951,30.5947056,26.0908766,85.102057,3.9728922,33.3213545,17.9243908,1.9242732,1.9964591,28.5853935,75.6252235,74.0817036,70.9770209,16.1617851,60.7403356,26.9890299,61.3738938,27.8564759,54.9768842,32.6505838,28.1262194,85.8871781,3.9903384,33.7858469,17.200679\r\n2214,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9077051,1.9790371,26.3621463,74.7046884,72.8891381,69.4533731,17.010761,60.0035902,26.7866484,61.0847145,29.2214827,54.0979951,30.5947056,26.0908766,85.102057,3.9728922,33.3213545,17.9243908,1.9242732,1.9964591,28.5853935,75.6252235,74.0817036,70.9770209,16.1617851,60.7403356,26.9890299,61.3738938,27.8564759,54.9768842,32.6505838,28.1262194,85.8871781,3.9903384,33.7858469,17.200679,2.0944821,2.1614485,30.5976858,75.619916,74.6172232,71.6446343,14.9752541,60.48763,26.3491469,61.1697326,27.6593378,55.8380569,34.7985481,30.4205514,86.4860788,3.8196808,34.1491168,16.9368795\r\n2215,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9242732,1.9964591,28.5853935,75.6252235,74.0817036,70.9770209,16.1617851,60.7403356,26.9890299,61.3738938,27.8564759,54.9768842,32.6505838,28.1262194,85.8871781,3.9903384,33.7858469,17.200679,2.0944821,2.1614485,30.5976858,75.619916,74.6172232,71.6446343,14.9752541,60.48763,26.3491469,61.1697326,27.6593378,55.8380569,34.7985481,30.4205514,86.4860788,3.8196808,34.1491168,16.9368795,2.1371321,2.1700999,32.0604979,75.5109681,74.7576337,71.5584573,14.396772,61.8175482,26.0967978,61.9164156,27.4652283,57.6239097,36.716433,31.9723486,86.5778921,3.6155062,34.709448,18.0848632\r\n2216,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0944821,2.1614485,30.5976858,75.619916,74.6172232,71.6446343,14.9752541,60.48763,26.3491469,61.1697326,27.6593378,55.8380569,34.7985481,30.4205514,86.4860788,3.8196808,34.1491168,16.9368795,2.1371321,2.1700999,32.0604979,75.5109681,74.7576337,71.5584573,14.396772,61.8175482,26.0967978,61.9164156,27.4652283,57.6239097,36.716433,31.9723486,86.5778921,3.6155062,34.709448,18.0848632,2.3632766,2.4276325,33.5012681,74.254345,74.4782922,71.6482754,14.7974247,61.6992772,27.2220865,61.8875283,27.7803094,58.5096226,38.0896269,33.4058398,86.3066344,3.769967,36.0466265,19.7585631\r\n2217,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1371321,2.1700999,32.0604979,75.5109681,74.7576337,71.5584573,14.396772,61.8175482,26.0967978,61.9164156,27.4652283,57.6239097,36.716433,31.9723486,86.5778921,3.6155062,34.709448,18.0848632,2.3632766,2.4276325,33.5012681,74.254345,74.4782922,71.6482754,14.7974247,61.6992772,27.2220865,61.8875283,27.7803094,58.5096226,38.0896269,33.4058398,86.3066344,3.769967,36.0466265,19.7585631,2.648729,2.6571692,34.0765756,73.5326895,73.3869677,70.9592637,14.6549703,61.9162598,27.302847,61.9500397,27.7761384,57.3245145,38.6823221,33.9030474,85.5695248,3.9704029,36.4962215,20.8105566\r\n2218,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3632766,2.4276325,33.5012681,74.254345,74.4782922,71.6482754,14.7974247,61.6992772,27.2220865,61.8875283,27.7803094,58.5096226,38.0896269,33.4058398,86.3066344,3.769967,36.0466265,19.7585631,2.648729,2.6571692,34.0765756,73.5326895,73.3869677,70.9592637,14.6549703,61.9162598,27.302847,61.9500397,27.7761384,57.3245145,38.6823221,33.9030474,85.5695248,3.9704029,36.4962215,20.8105566,2.8164717,2.8252913,35.2786639,74.6529283,75.2001773,71.149539,14.2166701,61.7640658,27.7060527,61.3080686,26.8836619,58.9499035,39.8295629,34.8574004,85.9515953,4.0826945,36.40758,21.5947242\r\n2219,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.648729,2.6571692,34.0765756,73.5326895,73.3869677,70.9592637,14.6549703,61.9162598,27.302847,61.9500397,27.7761384,57.3245145,38.6823221,33.9030474,85.5695248,3.9704029,36.4962215,20.8105566,2.8164717,2.8252913,35.2786639,74.6529283,75.2001773,71.149539,14.2166701,61.7640658,27.7060527,61.3080686,26.8836619,58.9499035,39.8295629,34.8574004,85.9515953,4.0826945,36.40758,21.5947242,3.1117699,3.156842,35.6039513,72.4649068,73.4477409,69.5114109,14.4726651,60.4078208,26.5290622,62.3176967,26.2735395,57.4148224,40.7510406,35.4446703,85.9350863,4.2779354,36.6882409,20.7852582\r\n2220,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8164717,2.8252913,35.2786639,74.6529283,75.2001773,71.149539,14.2166701,61.7640658,27.7060527,61.3080686,26.8836619,58.9499035,39.8295629,34.8574004,85.9515953,4.0826945,36.40758,21.5947242,3.1117699,3.156842,35.6039513,72.4649068,73.4477409,69.5114109,14.4726651,60.4078208,26.5290622,62.3176967,26.2735395,57.4148224,40.7510406,35.4446703,85.9350863,4.2779354,36.6882409,20.7852582,3.4327026,3.4754715,36.5732255,70.9721442,72.7617248,68.8590815,14.9674275,58.8127445,26.1265653,61.481404,25.950169,57.2196465,42.3460723,36.922807,86.1714101,4.143388,35.7270986,23.5902823\r\n2221,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.1117699,3.156842,35.6039513,72.4649068,73.4477409,69.5114109,14.4726651,60.4078208,26.5290622,62.3176967,26.2735395,57.4148224,40.7510406,35.4446703,85.9350863,4.2779354,36.6882409,20.7852582,3.4327026,3.4754715,36.5732255,70.9721442,72.7617248,68.8590815,14.9674275,58.8127445,26.1265653,61.481404,25.950169,57.2196465,42.3460723,36.922807,86.1714101,4.143388,35.7270986,23.5902823,3.8150672,3.8714644,36.7344498,70.9803372,73.101136,69.451778,14.9850729,59.6628829,27.403143,61.1655745,25.7801629,57.5775005,42.6089124,36.9561521,86.1834047,4.3419881,36.0678839,27.0665705\r\n2222,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4327026,3.4754715,36.5732255,70.9721442,72.7617248,68.8590815,14.9674275,58.8127445,26.1265653,61.481404,25.950169,57.2196465,42.3460723,36.922807,86.1714101,4.143388,35.7270986,23.5902823,3.8150672,3.8714644,36.7344498,70.9803372,73.101136,69.451778,14.9850729,59.6628829,27.403143,61.1655745,25.7801629,57.5775005,42.6089124,36.9561521,86.1834047,4.3419881,36.0678839,27.0665705,3.894212,3.9649204,36.551675,71.5309037,73.7242834,68.8774366,15.0983704,58.7105546,27.9185102,60.9700395,26.0388223,56.9027861,42.4512207,37.3713202,86.4573063,4.1748947,34.9697793,29.1000233\r\n2223,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8150672,3.8714644,36.7344498,70.9803372,73.101136,69.451778,14.9850729,59.6628829,27.403143,61.1655745,25.7801629,57.5775005,42.6089124,36.9561521,86.1834047,4.3419881,36.0678839,27.0665705,3.894212,3.9649204,36.551675,71.5309037,73.7242834,68.8774366,15.0983704,58.7105546,27.9185102,60.9700395,26.0388223,56.9027861,42.4512207,37.3713202,86.4573063,4.1748947,34.9697793,29.1000233,4.0893159,4.2027008,37.0383661,72.3297081,73.544541,68.34284,14.860504,59.1254022,27.2030988,61.0778276,25.7098621,58.2808498,42.8631006,37.581021,86.7797904,3.9122765,33.8265231,29.6607714\r\n2224,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.894212,3.9649204,36.551675,71.5309037,73.7242834,68.8774366,15.0983704,58.7105546,27.9185102,60.9700395,26.0388223,56.9027861,42.4512207,37.3713202,86.4573063,4.1748947,34.9697793,29.1000233,4.0893159,4.2027008,37.0383661,72.3297081,73.544541,68.34284,14.860504,59.1254022,27.2030988,61.0778276,25.7098621,58.2808498,42.8631006,37.581021,86.7797904,3.9122765,33.8265231,29.6607714,4.2116089,4.3585008,37.9886222,71.8577265,73.2849911,68.9809005,14.8518903,58.9589101,26.5352364,61.8527782,26.3207997,59.2696999,44.4306458,39.0473898,87.2627042,3.7011342,35.1039494,30.3361444\r\n2225,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0893159,4.2027008,37.0383661,72.3297081,73.544541,68.34284,14.860504,59.1254022,27.2030988,61.0778276,25.7098621,58.2808498,42.8631006,37.581021,86.7797904,3.9122765,33.8265231,29.6607714,4.2116089,4.3585008,37.9886222,71.8577265,73.2849911,68.9809005,14.8518903,58.9589101,26.5352364,61.8527782,26.3207997,59.2696999,44.4306458,39.0473898,87.2627042,3.7011342,35.1039494,30.3361444,4.121058,4.2890481,38.9295568,69.1567884,71.0283521,67.4667827,15.4810184,58.8822501,25.8581458,62.5719407,27.5336478,56.9253733,44.8024211,39.5383322,86.6665082,3.4552556,35.9742732,31.4744589\r\n2226,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.2116089,4.3585008,37.9886222,71.8577265,73.2849911,68.9809005,14.8518903,58.9589101,26.5352364,61.8527782,26.3207997,59.2696999,44.4306458,39.0473898,87.2627042,3.7011342,35.1039494,30.3361444,4.121058,4.2890481,38.9295568,69.1567884,71.0283521,67.4667827,15.4810184,58.8822501,25.8581458,62.5719407,27.5336478,56.9253733,44.8024211,39.5383322,86.6665082,3.4552556,35.9742732,31.4744589,4.250581,4.3930665,38.4846527,70.8004867,73.3786142,68.8913161,14.1347347,61.1790142,27.3880849,61.0703036,27.2065651,57.7094847,44.2959163,39.1438343,86.9451967,3.1556613,36.811153,32.0930461\r\n2227,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.121058,4.2890481,38.9295568,69.1567884,71.0283521,67.4667827,15.4810184,58.8822501,25.8581458,62.5719407,27.5336478,56.9253733,44.8024211,39.5383322,86.6665082,3.4552556,35.9742732,31.4744589,4.250581,4.3930665,38.4846527,70.8004867,73.3786142,68.8913161,14.1347347,61.1790142,27.3880849,61.0703036,27.2065651,57.7094847,44.2959163,39.1438343,86.9451967,3.1556613,36.811153,32.0930461,4.0325929,4.2168518,38.3193502,71.0125473,72.932069,68.660292,13.8538591,63.0066673,26.7304526,62.4404476,27.4287651,58.025898,44.0867239,38.922181,86.8657187,3.2270359,37.9047955,31.7687556\r\n2228,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.250581,4.3930665,38.4846527,70.8004867,73.3786142,68.8913161,14.1347347,61.1790142,27.3880849,61.0703036,27.2065651,57.7094847,44.2959163,39.1438343,86.9451967,3.1556613,36.811153,32.0930461,4.0325929,4.2168518,38.3193502,71.0125473,72.932069,68.660292,13.8538591,63.0066673,26.7304526,62.4404476,27.4287651,58.025898,44.0867239,38.922181,86.8657187,3.2270359,37.9047955,31.7687556,3.6898511,3.8862104,38.378725,70.7247165,72.3976425,68.2510983,14.8309954,61.3353662,26.2944776,62.673688,28.5063654,58.0573803,43.8944456,39.0441092,86.8630443,3.3164985,37.9728642,30.6869766\r\n2229,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0325929,4.2168518,38.3193502,71.0125473,72.932069,68.660292,13.8538591,63.0066673,26.7304526,62.4404476,27.4287651,58.025898,44.0867239,38.922181,86.8657187,3.2270359,37.9047955,31.7687556,3.6898511,3.8862104,38.378725,70.7247165,72.3976425,68.2510983,14.8309954,61.3353662,26.2944776,62.673688,28.5063654,58.0573803,43.8944456,39.0441092,86.8630443,3.3164985,37.9728642,30.6869766,3.9049657,4.123095,39.2388601,70.7994096,72.6330208,68.9652261,14.5230229,63.0572954,26.1512585,62.0130343,28.6157745,58.009362,44.34075,39.205064,86.9957169,3.427648,38.3775297,30.6197714\r\n2230,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6898511,3.8862104,38.378725,70.7247165,72.3976425,68.2510983,14.8309954,61.3353662,26.2944776,62.673688,28.5063654,58.0573803,43.8944456,39.0441092,86.8630443,3.3164985,37.9728642,30.6869766,3.9049657,4.123095,39.2388601,70.7994096,72.6330208,68.9652261,14.5230229,63.0572954,26.1512585,62.0130343,28.6157745,58.009362,44.34075,39.205064,86.9957169,3.427648,38.3775297,30.6197714,3.7342044,3.9112173,39.408766,70.3783217,71.9718989,68.9933599,14.4989279,63.7706461,26.6665695,62.3328481,29.0109328,55.1589501,44.0045198,39.1539515,86.4771709,3.4309986,38.4371681,31.2612571\r\n2231,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.9049657,4.123095,39.2388601,70.7994096,72.6330208,68.9652261,14.5230229,63.0572954,26.1512585,62.0130343,28.6157745,58.009362,44.34075,39.205064,86.9957169,3.427648,38.3775297,30.6197714,3.7342044,3.9112173,39.408766,70.3783217,71.9718989,68.9933599,14.4989279,63.7706461,26.6665695,62.3328481,29.0109328,55.1589501,44.0045198,39.1539515,86.4771709,3.4309986,38.4371681,31.2612571,3.6911721,3.8925395,38.8415734,71.1690171,72.6457261,68.0683278,15.6858357,64.3885548,28.0805302,61.4530788,28.1581393,53.7798351,43.4343833,38.639945,86.3627288,3.5846833,37.8794881,31.7867988\r\n2232,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7342044,3.9112173,39.408766,70.3783217,71.9718989,68.9933599,14.4989279,63.7706461,26.6665695,62.3328481,29.0109328,55.1589501,44.0045198,39.1539515,86.4771709,3.4309986,38.4371681,31.2612571,3.6911721,3.8925395,38.8415734,71.1690171,72.6457261,68.0683278,15.6858357,64.3885548,28.0805302,61.4530788,28.1581393,53.7798351,43.4343833,38.639945,86.3627288,3.5846833,37.8794881,31.7867988,3.6686953,3.8646527,38.311847,73.9599849,74.0924673,69.3682774,15.2123658,64.9332409,28.2108173,61.8351092,27.8697678,55.7169249,43.3137104,38.3889125,87.1223852,3.9127917,36.622804,31.8552852\r\n2233,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6911721,3.8925395,38.8415734,71.1690171,72.6457261,68.0683278,15.6858357,64.3885548,28.0805302,61.4530788,28.1581393,53.7798351,43.4343833,38.639945,86.3627288,3.5846833,37.8794881,31.7867988,3.6686953,3.8646527,38.311847,73.9599849,74.0924673,69.3682774,15.2123658,64.9332409,28.2108173,61.8351092,27.8697678,55.7169249,43.3137104,38.3889125,87.1223852,3.9127917,36.622804,31.8552852,3.4449936,3.671326,39.7246425,73.3802671,73.2673293,69.2047764,16.1139995,63.5795761,27.6934043,62.3443469,29.1298041,54.4594188,44.1359897,39.1413392,86.8112987,4.2248425,36.2639477,33.079852\r\n2234,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6686953,3.8646527,38.311847,73.9599849,74.0924673,69.3682774,15.2123658,64.9332409,28.2108173,61.8351092,27.8697678,55.7169249,43.3137104,38.3889125,87.1223852,3.9127917,36.622804,31.8552852,3.4449936,3.671326,39.7246425,73.3802671,73.2673293,69.2047764,16.1139995,63.5795761,27.6934043,62.3443469,29.1298041,54.4594188,44.1359897,39.1413392,86.8112987,4.2248425,36.2639477,33.079852,3.4649516,3.6504263,38.2473817,73.5088501,73.3142348,68.6964702,16.8041117,62.0284723,28.2133554,60.5081904,30.2869707,53.2183294,42.4171307,37.744213,86.4926699,4.3990245,36.7908571,33.1674924\r\n2235,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4449936,3.671326,39.7246425,73.3802671,73.2673293,69.2047764,16.1139995,63.5795761,27.6934043,62.3443469,29.1298041,54.4594188,44.1359897,39.1413392,86.8112987,4.2248425,36.2639477,33.079852,3.4649516,3.6504263,38.2473817,73.5088501,73.3142348,68.6964702,16.8041117,62.0284723,28.2133554,60.5081904,30.2869707,53.2183294,42.4171307,37.744213,86.4926699,4.3990245,36.7908571,33.1674924,3.4545586,3.6531557,37.6834419,73.2452598,73.3417548,68.3751343,15.931117,63.5707916,27.6449324,60.6919895,29.2942014,52.5015362,42.3539098,37.5971952,86.0088805,4.3094621,36.5880225,32.3785226\r\n2236,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4649516,3.6504263,38.2473817,73.5088501,73.3142348,68.6964702,16.8041117,62.0284723,28.2133554,60.5081904,30.2869707,53.2183294,42.4171307,37.744213,86.4926699,4.3990245,36.7908571,33.1674924,3.4545586,3.6531557,37.6834419,73.2452598,73.3417548,68.3751343,15.931117,63.5707916,27.6449324,60.6919895,29.2942014,52.5015362,42.3539098,37.5971952,86.0088805,4.3094621,36.5880225,32.3785226,3.208946,3.4058206,36.7571154,73.1706556,74.3650831,67.4959128,15.9492795,62.0684108,27.5553672,60.2090983,28.7412483,52.6514528,42.1054198,37.2483808,85.8535289,4.343755,36.3135518,32.0124061\r\n2237,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4545586,3.6531557,37.6834419,73.2452598,73.3417548,68.3751343,15.931117,63.5707916,27.6449324,60.6919895,29.2942014,52.5015362,42.3539098,37.5971952,86.0088805,4.3094621,36.5880225,32.3785226,3.208946,3.4058206,36.7571154,73.1706556,74.3650831,67.4959128,15.9492795,62.0684108,27.5553672,60.2090983,28.7412483,52.6514528,42.1054198,37.2483808,85.8535289,4.343755,36.3135518,32.0124061,2.9800229,3.1905295,36.2041874,73.3560902,75.1177743,67.3446175,16.5806472,61.8367444,27.6524343,60.2978707,29.0319061,53.7280198,42.3844462,37.2024325,86.48079,4.6380461,35.6716062,32.9590854\r\n2238,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.208946,3.4058206,36.7571154,73.1706556,74.3650831,67.4959128,15.9492795,62.0684108,27.5553672,60.2090983,28.7412483,52.6514528,42.1054198,37.2483808,85.8535289,4.343755,36.3135518,32.0124061,2.9800229,3.1905295,36.2041874,73.3560902,75.1177743,67.3446175,16.5806472,61.8367444,27.6524343,60.2978707,29.0319061,53.7280198,42.3844462,37.2024325,86.48079,4.6380461,35.6716062,32.9590854,2.8875925,3.1006849,36.2801977,73.934681,75.8554241,68.6954581,15.8039845,59.4258527,26.6473873,59.9091574,29.4087264,53.8214181,41.5150814,36.4416483,86.1287013,4.7835651,34.5420934,32.6918965\r\n2239,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9800229,3.1905295,36.2041874,73.3560902,75.1177743,67.3446175,16.5806472,61.8367444,27.6524343,60.2978707,29.0319061,53.7280198,42.3844462,37.2024325,86.48079,4.6380461,35.6716062,32.9590854,2.8875925,3.1006849,36.2801977,73.934681,75.8554241,68.6954581,15.8039845,59.4258527,26.6473873,59.9091574,29.4087264,53.8214181,41.5150814,36.4416483,86.1287013,4.7835651,34.5420934,32.6918965,2.7096167,2.9101129,35.2778878,72.8457326,75.3492181,68.3995396,16.304388,59.5472156,26.4942193,59.0686718,28.8558633,53.7070492,40.4313036,35.2638441,85.4991494,4.3921582,35.5253679,32.5034674\r\n2240,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8875925,3.1006849,36.2801977,73.934681,75.8554241,68.6954581,15.8039845,59.4258527,26.6473873,59.9091574,29.4087264,53.8214181,41.5150814,36.4416483,86.1287013,4.7835651,34.5420934,32.6918965,2.7096167,2.9101129,35.2778878,72.8457326,75.3492181,68.3995396,16.304388,59.5472156,26.4942193,59.0686718,28.8558633,53.7070492,40.4313036,35.2638441,85.4991494,4.3921582,35.5253679,32.5034674,2.9357418,3.1093277,34.210518,72.1387354,74.7240211,68.3120047,16.9334233,59.6316831,25.7297836,58.5176105,28.8089965,54.896112,39.6709728,34.575343,85.7582317,4.2871886,35.3397762,31.4830864\r\n2241,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7096167,2.9101129,35.2778878,72.8457326,75.3492181,68.3995396,16.304388,59.5472156,26.4942193,59.0686718,28.8558633,53.7070492,40.4313036,35.2638441,85.4991494,4.3921582,35.5253679,32.5034674,2.9357418,3.1093277,34.210518,72.1387354,74.7240211,68.3120047,16.9334233,59.6316831,25.7297836,58.5176105,28.8089965,54.896112,39.6709728,34.575343,85.7582317,4.2871886,35.3397762,31.4830864,2.8614364,3.0838971,33.1922428,71.7604431,74.7873215,68.4461998,16.5410237,58.5375577,26.5393776,59.4180156,29.1240322,55.8352814,39.5783335,34.0633169,85.5539519,3.8201737,34.6554534,31.3841086\r\n2242,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9357418,3.1093277,34.210518,72.1387354,74.7240211,68.3120047,16.9334233,59.6316831,25.7297836,58.5176105,28.8089965,54.896112,39.6709728,34.575343,85.7582317,4.2871886,35.3397762,31.4830864,2.8614364,3.0838971,33.1922428,71.7604431,74.7873215,68.4461998,16.5410237,58.5375577,26.5393776,59.4180156,29.1240322,55.8352814,39.5783335,34.0633169,85.5539519,3.8201737,34.6554534,31.3841086,2.9566886,3.1349823,32.5584672,72.7201272,75.5673558,67.802128,17.234512,58.4465145,27.3613093,59.7742081,30.391778,56.0045824,38.3849014,32.879144,85.4581627,4.0757419,34.5914454,33.2220867\r\n2243,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8614364,3.0838971,33.1922428,71.7604431,74.7873215,68.4461998,16.5410237,58.5375577,26.5393776,59.4180156,29.1240322,55.8352814,39.5783335,34.0633169,85.5539519,3.8201737,34.6554534,31.3841086,2.9566886,3.1349823,32.5584672,72.7201272,75.5673558,67.802128,17.234512,58.4465145,27.3613093,59.7742081,30.391778,56.0045824,38.3849014,32.879144,85.4581627,4.0757419,34.5914454,33.2220867,2.7647574,2.976112,30.8911294,72.0101916,73.7505599,67.4344275,17.6933497,59.4508406,27.8108878,60.0081956,30.7758288,55.427454,36.3690527,30.9132912,84.9677013,4.2355281,34.5855965,32.3754406\r\n2244,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9566886,3.1349823,32.5584672,72.7201272,75.5673558,67.802128,17.234512,58.4465145,27.3613093,59.7742081,30.391778,56.0045824,38.3849014,32.879144,85.4581627,4.0757419,34.5914454,33.2220867,2.7647574,2.976112,30.8911294,72.0101916,73.7505599,67.4344275,17.6933497,59.4508406,27.8108878,60.0081956,30.7758288,55.427454,36.3690527,30.9132912,84.9677013,4.2355281,34.5855965,32.3754406,2.8002024,2.9718607,30.1329316,71.0626105,73.4392937,67.7447183,16.9122871,59.3667017,26.8007596,59.9742838,30.2371032,54.8442102,34.704302,29.8774944,84.5757203,4.1378846,35.680191,30.6302909\r\n2245,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.7647574,2.976112,30.8911294,72.0101916,73.7505599,67.4344275,17.6933497,59.4508406,27.8108878,60.0081956,30.7758288,55.427454,36.3690527,30.9132912,84.9677013,4.2355281,34.5855965,32.3754406,2.8002024,2.9718607,30.1329316,71.0626105,73.4392937,67.7447183,16.9122871,59.3667017,26.8007596,59.9742838,30.2371032,54.8442102,34.704302,29.8774944,84.5757203,4.1378846,35.680191,30.6302909,3.030082,3.0660967,29.2185357,68.4888776,71.5485428,67.0996469,17.771629,62.3332999,26.7245236,61.4052312,30.9121291,55.1600282,33.9714987,29.0847831,84.6924068,4.0000874,36.5589381,30.3779394\r\n2246,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8002024,2.9718607,30.1329316,71.0626105,73.4392937,67.7447183,16.9122871,59.3667017,26.8007596,59.9742838,30.2371032,54.8442102,34.704302,29.8774944,84.5757203,4.1378846,35.680191,30.6302909,3.030082,3.0660967,29.2185357,68.4888776,71.5485428,67.0996469,17.771629,62.3332999,26.7245236,61.4052312,30.9121291,55.1600282,33.9714987,29.0847831,84.6924068,4.0000874,36.5589381,30.3779394,3.0307753,3.1029643,28.6228878,69.081739,72.2102369,67.4410521,17.3600306,61.573132,25.4509865,62.427848,31.7625971,55.4998319,33.2094014,28.5033737,84.7335586,3.8822239,35.3028821,30.2774101\r\n2247,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.030082,3.0660967,29.2185357,68.4888776,71.5485428,67.0996469,17.771629,62.3332999,26.7245236,61.4052312,30.9121291,55.1600282,33.9714987,29.0847831,84.6924068,4.0000874,36.5589381,30.3779394,3.0307753,3.1029643,28.6228878,69.081739,72.2102369,67.4410521,17.3600306,61.573132,25.4509865,62.427848,31.7625971,55.4998319,33.2094014,28.5033737,84.7335586,3.8822239,35.3028821,30.2774101,2.8046263,2.8579359,26.7904014,69.3952069,71.5859028,66.4510081,17.1418335,61.354594,25.3374537,62.708863,32.0005249,54.0008676,31.5800092,26.5334126,84.2247494,3.7610347,34.1143749,30.4230683\r\n2248,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0307753,3.1029643,28.6228878,69.081739,72.2102369,67.4410521,17.3600306,61.573132,25.4509865,62.427848,31.7625971,55.4998319,33.2094014,28.5033737,84.7335586,3.8822239,35.3028821,30.2774101,2.8046263,2.8579359,26.7904014,69.3952069,71.5859028,66.4510081,17.1418335,61.354594,25.3374537,62.708863,32.0005249,54.0008676,31.5800092,26.5334126,84.2247494,3.7610347,34.1143749,30.4230683,2.5946276,2.5835412,27.0432057,70.238509,72.5451324,67.3675901,17.0196629,62.5180259,24.4263297,62.9988107,32.2449818,52.967294,30.9736907,26.2801177,84.0739279,3.8942422,33.7480339,30.5987429\r\n2249,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.8046263,2.8579359,26.7904014,69.3952069,71.5859028,66.4510081,17.1418335,61.354594,25.3374537,62.708863,32.0005249,54.0008676,31.5800092,26.5334126,84.2247494,3.7610347,34.1143749,30.4230683,2.5946276,2.5835412,27.0432057,70.238509,72.5451324,67.3675901,17.0196629,62.5180259,24.4263297,62.9988107,32.2449818,52.967294,30.9736907,26.2801177,84.0739279,3.8942422,33.7480339,30.5987429,2.3663208,2.3521763,26.2190829,68.6273113,70.8737549,67.8455643,17.7744892,60.6928864,23.6500448,63.4713458,32.2598375,52.9524421,30.2908192,26.0272471,83.595369,3.6894856,34.2915421,29.1669493\r\n2250,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5946276,2.5835412,27.0432057,70.238509,72.5451324,67.3675901,17.0196629,62.5180259,24.4263297,62.9988107,32.2449818,52.967294,30.9736907,26.2801177,84.0739279,3.8942422,33.7480339,30.5987429,2.3663208,2.3521763,26.2190829,68.6273113,70.8737549,67.8455643,17.7744892,60.6928864,23.6500448,63.4713458,32.2598375,52.9524421,30.2908192,26.0272471,83.595369,3.6894856,34.2915421,29.1669493,2.3425418,2.2970106,26.0235083,68.0382693,71.51692,67.9612672,17.8835448,58.1535321,22.8237515,64.1790074,32.076913,51.9684722,30.1584358,26.1188729,83.214246,3.8824651,34.1513434,30.0395124\r\n2251,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3663208,2.3521763,26.2190829,68.6273113,70.8737549,67.8455643,17.7744892,60.6928864,23.6500448,63.4713458,32.2598375,52.9524421,30.2908192,26.0272471,83.595369,3.6894856,34.2915421,29.1669493,2.3425418,2.2970106,26.0235083,68.0382693,71.51692,67.9612672,17.8835448,58.1535321,22.8237515,64.1790074,32.076913,51.9684722,30.1584358,26.1188729,83.214246,3.8824651,34.1513434,30.0395124,2.3786231,2.3625422,25.1942617,68.2126137,71.1627888,67.7499391,18.6601278,56.324954,24.8095221,64.8225179,32.1129737,52.2447594,29.8206625,25.2956382,82.4966205,3.936809,32.5064758,29.5366877\r\n2252,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3425418,2.2970106,26.0235083,68.0382693,71.51692,67.9612672,17.8835448,58.1535321,22.8237515,64.1790074,32.076913,51.9684722,30.1584358,26.1188729,83.214246,3.8824651,34.1513434,30.0395124,2.3786231,2.3625422,25.1942617,68.2126137,71.1627888,67.7499391,18.6601278,56.324954,24.8095221,64.8225179,32.1129737,52.2447594,29.8206625,25.2956382,82.4966205,3.936809,32.5064758,29.5366877,2.1248564,2.2425772,23.3743433,67.9487761,70.8589558,67.4067478,18.631089,54.5332508,24.0404274,65.0393705,32.7746224,50.5695969,28.4602751,23.9829886,82.0104712,3.9954366,32.5611357,29.7040613\r\n2253,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3786231,2.3625422,25.1942617,68.2126137,71.1627888,67.7499391,18.6601278,56.324954,24.8095221,64.8225179,32.1129737,52.2447594,29.8206625,25.2956382,82.4966205,3.936809,32.5064758,29.5366877,2.1248564,2.2425772,23.3743433,67.9487761,70.8589558,67.4067478,18.631089,54.5332508,24.0404274,65.0393705,32.7746224,50.5695969,28.4602751,23.9829886,82.0104712,3.9954366,32.5611357,29.7040613,2.1010867,2.1724191,22.1245669,66.5928052,69.1961106,65.9428807,19.2577312,54.6600384,23.5107861,64.4654304,32.6841192,48.3756112,27.2534895,22.851574,81.5388461,4.3523069,33.2281374,29.6739591\r\n2254,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1248564,2.2425772,23.3743433,67.9487761,70.8589558,67.4067478,18.631089,54.5332508,24.0404274,65.0393705,32.7746224,50.5695969,28.4602751,23.9829886,82.0104712,3.9954366,32.5611357,29.7040613,2.1010867,2.1724191,22.1245669,66.5928052,69.1961106,65.9428807,19.2577312,54.6600384,23.5107861,64.4654304,32.6841192,48.3756112,27.2534895,22.851574,81.5388461,4.3523069,33.2281374,29.6739591,1.9006921,1.9929335,21.5288627,67.3752846,70.7621028,66.6822144,19.0083171,55.2427263,23.4227449,65.4456251,32.576733,48.1368572,26.5187943,22.4356943,82.0532851,4.3542833,34.6707331,25.9955443\r\n2255,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1010867,2.1724191,22.1245669,66.5928052,69.1961106,65.9428807,19.2577312,54.6600384,23.5107861,64.4654304,32.6841192,48.3756112,27.2534895,22.851574,81.5388461,4.3523069,33.2281374,29.6739591,1.9006921,1.9929335,21.5288627,67.3752846,70.7621028,66.6822144,19.0083171,55.2427263,23.4227449,65.4456251,32.576733,48.1368572,26.5187943,22.4356943,82.0532851,4.3542833,34.6707331,25.9955443,1.885242,2.0073294,19.9216606,66.8659741,69.7214959,67.5608589,19.7817753,53.2237759,23.2654979,64.2777973,31.628662,47.0628108,25.0533513,21.0571695,82.0053949,4.5593145,34.8824559,25.7742471\r\n2256,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9006921,1.9929335,21.5288627,67.3752846,70.7621028,66.6822144,19.0083171,55.2427263,23.4227449,65.4456251,32.576733,48.1368572,26.5187943,22.4356943,82.0532851,4.3542833,34.6707331,25.9955443,1.885242,2.0073294,19.9216606,66.8659741,69.7214959,67.5608589,19.7817753,53.2237759,23.2654979,64.2777973,31.628662,47.0628108,25.0533513,21.0571695,82.0053949,4.5593145,34.8824559,25.7742471,1.7992208,1.9130799,18.7047839,66.0151247,69.6848744,66.8965677,19.609386,53.3431451,23.1313028,64.0803142,31.8714,45.5433503,24.1927555,19.6720681,82.3431515,4.6545515,33.9300069,25.1705997\r\n2257,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.885242,2.0073294,19.9216606,66.8659741,69.7214959,67.5608589,19.7817753,53.2237759,23.2654979,64.2777973,31.628662,47.0628108,25.0533513,21.0571695,82.0053949,4.5593145,34.8824559,25.7742471,1.7992208,1.9130799,18.7047839,66.0151247,69.6848744,66.8965677,19.609386,53.3431451,23.1313028,64.0803142,31.8714,45.5433503,24.1927555,19.6720681,82.3431515,4.6545515,33.9300069,25.1705997,1.7481482,1.8632254,18.3608849,66.2660102,69.1084429,67.9912304,19.9822716,53.9223475,23.3303577,63.5068755,32.5000129,45.5086277,23.7664677,19.1521215,82.7827646,4.2196175,33.7787308,25.8945829\r\n2258,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7992208,1.9130799,18.7047839,66.0151247,69.6848744,66.8965677,19.609386,53.3431451,23.1313028,64.0803142,31.8714,45.5433503,24.1927555,19.6720681,82.3431515,4.6545515,33.9300069,25.1705997,1.7481482,1.8632254,18.3608849,66.2660102,69.1084429,67.9912304,19.9822716,53.9223475,23.3303577,63.5068755,32.5000129,45.5086277,23.7664677,19.1521215,82.7827646,4.2196175,33.7787308,25.8945829,1.6525681,1.7245333,17.5037863,66.7326425,69.1695682,66.8795772,20.3195754,55.810915,21.3382778,61.9975397,33.3338802,44.6324203,22.3424091,18.0570179,82.5859676,4.4234879,34.4716912,24.9995958\r\n2259,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7481482,1.8632254,18.3608849,66.2660102,69.1084429,67.9912304,19.9822716,53.9223475,23.3303577,63.5068755,32.5000129,45.5086277,23.7664677,19.1521215,82.7827646,4.2196175,33.7787308,25.8945829,1.6525681,1.7245333,17.5037863,66.7326425,69.1695682,66.8795772,20.3195754,55.810915,21.3382778,61.9975397,33.3338802,44.6324203,22.3424091,18.0570179,82.5859676,4.4234879,34.4716912,24.9995958,1.4433541,1.4734498,17.4122266,67.4092113,69.6134607,67.7286001,20.362081,55.7647818,22.2723425,62.4069696,34.5082346,44.8906125,22.0136343,17.8507741,81.7776726,4.3528474,32.8463109,22.8680368\r\n2260,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6525681,1.7245333,17.5037863,66.7326425,69.1695682,66.8795772,20.3195754,55.810915,21.3382778,61.9975397,33.3338802,44.6324203,22.3424091,18.0570179,82.5859676,4.4234879,34.4716912,24.9995958,1.4433541,1.4734498,17.4122266,67.4092113,69.6134607,67.7286001,20.362081,55.7647818,22.2723425,62.4069696,34.5082346,44.8906125,22.0136343,17.8507741,81.7776726,4.3528474,32.8463109,22.8680368,1.4361481,1.4661241,16.8243114,68.2212325,70.2767987,68.5069068,20.73269,55.5414291,23.3883558,62.5680565,35.2547073,44.8991431,21.489741,17.3943705,81.4666975,4.2409503,31.9944739,20.7314842\r\n2261,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4433541,1.4734498,17.4122266,67.4092113,69.6134607,67.7286001,20.362081,55.7647818,22.2723425,62.4069696,34.5082346,44.8906125,22.0136343,17.8507741,81.7776726,4.3528474,32.8463109,22.8680368,1.4361481,1.4661241,16.8243114,68.2212325,70.2767987,68.5069068,20.73269,55.5414291,23.3883558,62.5680565,35.2547073,44.8991431,21.489741,17.3943705,81.4666975,4.2409503,31.9944739,20.7314842,1.3459074,1.3545796,17.1356819,68.4421606,70.8121647,69.0113731,21.1539027,55.4542651,23.8264728,62.4137575,35.3598274,46.2003108,21.4807893,17.5172717,80.8697437,4.3060487,31.9945134,22.3006397\r\n2262,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4361481,1.4661241,16.8243114,68.2212325,70.2767987,68.5069068,20.73269,55.5414291,23.3883558,62.5680565,35.2547073,44.8991431,21.489741,17.3943705,81.4666975,4.2409503,31.9944739,20.7314842,1.3459074,1.3545796,17.1356819,68.4421606,70.8121647,69.0113731,21.1539027,55.4542651,23.8264728,62.4137575,35.3598274,46.2003108,21.4807893,17.5172717,80.8697437,4.3060487,31.9945134,22.3006397,1.3558843,1.3558843,17.5532397,68.3194049,69.9228476,69.0252389,21.1824945,58.3648201,23.4033214,64.6793973,35.882228,45.4696136,21.9219618,17.9238133,80.9107687,4.3344426,32.9167467,20.3120934\r\n2263,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3459074,1.3545796,17.1356819,68.4421606,70.8121647,69.0113731,21.1539027,55.4542651,23.8264728,62.4137575,35.3598274,46.2003108,21.4807893,17.5172717,80.8697437,4.3060487,31.9945134,22.3006397,1.3558843,1.3558843,17.5532397,68.3194049,69.9228476,69.0252389,21.1824945,58.3648201,23.4033214,64.6793973,35.882228,45.4696136,21.9219618,17.9238133,80.9107687,4.3344426,32.9167467,20.3120934,1.3431143,1.3431143,17.1499783,68.1240765,69.5365073,67.9661829,21.0101858,57.3637303,23.0773103,65.0357866,36.5454272,43.4310833,21.5728972,17.506838,80.1666856,4.2898944,33.6459164,21.3660741\r\n2264,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3558843,1.3558843,17.5532397,68.3194049,69.9228476,69.0252389,21.1824945,58.3648201,23.4033214,64.6793973,35.882228,45.4696136,21.9219618,17.9238133,80.9107687,4.3344426,32.9167467,20.3120934,1.3431143,1.3431143,17.1499783,68.1240765,69.5365073,67.9661829,21.0101858,57.3637303,23.0773103,65.0357866,36.5454272,43.4310833,21.5728972,17.506838,80.1666856,4.2898944,33.6459164,21.3660741,1.3443986,1.3505707,16.0445359,68.6493268,69.30342,67.5458635,21.3437829,56.8472035,22.8056354,65.5164214,36.403962,42.6556869,20.9277068,16.7012937,79.4458474,4.7706633,34.2707571,17.689774\r\n2265,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3431143,1.3431143,17.1499783,68.1240765,69.5365073,67.9661829,21.0101858,57.3637303,23.0773103,65.0357866,36.5454272,43.4310833,21.5728972,17.506838,80.1666856,4.2898944,33.6459164,21.3660741,1.3443986,1.3505707,16.0445359,68.6493268,69.30342,67.5458635,21.3437829,56.8472035,22.8056354,65.5164214,36.403962,42.6556869,20.9277068,16.7012937,79.4458474,4.7706633,34.2707571,17.689774,1.3419469,1.3482719,15.6349059,68.7405676,69.3305586,69.4402641,20.9298145,55.4161696,22.8432932,67.0403924,36.4591433,42.3457053,20.5964325,16.5469973,79.5199066,4.6094024,34.0683459,17.5673143\r\n2266,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3443986,1.3505707,16.0445359,68.6493268,69.30342,67.5458635,21.3437829,56.8472035,22.8056354,65.5164214,36.403962,42.6556869,20.9277068,16.7012937,79.4458474,4.7706633,34.2707571,17.689774,1.3419469,1.3482719,15.6349059,68.7405676,69.3305586,69.4402641,20.9298145,55.4161696,22.8432932,67.0403924,36.4591433,42.3457053,20.5964325,16.5469973,79.5199066,4.6094024,34.0683459,17.5673143,1.3648134,1.4113127,15.0385428,70.5343639,70.6721428,69.3970674,21.1793263,55.8527781,23.1579272,66.3724385,34.90173,45.2384273,20.0472768,15.9398251,80.1059285,4.9313202,34.8037626,17.0692389\r\n2267,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3419469,1.3482719,15.6349059,68.7405676,69.3305586,69.4402641,20.9298145,55.4161696,22.8432932,67.0403924,36.4591433,42.3457053,20.5964325,16.5469973,79.5199066,4.6094024,34.0683459,17.5673143,1.3648134,1.4113127,15.0385428,70.5343639,70.6721428,69.3970674,21.1793263,55.8527781,23.1579272,66.3724385,34.90173,45.2384273,20.0472768,15.9398251,80.1059285,4.9313202,34.8037626,17.0692389,1.3636623,1.4103712,14.3116757,68.7586557,69.5522146,68.8694963,20.8300746,54.3880858,22.8177649,66.1973818,34.6902885,44.0664178,19.6346521,15.3183376,80.0575108,5.1302556,35.7134489,17.3843586\r\n2268,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3648134,1.4113127,15.0385428,70.5343639,70.6721428,69.3970674,21.1793263,55.8527781,23.1579272,66.3724385,34.90173,45.2384273,20.0472768,15.9398251,80.1059285,4.9313202,34.8037626,17.0692389,1.3636623,1.4103712,14.3116757,68.7586557,69.5522146,68.8694963,20.8300746,54.3880858,22.8177649,66.1973818,34.6902885,44.0664178,19.6346521,15.3183376,80.0575108,5.1302556,35.7134489,17.3843586,1.2454512,1.292286,13.1228991,67.7336043,68.0648,68.4605451,21.5935608,53.9400452,22.11087,67.6223861,35.5706138,42.3658315,18.8574517,14.6408533,78.9687017,5.3917462,35.3826107,17.7467109\r\n2269,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3636623,1.4103712,14.3116757,68.7586557,69.5522146,68.8694963,20.8300746,54.3880858,22.8177649,66.1973818,34.6902885,44.0664178,19.6346521,15.3183376,80.0575108,5.1302556,35.7134489,17.3843586,1.2454512,1.292286,13.1228991,67.7336043,68.0648,68.4605451,21.5935608,53.9400452,22.11087,67.6223861,35.5706138,42.3658315,18.8574517,14.6408533,78.9687017,5.3917462,35.3826107,17.7467109,1.3675725,1.4156265,12.805733,68.2621258,70.513688,67.7243756,21.6426213,52.0780388,23.2886745,67.1905919,35.8705549,43.0087877,18.4639972,13.9500569,78.4692798,5.0517055,34.5687801,18.4039134\r\n2270,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2454512,1.292286,13.1228991,67.7336043,68.0648,68.4605451,21.5935608,53.9400452,22.11087,67.6223861,35.5706138,42.3658315,18.8574517,14.6408533,78.9687017,5.3917462,35.3826107,17.7467109,1.3675725,1.4156265,12.805733,68.2621258,70.513688,67.7243756,21.6426213,52.0780388,23.2886745,67.1905919,35.8705549,43.0087877,18.4639972,13.9500569,78.4692798,5.0517055,34.5687801,18.4039134,1.4036559,1.4638233,12.5106604,71.7110961,73.5671332,70.656371,20.9995729,53.2435245,24.6273706,67.5947852,34.7632144,46.5600189,18.0524134,13.8361506,78.96485,4.9628059,34.381584,16.6974942\r\n2271,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3675725,1.4156265,12.805733,68.2621258,70.513688,67.7243756,21.6426213,52.0780388,23.2886745,67.1905919,35.8705549,43.0087877,18.4639972,13.9500569,78.4692798,5.0517055,34.5687801,18.4039134,1.4036559,1.4638233,12.5106604,71.7110961,73.5671332,70.656371,20.9995729,53.2435245,24.6273706,67.5947852,34.7632144,46.5600189,18.0524134,13.8361506,78.96485,4.9628059,34.381584,16.6974942,1.2631128,1.3465871,12.6067128,71.3748943,74.1605209,69.725153,22.226389,52.9479663,23.5920918,68.7808052,36.0067196,46.4664185,17.5232751,13.6401413,78.2924741,4.7915902,35.3774062,16.4765361\r\n2272,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4036559,1.4638233,12.5106604,71.7110961,73.5671332,70.656371,20.9995729,53.2435245,24.6273706,67.5947852,34.7632144,46.5600189,18.0524134,13.8361506,78.96485,4.9628059,34.381584,16.6974942,1.2631128,1.3465871,12.6067128,71.3748943,74.1605209,69.725153,22.226389,52.9479663,23.5920918,68.7808052,36.0067196,46.4664185,17.5232751,13.6401413,78.2924741,4.7915902,35.3774062,16.4765361,1.4369555,1.5200822,12.4678726,72.0814604,74.3387346,69.8235404,22.8555647,54.0129062,23.5189725,68.1713566,36.6142186,46.8492667,17.659171,13.4954414,78.379879,4.8825521,36.6842419,18.659934\r\n2273,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2631128,1.3465871,12.6067128,71.3748943,74.1605209,69.725153,22.226389,52.9479663,23.5920918,68.7808052,36.0067196,46.4664185,17.5232751,13.6401413,78.2924741,4.7915902,35.3774062,16.4765361,1.4369555,1.5200822,12.4678726,72.0814604,74.3387346,69.8235404,22.8555647,54.0129062,23.5189725,68.1713566,36.6142186,46.8492667,17.659171,13.4954414,78.379879,4.8825521,36.6842419,18.659934,1.3381552,1.4255077,12.5154344,70.5259823,72.837516,68.9393504,23.0320378,52.6250713,22.5585653,67.8322388,37.151492,44.0492715,17.4841329,13.1923677,77.7917113,4.4371125,38.1321102,18.0374851\r\n2274,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4369555,1.5200822,12.4678726,72.0814604,74.3387346,69.8235404,22.8555647,54.0129062,23.5189725,68.1713566,36.6142186,46.8492667,17.659171,13.4954414,78.379879,4.8825521,36.6842419,18.659934,1.3381552,1.4255077,12.5154344,70.5259823,72.837516,68.9393504,23.0320378,52.6250713,22.5585653,67.8322388,37.151492,44.0492715,17.4841329,13.1923677,77.7917113,4.4371125,38.1321102,18.0374851,1.3236659,1.4011241,12.5742002,72.422334,74.3118338,69.9864711,23.3853228,52.4057419,22.6468626,67.9413902,38.0976762,44.771468,17.3452529,13.1524598,77.4583674,4.7844085,37.7346388,16.7654359\r\n2275,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3381552,1.4255077,12.5154344,70.5259823,72.837516,68.9393504,23.0320378,52.6250713,22.5585653,67.8322388,37.151492,44.0492715,17.4841329,13.1923677,77.7917113,4.4371125,38.1321102,18.0374851,1.3236659,1.4011241,12.5742002,72.422334,74.3118338,69.9864711,23.3853228,52.4057419,22.6468626,67.9413902,38.0976762,44.771468,17.3452529,13.1524598,77.4583674,4.7844085,37.7346388,16.7654359,1.4636702,1.5182824,12.4173881,74.2762273,75.0923916,69.858653,22.676877,51.2002607,23.6278624,67.5152548,37.1279972,45.8862113,16.8074849,12.5737931,78.1538765,4.7645351,38.1174916,14.8405019\r\n2276,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3236659,1.4011241,12.5742002,72.422334,74.3118338,69.9864711,23.3853228,52.4057419,22.6468626,67.9413902,38.0976762,44.771468,17.3452529,13.1524598,77.4583674,4.7844085,37.7346388,16.7654359,1.4636702,1.5182824,12.4173881,74.2762273,75.0923916,69.858653,22.676877,51.2002607,23.6278624,67.5152548,37.1279972,45.8862113,16.8074849,12.5737931,78.1538765,4.7645351,38.1174916,14.8405019,1.4264741,1.481487,11.9225554,72.8749003,73.5092125,69.3964551,23.0744929,50.7745349,23.2676947,67.4064994,36.9463084,44.8860168,16.4913803,12.2720766,77.6648811,5.1785354,37.6708868,13.3237084\r\n2277,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4636702,1.5182824,12.4173881,74.2762273,75.0923916,69.858653,22.676877,51.2002607,23.6278624,67.5152548,37.1279972,45.8862113,16.8074849,12.5737931,78.1538765,4.7645351,38.1174916,14.8405019,1.4264741,1.481487,11.9225554,72.8749003,73.5092125,69.3964551,23.0744929,50.7745349,23.2676947,67.4064994,36.9463084,44.8860168,16.4913803,12.2720766,77.6648811,5.1785354,37.6708868,13.3237084,1.3634326,1.4066054,11.9860329,71.060655,71.7717192,67.2281547,24.351606,50.5204876,22.3485,67.3134609,38.0388289,43.1137184,16.0445296,12.0010258,76.8917908,5.1881184,37.8592401,13.7859345\r\n2278,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4264741,1.481487,11.9225554,72.8749003,73.5092125,69.3964551,23.0744929,50.7745349,23.2676947,67.4064994,36.9463084,44.8860168,16.4913803,12.2720766,77.6648811,5.1785354,37.6708868,13.3237084,1.3634326,1.4066054,11.9860329,71.060655,71.7717192,67.2281547,24.351606,50.5204876,22.3485,67.3134609,38.0388289,43.1137184,16.0445296,12.0010258,76.8917908,5.1881184,37.8592401,13.7859345,1.4380592,1.4750641,11.119744,70.063799,70.8201571,66.4059361,23.8348008,49.8494391,23.1189796,66.8783084,37.6979129,42.6881603,15.4266426,11.1602841,77.1515835,4.7452732,37.1504067,14.1349436\r\n2279,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3634326,1.4066054,11.9860329,71.060655,71.7717192,67.2281547,24.351606,50.5204876,22.3485,67.3134609,38.0388289,43.1137184,16.0445296,12.0010258,76.8917908,5.1881184,37.8592401,13.7859345,1.4380592,1.4750641,11.119744,70.063799,70.8201571,66.4059361,23.8348008,49.8494391,23.1189796,66.8783084,37.6979129,42.6881603,15.4266426,11.1602841,77.1515835,4.7452732,37.1504067,14.1349436,1.2128004,1.2261533,10.9319846,67.9869479,69.864484,64.9395567,24.5616427,46.5501843,22.5218424,67.1804913,38.4732642,41.0051042,15.3745819,10.952089,75.4651981,4.8273511,35.9631556,11.3635753\r\n2280,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4380592,1.4750641,11.119744,70.063799,70.8201571,66.4059361,23.8348008,49.8494391,23.1189796,66.8783084,37.6979129,42.6881603,15.4266426,11.1602841,77.1515835,4.7452732,37.1504067,14.1349436,1.2128004,1.2261533,10.9319846,67.9869479,69.864484,64.9395567,24.5616427,46.5501843,22.5218424,67.1804913,38.4732642,41.0051042,15.3745819,10.952089,75.4651981,4.8273511,35.9631556,11.3635753,1.2863619,1.2490535,10.0048054,67.6310562,70.3258097,64.4846466,24.9337288,43.0181967,22.3166195,68.3820215,39.4493115,41.5561822,15.0510874,10.52766,74.0228333,4.781884,34.3432034,13.4002524\r\n2281,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2128004,1.2261533,10.9319846,67.9869479,69.864484,64.9395567,24.5616427,46.5501843,22.5218424,67.1804913,38.4732642,41.0051042,15.3745819,10.952089,75.4651981,4.8273511,35.9631556,11.3635753,1.2863619,1.2490535,10.0048054,67.6310562,70.3258097,64.4846466,24.9337288,43.0181967,22.3166195,68.3820215,39.4493115,41.5561822,15.0510874,10.52766,74.0228333,4.781884,34.3432034,13.4002524,1.1889854,1.1649252,9.8125236,65.4431623,69.8562448,64.8189105,24.1932736,39.4858436,22.333295,69.8134963,38.9993356,42.2074695,15.021042,10.5331853,70.9240191,4.1392591,34.4811563,13.8134157\r\n2282,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2863619,1.2490535,10.0048054,67.6310562,70.3258097,64.4846466,24.9337288,43.0181967,22.3166195,68.3820215,39.4493115,41.5561822,15.0510874,10.52766,74.0228333,4.781884,34.3432034,13.4002524,1.1889854,1.1649252,9.8125236,65.4431623,69.8562448,64.8189105,24.1932736,39.4858436,22.333295,69.8134963,38.9993356,42.2074695,15.021042,10.5331853,70.9240191,4.1392591,34.4811563,13.8134157,1.1529713,1.1454793,9.559799,64.0091363,69.5212272,65.7963192,25.3462863,35.8137776,21.9302612,70.4132665,39.9248494,41.4285094,14.8655516,10.4031905,68.1405444,3.8461584,33.6959627,13.0523623\r\n2283,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1889854,1.1649252,9.8125236,65.4431623,69.8562448,64.8189105,24.1932736,39.4858436,22.333295,69.8134963,38.9993356,42.2074695,15.021042,10.5331853,70.9240191,4.1392591,34.4811563,13.8134157,1.1529713,1.1454793,9.559799,64.0091363,69.5212272,65.7963192,25.3462863,35.8137776,21.9302612,70.4132665,39.9248494,41.4285094,14.8655516,10.4031905,68.1405444,3.8461584,33.6959627,13.0523623,1.0440724,1.036339,9.329201,65.2529854,71.4487492,65.4514851,25.852159,32.2360188,22.2119327,69.8121047,41.1482123,42.8727122,14.5196834,10.2442803,65.6492342,3.9267098,33.8674181,12.6002182\r\n2284,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1529713,1.1454793,9.559799,64.0091363,69.5212272,65.7963192,25.3462863,35.8137776,21.9302612,70.4132665,39.9248494,41.4285094,14.8655516,10.4031905,68.1405444,3.8461584,33.6959627,13.0523623,1.0440724,1.036339,9.329201,65.2529854,71.4487492,65.4514851,25.852159,32.2360188,22.2119327,69.8121047,41.1482123,42.8727122,14.5196834,10.2442803,65.6492342,3.9267098,33.8674181,12.6002182,1.1713251,1.1634216,8.8987269,66.3836058,72.2460978,65.8936684,25.7591723,26.9321374,21.7761899,69.8622635,41.5937115,43.3631729,14.1273632,9.806714,62.1185233,4.1616944,32.8591725,12.3985994\r\n2285,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0440724,1.036339,9.329201,65.2529854,71.4487492,65.4514851,25.852159,32.2360188,22.2119327,69.8121047,41.1482123,42.8727122,14.5196834,10.2442803,65.6492342,3.9267098,33.8674181,12.6002182,1.1713251,1.1634216,8.8987269,66.3836058,72.2460978,65.8936684,25.7591723,26.9321374,21.7761899,69.8622635,41.5937115,43.3631729,14.1273632,9.806714,62.1185233,4.1616944,32.8591725,12.3985994,1.113259,1.0782409,9.9384234,66.2144002,72.459749,67.3868098,25.9739797,21.5057831,22.866796,70.5284356,42.8809528,42.2752644,14.9062926,10.6473429,57.7418374,4.1240325,33.2718321,11.5688547\r\n2286,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1713251,1.1634216,8.8987269,66.3836058,72.2460978,65.8936684,25.7591723,26.9321374,21.7761899,69.8622635,41.5937115,43.3631729,14.1273632,9.806714,62.1185233,4.1616944,32.8591725,12.3985994,1.113259,1.0782409,9.9384234,66.2144002,72.459749,67.3868098,25.9739797,21.5057831,22.866796,70.5284356,42.8809528,42.2752644,14.9062926,10.6473429,57.7418374,4.1240325,33.2718321,11.5688547,1.1824542,1.1677786,10.0789955,67.525647,73.7952902,67.4880773,25.197965,16.4649138,23.4398629,71.2958502,42.5811311,42.7431793,14.8094097,10.4792141,54.6778355,4.418051,33.5192546,11.5065198\r\n2287,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.113259,1.0782409,9.9384234,66.2144002,72.459749,67.3868098,25.9739797,21.5057831,22.866796,70.5284356,42.8809528,42.2752644,14.9062926,10.6473429,57.7418374,4.1240325,33.2718321,11.5688547,1.1824542,1.1677786,10.0789955,67.525647,73.7952902,67.4880773,25.197965,16.4649138,23.4398629,71.2958502,42.5811311,42.7431793,14.8094097,10.4792141,54.6778355,4.418051,33.5192546,11.5065198,1.0914125,1.0770065,10.8186482,68.2318104,73.2861609,68.8904905,24.1172029,13.9157941,23.1210779,71.2210803,42.2702363,40.4266075,14.8895212,10.8055655,52.1217189,4.9155049,33.8001554,9.9575301\r\n2288,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1824542,1.1677786,10.0789955,67.525647,73.7952902,67.4880773,25.197965,16.4649138,23.4398629,71.2958502,42.5811311,42.7431793,14.8094097,10.4792141,54.6778355,4.418051,33.5192546,11.5065198,1.0914125,1.0770065,10.8186482,68.2318104,73.2861609,68.8904905,24.1172029,13.9157941,23.1210779,71.2210803,42.2702363,40.4266075,14.8895212,10.8055655,52.1217189,4.9155049,33.8001554,9.9575301,1.224935,1.228478,11.2334754,69.9783284,72.6966864,68.5648174,25.6520706,11.800963,23.2334956,70.1315592,41.7975137,39.2518518,14.8800384,10.8599245,50.9998293,5.3209935,33.4325301,10.6060055\r\n2289,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0914125,1.0770065,10.8186482,68.2318104,73.2861609,68.8904905,24.1172029,13.9157941,23.1210779,71.2210803,42.2702363,40.4266075,14.8895212,10.8055655,52.1217189,4.9155049,33.8001554,9.9575301,1.224935,1.228478,11.2334754,69.9783284,72.6966864,68.5648174,25.6520706,11.800963,23.2334956,70.1315592,41.7975137,39.2518518,14.8800384,10.8599245,50.9998293,5.3209935,33.4325301,10.6060055,1.3764351,1.3882206,11.3859655,70.8542973,73.0278547,68.0602652,25.2551048,10.2969626,22.4214954,69.8017517,43.0678862,38.6288708,14.1988684,10.1269369,49.3688234,5.5741807,34.0678054,10.8510084\r\n2290,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.224935,1.228478,11.2334754,69.9783284,72.6966864,68.5648174,25.6520706,11.800963,23.2334956,70.1315592,41.7975137,39.2518518,14.8800384,10.8599245,50.9998293,5.3209935,33.4325301,10.6060055,1.3764351,1.3882206,11.3859655,70.8542973,73.0278547,68.0602652,25.2551048,10.2969626,22.4214954,69.8017517,43.0678862,38.6288708,14.1988684,10.1269369,49.3688234,5.5741807,34.0678054,10.8510084,1.3336681,1.3447849,10.5937856,69.1737126,70.6207111,69.0124575,26.1695455,9.2972913,20.482545,72.0367671,44.0172382,35.3884989,13.4778584,9.5914495,47.7382015,5.7164868,33.5281253,10.2082823\r\n2291,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3764351,1.3882206,11.3859655,70.8542973,73.0278547,68.0602652,25.2551048,10.2969626,22.4214954,69.8017517,43.0678862,38.6288708,14.1988684,10.1269369,49.3688234,5.5741807,34.0678054,10.8510084,1.3336681,1.3447849,10.5937856,69.1737126,70.6207111,69.0124575,26.1695455,9.2972913,20.482545,72.0367671,44.0172382,35.3884989,13.4778584,9.5914495,47.7382015,5.7164868,33.5281253,10.2082823,1.3380121,1.3455254,10.8226329,68.3029054,69.2711632,68.7318491,24.6829473,8.1314808,19.4087202,72.0150173,43.1517687,34.1803211,13.9427941,9.4811027,46.9894743,6.0551256,34.7351548,9.4537338\r\n2292,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3336681,1.3447849,10.5937856,69.1737126,70.6207111,69.0124575,26.1695455,9.2972913,20.482545,72.0367671,44.0172382,35.3884989,13.4778584,9.5914495,47.7382015,5.7164868,33.5281253,10.2082823,1.3380121,1.3455254,10.8226329,68.3029054,69.2711632,68.7318491,24.6829473,8.1314808,19.4087202,72.0150173,43.1517687,34.1803211,13.9427941,9.4811027,46.9894743,6.0551256,34.7351548,9.4537338,1.2660076,1.2734651,10.6600045,70.0660298,70.6114742,69.2015556,23.3810397,8.0373051,17.3195155,71.7722667,42.6529096,35.7063937,13.5508297,9.2513139,46.3445795,6.4212452,34.278302,8.8234855\r\n2293,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3380121,1.3455254,10.8226329,68.3029054,69.2711632,68.7318491,24.6829473,8.1314808,19.4087202,72.0150173,43.1517687,34.1803211,13.9427941,9.4811027,46.9894743,6.0551256,34.7351548,9.4537338,1.2660076,1.2734651,10.6600045,70.0660298,70.6114742,69.2015556,23.3810397,8.0373051,17.3195155,71.7722667,42.6529096,35.7063937,13.5508297,9.2513139,46.3445795,6.4212452,34.278302,8.8234855,1.1781339,1.2362723,10.4042306,69.2820666,69.5616121,68.016041,24.5326333,7.791838,16.6623777,71.6642234,42.9800756,35.9592309,13.3323045,9.2673104,44.874352,6.2390187,33.8892397,8.3709991\r\n2294,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2660076,1.2734651,10.6600045,70.0660298,70.6114742,69.2015556,23.3810397,8.0373051,17.3195155,71.7722667,42.6529096,35.7063937,13.5508297,9.2513139,46.3445795,6.4212452,34.278302,8.8234855,1.1781339,1.2362723,10.4042306,69.2820666,69.5616121,68.016041,24.5326333,7.791838,16.6623777,71.6642234,42.9800756,35.9592309,13.3323045,9.2673104,44.874352,6.2390187,33.8892397,8.3709991,1.2732094,1.3373681,10.1573282,67.7033663,69.8664576,66.6715101,25.6099534,8.2195612,16.7003832,71.4789839,42.4481343,36.4394588,13.3547715,9.2493386,44.118464,6.0047589,33.9577862,7.7095862\r\n2295,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1781339,1.2362723,10.4042306,69.2820666,69.5616121,68.016041,24.5326333,7.791838,16.6623777,71.6642234,42.9800756,35.9592309,13.3323045,9.2673104,44.874352,6.2390187,33.8892397,8.3709991,1.2732094,1.3373681,10.1573282,67.7033663,69.8664576,66.6715101,25.6099534,8.2195612,16.7003832,71.4789839,42.4481343,36.4394588,13.3547715,9.2493386,44.118464,6.0047589,33.9577862,7.7095862,1.081403,1.1309618,10.2588464,67.5355678,70.2707063,65.4431971,25.1302919,8.0014282,15.9992284,71.1411876,43.1835301,36.4781011,13.2606327,9.2556071,42.7161567,6.2645855,34.3229454,5.8955353\r\n2296,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2732094,1.3373681,10.1573282,67.7033663,69.8664576,66.6715101,25.6099534,8.2195612,16.7003832,71.4789839,42.4481343,36.4394588,13.3547715,9.2493386,44.118464,6.0047589,33.9577862,7.7095862,1.081403,1.1309618,10.2588464,67.5355678,70.2707063,65.4431971,25.1302919,8.0014282,15.9992284,71.1411876,43.1835301,36.4781011,13.2606327,9.2556071,42.7161567,6.2645855,34.3229454,5.8955353,0.9479133,1.0267528,10.6654655,67.848418,70.1852363,65.7365092,25.1696983,7.3772028,15.1059812,70.6864825,41.8915949,36.3733993,14.250163,10.2004051,41.801977,6.1789412,33.2619875,5.9245375\r\n2297,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.1821938,3.2545913,33.052049,70.4787525,69.9756186,68.6072505,25.5290501,14.2703286,15.4629748,61.9933626,29.180777,53.5265389,40.2927647,33.8748558,61.7542801,3.7928539,35.6429588,21.6937936,3.2877798,3.372643,34.0500711,70.2084448,69.8581614,68.5401267,24.444107,13.7615079,15.5775447,61.9400273,29.7474977,53.0108861,40.9737511,34.754078,61.948096,3.770226,35.1088682,21.9960783,3.5521703,3.6358532,34.9655737,69.8822785,69.1439145,68.3175509,23.1135622,14.4906121,15.5080234,61.6420458,29.549723,53.1774787,41.9016336,35.6058948,62.0513674,3.8487371,35.3550217,22.4999993\r\n2298,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2877798,3.372643,34.0500711,70.2084448,69.8581614,68.5401267,24.444107,13.7615079,15.5775447,61.9400273,29.7474977,53.0108861,40.9737511,34.754078,61.948096,3.770226,35.1088682,21.9960783,3.5521703,3.6358532,34.9655737,69.8822785,69.1439145,68.3175509,23.1135622,14.4906121,15.5080234,61.6420458,29.549723,53.1774787,41.9016336,35.6058948,62.0513674,3.8487371,35.3550217,22.4999993,3.6496587,3.7422588,36.0189797,69.9096766,69.1823916,68.0586304,21.6456247,14.7245564,15.4921911,61.4726412,28.9826265,53.2379967,42.8975742,36.5000507,62.1422806,3.8966077,35.1415535,23.5361356\r\n2299,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.5521703,3.6358532,34.9655737,69.8822785,69.1439145,68.3175509,23.1135622,14.4906121,15.5080234,61.6420458,29.549723,53.1774787,41.9016336,35.6058948,62.0513674,3.8487371,35.3550217,22.4999993,3.6496587,3.7422588,36.0189797,69.9096766,69.1823916,68.0586304,21.6456247,14.7245564,15.4921911,61.4726412,28.9826265,53.2379967,42.8975742,36.5000507,62.1422806,3.8966077,35.1415535,23.5361356,3.9461956,4.0537119,36.8115049,70.712381,70.1098399,67.9086569,20.4611488,15.3302771,16.1572314,60.5721919,28.2529646,54.8450123,44.1344027,37.3387021,63.4741138,3.8680497,35.9233161,25.4679108\r\n2300,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6496587,3.7422588,36.0189797,69.9096766,69.1823916,68.0586304,21.6456247,14.7245564,15.4921911,61.4726412,28.9826265,53.2379967,42.8975742,36.5000507,62.1422806,3.8966077,35.1415535,23.5361356,3.9461956,4.0537119,36.8115049,70.712381,70.1098399,67.9086569,20.4611488,15.3302771,16.1572314,60.5721919,28.2529646,54.8450123,44.1344027,37.3387021,63.4741138,3.8680497,35.9233161,25.4679108,4.0449856,4.1314145,38.2737509,71.2393319,70.3117842,67.985718,20.1331638,15.6216719,16.3252322,59.8982432,27.3410714,55.4268758,45.1686374,38.4545941,63.4087001,3.7128699,36.7968717,27.1292624\r\n2301,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.9461956,4.0537119,36.8115049,70.712381,70.1098399,67.9086569,20.4611488,15.3302771,16.1572314,60.5721919,28.2529646,54.8450123,44.1344027,37.3387021,63.4741138,3.8680497,35.9233161,25.4679108,4.0449856,4.1314145,38.2737509,71.2393319,70.3117842,67.985718,20.1331638,15.6216719,16.3252322,59.8982432,27.3410714,55.4268758,45.1686374,38.4545941,63.4087001,3.7128699,36.7968717,27.1292624,4.0624791,4.1393387,38.7717782,70.1424574,70.1613973,68.1361313,19.4405502,15.9656675,16.6134827,58.9369416,27.038446,55.278341,45.5343618,38.9194079,63.930912,3.4017026,36.3192511,28.1318105\r\n2302,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0449856,4.1314145,38.2737509,71.2393319,70.3117842,67.985718,20.1331638,15.6216719,16.3252322,59.8982432,27.3410714,55.4268758,45.1686374,38.4545941,63.4087001,3.7128699,36.7968717,27.1292624,4.0624791,4.1393387,38.7717782,70.1424574,70.1613973,68.1361313,19.4405502,15.9656675,16.6134827,58.9369416,27.038446,55.278341,45.5343618,38.9194079,63.930912,3.4017026,36.3192511,28.1318105,4.1722625,4.2655862,38.7905713,70.4582117,70.2189367,68.3179534,19.0486772,16.7006444,16.814545,58.2999523,26.5495864,55.9089553,45.9723079,39.2031786,64.3409369,3.4429962,36.2893948,29.4623031\r\n2303,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0624791,4.1393387,38.7717782,70.1424574,70.1613973,68.1361313,19.4405502,15.9656675,16.6134827,58.9369416,27.038446,55.278341,45.5343618,38.9194079,63.930912,3.4017026,36.3192511,28.1318105,4.1722625,4.2655862,38.7905713,70.4582117,70.2189367,68.3179534,19.0486772,16.7006444,16.814545,58.2999523,26.5495864,55.9089553,45.9723079,39.2031786,64.3409369,3.4429962,36.2893948,29.4623031,4.1525821,4.2229859,39.4663427,70.6118529,70.8977566,68.345473,17.960428,18.2214416,17.4012875,57.7252943,25.5164131,56.1052809,46.3959932,39.5615834,65.1761409,3.4476897,36.8293856,31.0857218\r\n2304,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1722625,4.2655862,38.7905713,70.4582117,70.2189367,68.3179534,19.0486772,16.7006444,16.814545,58.2999523,26.5495864,55.9089553,45.9723079,39.2031786,64.3409369,3.4429962,36.2893948,29.4623031,4.1525821,4.2229859,39.4663427,70.6118529,70.8977566,68.345473,17.960428,18.2214416,17.4012875,57.7252943,25.5164131,56.1052809,46.3959932,39.5615834,65.1761409,3.4476897,36.8293856,31.0857218,4.1937175,4.2585701,40.0777099,70.3021294,71.0065705,67.6232746,17.1179866,18.643403,17.5988149,57.8494845,25.527648,55.7913546,47.1068299,40.1321574,65.592865,3.471825,36.4977983,32.9283734\r\n2305,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1525821,4.2229859,39.4663427,70.6118529,70.8977566,68.345473,17.960428,18.2214416,17.4012875,57.7252943,25.5164131,56.1052809,46.3959932,39.5615834,65.1761409,3.4476897,36.8293856,31.0857218,4.1937175,4.2585701,40.0777099,70.3021294,71.0065705,67.6232746,17.1179866,18.643403,17.5988149,57.8494845,25.527648,55.7913546,47.1068299,40.1321574,65.592865,3.471825,36.4977983,32.9283734,4.1939428,4.260224,39.7347724,69.2423495,70.3679525,67.0034838,17.2376816,18.5467943,17.9884864,57.8396857,25.7584431,55.7666918,46.9739384,39.8663756,65.8446365,3.4536805,36.4010418,34.0402667\r\n2306,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1937175,4.2585701,40.0777099,70.3021294,71.0065705,67.6232746,17.1179866,18.643403,17.5988149,57.8494845,25.527648,55.7913546,47.1068299,40.1321574,65.592865,3.471825,36.4977983,32.9283734,4.1939428,4.260224,39.7347724,69.2423495,70.3679525,67.0034838,17.2376816,18.5467943,17.9884864,57.8396857,25.7584431,55.7666918,46.9739384,39.8663756,65.8446365,3.4536805,36.4010418,34.0402667,4.0184553,4.0628581,39.9160462,67.941003,69.3590273,67.265236,17.3064435,18.4620917,17.0112315,58.2172176,25.6310566,54.2905445,46.7822525,39.9829396,65.838462,3.6266073,36.0598832,34.6423821\r\n2307,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1939428,4.260224,39.7347724,69.2423495,70.3679525,67.0034838,17.2376816,18.5467943,17.9884864,57.8396857,25.7584431,55.7666918,46.9739384,39.8663756,65.8446365,3.4536805,36.4010418,34.0402667,4.0184553,4.0628581,39.9160462,67.941003,69.3590273,67.265236,17.3064435,18.4620917,17.0112315,58.2172176,25.6310566,54.2905445,46.7822525,39.9829396,65.838462,3.6266073,36.0598832,34.6423821,4.0151064,4.0710201,39.9705646,67.7449149,69.4922666,67.310887,17.0018983,18.9393658,17.5206994,57.8588433,25.8257641,54.4585519,46.7967321,40.0741497,66.4878057,3.6183387,35.4536126,35.4771762\r\n2308,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0184553,4.0628581,39.9160462,67.941003,69.3590273,67.265236,17.3064435,18.4620917,17.0112315,58.2172176,25.6310566,54.2905445,46.7822525,39.9829396,65.838462,3.6266073,36.0598832,34.6423821,4.0151064,4.0710201,39.9705646,67.7449149,69.4922666,67.310887,17.0018983,18.9393658,17.5206994,57.8588433,25.8257641,54.4585519,46.7967321,40.0741497,66.4878057,3.6183387,35.4536126,35.4771762,3.8978764,3.9348652,39.8139757,68.740905,68.3293644,66.6022036,17.843144,18.4911527,16.5666532,58.4274622,26.4965845,52.6003059,46.3787984,39.7016211,66.5499014,3.8754945,35.8128652,35.4001953\r\n2309,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0151064,4.0710201,39.9705646,67.7449149,69.4922666,67.310887,17.0018983,18.9393658,17.5206994,57.8588433,25.8257641,54.4585519,46.7967321,40.0741497,66.4878057,3.6183387,35.4536126,35.4771762,3.8978764,3.9348652,39.8139757,68.740905,68.3293644,66.6022036,17.843144,18.4911527,16.5666532,58.4274622,26.4965845,52.6003059,46.3787984,39.7016211,66.5499014,3.8754945,35.8128652,35.4001953,3.8721484,3.9363689,39.6481025,68.2882308,68.8421024,66.3313105,17.5405268,19.4992046,17.1860897,59.0461587,26.9060901,52.1538505,45.847577,39.4906441,66.7924292,3.9155803,35.5393498,35.3099099\r\n2310,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8978764,3.9348652,39.8139757,68.740905,68.3293644,66.6022036,17.843144,18.4911527,16.5666532,58.4274622,26.4965845,52.6003059,46.3787984,39.7016211,66.5499014,3.8754945,35.8128652,35.4001953,3.8721484,3.9363689,39.6481025,68.2882308,68.8421024,66.3313105,17.5405268,19.4992046,17.1860897,59.0461587,26.9060901,52.1538505,45.847577,39.4906441,66.7924292,3.9155803,35.5393498,35.3099099,3.8586679,3.936861,39.5140057,68.2739679,68.1435022,65.9174134,17.8391636,18.8854831,17.0057963,59.9199463,27.6723063,52.1326372,45.6524382,39.4040086,66.9959135,3.8090889,35.6915245,36.1707082\r\n2311,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8721484,3.9363689,39.6481025,68.2882308,68.8421024,66.3313105,17.5405268,19.4992046,17.1860897,59.0461587,26.9060901,52.1538505,45.847577,39.4906441,66.7924292,3.9155803,35.5393498,35.3099099,3.8586679,3.936861,39.5140057,68.2739679,68.1435022,65.9174134,17.8391636,18.8854831,17.0057963,59.9199463,27.6723063,52.1326372,45.6524382,39.4040086,66.9959135,3.8090889,35.6915245,36.1707082,3.6744577,3.7540779,38.2820462,68.2976181,68.3641029,67.0035636,18.0383357,19.3527437,17.4941726,60.3765226,27.9048838,52.5622689,44.1132854,38.1648726,66.8694842,3.9174329,36.5023376,36.8632083\r\n2312,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8586679,3.936861,39.5140057,68.2739679,68.1435022,65.9174134,17.8391636,18.8854831,17.0057963,59.9199463,27.6723063,52.1326372,45.6524382,39.4040086,66.9959135,3.8090889,35.6915245,36.1707082,3.6744577,3.7540779,38.2820462,68.2976181,68.3641029,67.0035636,18.0383357,19.3527437,17.4941726,60.3765226,27.9048838,52.5622689,44.1132854,38.1648726,66.8694842,3.9174329,36.5023376,36.8632083,3.7098037,3.7627138,38.2701006,69.3092281,68.7610554,67.6210211,17.8268834,19.5160761,16.8288953,60.1782145,27.4533641,53.0870934,44.0002438,38.1807958,67.3188101,4.0316352,36.6291137,37.1043855\r\n2313,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6744577,3.7540779,38.2820462,68.2976181,68.3641029,67.0035636,18.0383357,19.3527437,17.4941726,60.3765226,27.9048838,52.5622689,44.1132854,38.1648726,66.8694842,3.9174329,36.5023376,36.8632083,3.7098037,3.7627138,38.2701006,69.3092281,68.7610554,67.6210211,17.8268834,19.5160761,16.8288953,60.1782145,27.4533641,53.0870934,44.0002438,38.1807958,67.3188101,4.0316352,36.6291137,37.1043855,3.7801456,3.8358446,37.7310515,69.4062821,68.7366484,67.2198116,17.7608211,19.7759666,17.3642479,59.4449246,27.6083296,53.1278666,43.3503312,37.5777489,67.382813,4.0930776,36.410045,37.1557373\r\n2314,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7098037,3.7627138,38.2701006,69.3092281,68.7610554,67.6210211,17.8268834,19.5160761,16.8288953,60.1782145,27.4533641,53.0870934,44.0002438,38.1807958,67.3188101,4.0316352,36.6291137,37.1043855,3.7801456,3.8358446,37.7310515,69.4062821,68.7366484,67.2198116,17.7608211,19.7759666,17.3642479,59.4449246,27.6083296,53.1278666,43.3503312,37.5777489,67.382813,4.0930776,36.410045,37.1557373,3.7166549,3.7731162,36.1224816,68.8809536,68.1007957,65.8916345,17.8891182,19.4157436,16.8822013,59.8255745,27.7404323,52.0704736,42.6597254,36.6893957,67.3320376,4.209941,36.6188212,36.7946222\r\n2315,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7801456,3.8358446,37.7310515,69.4062821,68.7366484,67.2198116,17.7608211,19.7759666,17.3642479,59.4449246,27.6083296,53.1278666,43.3503312,37.5777489,67.382813,4.0930776,36.410045,37.1557373,3.7166549,3.7731162,36.1224816,68.8809536,68.1007957,65.8916345,17.8891182,19.4157436,16.8822013,59.8255745,27.7404323,52.0704736,42.6597254,36.6893957,67.3320376,4.209941,36.6188212,36.7946222,3.6105086,3.6712324,35.0596117,68.3714346,69.7224384,65.7955545,17.5540496,20.8615331,17.9926495,60.1285737,27.5606607,53.5007249,42.187501,36.1420448,67.3357844,4.1069346,36.675419,37.0411219\r\n2316,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7166549,3.7731162,36.1224816,68.8809536,68.1007957,65.8916345,17.8891182,19.4157436,16.8822013,59.8255745,27.7404323,52.0704736,42.6597254,36.6893957,67.3320376,4.209941,36.6188212,36.7946222,3.6105086,3.6712324,35.0596117,68.3714346,69.7224384,65.7955545,17.5540496,20.8615331,17.9926495,60.1285737,27.5606607,53.5007249,42.187501,36.1420448,67.3357844,4.1069346,36.675419,37.0411219,3.4317834,3.4772541,34.2875846,68.122646,69.4078351,65.2934001,17.934622,19.7015881,17.7447922,60.4342222,27.9014163,53.3045604,41.4483566,35.297172,67.172658,4.1452331,36.7004481,37.1056129\r\n2317,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6105086,3.6712324,35.0596117,68.3714346,69.7224384,65.7955545,17.5540496,20.8615331,17.9926495,60.1285737,27.5606607,53.5007249,42.187501,36.1420448,67.3357844,4.1069346,36.675419,37.0411219,3.4317834,3.4772541,34.2875846,68.122646,69.4078351,65.2934001,17.934622,19.7015881,17.7447922,60.4342222,27.9014163,53.3045604,41.4483566,35.297172,67.172658,4.1452331,36.7004481,37.1056129,3.2753612,3.306069,32.9821565,67.5967833,69.3172957,65.7647144,18.6988952,19.4509187,17.4560651,60.0672376,28.7125157,53.0500565,40.0673963,33.9399433,66.6201599,4.2719342,36.5267136,35.7142731\r\n2318,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4317834,3.4772541,34.2875846,68.122646,69.4078351,65.2934001,17.934622,19.7015881,17.7447922,60.4342222,27.9014163,53.3045604,41.4483566,35.297172,67.172658,4.1452331,36.7004481,37.1056129,3.2753612,3.306069,32.9821565,67.5967833,69.3172957,65.7647144,18.6988952,19.4509187,17.4560651,60.0672376,28.7125157,53.0500565,40.0673963,33.9399433,66.6201599,4.2719342,36.5267136,35.7142731,3.0914749,3.1220998,32.9799749,67.3693527,68.8504729,65.4659717,19.0791139,18.8615518,16.9924917,60.1440746,29.0866047,52.3894582,39.597095,33.5599795,66.6093471,4.0656332,36.4732372,34.3606583\r\n2319,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2753612,3.306069,32.9821565,67.5967833,69.3172957,65.7647144,18.6988952,19.4509187,17.4560651,60.0672376,28.7125157,53.0500565,40.0673963,33.9399433,66.6201599,4.2719342,36.5267136,35.7142731,3.0914749,3.1220998,32.9799749,67.3693527,68.8504729,65.4659717,19.0791139,18.8615518,16.9924917,60.1440746,29.0866047,52.3894582,39.597095,33.5599795,66.6093471,4.0656332,36.4732372,34.3606583,2.9033172,2.9229775,31.953411,66.5745185,68.1062464,65.0263277,19.6601934,18.9686656,17.2109517,60.8029792,29.6527511,51.4609342,38.7467467,32.8116813,66.1777085,4.0002721,36.4092138,33.2543392\r\n2320,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0914749,3.1220998,32.9799749,67.3693527,68.8504729,65.4659717,19.0791139,18.8615518,16.9924917,60.1440746,29.0866047,52.3894582,39.597095,33.5599795,66.6093471,4.0656332,36.4732372,34.3606583,2.9033172,2.9229775,31.953411,66.5745185,68.1062464,65.0263277,19.6601934,18.9686656,17.2109517,60.8029792,29.6527511,51.4609342,38.7467467,32.8116813,66.1777085,4.0002721,36.4092138,33.2543392,2.6481266,2.6748518,31.242086,66.3868361,67.4645853,65.4794731,19.8509501,18.57075,17.7357746,61.229571,29.964261,51.0166831,38.059893,32.1883591,66.0405419,3.8623426,36.2441213,32.1811294\r\n2321,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9033172,2.9229775,31.953411,66.5745185,68.1062464,65.0263277,19.6601934,18.9686656,17.2109517,60.8029792,29.6527511,51.4609342,38.7467467,32.8116813,66.1777085,4.0002721,36.4092138,33.2543392,2.6481266,2.6748518,31.242086,66.3868361,67.4645853,65.4794731,19.8509501,18.57075,17.7357746,61.229571,29.964261,51.0166831,38.059893,32.1883591,66.0405419,3.8623426,36.2441213,32.1811294,2.4342455,2.4708236,30.2874625,66.9303658,67.9533121,65.9868571,20.1191474,18.8765098,17.4462493,61.597655,29.8983949,51.0271124,36.7277288,30.9641575,65.9514511,3.8280541,36.113469,31.9681093\r\n2322,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6481266,2.6748518,31.242086,66.3868361,67.4645853,65.4794731,19.8509501,18.57075,17.7357746,61.229571,29.964261,51.0166831,38.059893,32.1883591,66.0405419,3.8623426,36.2441213,32.1811294,2.4342455,2.4708236,30.2874625,66.9303658,67.9533121,65.9868571,20.1191474,18.8765098,17.4462493,61.597655,29.8983949,51.0271124,36.7277288,30.9641575,65.9514511,3.8280541,36.113469,31.9681093,2.3819781,2.4429443,29.3128394,66.4636731,66.9728929,66.3208046,20.0154796,18.2775657,16.7914486,61.2226285,29.8314569,50.3216317,35.698901,30.048425,65.7646522,3.9189789,35.6612478,31.488759\r\n2323,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4342455,2.4708236,30.2874625,66.9303658,67.9533121,65.9868571,20.1191474,18.8765098,17.4462493,61.597655,29.8983949,51.0271124,36.7277288,30.9641575,65.9514511,3.8280541,36.113469,31.9681093,2.3819781,2.4429443,29.3128394,66.4636731,66.9728929,66.3208046,20.0154796,18.2775657,16.7914486,61.2226285,29.8314569,50.3216317,35.698901,30.048425,65.7646522,3.9189789,35.6612478,31.488759,2.2500092,2.3115472,28.1394541,66.6519282,66.9951432,66.3487557,20.4331512,18.6231708,16.460886,60.9991179,29.7300718,50.3642397,34.6850488,29.1546541,65.5760695,3.8744913,35.3259386,30.8207168\r\n2324,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3819781,2.4429443,29.3128394,66.4636731,66.9728929,66.3208046,20.0154796,18.2775657,16.7914486,61.2226285,29.8314569,50.3216317,35.698901,30.048425,65.7646522,3.9189789,35.6612478,31.488759,2.2500092,2.3115472,28.1394541,66.6519282,66.9951432,66.3487557,20.4331512,18.6231708,16.460886,60.9991179,29.7300718,50.3642397,34.6850488,29.1546541,65.5760695,3.8744913,35.3259386,30.8207168,2.2010873,2.2675218,27.1208523,65.4463683,66.3746158,65.3647549,20.3424138,18.4494688,16.7835733,61.3295798,29.5125999,49.6121015,33.8188099,28.3693347,65.4179799,3.9744174,35.3335355,31.1660551\r\n2325,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2500092,2.3115472,28.1394541,66.6519282,66.9951432,66.3487557,20.4331512,18.6231708,16.460886,60.9991179,29.7300718,50.3642397,34.6850488,29.1546541,65.5760695,3.8744913,35.3259386,30.8207168,2.2010873,2.2675218,27.1208523,65.4463683,66.3746158,65.3647549,20.3424138,18.4494688,16.7835733,61.3295798,29.5125999,49.6121015,33.8188099,28.3693347,65.4179799,3.9744174,35.3335355,31.1660551,2.1285039,2.1933211,26.2221655,65.0231616,66.3265536,64.7480035,20.2608006,18.0342516,16.2992424,61.4754778,29.4825831,49.0469293,32.6706902,27.0792357,64.9864432,4.0906489,35.1885367,30.9449301\r\n2326,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2010873,2.2675218,27.1208523,65.4463683,66.3746158,65.3647549,20.3424138,18.4494688,16.7835733,61.3295798,29.5125999,49.6121015,33.8188099,28.3693347,65.4179799,3.9744174,35.3335355,31.1660551,2.1285039,2.1933211,26.2221655,65.0231616,66.3265536,64.7480035,20.2608006,18.0342516,16.2992424,61.4754778,29.4825831,49.0469293,32.6706902,27.0792357,64.9864432,4.0906489,35.1885367,30.9449301,2.0051884,2.0766651,25.7415434,65.3572384,66.5195084,64.4553803,20.2993098,17.2861656,16.3979091,61.9013734,29.9612404,48.6019343,31.4905809,26.2222519,64.6409267,4.1443732,35.565294,31.0444779\r\n2327,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1285039,2.1933211,26.2221655,65.0231616,66.3265536,64.7480035,20.2608006,18.0342516,16.2992424,61.4754778,29.4825831,49.0469293,32.6706902,27.0792357,64.9864432,4.0906489,35.1885367,30.9449301,2.0051884,2.0766651,25.7415434,65.3572384,66.5195084,64.4553803,20.2993098,17.2861656,16.3979091,61.9013734,29.9612404,48.6019343,31.4905809,26.2222519,64.6409267,4.1443732,35.565294,31.0444779,1.9315234,2.0056173,24.8831252,64.9847435,66.5771134,64.2893453,21.0256514,17.4808808,15.5457444,63.0193455,30.4825761,48.1260376,30.6115074,25.382194,64.5659144,4.131208,35.901733,31.3288895\r\n2328,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0051884,2.0766651,25.7415434,65.3572384,66.5195084,64.4553803,20.2993098,17.2861656,16.3979091,61.9013734,29.9612404,48.6019343,31.4905809,26.2222519,64.6409267,4.1443732,35.565294,31.0444779,1.9315234,2.0056173,24.8831252,64.9847435,66.5771134,64.2893453,21.0256514,17.4808808,15.5457444,63.0193455,30.4825761,48.1260376,30.6115074,25.382194,64.5659144,4.131208,35.901733,31.3288895,1.7981648,1.8563306,24.6761571,63.7174258,65.8784289,63.9681673,21.0701034,17.7560941,15.7654483,63.6837595,30.930669,48.6157631,29.8378872,24.9312484,64.5586214,4.1009291,35.6988177,30.8689391\r\n2329,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9315234,2.0056173,24.8831252,64.9847435,66.5771134,64.2893453,21.0256514,17.4808808,15.5457444,63.0193455,30.4825761,48.1260376,30.6115074,25.382194,64.5659144,4.131208,35.901733,31.3288895,1.7981648,1.8563306,24.6761571,63.7174258,65.8784289,63.9681673,21.0701034,17.7560941,15.7654483,63.6837595,30.930669,48.6157631,29.8378872,24.9312484,64.5586214,4.1009291,35.6988177,30.8689391,1.7304027,1.7423815,24.285229,63.9198901,66.2495472,63.8476047,21.8727243,17.8819051,16.1370842,64.5120368,31.4934682,48.2560494,29.4918927,24.6907193,64.3652063,4.1855952,36.1353616,30.3949989\r\n2330,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7981648,1.8563306,24.6761571,63.7174258,65.8784289,63.9681673,21.0701034,17.7560941,15.7654483,63.6837595,30.930669,48.6157631,29.8378872,24.9312484,64.5586214,4.1009291,35.6988177,30.8689391,1.7304027,1.7423815,24.285229,63.9198901,66.2495472,63.8476047,21.8727243,17.8819051,16.1370842,64.5120368,31.4934682,48.2560494,29.4918927,24.6907193,64.3652063,4.1855952,36.1353616,30.3949989,1.6554955,1.6787503,24.0693627,64.2844513,65.7536791,63.9840587,21.4322165,18.1887994,16.4556001,63.8278479,31.9280412,47.527476,28.8547125,24.4578063,64.3363859,4.2334148,36.5619937,29.2488366\r\n2331,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7304027,1.7423815,24.285229,63.9198901,66.2495472,63.8476047,21.8727243,17.8819051,16.1370842,64.5120368,31.4934682,48.2560494,29.4918927,24.6907193,64.3652063,4.1855952,36.1353616,30.3949989,1.6554955,1.6787503,24.0693627,64.2844513,65.7536791,63.9840587,21.4322165,18.1887994,16.4556001,63.8278479,31.9280412,47.527476,28.8547125,24.4578063,64.3363859,4.2334148,36.5619937,29.2488366,1.6473499,1.6708274,23.6670505,65.1835896,65.6858436,64.5630146,21.4411209,18.2798138,16.720015,63.3125883,31.8143602,47.4387938,28.227972,23.9140138,64.0803683,4.3715466,36.2014336,29.4002877\r\n2332,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6554955,1.6787503,24.0693627,64.2844513,65.7536791,63.9840587,21.4322165,18.1887994,16.4556001,63.8278479,31.9280412,47.527476,28.8547125,24.4578063,64.3363859,4.2334148,36.5619937,29.2488366,1.6473499,1.6708274,23.6670505,65.1835896,65.6858436,64.5630146,21.4411209,18.2798138,16.720015,63.3125883,31.8143602,47.4387938,28.227972,23.9140138,64.0803683,4.3715466,36.2014336,29.4002877,1.5985481,1.6250835,22.3362005,65.3452223,65.6269595,64.2082225,22.3088191,18.2248763,16.9130465,63.5282992,32.2730456,47.2924956,27.3880842,23.0349129,63.8223317,4.5863635,36.1146544,29.5304491\r\n2333,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.6473499,1.6708274,23.6670505,65.1835896,65.6858436,64.5630146,21.4411209,18.2798138,16.720015,63.3125883,31.8143602,47.4387938,28.227972,23.9140138,64.0803683,4.3715466,36.2014336,29.4002877,1.5985481,1.6250835,22.3362005,65.3452223,65.6269595,64.2082225,22.3088191,18.2248763,16.9130465,63.5282992,32.2730456,47.2924956,27.3880842,23.0349129,63.8223317,4.5863635,36.1146544,29.5304491,1.5671437,1.6013618,21.1429824,64.3483164,64.9356554,64.2681257,22.5132574,18.3423756,16.8403536,63.2392386,32.6324943,46.4793887,26.6255949,22.1191258,63.9877489,4.692011,35.892029,29.2924687\r\n2334,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5985481,1.6250835,22.3362005,65.3452223,65.6269595,64.2082225,22.3088191,18.2248763,16.9130465,63.5282992,32.2730456,47.2924956,27.3880842,23.0349129,63.8223317,4.5863635,36.1146544,29.5304491,1.5671437,1.6013618,21.1429824,64.3483164,64.9356554,64.2681257,22.5132574,18.3423756,16.8403536,63.2392386,32.6324943,46.4793887,26.6255949,22.1191258,63.9877489,4.692011,35.892029,29.2924687,1.46836,1.4807941,20.3204939,64.8974832,65.6284248,64.0771756,22.5849109,17.9561471,17.1717199,63.3559284,33.3255708,46.1297841,25.6542316,21.1974535,63.2592921,4.7879276,35.9471623,27.6374858\r\n2335,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5671437,1.6013618,21.1429824,64.3483164,64.9356554,64.2681257,22.5132574,18.3423756,16.8403536,63.2392386,32.6324943,46.4793887,26.6255949,22.1191258,63.9877489,4.692011,35.892029,29.2924687,1.46836,1.4807941,20.3204939,64.8974832,65.6284248,64.0771756,22.5849109,17.9561471,17.1717199,63.3559284,33.3255708,46.1297841,25.6542316,21.1974535,63.2592921,4.7879276,35.9471623,27.6374858,1.5295037,1.5578842,19.5644395,65.4673406,65.4433667,64.8024703,23.3517887,16.8771618,17.3470982,63.051672,34.1163345,44.1739847,24.9839548,20.3029694,62.2005065,5.1829247,35.4256193,28.2488243\r\n2336,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.46836,1.4807941,20.3204939,64.8974832,65.6284248,64.0771756,22.5849109,17.9561471,17.1717199,63.3559284,33.3255708,46.1297841,25.6542316,21.1974535,63.2592921,4.7879276,35.9471623,27.6374858,1.5295037,1.5578842,19.5644395,65.4673406,65.4433667,64.8024703,23.3517887,16.8771618,17.3470982,63.051672,34.1163345,44.1739847,24.9839548,20.3029694,62.2005065,5.1829247,35.4256193,28.2488243,1.4547877,1.523054,19.1815375,64.3746425,64.265987,64.1914257,23.3437584,16.6181589,16.224692,63.1067725,34.6502484,43.2492762,24.261353,19.5373291,61.479632,5.0208835,35.2533609,27.3978986\r\n2337,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5295037,1.5578842,19.5644395,65.4673406,65.4433667,64.8024703,23.3517887,16.8771618,17.3470982,63.051672,34.1163345,44.1739847,24.9839548,20.3029694,62.2005065,5.1829247,35.4256193,28.2488243,1.4547877,1.523054,19.1815375,64.3746425,64.265987,64.1914257,23.3437584,16.6181589,16.224692,63.1067725,34.6502484,43.2492762,24.261353,19.5373291,61.479632,5.0208835,35.2533609,27.3978986,1.3635185,1.4210342,18.6042299,63.8253192,64.7214043,63.8445839,23.4782974,15.8430609,16.3194047,64.0841769,34.8536686,43.094691,23.8686817,18.8333032,60.8722082,5.1262475,35.6335472,27.1782097\r\n2338,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4547877,1.523054,19.1815375,64.3746425,64.265987,64.1914257,23.3437584,16.6181589,16.224692,63.1067725,34.6502484,43.2492762,24.261353,19.5373291,61.479632,5.0208835,35.2533609,27.3978986,1.3635185,1.4210342,18.6042299,63.8253192,64.7214043,63.8445839,23.4782974,15.8430609,16.3194047,64.0841769,34.8536686,43.094691,23.8686817,18.8333032,60.8722082,5.1262475,35.6335472,27.1782097,1.2831366,1.3566507,18.0480793,63.5239412,64.7211659,63.2901236,23.7913343,15.6797491,15.2717771,64.7507696,35.209435,43.2501246,23.2718458,18.2701867,60.7717848,4.9760988,35.8650442,26.1021966\r\n2339,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3635185,1.4210342,18.6042299,63.8253192,64.7214043,63.8445839,23.4782974,15.8430609,16.3194047,64.0841769,34.8536686,43.094691,23.8686817,18.8333032,60.8722082,5.1262475,35.6335472,27.1782097,1.2831366,1.3566507,18.0480793,63.5239412,64.7211659,63.2901236,23.7913343,15.6797491,15.2717771,64.7507696,35.209435,43.2501246,23.2718458,18.2701867,60.7717848,4.9760988,35.8650442,26.1021966,1.2501619,1.3195409,17.9117062,63.9554313,64.6092923,64.4933088,23.676801,15.4585587,14.8102022,65.2024252,35.6739795,43.2781976,22.6511455,17.8948224,60.9319876,5.1848643,35.4628562,24.1867789\r\n2340,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2831366,1.3566507,18.0480793,63.5239412,64.7211659,63.2901236,23.7913343,15.6797491,15.2717771,64.7507696,35.209435,43.2501246,23.2718458,18.2701867,60.7717848,4.9760988,35.8650442,26.1021966,1.2501619,1.3195409,17.9117062,63.9554313,64.6092923,64.4933088,23.676801,15.4585587,14.8102022,65.2024252,35.6739795,43.2781976,22.6511455,17.8948224,60.9319876,5.1848643,35.4628562,24.1867789,1.2870062,1.3586937,17.8425821,63.664312,64.1678972,63.6666905,24.9833632,14.9936208,14.7244324,65.7814362,36.3011063,43.1055255,22.0809576,17.4623801,60.1359847,5.2347187,34.9946054,23.18919\r\n2341,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2501619,1.3195409,17.9117062,63.9554313,64.6092923,64.4933088,23.676801,15.4585587,14.8102022,65.2024252,35.6739795,43.2781976,22.6511455,17.8948224,60.9319876,5.1848643,35.4628562,24.1867789,1.2870062,1.3586937,17.8425821,63.664312,64.1678972,63.6666905,24.9833632,14.9936208,14.7244324,65.7814362,36.3011063,43.1055255,22.0809576,17.4623801,60.1359847,5.2347187,34.9946054,23.18919,1.3299226,1.3898888,17.5068685,63.52851,64.1426535,63.7721503,24.9804572,14.784819,14.9235119,66.0907849,36.5568537,43.135858,21.6655285,17.1450737,59.3411447,5.2153171,34.6112343,23.3556444\r\n2342,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2870062,1.3586937,17.8425821,63.664312,64.1678972,63.6666905,24.9833632,14.9936208,14.7244324,65.7814362,36.3011063,43.1055255,22.0809576,17.4623801,60.1359847,5.2347187,34.9946054,23.18919,1.3299226,1.3898888,17.5068685,63.52851,64.1426535,63.7721503,24.9804572,14.784819,14.9235119,66.0907849,36.5568537,43.135858,21.6655285,17.1450737,59.3411447,5.2153171,34.6112343,23.3556444,1.2281041,1.275692,17.3892469,62.9254671,64.0727263,63.993382,25.6646637,14.1961038,14.6562163,66.1136143,37.0597908,43.564628,21.3195876,16.828515,59.1388976,4.930454,35.0127421,21.4203365\r\n2343,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3299226,1.3898888,17.5068685,63.52851,64.1426535,63.7721503,24.9804572,14.784819,14.9235119,66.0907849,36.5568537,43.135858,21.6655285,17.1450737,59.3411447,5.2153171,34.6112343,23.3556444,1.2281041,1.275692,17.3892469,62.9254671,64.0727263,63.993382,25.6646637,14.1961038,14.6562163,66.1136143,37.0597908,43.564628,21.3195876,16.828515,59.1388976,4.930454,35.0127421,21.4203365,1.1946218,1.2082923,16.8545462,63.5042042,64.7852841,64.5660853,25.8183006,14.0416162,15.4602403,65.5376807,37.2688189,44.2299948,20.6434197,16.3657152,58.9750596,5.0026919,35.6386948,21.3007391\r\n2344,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2281041,1.275692,17.3892469,62.9254671,64.0727263,63.993382,25.6646637,14.1961038,14.6562163,66.1136143,37.0597908,43.564628,21.3195876,16.828515,59.1388976,4.930454,35.0127421,21.4203365,1.1946218,1.2082923,16.8545462,63.5042042,64.7852841,64.5660853,25.8183006,14.0416162,15.4602403,65.5376807,37.2688189,44.2299948,20.6434197,16.3657152,58.9750596,5.0026919,35.6386948,21.3007391,1.2393241,1.2531497,16.2188377,63.4228868,64.5156125,65.4538583,26.8206252,14.130709,14.9801607,65.6042065,37.5858754,43.4875006,20.129301,15.7899426,58.3101937,5.126109,34.7401479,21.4197575\r\n2345,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1946218,1.2082923,16.8545462,63.5042042,64.7852841,64.5660853,25.8183006,14.0416162,15.4602403,65.5376807,37.2688189,44.2299948,20.6434197,16.3657152,58.9750596,5.0026919,35.6386948,21.3007391,1.2393241,1.2531497,16.2188377,63.4228868,64.5156125,65.4538583,26.8206252,14.130709,14.9801607,65.6042065,37.5858754,43.4875006,20.129301,15.7899426,58.3101937,5.126109,34.7401479,21.4197575,1.1849538,1.1820443,15.6398343,63.1881815,64.1855348,67.2414664,27.2558811,13.6388994,15.0609823,65.5607158,38.0756145,42.29106,19.6566674,15.1447101,57.1468947,5.3561493,34.6957866,18.9172006\r\n2346,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2393241,1.2531497,16.2188377,63.4228868,64.5156125,65.4538583,26.8206252,14.130709,14.9801607,65.6042065,37.5858754,43.4875006,20.129301,15.7899426,58.3101937,5.126109,34.7401479,21.4197575,1.1849538,1.1820443,15.6398343,63.1881815,64.1855348,67.2414664,27.2558811,13.6388994,15.0609823,65.5607158,38.0756145,42.29106,19.6566674,15.1447101,57.1468947,5.3561493,34.6957866,18.9172006,1.2650082,1.2757292,15.3202377,63.0844433,64.798677,66.7693861,27.7463704,13.9550945,15.2763394,65.2274487,38.0821717,42.1015607,19.4982853,15.0244546,55.686978,5.2997935,34.789947,18.8227716\r\n2347,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1849538,1.1820443,15.6398343,63.1881815,64.1855348,67.2414664,27.2558811,13.6388994,15.0609823,65.5607158,38.0756145,42.29106,19.6566674,15.1447101,57.1468947,5.3561493,34.6957866,18.9172006,1.2650082,1.2757292,15.3202377,63.0844433,64.798677,66.7693861,27.7463704,13.9550945,15.2763394,65.2274487,38.0821717,42.1015607,19.4982853,15.0244546,55.686978,5.2997935,34.789947,18.8227716,1.2179049,1.226713,14.830801,62.8860339,64.4345831,67.3302476,27.7167724,13.6145841,14.6854972,65.4873824,38.650858,41.3509168,19.4641039,14.8302117,55.4004059,5.0353812,35.1236526,18.5880862\r\n2348,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2650082,1.2757292,15.3202377,63.0844433,64.798677,66.7693861,27.7463704,13.9550945,15.2763394,65.2274487,38.0821717,42.1015607,19.4982853,15.0244546,55.686978,5.2997935,34.789947,18.8227716,1.2179049,1.226713,14.830801,62.8860339,64.4345831,67.3302476,27.7167724,13.6145841,14.6854972,65.4873824,38.650858,41.3509168,19.4641039,14.8302117,55.4004059,5.0353812,35.1236526,18.5880862,1.2828994,1.2812196,14.7293804,62.8097833,63.8775089,66.732303,27.7453495,12.5980439,13.7238131,64.7151246,39.1097663,40.8999304,19.1593885,14.5547073,54.8234227,5.1629917,35.1154925,19.2509704\r\n2349,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2179049,1.226713,14.830801,62.8860339,64.4345831,67.3302476,27.7167724,13.6145841,14.6854972,65.4873824,38.650858,41.3509168,19.4641039,14.8302117,55.4004059,5.0353812,35.1236526,18.5880862,1.2828994,1.2812196,14.7293804,62.8097833,63.8775089,66.732303,27.7453495,12.5980439,13.7238131,64.7151246,39.1097663,40.8999304,19.1593885,14.5547073,54.8234227,5.1629917,35.1154925,19.2509704,1.3152533,1.3191848,13.7849771,63.2913701,64.3041858,66.7946966,27.340538,12.3185896,13.3794415,64.5767258,38.4219094,41.06971,18.6715725,14.1358934,54.2235048,5.216515,34.9250817,19.0384493\r\n2350,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2828994,1.2812196,14.7293804,62.8097833,63.8775089,66.732303,27.7453495,12.5980439,13.7238131,64.7151246,39.1097663,40.8999304,19.1593885,14.5547073,54.8234227,5.1629917,35.1154925,19.2509704,1.3152533,1.3191848,13.7849771,63.2913701,64.3041858,66.7946966,27.340538,12.3185896,13.3794415,64.5767258,38.4219094,41.06971,18.6715725,14.1358934,54.2235048,5.216515,34.9250817,19.0384493,1.4132969,1.4257368,13.0393049,63.152409,62.9289292,66.8080343,27.5924982,11.8631133,13.303803,65.2261151,38.0439067,39.1801883,18.3107535,13.6856392,53.6104771,5.2354545,34.6623292,18.5256187\r\n2351,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3152533,1.3191848,13.7849771,63.2913701,64.3041858,66.7946966,27.340538,12.3185896,13.3794415,64.5767258,38.4219094,41.06971,18.6715725,14.1358934,54.2235048,5.216515,34.9250817,19.0384493,1.4132969,1.4257368,13.0393049,63.152409,62.9289292,66.8080343,27.5924982,11.8631133,13.303803,65.2261151,38.0439067,39.1801883,18.3107535,13.6856392,53.6104771,5.2354545,34.6623292,18.5256187,1.3152508,1.3276886,13.1272608,63.0785896,62.5402998,66.9027719,27.0029825,10.7952614,13.1279635,65.3531059,37.8507396,39.0044867,18.1268134,13.6289779,52.8740977,4.9889314,36.0759338,17.3443368\r\n2352,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4132969,1.4257368,13.0393049,63.152409,62.9289292,66.8080343,27.5924982,11.8631133,13.303803,65.2261151,38.0439067,39.1801883,18.3107535,13.6856392,53.6104771,5.2354545,34.6623292,18.5256187,1.3152508,1.3276886,13.1272608,63.0785896,62.5402998,66.9027719,27.0029825,10.7952614,13.1279635,65.3531059,37.8507396,39.0044867,18.1268134,13.6289779,52.8740977,4.9889314,36.0759338,17.3443368,1.3448557,1.3572641,12.8384441,64.4938748,63.4250622,65.7370528,26.531319,11.1542871,13.3516473,65.864101,37.6760456,39.1054928,17.7070266,13.3411585,52.958293,4.9006962,35.9638897,17.7480848\r\n2353,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3152508,1.3276886,13.1272608,63.0785896,62.5402998,66.9027719,27.0029825,10.7952614,13.1279635,65.3531059,37.8507396,39.0044867,18.1268134,13.6289779,52.8740977,4.9889314,36.0759338,17.3443368,1.3448557,1.3572641,12.8384441,64.4938748,63.4250622,65.7370528,26.531319,11.1542871,13.3516473,65.864101,37.6760456,39.1054928,17.7070266,13.3411585,52.958293,4.9006962,35.9638897,17.7480848,1.2566055,1.252011,12.6358422,63.6390548,62.3025826,65.9149133,27.2519336,10.8330202,13.1051041,66.5445262,38.544123,38.4620733,17.2581022,12.8132502,52.2277642,5.0593525,36.0242333,17.3223157\r\n2354,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3448557,1.3572641,12.8384441,64.4938748,63.4250622,65.7370528,26.531319,11.1542871,13.3516473,65.864101,37.6760456,39.1054928,17.7070266,13.3411585,52.958293,4.9006962,35.9638897,17.7480848,1.2566055,1.252011,12.6358422,63.6390548,62.3025826,65.9149133,27.2519336,10.8330202,13.1051041,66.5445262,38.544123,38.4620733,17.2581022,12.8132502,52.2277642,5.0593525,36.0242333,17.3223157,1.2414887,1.2385425,12.8550363,64.9885059,63.7270145,66.1829452,27.1761001,10.9577856,14.0752729,66.2708604,38.4294687,39.1795605,17.1146649,12.7537628,51.2144505,5.5771069,36.7966232,17.3997216\r\n2355,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2566055,1.252011,12.6358422,63.6390548,62.3025826,65.9149133,27.2519336,10.8330202,13.1051041,66.5445262,38.544123,38.4620733,17.2581022,12.8132502,52.2277642,5.0593525,36.0242333,17.3223157,1.2414887,1.2385425,12.8550363,64.9885059,63.7270145,66.1829452,27.1761001,10.9577856,14.0752729,66.2708604,38.4294687,39.1795605,17.1146649,12.7537628,51.2144505,5.5771069,36.7966232,17.3997216,1.1009881,1.1159869,12.0987293,64.3522656,63.1820366,66.3226356,27.3099526,11.2170178,14.1243904,66.1794422,38.0682356,38.1717334,16.3860699,12.0241054,50.5555512,5.692429,37.752572,15.6332322\r\n2356,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2414887,1.2385425,12.8550363,64.9885059,63.7270145,66.1829452,27.1761001,10.9577856,14.0752729,66.2708604,38.4294687,39.1795605,17.1146649,12.7537628,51.2144505,5.5771069,36.7966232,17.3997216,1.1009881,1.1159869,12.0987293,64.3522656,63.1820366,66.3226356,27.3099526,11.2170178,14.1243904,66.1794422,38.0682356,38.1717334,16.3860699,12.0241054,50.5555512,5.692429,37.752572,15.6332322,1.0816904,1.1000524,11.8144139,63.4420955,62.5215805,64.7875206,27.1663284,11.5218364,14.3610328,66.5583883,38.3126081,36.0385996,16.0035092,11.751512,49.8555808,5.8148969,38.5050206,14.8480525\r\n2357,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1009881,1.1159869,12.0987293,64.3522656,63.1820366,66.3226356,27.3099526,11.2170178,14.1243904,66.1794422,38.0682356,38.1717334,16.3860699,12.0241054,50.5555512,5.692429,37.752572,15.6332322,1.0816904,1.1000524,11.8144139,63.4420955,62.5215805,64.7875206,27.1663284,11.5218364,14.3610328,66.5583883,38.3126081,36.0385996,16.0035092,11.751512,49.8555808,5.8148969,38.5050206,14.8480525,0.9233092,0.9325275,11.8806066,64.0298654,64.3424285,65.2378629,27.388306,10.8707056,14.358656,66.9969474,39.3354295,37.4409862,15.6707666,11.5309519,49.2833385,6.1060138,38.0724369,13.8848777\r\n2358,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0816904,1.1000524,11.8144139,63.4420955,62.5215805,64.7875206,27.1663284,11.5218364,14.3610328,66.5583883,38.3126081,36.0385996,16.0035092,11.751512,49.8555808,5.8148969,38.5050206,14.8480525,0.9233092,0.9325275,11.8806066,64.0298654,64.3424285,65.2378629,27.388306,10.8707056,14.358656,66.9969474,39.3354295,37.4409862,15.6707666,11.5309519,49.2833385,6.1060138,38.0724369,13.8848777,1.0541407,1.0635392,11.401072,64.1202628,64.8999738,65.2200273,28.2199438,11.7431748,13.4873872,66.966639,39.6640559,37.7604226,15.2338256,10.9950236,48.6931572,6.3477166,37.1483436,12.9490849\r\n2359,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9233092,0.9325275,11.8806066,64.0298654,64.3424285,65.2378629,27.388306,10.8707056,14.358656,66.9969474,39.3354295,37.4409862,15.6707666,11.5309519,49.2833385,6.1060138,38.0724369,13.8848777,1.0541407,1.0635392,11.401072,64.1202628,64.8999738,65.2200273,28.2199438,11.7431748,13.4873872,66.966639,39.6640559,37.7604226,15.2338256,10.9950236,48.6931572,6.3477166,37.1483436,12.9490849,1.0434915,1.0626559,11.5969401,62.5740452,63.7743796,64.3462225,29.4711192,11.0675486,13.015104,67.4705113,40.9320701,37.4491159,15.104479,11.0468626,47.272927,6.3419288,37.9991448,11.8357308\r\n2360,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0541407,1.0635392,11.401072,64.1202628,64.8999738,65.2200273,28.2199438,11.7431748,13.4873872,66.966639,39.6640559,37.7604226,15.2338256,10.9950236,48.6931572,6.3477166,37.1483436,12.9490849,1.0434915,1.0626559,11.5969401,62.5740452,63.7743796,64.3462225,29.4711192,11.0675486,13.015104,67.4705113,40.9320701,37.4491159,15.104479,11.0468626,47.272927,6.3419288,37.9991448,11.8357308,1.0727363,1.0727363,11.0981515,61.963045,64.0467674,64.0136548,29.5768086,10.0017104,12.9388011,67.6115645,40.5729072,36.4634636,14.8054292,10.7316551,46.4695672,6.2805501,38.9812046,12.3737353\r\n2361,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0434915,1.0626559,11.5969401,62.5740452,63.7743796,64.3462225,29.4711192,11.0675486,13.015104,67.4705113,40.9320701,37.4491159,15.104479,11.0468626,47.272927,6.3419288,37.9991448,11.8357308,1.0727363,1.0727363,11.0981515,61.963045,64.0467674,64.0136548,29.5768086,10.0017104,12.9388011,67.6115645,40.5729072,36.4634636,14.8054292,10.7316551,46.4695672,6.2805501,38.9812046,12.3737353,1.0512565,1.0512565,10.6623369,61.5581851,63.9775181,64.3718507,29.3425083,9.5236369,12.1560558,67.6305852,40.1706988,36.7302314,14.3418645,10.3104189,45.190857,6.0038095,38.3991323,11.7491145\r\n2362,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0727363,1.0727363,11.0981515,61.963045,64.0467674,64.0136548,29.5768086,10.0017104,12.9388011,67.6115645,40.5729072,36.4634636,14.8054292,10.7316551,46.4695672,6.2805501,38.9812046,12.3737353,1.0512565,1.0512565,10.6623369,61.5581851,63.9775181,64.3718507,29.3425083,9.5236369,12.1560558,67.6305852,40.1706988,36.7302314,14.3418645,10.3104189,45.190857,6.0038095,38.3991323,11.7491145,1.116047,1.116047,10.865768,62.0930744,64.6207964,64.7075502,29.5927329,8.8163503,11.9335954,68.0049303,40.4164146,38.4615175,14.4493999,10.5759458,44.0978262,5.8352847,38.7919919,11.4159252\r\n2363,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0512565,1.0512565,10.6623369,61.5581851,63.9775181,64.3718507,29.3425083,9.5236369,12.1560558,67.6305852,40.1706988,36.7302314,14.3418645,10.3104189,45.190857,6.0038095,38.3991323,11.7491145,1.116047,1.116047,10.865768,62.0930744,64.6207964,64.7075502,29.5927329,8.8163503,11.9335954,68.0049303,40.4164146,38.4615175,14.4493999,10.5759458,44.0978262,5.8352847,38.7919919,11.4159252,1.0784994,1.0816911,11.3751635,62.923846,64.9834874,65.7218294,29.9033306,8.6837241,11.4568499,67.9942203,41.1219836,39.2245771,14.9473056,11.0559393,43.097096,6.2287022,39.108718,11.2788592\r\n2364,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.116047,1.116047,10.865768,62.0930744,64.6207964,64.7075502,29.5927329,8.8163503,11.9335954,68.0049303,40.4164146,38.4615175,14.4493999,10.5759458,44.0978262,5.8352847,38.7919919,11.4159252,1.0784994,1.0816911,11.3751635,62.923846,64.9834874,65.7218294,29.9033306,8.6837241,11.4568499,67.9942203,41.1219836,39.2245771,14.9473056,11.0559393,43.097096,6.2287022,39.108718,11.2788592,1.2036843,1.2197843,11.6394077,62.6888384,64.5161234,65.0030686,29.6824852,8.061135,10.6218941,67.3684418,40.8203343,38.5945132,15.5034875,11.3282891,42.0759652,6.1252935,40.0485675,11.295966\r\n2365,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0784994,1.0816911,11.3751635,62.923846,64.9834874,65.7218294,29.9033306,8.6837241,11.4568499,67.9942203,41.1219836,39.2245771,14.9473056,11.0559393,43.097096,6.2287022,39.108718,11.2788592,1.2036843,1.2197843,11.6394077,62.6888384,64.5161234,65.0030686,29.6824852,8.061135,10.6218941,67.3684418,40.8203343,38.5945132,15.5034875,11.3282891,42.0759652,6.1252935,40.0485675,11.295966,1.1132345,1.1435217,11.5220874,61.8579318,64.2394572,64.9498239,30.023106,7.2555454,10.8550985,68.1755962,41.40932,37.077786,15.1443389,11.2061903,40.7828,6.0983522,40.5184081,11.7077403\r\n2366,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2036843,1.2197843,11.6394077,62.6888384,64.5161234,65.0030686,29.6824852,8.061135,10.6218941,67.3684418,40.8203343,38.5945132,15.5034875,11.3282891,42.0759652,6.1252935,40.0485675,11.295966,1.1132345,1.1435217,11.5220874,61.8579318,64.2394572,64.9498239,30.023106,7.2555454,10.8550985,68.1755962,41.40932,37.077786,15.1443389,11.2061903,40.7828,6.0983522,40.5184081,11.7077403,1.1513053,1.1720228,11.0071514,61.7635748,64.7383381,65.1255637,29.6297238,6.5901987,11.0991247,67.7523204,40.9283966,36.6488952,15.1404854,10.8116572,39.7216006,6.211791,40.2286148,11.7187398\r\n2367,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1132345,1.1435217,11.5220874,61.8579318,64.2394572,64.9498239,30.023106,7.2555454,10.8550985,68.1755962,41.40932,37.077786,15.1443389,11.2061903,40.7828,6.0983522,40.5184081,11.7077403,1.1513053,1.1720228,11.0071514,61.7635748,64.7383381,65.1255637,29.6297238,6.5901987,11.0991247,67.7523204,40.9283966,36.6488952,15.1404854,10.8116572,39.7216006,6.211791,40.2286148,11.7187398,1.0996446,1.1575729,10.9463244,63.5657213,65.626275,65.9108343,28.819663,6.5070937,11.1255363,66.8557484,40.6527765,37.8572358,15.2349601,10.7697235,38.5915124,6.075078,40.1484758,10.9625551\r\n2368,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1513053,1.1720228,11.0071514,61.7635748,64.7383381,65.1255637,29.6297238,6.5901987,11.0991247,67.7523204,40.9283966,36.6488952,15.1404854,10.8116572,39.7216006,6.211791,40.2286148,11.7187398,1.0996446,1.1575729,10.9463244,63.5657213,65.626275,65.9108343,28.819663,6.5070937,11.1255363,66.8557484,40.6527765,37.8572358,15.2349601,10.7697235,38.5915124,6.075078,40.1484758,10.9625551,1.1695703,1.2454875,10.4743251,63.6141734,65.5399372,65.5473392,28.1308451,6.3801155,11.1834418,67.0767868,40.7944338,36.5073239,15.1361351,10.5121062,37.8738619,6.2825447,40.4029277,11.351808\r\n2369,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0996446,1.1575729,10.9463244,63.5657213,65.626275,65.9108343,28.819663,6.5070937,11.1255363,66.8557484,40.6527765,37.8572358,15.2349601,10.7697235,38.5915124,6.075078,40.1484758,10.9625551,1.1695703,1.2454875,10.4743251,63.6141734,65.5399372,65.5473392,28.1308451,6.3801155,11.1834418,67.0767868,40.7944338,36.5073239,15.1361351,10.5121062,37.8738619,6.2825447,40.4029277,11.351808,1.1768925,1.2645094,10.4836538,64.8727742,65.5301727,66.2551546,28.4695747,6.7113179,11.5514492,67.0825405,40.8080705,35.2530624,15.1327332,10.411233,37.3247618,6.4850692,39.4991107,10.8177232\r\n2370,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1695703,1.2454875,10.4743251,63.6141734,65.5399372,65.5473392,28.1308451,6.3801155,11.1834418,67.0767868,40.7944338,36.5073239,15.1361351,10.5121062,37.8738619,6.2825447,40.4029277,11.351808,1.1768925,1.2645094,10.4836538,64.8727742,65.5301727,66.2551546,28.4695747,6.7113179,11.5514492,67.0825405,40.8080705,35.2530624,15.1327332,10.411233,37.3247618,6.4850692,39.4991107,10.8177232,1.2305224,1.3190138,9.8308994,64.3428944,65.0213339,65.8663575,28.2322732,6.2796313,11.4837701,66.8724796,41.1046198,35.7160875,14.3342162,9.7130998,36.8365111,6.4371239,38.6017805,10.1562568\r\n2371,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1768925,1.2645094,10.4836538,64.8727742,65.5301727,66.2551546,28.4695747,6.7113179,11.5514492,67.0825405,40.8080705,35.2530624,15.1327332,10.411233,37.3247618,6.4850692,39.4991107,10.8177232,1.2305224,1.3190138,9.8308994,64.3428944,65.0213339,65.8663575,28.2322732,6.2796313,11.4837701,66.8724796,41.1046198,35.7160875,14.3342162,9.7130998,36.8365111,6.4371239,38.6017805,10.1562568,1.1960448,1.2753261,9.676881,64.4363824,65.1082422,66.4957228,28.0864677,6.4290045,11.6065151,67.604953,41.0111061,36.2228781,14.1000014,9.544446,36.4760956,6.1810898,37.8196459,9.7197988\r\n2372,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2305224,1.3190138,9.8308994,64.3428944,65.0213339,65.8663575,28.2322732,6.2796313,11.4837701,66.8724796,41.1046198,35.7160875,14.3342162,9.7130998,36.8365111,6.4371239,38.6017805,10.1562568,1.1960448,1.2753261,9.676881,64.4363824,65.1082422,66.4957228,28.0864677,6.4290045,11.6065151,67.604953,41.0111061,36.2228781,14.1000014,9.544446,36.4760956,6.1810898,37.8196459,9.7197988,1.2257978,1.3075996,10.074331,64.7131541,65.354011,65.9106109,28.0743728,5.942095,11.8586155,67.4185483,41.0396503,36.6180301,14.3133692,9.667503,36.5054018,6.2604706,37.3696896,8.6145749\r\n2373,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1960448,1.2753261,9.676881,64.4363824,65.1082422,66.4957228,28.0864677,6.4290045,11.6065151,67.604953,41.0111061,36.2228781,14.1000014,9.544446,36.4760956,6.1810898,37.8196459,9.7197988,1.2257978,1.3075996,10.074331,64.7131541,65.354011,65.9106109,28.0743728,5.942095,11.8586155,67.4185483,41.0396503,36.6180301,14.3133692,9.667503,36.5054018,6.2604706,37.3696896,8.6145749,1.2292838,1.2758346,10.2150504,64.5374847,65.4642143,66.1957838,28.1095707,5.9272876,11.5457758,67.9233039,40.9527392,37.0336587,14.4359724,9.9052259,36.3080355,6.2941288,37.8919589,8.527841\r\n2374,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2257978,1.3075996,10.074331,64.7131541,65.354011,65.9106109,28.0743728,5.942095,11.8586155,67.4185483,41.0396503,36.6180301,14.3133692,9.667503,36.5054018,6.2604706,37.3696896,8.6145749,1.2292838,1.2758346,10.2150504,64.5374847,65.4642143,66.1957838,28.1095707,5.9272876,11.5457758,67.9233039,40.9527392,37.0336587,14.4359724,9.9052259,36.3080355,6.2941288,37.8919589,8.527841,1.4831885,1.5108525,10.6365826,64.1995434,65.4690026,65.9838232,28.9406565,5.8561774,11.4231926,68.5142198,41.853437,36.4077718,14.530405,10.2200573,35.9631932,6.1661857,37.9647377,8.3479936\r\n2375,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2292838,1.2758346,10.2150504,64.5374847,65.4642143,66.1957838,28.1095707,5.9272876,11.5457758,67.9233039,40.9527392,37.0336587,14.4359724,9.9052259,36.3080355,6.2941288,37.8919589,8.527841,1.4831885,1.5108525,10.6365826,64.1995434,65.4690026,65.9838232,28.9406565,5.8561774,11.4231926,68.5142198,41.853437,36.4077718,14.530405,10.2200573,35.9631932,6.1661857,37.9647377,8.3479936,1.467718,1.4829387,10.7379598,63.4908417,64.8226429,66.1013367,30.3303875,5.2765876,10.9545785,68.4950223,41.7963386,36.1891779,14.5862101,10.2643682,35.7585571,6.2817697,38.4745778,6.6484675\r\n2376,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4831885,1.5108525,10.6365826,64.1995434,65.4690026,65.9838232,28.9406565,5.8561774,11.4231926,68.5142198,41.853437,36.4077718,14.530405,10.2200573,35.9631932,6.1661857,37.9647377,8.3479936,1.467718,1.4829387,10.7379598,63.4908417,64.8226429,66.1013367,30.3303875,5.2765876,10.9545785,68.4950223,41.7963386,36.1891779,14.5862101,10.2643682,35.7585571,6.2817697,38.4745778,6.6484675,1.4862921,1.5269602,10.5234333,61.8798919,64.9836734,65.4494815,30.2634417,4.9748407,10.9578105,68.767077,41.8934416,36.458571,14.6841017,10.1249715,35.8013944,6.050643,38.5533302,6.0634317\r\n2377,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.467718,1.4829387,10.7379598,63.4908417,64.8226429,66.1013367,30.3303875,5.2765876,10.9545785,68.4950223,41.7963386,36.1891779,14.5862101,10.2643682,35.7585571,6.2817697,38.4745778,6.6484675,1.4862921,1.5269602,10.5234333,61.8798919,64.9836734,65.4494815,30.2634417,4.9748407,10.9578105,68.767077,41.8934416,36.458571,14.6841017,10.1249715,35.8013944,6.050643,38.5533302,6.0634317,1.3922062,1.4220188,11.0182887,61.8041927,65.094573,65.8398524,30.3991966,4.8548344,11.0426284,69.3141329,41.4873227,36.6493079,15.2947855,10.6009075,35.3877965,5.653414,39.0839964,6.169428\r\n2378,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4862921,1.5269602,10.5234333,61.8798919,64.9836734,65.4494815,30.2634417,4.9748407,10.9578105,68.767077,41.8934416,36.458571,14.6841017,10.1249715,35.8013944,6.050643,38.5533302,6.0634317,1.3922062,1.4220188,11.0182887,61.8041927,65.094573,65.8398524,30.3991966,4.8548344,11.0426284,69.3141329,41.4873227,36.6493079,15.2947855,10.6009075,35.3877965,5.653414,39.0839964,6.169428,1.4091628,1.4340837,10.8136093,61.0877001,64.4137344,65.3638724,30.6460204,4.7841184,11.4332018,68.9382706,41.3684979,35.9889213,15.1420613,10.5144246,34.881306,5.9760502,38.3416101,6.2390158\r\n2379,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3922062,1.4220188,11.0182887,61.8041927,65.094573,65.8398524,30.3991966,4.8548344,11.0426284,69.3141329,41.4873227,36.6493079,15.2947855,10.6009075,35.3877965,5.653414,39.0839964,6.169428,1.4091628,1.4340837,10.8136093,61.0877001,64.4137344,65.3638724,30.6460204,4.7841184,11.4332018,68.9382706,41.3684979,35.9889213,15.1420613,10.5144246,34.881306,5.9760502,38.3416101,6.2390158,1.5347925,1.5504016,10.810981,61.5070119,63.9905431,64.8653837,30.5951933,4.5843369,11.5622973,68.7261441,40.7551074,36.5036424,15.5421958,10.7929095,34.17596,6.275481,38.2519657,7.2259124\r\n2380,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4091628,1.4340837,10.8136093,61.0877001,64.4137344,65.3638724,30.6460204,4.7841184,11.4332018,68.9382706,41.3684979,35.9889213,15.1420613,10.5144246,34.881306,5.9760502,38.3416101,6.2390158,1.5347925,1.5504016,10.810981,61.5070119,63.9905431,64.8653837,30.5951933,4.5843369,11.5622973,68.7261441,40.7551074,36.5036424,15.5421958,10.7929095,34.17596,6.275481,38.2519657,7.2259124,1.5106796,1.5562872,11.2745856,62.4875103,64.6143908,65.6550338,31.0946733,4.7596836,11.6572425,68.2429245,41.5212747,36.5191898,15.6745678,11.0926239,33.8321394,6.2140539,37.6875093,7.0747207\r\n2381,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5347925,1.5504016,10.810981,61.5070119,63.9905431,64.8653837,30.5951933,4.5843369,11.5622973,68.7261441,40.7551074,36.5036424,15.5421958,10.7929095,34.17596,6.275481,38.2519657,7.2259124,1.5106796,1.5562872,11.2745856,62.4875103,64.6143908,65.6550338,31.0946733,4.7596836,11.6572425,68.2429245,41.5212747,36.5191898,15.6745678,11.0926239,33.8321394,6.2140539,37.6875093,7.0747207,1.3474386,1.3977299,11.2140535,61.1242782,62.7442508,64.2100172,31.363569,4.5384584,11.7705086,68.885009,42.1957033,36.0968634,15.6734013,10.9292364,33.7013583,6.2757645,37.0178379,6.974934\r\n2382,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.5106796,1.5562872,11.2745856,62.4875103,64.6143908,65.6550338,31.0946733,4.7596836,11.6572425,68.2429245,41.5212747,36.5191898,15.6745678,11.0926239,33.8321394,6.2140539,37.6875093,7.0747207,1.3474386,1.3977299,11.2140535,61.1242782,62.7442508,64.2100172,31.363569,4.5384584,11.7705086,68.885009,42.1957033,36.0968634,15.6734013,10.9292364,33.7013583,6.2757645,37.0178379,6.974934,1.2768625,1.3220715,11.3598389,61.510251,63.3816881,64.4069734,31.32267,5.5322955,12.216089,68.4151973,42.2199682,36.2257343,15.5742488,10.9918848,33.4955428,6.1346605,36.2617226,8.0030604\r\n2383,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3474386,1.3977299,11.2140535,61.1242782,62.7442508,64.2100172,31.363569,4.5384584,11.7705086,68.885009,42.1957033,36.0968634,15.6734013,10.9292364,33.7013583,6.2757645,37.0178379,6.974934,1.2768625,1.3220715,11.3598389,61.510251,63.3816881,64.4069734,31.32267,5.5322955,12.216089,68.4151973,42.2199682,36.2257343,15.5742488,10.9918848,33.4955428,6.1346605,36.2617226,8.0030604,1.2329821,1.2608711,11.3501893,61.6207584,62.7132781,63.1972615,31.1304228,5.4448753,11.4893028,68.5529611,42.0298307,34.6602429,15.3482613,10.7756205,32.8192869,6.3728514,36.2034073,8.9285814\r\n2384,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2768625,1.3220715,11.3598389,61.510251,63.3816881,64.4069734,31.32267,5.5322955,12.216089,68.4151973,42.2199682,36.2257343,15.5742488,10.9918848,33.4955428,6.1346605,36.2617226,8.0030604,1.2329821,1.2608711,11.3501893,61.6207584,62.7132781,63.1972615,31.1304228,5.4448753,11.4893028,68.5529611,42.0298307,34.6602429,15.3482613,10.7756205,32.8192869,6.3728514,36.2034073,8.9285814,1.2624615,1.2869623,11.3259905,61.7203175,63.1535906,63.2321388,31.1741901,5.7623584,12.2818913,67.9149236,41.5983941,34.7936892,15.2203642,10.6766829,33.1206799,6.2589384,36.3430736,8.9313075\r\n2385,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2329821,1.2608711,11.3501893,61.6207584,62.7132781,63.1972615,31.1304228,5.4448753,11.4893028,68.5529611,42.0298307,34.6602429,15.3482613,10.7756205,32.8192869,6.3728514,36.2034073,8.9285814,1.2624615,1.2869623,11.3259905,61.7203175,63.1535906,63.2321388,31.1741901,5.7623584,12.2818913,67.9149236,41.5983941,34.7936892,15.2203642,10.6766829,33.1206799,6.2589384,36.3430736,8.9313075,1.2944525,1.319927,11.553676,62.1383385,63.09255,63.5518818,31.5436757,5.8641615,12.5994726,68.7267222,42.5609472,34.6316671,15.4432702,10.8479065,32.8735827,6.4129772,37.0284069,9.3700856\r\n2386,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0810399,3.2040201,25.7291151,66.4457875,68.7927663,60.2986181,27.4862873,11.2532495,16.2670638,63.2741059,33.8659445,47.137048,33.1695687,26.347564,58.3209621,2.5930226,34.3860663,20.7646027,3.2946315,3.4275911,27.4342289,66.5301039,68.5100503,60.6054742,26.4665758,11.215637,14.920147,62.6640934,34.2816345,46.458611,34.6061722,27.7408206,59.0534516,2.4229655,35.5965962,23.4087487,3.4950706,3.6267975,29.7613908,67.138846,69.6191515,60.3018862,24.5916667,11.4945428,15.1895776,63.1242856,33.8601041,47.4609079,36.2231863,29.302863,59.6043811,2.4013914,36.0516211,24.8317397\r\n2387,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.2946315,3.4275911,27.4342289,66.5301039,68.5100503,60.6054742,26.4665758,11.215637,14.920147,62.6640934,34.2816345,46.458611,34.6061722,27.7408206,59.0534516,2.4229655,35.5965962,23.4087487,3.4950706,3.6267975,29.7613908,67.138846,69.6191515,60.3018862,24.5916667,11.4945428,15.1895776,63.1242856,33.8601041,47.4609079,36.2231863,29.302863,59.6043811,2.4013914,36.0516211,24.8317397,3.5602326,3.7031636,31.0366819,68.4167232,70.3337814,59.3247984,22.928152,12.0235742,15.7469125,62.1539236,33.1360576,48.4792907,37.3419402,30.3363774,60.885472,2.4787897,35.9772596,27.8783706\r\n2388,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4950706,3.6267975,29.7613908,67.138846,69.6191515,60.3018862,24.5916667,11.4945428,15.1895776,63.1242856,33.8601041,47.4609079,36.2231863,29.302863,59.6043811,2.4013914,36.0516211,24.8317397,3.5602326,3.7031636,31.0366819,68.4167232,70.3337814,59.3247984,22.928152,12.0235742,15.7469125,62.1539236,33.1360576,48.4792907,37.3419402,30.3363774,60.885472,2.4787897,35.9772596,27.8783706,3.8325835,3.9512898,31.5753291,69.1780552,71.1851251,59.4306855,21.0020348,12.4307706,15.8030999,62.4101459,32.0430374,49.1026581,38.4299681,31.4630574,61.1600078,2.3052865,36.404671,28.5977772\r\n2389,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.5602326,3.7031636,31.0366819,68.4167232,70.3337814,59.3247984,22.928152,12.0235742,15.7469125,62.1539236,33.1360576,48.4792907,37.3419402,30.3363774,60.885472,2.4787897,35.9772596,27.8783706,3.8325835,3.9512898,31.5753291,69.1780552,71.1851251,59.4306855,21.0020348,12.4307706,15.8030999,62.4101459,32.0430374,49.1026581,38.4299681,31.4630574,61.1600078,2.3052865,36.404671,28.5977772,4.0993459,4.2254339,32.3444638,69.4099729,71.1715874,58.2052632,20.2503068,12.3914208,15.9010746,61.1295326,30.9690619,49.7226351,39.2918889,32.0873459,61.6979207,2.1016001,36.3995648,30.7923104\r\n2390,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8325835,3.9512898,31.5753291,69.1780552,71.1851251,59.4306855,21.0020348,12.4307706,15.8030999,62.4101459,32.0430374,49.1026581,38.4299681,31.4630574,61.1600078,2.3052865,36.404671,28.5977772,4.0993459,4.2254339,32.3444638,69.4099729,71.1715874,58.2052632,20.2503068,12.3914208,15.9010746,61.1295326,30.9690619,49.7226351,39.2918889,32.0873459,61.6979207,2.1016001,36.3995648,30.7923104,4.1942804,4.3735246,33.8678855,70.6491587,71.5909036,57.4215128,19.6903839,12.9290695,16.1355835,60.9293075,30.172142,51.0142592,40.7810975,33.5822721,62.4967094,2.0951142,36.8655107,31.9161012\r\n2391,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0993459,4.2254339,32.3444638,69.4099729,71.1715874,58.2052632,20.2503068,12.3914208,15.9010746,61.1295326,30.9690619,49.7226351,39.2918889,32.0873459,61.6979207,2.1016001,36.3995648,30.7923104,4.1942804,4.3735246,33.8678855,70.6491587,71.5909036,57.4215128,19.6903839,12.9290695,16.1355835,60.9293075,30.172142,51.0142592,40.7810975,33.5822721,62.4967094,2.0951142,36.8655107,31.9161012,4.1668453,4.3541139,35.0823081,70.0558921,70.8134144,57.4485273,19.113596,13.3994111,16.2422122,60.9978692,29.5603452,50.7597196,42.1433832,34.6796018,62.0382748,2.0569191,37.7971557,32.1910276\r\n2392,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1942804,4.3735246,33.8678855,70.6491587,71.5909036,57.4215128,19.6903839,12.9290695,16.1355835,60.9293075,30.172142,51.0142592,40.7810975,33.5822721,62.4967094,2.0951142,36.8655107,31.9161012,4.1668453,4.3541139,35.0823081,70.0558921,70.8134144,57.4485273,19.113596,13.3994111,16.2422122,60.9978692,29.5603452,50.7597196,42.1433832,34.6796018,62.0382748,2.0569191,37.7971557,32.1910276,4.4023431,4.5503413,35.7777784,70.0234746,71.2254189,57.6831776,17.6508619,13.6553893,17.7674559,60.6642633,28.4854204,51.7881933,43.2103298,35.5885305,62.8982141,2.0528948,37.1168809,32.7263621\r\n2393,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1668453,4.3541139,35.0823081,70.0558921,70.8134144,57.4485273,19.113596,13.3994111,16.2422122,60.9978692,29.5603452,50.7597196,42.1433832,34.6796018,62.0382748,2.0569191,37.7971557,32.1910276,4.4023431,4.5503413,35.7777784,70.0234746,71.2254189,57.6831776,17.6508619,13.6553893,17.7674559,60.6642633,28.4854204,51.7881933,43.2103298,35.5885305,62.8982141,2.0528948,37.1168809,32.7263621,4.5990454,4.7363989,36.1603012,68.8449705,69.7173111,58.3899775,17.5073282,13.9169556,17.7394886,60.9754396,28.0365549,51.9232482,44.4619532,36.8759197,63.3359459,2.040556,37.0129959,33.6172644\r\n2394,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.4023431,4.5503413,35.7777784,70.0234746,71.2254189,57.6831776,17.6508619,13.6553893,17.7674559,60.6642633,28.4854204,51.7881933,43.2103298,35.5885305,62.8982141,2.0528948,37.1168809,32.7263621,4.5990454,4.7363989,36.1603012,68.8449705,69.7173111,58.3899775,17.5073282,13.9169556,17.7394886,60.9754396,28.0365549,51.9232482,44.4619532,36.8759197,63.3359459,2.040556,37.0129959,33.6172644,4.7826138,4.8768048,36.6434171,68.2356897,68.744866,59.3610473,16.8521471,14.2743131,18.3609242,61.1260231,28.2541549,53.366942,45.3565386,37.7990953,63.8796373,1.8813838,37.2075257,33.3825237\r\n2395,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5990454,4.7363989,36.1603012,68.8449705,69.7173111,58.3899775,17.5073282,13.9169556,17.7394886,60.9754396,28.0365549,51.9232482,44.4619532,36.8759197,63.3359459,2.040556,37.0129959,33.6172644,4.7826138,4.8768048,36.6434171,68.2356897,68.744866,59.3610473,16.8521471,14.2743131,18.3609242,61.1260231,28.2541549,53.366942,45.3565386,37.7990953,63.8796373,1.8813838,37.2075257,33.3825237,4.8287906,4.9203011,37.9401048,67.2078079,67.4359518,58.7579072,17.4478791,14.4956582,18.028401,61.3334665,28.9478255,53.417733,46.735271,39.1648935,64.4918315,2.0039792,37.2253445,35.1312137\r\n2396,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.7826138,4.8768048,36.6434171,68.2356897,68.744866,59.3610473,16.8521471,14.2743131,18.3609242,61.1260231,28.2541549,53.366942,45.3565386,37.7990953,63.8796373,1.8813838,37.2075257,33.3825237,4.8287906,4.9203011,37.9401048,67.2078079,67.4359518,58.7579072,17.4478791,14.4956582,18.028401,61.3334665,28.9478255,53.417733,46.735271,39.1648935,64.4918315,2.0039792,37.2253445,35.1312137,4.7728401,4.8531567,39.2695882,67.0098305,66.9276224,59.0249174,17.5738746,14.5771377,18.3935721,61.9563497,28.6098062,53.755643,47.5197429,40.1653513,64.6422965,1.9380812,37.3675895,35.4208699\r\n2397,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.8287906,4.9203011,37.9401048,67.2078079,67.4359518,58.7579072,17.4478791,14.4956582,18.028401,61.3334665,28.9478255,53.417733,46.735271,39.1648935,64.4918315,2.0039792,37.2253445,35.1312137,4.7728401,4.8531567,39.2695882,67.0098305,66.9276224,59.0249174,17.5738746,14.5771377,18.3935721,61.9563497,28.6098062,53.755643,47.5197429,40.1653513,64.6422965,1.9380812,37.3675895,35.4208699,5.0167865,5.0457145,40.2559893,65.8620923,65.9643129,59.4650781,18.2577941,14.5969994,19.4768112,61.2240196,28.5081214,53.7138392,48.2891315,40.570295,64.8233406,1.8896933,37.3421399,35.6765698\r\n2398,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.7728401,4.8531567,39.2695882,67.0098305,66.9276224,59.0249174,17.5738746,14.5771377,18.3935721,61.9563497,28.6098062,53.755643,47.5197429,40.1653513,64.6422965,1.9380812,37.3675895,35.4208699,5.0167865,5.0457145,40.2559893,65.8620923,65.9643129,59.4650781,18.2577941,14.5969994,19.4768112,61.2240196,28.5081214,53.7138392,48.2891315,40.570295,64.8233406,1.8896933,37.3421399,35.6765698,5.3975159,5.4697643,40.8494161,65.9023783,64.0563107,59.019272,18.2076767,14.7667901,19.7860152,60.7262493,28.4229079,53.4637608,48.3337806,41.0605668,66.1165455,2.0245699,38.0091777,37.1327561\r\n2399,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0167865,5.0457145,40.2559893,65.8620923,65.9643129,59.4650781,18.2577941,14.5969994,19.4768112,61.2240196,28.5081214,53.7138392,48.2891315,40.570295,64.8233406,1.8896933,37.3421399,35.6765698,5.3975159,5.4697643,40.8494161,65.9023783,64.0563107,59.019272,18.2076767,14.7667901,19.7860152,60.7262493,28.4229079,53.4637608,48.3337806,41.0605668,66.1165455,2.0245699,38.0091777,37.1327561,5.5546542,5.6896196,42.0410781,65.108684,62.8438319,58.4026127,18.0949567,15.4217265,18.7228622,61.6023483,28.705022,52.365276,49.0724561,41.7021849,65.9798193,2.1675491,38.6375928,37.1795005\r\n2400,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.3975159,5.4697643,40.8494161,65.9023783,64.0563107,59.019272,18.2076767,14.7667901,19.7860152,60.7262493,28.4229079,53.4637608,48.3337806,41.0605668,66.1165455,2.0245699,38.0091777,37.1327561,5.5546542,5.6896196,42.0410781,65.108684,62.8438319,58.4026127,18.0949567,15.4217265,18.7228622,61.6023483,28.705022,52.365276,49.0724561,41.7021849,65.9798193,2.1675491,38.6375928,37.1795005,5.7121639,5.8560235,42.8926333,65.6994949,63.8726994,58.6150739,17.8970327,15.2706806,19.0180633,61.9037856,28.9348574,52.3526168,48.9661293,41.5919366,66.3008195,1.9984078,38.9945585,38.1640478\r\n2401,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.5546542,5.6896196,42.0410781,65.108684,62.8438319,58.4026127,18.0949567,15.4217265,18.7228622,61.6023483,28.705022,52.365276,49.0724561,41.7021849,65.9798193,2.1675491,38.6375928,37.1795005,5.7121639,5.8560235,42.8926333,65.6994949,63.8726994,58.6150739,17.8970327,15.2706806,19.0180633,61.9037856,28.9348574,52.3526168,48.9661293,41.5919366,66.3008195,1.9984078,38.9945585,38.1640478,5.7899022,5.9607304,42.4534243,66.133471,64.8434858,58.8193961,17.9767923,15.538549,19.4967209,61.6783466,28.550499,51.6933886,48.6181856,41.3666593,66.1485569,2.1808896,39.851068,39.8415789\r\n2402,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.7121639,5.8560235,42.8926333,65.6994949,63.8726994,58.6150739,17.8970327,15.2706806,19.0180633,61.9037856,28.9348574,52.3526168,48.9661293,41.5919366,66.3008195,1.9984078,38.9945585,38.1640478,5.7899022,5.9607304,42.4534243,66.133471,64.8434858,58.8193961,17.9767923,15.538549,19.4967209,61.6783466,28.550499,51.6933886,48.6181856,41.3666593,66.1485569,2.1808896,39.851068,39.8415789,5.8932952,6.0546498,41.8533903,66.387028,65.0187578,59.3359205,17.3063484,16.4199599,19.5985321,60.5559122,28.3056146,51.3586715,47.7712933,40.4355788,66.6342003,2.1199009,40.0276964,39.8980575\r\n2403,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.7899022,5.9607304,42.4534243,66.133471,64.8434858,58.8193961,17.9767923,15.538549,19.4967209,61.6783466,28.550499,51.6933886,48.6181856,41.3666593,66.1485569,2.1808896,39.851068,39.8415789,5.8932952,6.0546498,41.8533903,66.387028,65.0187578,59.3359205,17.3063484,16.4199599,19.5985321,60.5559122,28.3056146,51.3586715,47.7712933,40.4355788,66.6342003,2.1199009,40.0276964,39.8980575,5.9075164,6.0325163,41.5054199,64.5040955,64.5964427,58.9892734,17.295754,17.0229841,19.4848736,60.2924538,28.8441291,50.6362536,47.8909908,40.4168872,67.3439016,2.2323741,39.6634651,39.8684159\r\n2404,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.8932952,6.0546498,41.8533903,66.387028,65.0187578,59.3359205,17.3063484,16.4199599,19.5985321,60.5559122,28.3056146,51.3586715,47.7712933,40.4355788,66.6342003,2.1199009,40.0276964,39.8980575,5.9075164,6.0325163,41.5054199,64.5040955,64.5964427,58.9892734,17.295754,17.0229841,19.4848736,60.2924538,28.8441291,50.6362536,47.8909908,40.4168872,67.3439016,2.2323741,39.6634651,39.8684159,5.6506189,5.7812445,40.5563559,64.1711967,64.949203,58.9109068,16.5976522,16.5256391,18.291861,61.1389929,29.8763233,49.7303318,47.3776872,40.0960177,67.0428462,2.3715886,39.1973959,39.8078514\r\n2405,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.9075164,6.0325163,41.5054199,64.5040955,64.5964427,58.9892734,17.295754,17.0229841,19.4848736,60.2924538,28.8441291,50.6362536,47.8909908,40.4168872,67.3439016,2.2323741,39.6634651,39.8684159,5.6506189,5.7812445,40.5563559,64.1711967,64.949203,58.9109068,16.5976522,16.5256391,18.291861,61.1389929,29.8763233,49.7303318,47.3776872,40.0960177,67.0428462,2.3715886,39.1973959,39.8078514,5.4907241,5.5887412,40.2738566,64.8741196,66.5275102,59.3032582,16.6568742,17.2713417,18.4654601,61.1440005,29.6810127,51.3091216,47.2776581,39.9084929,66.6454807,2.3739225,38.3969709,39.9574349\r\n2406,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.6506189,5.7812445,40.5563559,64.1711967,64.949203,58.9109068,16.5976522,16.5256391,18.291861,61.1389929,29.8763233,49.7303318,47.3776872,40.0960177,67.0428462,2.3715886,39.1973959,39.8078514,5.4907241,5.5887412,40.2738566,64.8741196,66.5275102,59.3032582,16.6568742,17.2713417,18.4654601,61.1440005,29.6810127,51.3091216,47.2776581,39.9084929,66.6454807,2.3739225,38.3969709,39.9574349,5.3962465,5.4524746,38.5378809,64.6128767,66.6929091,59.413108,17.061503,17.1239539,18.882651,59.5983951,29.3593056,50.8356817,46.3553745,38.7117326,66.296292,2.1503917,37.6570384,43.0454311\r\n2407,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.4907241,5.5887412,40.2738566,64.8741196,66.5275102,59.3032582,16.6568742,17.2713417,18.4654601,61.1440005,29.6810127,51.3091216,47.2776581,39.9084929,66.6454807,2.3739225,38.3969709,39.9574349,5.3962465,5.4524746,38.5378809,64.6128767,66.6929091,59.413108,17.061503,17.1239539,18.882651,59.5983951,29.3593056,50.8356817,46.3553745,38.7117326,66.296292,2.1503917,37.6570384,43.0454311,5.0986827,5.1562366,37.5521682,64.7767497,66.860086,58.7912197,16.7382607,17.946969,19.1206678,59.0212074,28.9674908,49.8325845,45.8183434,38.2269828,66.5409315,2.3439548,37.3635706,43.0179793\r\n2408,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.3962465,5.4524746,38.5378809,64.6128767,66.6929091,59.413108,17.061503,17.1239539,18.882651,59.5983951,29.3593056,50.8356817,46.3553745,38.7117326,66.296292,2.1503917,37.6570384,43.0454311,5.0986827,5.1562366,37.5521682,64.7767497,66.860086,58.7912197,16.7382607,17.946969,19.1206678,59.0212074,28.9674908,49.8325845,45.8183434,38.2269828,66.5409315,2.3439548,37.3635706,43.0179793,4.9094065,4.9601323,37.1560023,64.213508,67.2964226,58.9036262,17.0632832,17.8442486,18.6556639,59.4960199,29.4765067,49.6379083,45.0779268,37.7792203,65.9283319,2.2092694,36.5458848,42.6267006\r\n2409,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0986827,5.1562366,37.5521682,64.7767497,66.860086,58.7912197,16.7382607,17.946969,19.1206678,59.0212074,28.9674908,49.8325845,45.8183434,38.2269828,66.5409315,2.3439548,37.3635706,43.0179793,4.9094065,4.9601323,37.1560023,64.213508,67.2964226,58.9036262,17.0632832,17.8442486,18.6556639,59.4960199,29.4765067,49.6379083,45.0779268,37.7792203,65.9283319,2.2092694,36.5458848,42.6267006,4.6253252,4.6559619,36.11905,63.9447182,66.8683146,59.1783214,17.441949,16.322908,18.3791866,60.4236236,29.6467856,49.2765037,44.463396,37.1949579,65.6701649,2.3246288,35.60777,43.0221704\r\n2410,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.9094065,4.9601323,37.1560023,64.213508,67.2964226,58.9036262,17.0632832,17.8442486,18.6556639,59.4960199,29.4765067,49.6379083,45.0779268,37.7792203,65.9283319,2.2092694,36.5458848,42.6267006,4.6253252,4.6559619,36.11905,63.9447182,66.8683146,59.1783214,17.441949,16.322908,18.3791866,60.4236236,29.6467856,49.2765037,44.463396,37.1949579,65.6701649,2.3246288,35.60777,43.0221704,4.556154,4.6291248,35.1454137,64.5313023,67.5163493,59.6636894,17.5104016,16.0481441,18.2242288,60.7314153,29.6641857,48.545192,43.7766503,36.2606562,65.5797155,2.437322,34.9660527,43.7264063\r\n2411,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.6253252,4.6559619,36.11905,63.9447182,66.8683146,59.1783214,17.441949,16.322908,18.3791866,60.4236236,29.6467856,49.2765037,44.463396,37.1949579,65.6701649,2.3246288,35.60777,43.0221704,4.556154,4.6291248,35.1454137,64.5313023,67.5163493,59.6636894,17.5104016,16.0481441,18.2242288,60.7314153,29.6641857,48.545192,43.7766503,36.2606562,65.5797155,2.437322,34.9660527,43.7264063,4.5696775,4.6222597,34.5868043,65.6093014,68.2360458,59.7240212,17.7261058,15.7544001,19.0303969,60.0625195,29.3229792,49.0668954,43.443721,35.8239021,65.8783847,2.2168839,34.9971295,44.1539683\r\n2412,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.556154,4.6291248,35.1454137,64.5313023,67.5163493,59.6636894,17.5104016,16.0481441,18.2242288,60.7314153,29.6641857,48.545192,43.7766503,36.2606562,65.5797155,2.437322,34.9660527,43.7264063,4.5696775,4.6222597,34.5868043,65.6093014,68.2360458,59.7240212,17.7261058,15.7544001,19.0303969,60.0625195,29.3229792,49.0668954,43.443721,35.8239021,65.8783847,2.2168839,34.9971295,44.1539683,4.2727329,4.3207384,33.3709508,65.0480037,68.2267289,59.1847748,18.579029,15.0149681,19.2662182,60.4972561,30.4809505,47.6642285,42.1870655,34.5701501,65.6964316,2.2453728,34.6702527,44.2856904\r\n2413,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.5696775,4.6222597,34.5868043,65.6093014,68.2360458,59.7240212,17.7261058,15.7544001,19.0303969,60.0625195,29.3229792,49.0668954,43.443721,35.8239021,65.8783847,2.2168839,34.9971295,44.1539683,4.2727329,4.3207384,33.3709508,65.0480037,68.2267289,59.1847748,18.579029,15.0149681,19.2662182,60.4972561,30.4809505,47.6642285,42.1870655,34.5701501,65.6964316,2.2453728,34.6702527,44.2856904,4.1652301,4.2598366,33.248642,65.400284,68.6897452,59.3503693,19.0251759,15.8228748,19.7543218,60.7878637,30.7890632,48.2927209,41.2091028,34.0113821,65.773984,2.3816645,34.7095062,42.2369683\r\n2414,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.2727329,4.3207384,33.3709508,65.0480037,68.2267289,59.1847748,18.579029,15.0149681,19.2662182,60.4972561,30.4809505,47.6642285,42.1870655,34.5701501,65.6964316,2.2453728,34.6702527,44.2856904,4.1652301,4.2598366,33.248642,65.400284,68.6897452,59.3503693,19.0251759,15.8228748,19.7543218,60.7878637,30.7890632,48.2927209,41.2091028,34.0113821,65.773984,2.3816645,34.7095062,42.2369683,4.3677989,4.4283411,32.6264605,63.6803058,67.6497298,59.2199288,19.9381625,14.8514324,19.3501022,61.8255274,32.0273066,47.8802659,40.5286882,33.2626445,64.9368554,2.2172607,34.9758458,42.5233543\r\n2415,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1652301,4.2598366,33.248642,65.400284,68.6897452,59.3503693,19.0251759,15.8228748,19.7543218,60.7878637,30.7890632,48.2927209,41.2091028,34.0113821,65.773984,2.3816645,34.7095062,42.2369683,4.3677989,4.4283411,32.6264605,63.6803058,67.6497298,59.2199288,19.9381625,14.8514324,19.3501022,61.8255274,32.0273066,47.8802659,40.5286882,33.2626445,64.9368554,2.2172607,34.9758458,42.5233543,4.2481855,4.3397556,32.4788321,64.2839865,67.0516313,58.975826,20.9668169,14.5441433,18.4063429,62.3951527,31.8473507,47.457686,40.1703267,32.7800235,65.0220626,2.2665003,35.1679555,42.1974482\r\n2416,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.3677989,4.4283411,32.6264605,63.6803058,67.6497298,59.2199288,19.9381625,14.8514324,19.3501022,61.8255274,32.0273066,47.8802659,40.5286882,33.2626445,64.9368554,2.2172607,34.9758458,42.5233543,4.2481855,4.3397556,32.4788321,64.2839865,67.0516313,58.975826,20.9668169,14.5441433,18.4063429,62.3951527,31.8473507,47.457686,40.1703267,32.7800235,65.0220626,2.2665003,35.1679555,42.1974482,4.1262318,4.2287744,31.5100101,63.8203571,67.0848313,58.0440077,20.7272247,14.5979755,18.8222861,61.8895084,31.9987715,46.8637986,39.0327519,31.8898939,64.8485921,2.3390882,35.9214405,41.2251409\r\n2417,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.2481855,4.3397556,32.4788321,64.2839865,67.0516313,58.975826,20.9668169,14.5441433,18.4063429,62.3951527,31.8473507,47.457686,40.1703267,32.7800235,65.0220626,2.2665003,35.1679555,42.1974482,4.1262318,4.2287744,31.5100101,63.8203571,67.0848313,58.0440077,20.7272247,14.5979755,18.8222861,61.8895084,31.9987715,46.8637986,39.0327519,31.8898939,64.8485921,2.3390882,35.9214405,41.2251409,3.8321236,3.9075405,30.2330211,62.8731291,65.7850416,57.1597066,21.5817546,13.6837047,18.3168198,62.4821712,32.9493765,46.1954725,37.6508062,30.8956782,63.8825156,2.3486745,36.222855,40.171408\r\n2418,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1262318,4.2287744,31.5100101,63.8203571,67.0848313,58.0440077,20.7272247,14.5979755,18.8222861,61.8895084,31.9987715,46.8637986,39.0327519,31.8898939,64.8485921,2.3390882,35.9214405,41.2251409,3.8321236,3.9075405,30.2330211,62.8731291,65.7850416,57.1597066,21.5817546,13.6837047,18.3168198,62.4821712,32.9493765,46.1954725,37.6508062,30.8956782,63.8825156,2.3486745,36.222855,40.171408,3.5141112,3.5986209,29.0614111,61.3627614,64.9387142,56.6176388,22.5707644,13.9117478,17.5008942,63.253852,33.5375211,44.3870345,36.2808814,29.7993989,63.299516,2.4172599,36.1092835,37.9830734\r\n2419,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8321236,3.9075405,30.2330211,62.8731291,65.7850416,57.1597066,21.5817546,13.6837047,18.3168198,62.4821712,32.9493765,46.1954725,37.6508062,30.8956782,63.8825156,2.3486745,36.222855,40.171408,3.5141112,3.5986209,29.0614111,61.3627614,64.9387142,56.6176388,22.5707644,13.9117478,17.5008942,63.253852,33.5375211,44.3870345,36.2808814,29.7993989,63.299516,2.4172599,36.1092835,37.9830734,3.4308995,3.5552128,28.5359935,60.5748856,64.4428335,57.240735,22.7552931,13.7374295,17.5932487,63.5804688,33.5345796,43.4057317,35.9263968,29.6473971,62.0707538,2.3623317,35.5578704,36.2004872\r\n2420,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.5141112,3.5986209,29.0614111,61.3627614,64.9387142,56.6176388,22.5707644,13.9117478,17.5008942,63.253852,33.5375211,44.3870345,36.2808814,29.7993989,63.299516,2.4172599,36.1092835,37.9830734,3.4308995,3.5552128,28.5359935,60.5748856,64.4428335,57.240735,22.7552931,13.7374295,17.5932487,63.5804688,33.5345796,43.4057317,35.9263968,29.6473971,62.0707538,2.3623317,35.5578704,36.2004872,3.1165557,3.1937162,27.1987921,60.868736,63.462448,56.9424363,23.0723726,12.8802441,16.6016652,64.9536605,34.6048085,43.5950572,35.0370722,28.891304,61.6593706,2.541274,34.428988,34.7522153\r\n2421,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.4308995,3.5552128,28.5359935,60.5748856,64.4428335,57.240735,22.7552931,13.7374295,17.5932487,63.5804688,33.5345796,43.4057317,35.9263968,29.6473971,62.0707538,2.3623317,35.5578704,36.2004872,3.1165557,3.1937162,27.1987921,60.868736,63.462448,56.9424363,23.0723726,12.8802441,16.6016652,64.9536605,34.6048085,43.5950572,35.0370722,28.891304,61.6593706,2.541274,34.428988,34.7522153,2.6725172,2.8035919,26.4194671,61.9145974,64.2604154,57.9857486,23.321192,13.488753,17.025553,64.5537053,34.9492137,44.3896556,34.1333963,28.0766953,61.5074161,2.8133409,33.805283,33.540816\r\n2422,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.1165557,3.1937162,27.1987921,60.868736,63.462448,56.9424363,23.0723726,12.8802441,16.6016652,64.9536605,34.6048085,43.5950572,35.0370722,28.891304,61.6593706,2.541274,34.428988,34.7522153,2.6725172,2.8035919,26.4194671,61.9145974,64.2604154,57.9857486,23.321192,13.488753,17.025553,64.5537053,34.9492137,44.3896556,34.1333963,28.0766953,61.5074161,2.8133409,33.805283,33.540816,2.5792245,2.6796866,25.4970996,62.2963585,64.9589953,58.0868245,23.0727509,12.8370907,16.726117,64.5782823,36.3811599,44.7332622,33.62762,27.0465666,61.5290744,2.8997644,32.8611267,32.2602691\r\n2423,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.6725172,2.8035919,26.4194671,61.9145974,64.2604154,57.9857486,23.321192,13.488753,17.025553,64.5537053,34.9492137,44.3896556,34.1333963,28.0766953,61.5074161,2.8133409,33.805283,33.540816,2.5792245,2.6796866,25.4970996,62.2963585,64.9589953,58.0868245,23.0727509,12.8370907,16.726117,64.5782823,36.3811599,44.7332622,33.62762,27.0465666,61.5290744,2.8997644,32.8611267,32.2602691,2.3881484,2.4830116,25.4662516,61.2606691,64.3921168,58.604627,23.9837175,12.8775922,16.7316946,65.3687452,37.1621645,44.3796997,32.7469412,26.4202837,60.9863389,2.8826697,32.5330852,31.036946\r\n2424,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.5792245,2.6796866,25.4970996,62.2963585,64.9589953,58.0868245,23.0727509,12.8370907,16.726117,64.5782823,36.3811599,44.7332622,33.62762,27.0465666,61.5290744,2.8997644,32.8611267,32.2602691,2.3881484,2.4830116,25.4662516,61.2606691,64.3921168,58.604627,23.9837175,12.8775922,16.7316946,65.3687452,37.1621645,44.3796997,32.7469412,26.4202837,60.9863389,2.8826697,32.5330852,31.036946,2.4363563,2.4882299,25.0307743,62.3676537,65.332327,59.6889141,24.293835,13.2400321,16.3692597,65.4951686,36.6598379,45.344328,32.0152146,25.6949029,61.1491661,2.9238779,32.1227433,30.6952777\r\n2425,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3881484,2.4830116,25.4662516,61.2606691,64.3921168,58.604627,23.9837175,12.8775922,16.7316946,65.3687452,37.1621645,44.3796997,32.7469412,26.4202837,60.9863389,2.8826697,32.5330852,31.036946,2.4363563,2.4882299,25.0307743,62.3676537,65.332327,59.6889141,24.293835,13.2400321,16.3692597,65.4951686,36.6598379,45.344328,32.0152146,25.6949029,61.1491661,2.9238779,32.1227433,30.6952777,2.3939256,2.3993536,24.3106987,62.1406911,64.0410468,59.8542987,24.028999,13.759098,16.3763268,66.8050686,37.4775788,44.9171442,30.9334605,24.7434609,60.1971311,3.1660952,31.9503926,31.5909354\r\n2426,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4363563,2.4882299,25.0307743,62.3676537,65.332327,59.6889141,24.293835,13.2400321,16.3692597,65.4951686,36.6598379,45.344328,32.0152146,25.6949029,61.1491661,2.9238779,32.1227433,30.6952777,2.3939256,2.3993536,24.3106987,62.1406911,64.0410468,59.8542987,24.028999,13.759098,16.3763268,66.8050686,37.4775788,44.9171442,30.9334605,24.7434609,60.1971311,3.1660952,31.9503926,31.5909354,2.4006609,2.3636756,23.2253231,63.177999,64.5434909,60.003032,23.8615563,13.0488354,15.6651543,66.6673932,37.7131195,46.4514715,29.5567268,23.3377369,60.73345,3.1562657,32.3158343,32.3208993\r\n2427,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.3939256,2.3993536,24.3106987,62.1406911,64.0410468,59.8542987,24.028999,13.759098,16.3763268,66.8050686,37.4775788,44.9171442,30.9334605,24.7434609,60.1971311,3.1660952,31.9503926,31.5909354,2.4006609,2.3636756,23.2253231,63.177999,64.5434909,60.003032,23.8615563,13.0488354,15.6651543,66.6673932,37.7131195,46.4514715,29.5567268,23.3377369,60.73345,3.1562657,32.3158343,32.3208993,2.2640038,2.2228417,22.1055432,63.391244,65.7248363,61.4356264,23.7213239,12.3464145,16.4599455,66.4365799,37.0287181,45.38662,28.5204072,22.2618983,60.4304611,3.035149,33.1976833,31.6343442\r\n2428,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.4006609,2.3636756,23.2253231,63.177999,64.5434909,60.003032,23.8615563,13.0488354,15.6651543,66.6673932,37.7131195,46.4514715,29.5567268,23.3377369,60.73345,3.1562657,32.3158343,32.3208993,2.2640038,2.2228417,22.1055432,63.391244,65.7248363,61.4356264,23.7213239,12.3464145,16.4599455,66.4365799,37.0287181,45.38662,28.5204072,22.2618983,60.4304611,3.035149,33.1976833,31.6343442,2.1171231,2.0532506,20.9702777,62.7658617,65.8241694,60.3349253,23.9907709,12.1914991,16.3997711,67.26093,37.9359901,45.2559384,27.0528736,21.033389,60.0262651,2.8442122,33.167224,30.6423986\r\n2429,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.2640038,2.2228417,22.1055432,63.391244,65.7248363,61.4356264,23.7213239,12.3464145,16.4599455,66.4365799,37.0287181,45.38662,28.5204072,22.2618983,60.4304611,3.035149,33.1976833,31.6343442,2.1171231,2.0532506,20.9702777,62.7658617,65.8241694,60.3349253,23.9907709,12.1914991,16.3997711,67.26093,37.9359901,45.2559384,27.0528736,21.033389,60.0262651,2.8442122,33.167224,30.6423986,1.9986176,1.9325248,20.0716247,62.0405763,64.9570712,61.3044192,24.1215219,13.450049,17.1726626,68.3529019,38.2553738,44.1133404,25.6645047,20.1688124,59.4997856,3.2070607,33.3725856,30.0000438\r\n2430,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.1171231,2.0532506,20.9702777,62.7658617,65.8241694,60.3349253,23.9907709,12.1914991,16.3997711,67.26093,37.9359901,45.2559384,27.0528736,21.033389,60.0262651,2.8442122,33.167224,30.6423986,1.9986176,1.9325248,20.0716247,62.0405763,64.9570712,61.3044192,24.1215219,13.450049,17.1726626,68.3529019,38.2553738,44.1133404,25.6645047,20.1688124,59.4997856,3.2070607,33.3725856,30.0000438,1.9931199,1.9261225,18.8358143,62.7649559,65.8641844,60.6380491,24.8567305,12.9020429,16.8951666,69.4585503,39.695457,43.9704824,25.291329,19.7560024,58.9889646,3.2965029,33.4515628,29.4769001\r\n2431,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9986176,1.9325248,20.0716247,62.0405763,64.9570712,61.3044192,24.1215219,13.450049,17.1726626,68.3529019,38.2553738,44.1133404,25.6645047,20.1688124,59.4997856,3.2070607,33.3725856,30.0000438,1.9931199,1.9261225,18.8358143,62.7649559,65.8641844,60.6380491,24.8567305,12.9020429,16.8951666,69.4585503,39.695457,43.9704824,25.291329,19.7560024,58.9889646,3.2965029,33.4515628,29.4769001,1.7374284,1.7201751,18.9846995,62.9172991,66.3695932,60.8882184,25.9625485,12.5381513,16.8385292,71.0586975,41.3552461,41.882147,24.4692591,19.2349946,58.2110122,3.1828769,33.0529114,28.1053026\r\n2432,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.9931199,1.9261225,18.8358143,62.7649559,65.8641844,60.6380491,24.8567305,12.9020429,16.8951666,69.4585503,39.695457,43.9704824,25.291329,19.7560024,58.9889646,3.2965029,33.4515628,29.4769001,1.7374284,1.7201751,18.9846995,62.9172991,66.3695932,60.8882184,25.9625485,12.5381513,16.8385292,71.0586975,41.3552461,41.882147,24.4692591,19.2349946,58.2110122,3.1828769,33.0529114,28.1053026,1.603624,1.603624,18.3657997,63.4066248,67.0948365,60.7018734,25.5477876,10.9333892,16.6106216,70.153159,40.313832,42.9830492,23.5195535,18.3798865,58.6895228,2.8857555,33.0481201,25.1096765\r\n2433,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.7374284,1.7201751,18.9846995,62.9172991,66.3695932,60.8882184,25.9625485,12.5381513,16.8385292,71.0586975,41.3552461,41.882147,24.4692591,19.2349946,58.2110122,3.1828769,33.0529114,28.1053026,1.603624,1.603624,18.3657997,63.4066248,67.0948365,60.7018734,25.5477876,10.9333892,16.6106216,70.153159,40.313832,42.9830492,23.5195535,18.3798865,58.6895228,2.8857555,33.0481201,25.1096765,1.3617636,1.3617636,17.7736034,62.1130538,65.5317682,59.1073995,26.0894438,11.6421613,16.7460501,70.235505,41.5233764,41.0661676,22.8499802,17.6436603,57.649259,2.862371,32.5571776,21.8458075\r\n2434,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.603624,1.603624,18.3657997,63.4066248,67.0948365,60.7018734,25.5477876,10.9333892,16.6106216,70.153159,40.313832,42.9830492,23.5195535,18.3798865,58.6895228,2.8857555,33.0481201,25.1096765,1.3617636,1.3617636,17.7736034,62.1130538,65.5317682,59.1073995,26.0894438,11.6421613,16.7460501,70.235505,41.5233764,41.0661676,22.8499802,17.6436603,57.649259,2.862371,32.5571776,21.8458075,1.3278495,1.3278495,17.6928398,61.9816799,65.5312042,58.4942351,26.484789,12.0597681,16.6041289,69.8948573,41.4849588,41.3596672,22.3791123,17.5822092,57.8804405,2.8437062,32.6711921,21.0714323\r\n2435,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3617636,1.3617636,17.7736034,62.1130538,65.5317682,59.1073995,26.0894438,11.6421613,16.7460501,70.235505,41.5233764,41.0661676,22.8499802,17.6436603,57.649259,2.862371,32.5571776,21.8458075,1.3278495,1.3278495,17.6928398,61.9816799,65.5312042,58.4942351,26.484789,12.0597681,16.6041289,69.8948573,41.4849588,41.3596672,22.3791123,17.5822092,57.8804405,2.8437062,32.6711921,21.0714323,1.28025,1.28025,16.9176049,61.3493472,64.7770092,58.4131941,26.3506528,11.0039634,16.080065,69.4348094,41.2141092,40.7758629,21.8614821,17.13893,57.5764115,3.0586842,33.3191268,18.3698361\r\n2436,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3278495,1.3278495,17.6928398,61.9816799,65.5312042,58.4942351,26.484789,12.0597681,16.6041289,69.8948573,41.4849588,41.3596672,22.3791123,17.5822092,57.8804405,2.8437062,32.6711921,21.0714323,1.28025,1.28025,16.9176049,61.3493472,64.7770092,58.4131941,26.3506528,11.0039634,16.080065,69.4348094,41.2141092,40.7758629,21.8614821,17.13893,57.5764115,3.0586842,33.3191268,18.3698361,1.2245927,1.2245927,16.6202503,61.5546498,64.4882841,58.487891,27.4750077,9.7225088,15.9693804,68.6663306,42.1455844,40.089506,21.2970268,16.7123857,57.2838119,2.4103864,33.067227,17.8657186\r\n2437,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.28025,1.28025,16.9176049,61.3493472,64.7770092,58.4131941,26.3506528,11.0039634,16.080065,69.4348094,41.2141092,40.7758629,21.8614821,17.13893,57.5764115,3.0586842,33.3191268,18.3698361,1.2245927,1.2245927,16.6202503,61.5546498,64.4882841,58.487891,27.4750077,9.7225088,15.9693804,68.6663306,42.1455844,40.089506,21.2970268,16.7123857,57.2838119,2.4103864,33.067227,17.8657186,1.1440947,1.153354,16.3640807,62.031145,64.2318022,58.8257108,27.0205757,10.145038,16.1602261,69.1515075,41.3528327,40.095247,20.4222571,15.9629069,56.6216933,2.3839169,33.4905603,19.0758395\r\n2438,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2245927,1.2245927,16.6202503,61.5546498,64.4882841,58.487891,27.4750077,9.7225088,15.9693804,68.6663306,42.1455844,40.089506,21.2970268,16.7123857,57.2838119,2.4103864,33.067227,17.8657186,1.1440947,1.153354,16.3640807,62.031145,64.2318022,58.8257108,27.0205757,10.145038,16.1602261,69.1515075,41.3528327,40.095247,20.4222571,15.9629069,56.6216933,2.3839169,33.4905603,19.0758395,1.1160072,1.1253182,14.763396,61.881829,63.3667046,57.9676475,25.6233911,11.0013305,17.0043466,68.0809911,40.2246484,41.7893182,20.0436193,15.3251458,56.5116325,2.5571751,34.0673456,17.8398214\r\n2439,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1440947,1.153354,16.3640807,62.031145,64.2318022,58.8257108,27.0205757,10.145038,16.1602261,69.1515075,41.3528327,40.095247,20.4222571,15.9629069,56.6216933,2.3839169,33.4905603,19.0758395,1.1160072,1.1253182,14.763396,61.881829,63.3667046,57.9676475,25.6233911,11.0013305,17.0043466,68.0809911,40.2246484,41.7893182,20.0436193,15.3251458,56.5116325,2.5571751,34.0673456,17.8398214,1.0216463,1.0310767,14.0365451,60.3039814,62.8298855,57.7191474,26.525281,11.1632394,17.0934752,68.0455999,41.4466016,40.4334948,19.546006,14.9256805,55.4912089,3.0079915,34.7883471,17.8304355\r\n2440,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1160072,1.1253182,14.763396,61.881829,63.3667046,57.9676475,25.6233911,11.0013305,17.0043466,68.0809911,40.2246484,41.7893182,20.0436193,15.3251458,56.5116325,2.5571751,34.0673456,17.8398214,1.0216463,1.0310767,14.0365451,60.3039814,62.8298855,57.7191474,26.525281,11.1632394,17.0934752,68.0455999,41.4466016,40.4334948,19.546006,14.9256805,55.4912089,3.0079915,34.7883471,17.8304355,1.1214968,1.131017,14.2789726,60.2823562,62.8130332,58.3366736,26.0203914,9.7270493,16.0808535,68.9143814,40.7455954,40.8720807,18.8843832,14.4624808,55.1237568,3.3319161,34.8430481,18.2398075\r\n2441,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0216463,1.0310767,14.0365451,60.3039814,62.8298855,57.7191474,26.525281,11.1632394,17.0934752,68.0455999,41.4466016,40.4334948,19.546006,14.9256805,55.4912089,3.0079915,34.7883471,17.8304355,1.1214968,1.131017,14.2789726,60.2823562,62.8130332,58.3366736,26.0203914,9.7270493,16.0808535,68.9143814,40.7455954,40.8720807,18.8843832,14.4624808,55.1237568,3.3319161,34.8430481,18.2398075,1.1816161,1.191224,13.8080151,59.0526274,61.5170679,57.4482638,26.6635022,8.7133028,15.4934265,69.608629,42.8305409,39.4439385,17.9334383,13.3730564,53.5122273,3.608025,35.2808019,17.2086768\r\n2442,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1214968,1.131017,14.2789726,60.2823562,62.8130332,58.3366736,26.0203914,9.7270493,16.0808535,68.9143814,40.7455954,40.8720807,18.8843832,14.4624808,55.1237568,3.3319161,34.8430481,18.2398075,1.1816161,1.191224,13.8080151,59.0526274,61.5170679,57.4482638,26.6635022,8.7133028,15.4934265,69.608629,42.8305409,39.4439385,17.9334383,13.3730564,53.5122273,3.608025,35.2808019,17.2086768,1.0996652,1.1094042,13.2921694,59.0287884,60.7549726,57.5872154,27.8679336,9.0222113,15.6032397,69.3032261,43.6697444,39.2365818,17.2564475,12.7602074,51.6364539,3.8311615,33.8383895,17.3854447\r\n2443,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1816161,1.191224,13.8080151,59.0526274,61.5170679,57.4482638,26.6635022,8.7133028,15.4934265,69.608629,42.8305409,39.4439385,17.9334383,13.3730564,53.5122273,3.608025,35.2808019,17.2086768,1.0996652,1.1094042,13.2921694,59.0287884,60.7549726,57.5872154,27.8679336,9.0222113,15.6032397,69.3032261,43.6697444,39.2365818,17.2564475,12.7602074,51.6364539,3.8311615,33.8383895,17.3854447,1.1002392,1.1101598,12.7590405,59.4226974,61.8194053,56.9808315,27.5104168,8.8709179,15.174038,69.0959318,43.4954369,39.4741494,16.7301071,12.203893,50.9498071,3.9724785,34.1730191,17.5561847\r\n2444,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0996652,1.1094042,13.2921694,59.0287884,60.7549726,57.5872154,27.8679336,9.0222113,15.6032397,69.3032261,43.6697444,39.2365818,17.2564475,12.7602074,51.6364539,3.8311615,33.8383895,17.3854447,1.1002392,1.1101598,12.7590405,59.4226974,61.8194053,56.9808315,27.5104168,8.8709179,15.174038,69.0959318,43.4954369,39.4741494,16.7301071,12.203893,50.9498071,3.9724785,34.1730191,17.5561847,1.0385824,1.0785663,12.0639261,58.8085437,61.062739,57.342892,28.4942262,8.6585955,13.8636028,68.8452828,44.0655929,38.1148413,16.1558044,11.5155405,49.6111736,4.0134502,33.2536141,14.4817073\r\n2445,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1002392,1.1101598,12.7590405,59.4226974,61.8194053,56.9808315,27.5104168,8.8709179,15.174038,69.0959318,43.4954369,39.4741494,16.7301071,12.203893,50.9498071,3.9724785,34.1730191,17.5561847,1.0385824,1.0785663,12.0639261,58.8085437,61.062739,57.342892,28.4942262,8.6585955,13.8636028,68.8452828,44.0655929,38.1148413,16.1558044,11.5155405,49.6111736,4.0134502,33.2536141,14.4817073,1.0482697,1.0883337,12.573024,58.2187117,60.8473026,57.7916361,30.2045215,7.7656513,12.9719328,68.4167788,45.130106,36.0649492,15.6263211,11.2227371,47.9531014,3.8530847,33.0966257,13.4259218\r\n2446,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0385824,1.0785663,12.0639261,58.8085437,61.062739,57.342892,28.4942262,8.6585955,13.8636028,68.8452828,44.0655929,38.1148413,16.1558044,11.5155405,49.6111736,4.0134502,33.2536141,14.4817073,1.0482697,1.0883337,12.573024,58.2187117,60.8473026,57.7916361,30.2045215,7.7656513,12.9719328,68.4167788,45.130106,36.0649492,15.6263211,11.2227371,47.9531014,3.8530847,33.0966257,13.4259218,1.0612317,1.1017175,12.0856049,59.5881535,62.4208707,59.3204217,31.3903361,7.7602784,12.6402954,68.72697,44.8532752,35.955777,15.0344982,10.6773022,47.0384245,3.4349379,32.7455074,12.34375\r\n2447,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0482697,1.0883337,12.573024,58.2187117,60.8473026,57.7916361,30.2045215,7.7656513,12.9719328,68.4167788,45.130106,36.0649492,15.6263211,11.2227371,47.9531014,3.8530847,33.0966257,13.4259218,1.0612317,1.1017175,12.0856049,59.5881535,62.4208707,59.3204217,31.3903361,7.7602784,12.6402954,68.72697,44.8532752,35.955777,15.0344982,10.6773022,47.0384245,3.4349379,32.7455074,12.34375,1.0269745,1.0808248,10.8214482,60.6852052,63.7236431,59.0665299,32.0079975,8.2911314,12.8110587,67.4959317,44.3472388,36.8587654,14.9655261,10.2713051,46.7144908,3.2969509,33.5047257,12.6959287\r\n2448,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0612317,1.1017175,12.0856049,59.5881535,62.4208707,59.3204217,31.3903361,7.7602784,12.6402954,68.72697,44.8532752,35.955777,15.0344982,10.6773022,47.0384245,3.4349379,32.7455074,12.34375,1.0269745,1.0808248,10.8214482,60.6852052,63.7236431,59.0665299,32.0079975,8.2911314,12.8110587,67.4959317,44.3472388,36.8587654,14.9655261,10.2713051,46.7144908,3.2969509,33.5047257,12.6959287,1.0584927,1.1200519,10.3261239,60.9253231,64.5100379,59.1448826,32.0049671,8.1788366,14.0420891,68.2915342,43.9567548,36.4408297,15.0487325,10.217175,46.1299566,3.079453,33.3173031,12.3397436\r\n2449,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0269745,1.0808248,10.8214482,60.6852052,63.7236431,59.0665299,32.0079975,8.2911314,12.8110587,67.4959317,44.3472388,36.8587654,14.9655261,10.2713051,46.7144908,3.2969509,33.5047257,12.6959287,1.0584927,1.1200519,10.3261239,60.9253231,64.5100379,59.1448826,32.0049671,8.1788366,14.0420891,68.2915342,43.9567548,36.4408297,15.0487325,10.217175,46.1299566,3.079453,33.3173031,12.3397436,1.1238332,1.1936453,10.7524593,61.9846812,65.6404985,57.967813,32.0923962,7.8435572,13.9571619,68.5501786,42.8780019,35.0493176,15.3794989,10.4368709,46.0162277,2.8310705,33.9506551,12.4585091\r\n2450,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0584927,1.1200519,10.3261239,60.9253231,64.5100379,59.1448826,32.0049671,8.1788366,14.0420891,68.2915342,43.9567548,36.4408297,15.0487325,10.217175,46.1299566,3.079453,33.3173031,12.3397436,1.1238332,1.1936453,10.7524593,61.9846812,65.6404985,57.967813,32.0923962,7.8435572,13.9571619,68.5501786,42.8780019,35.0493176,15.3794989,10.4368709,46.0162277,2.8310705,33.9506551,12.4585091,1.0749671,1.1442311,9.8301174,62.2358188,65.4769603,57.6135384,32.0679572,8.4001231,14.5387755,69.3613516,42.3567267,35.5890849,14.7200179,9.9081221,44.8790731,2.8485395,35.1921826,11.2794949\r\n2451,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1238332,1.1936453,10.7524593,61.9846812,65.6404985,57.967813,32.0923962,7.8435572,13.9571619,68.5501786,42.8780019,35.0493176,15.3794989,10.4368709,46.0162277,2.8310705,33.9506551,12.4585091,1.0749671,1.1442311,9.8301174,62.2358188,65.4769603,57.6135384,32.0679572,8.4001231,14.5387755,69.3613516,42.3567267,35.5890849,14.7200179,9.9081221,44.8790731,2.8485395,35.1921826,11.2794949,1.1346177,1.1628158,10.3284225,63.2057245,66.9076603,57.4325868,31.9489976,8.7577994,15.9913435,69.7118153,42.6892879,36.7815798,14.6498002,10.172854,44.2500954,3.1586308,35.9060852,10.4095904\r\n2452,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0749671,1.1442311,9.8301174,62.2358188,65.4769603,57.6135384,32.0679572,8.4001231,14.5387755,69.3613516,42.3567267,35.5890849,14.7200179,9.9081221,44.8790731,2.8485395,35.1921826,11.2794949,1.1346177,1.1628158,10.3284225,63.2057245,66.9076603,57.4325868,31.9489976,8.7577994,15.9913435,69.7118153,42.6892879,36.7815798,14.6498002,10.172854,44.2500954,3.1586308,35.9060852,10.4095904,1.2061228,1.2356895,9.7229909,62.2847355,66.6118025,56.6890735,30.4651735,8.5063788,16.8394178,68.8445505,42.2573638,37.5750479,14.5871803,9.9953479,44.2086561,3.3902411,36.6600271,11.2903584\r\n2453,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.1346177,1.1628158,10.3284225,63.2057245,66.9076603,57.4325868,31.9489976,8.7577994,15.9913435,69.7118153,42.6892879,36.7815798,14.6498002,10.172854,44.2500954,3.1586308,35.9060852,10.4095904,1.2061228,1.2356895,9.7229909,62.2847355,66.6118025,56.6890735,30.4651735,8.5063788,16.8394178,68.8445505,42.2573638,37.5750479,14.5871803,9.9953479,44.2086561,3.3902411,36.6600271,11.2903584,1.3081407,1.3387236,10.0976158,61.5390636,65.807459,55.0055348,30.1407973,8.3922369,16.8710665,69.6037662,43.6758807,37.7590864,15.1901616,10.1829435,43.8018422,3.6690257,37.2176902,11.8182139\r\n2454,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2061228,1.2356895,9.7229909,62.2847355,66.6118025,56.6890735,30.4651735,8.5063788,16.8394178,68.8445505,42.2573638,37.5750479,14.5871803,9.9953479,44.2086561,3.3902411,36.6600271,11.2903584,1.3081407,1.3387236,10.0976158,61.5390636,65.807459,55.0055348,30.1407973,8.3922369,16.8710665,69.6037662,43.6758807,37.7590864,15.1901616,10.1829435,43.8018422,3.6690257,37.2176902,11.8182139,1.4321947,1.4571078,10.2722033,59.7052086,64.3115483,54.2266823,30.8227561,8.0893352,16.5835067,70.6514535,44.2876817,35.7172881,15.281156,10.29339,43.0943511,3.5824713,38.0829075,9.7069928\r\n2455,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3081407,1.3387236,10.0976158,61.5390636,65.807459,55.0055348,30.1407973,8.3922369,16.8710665,69.6037662,43.6758807,37.7590864,15.1901616,10.1829435,43.8018422,3.6690257,37.2176902,11.8182139,1.4321947,1.4571078,10.2722033,59.7052086,64.3115483,54.2266823,30.8227561,8.0893352,16.5835067,70.6514535,44.2876817,35.7172881,15.281156,10.29339,43.0943511,3.5824713,38.0829075,9.7069928,1.3371049,1.3552291,10.2308247,60.9683107,63.2012734,55.0161868,30.9018383,7.8254896,16.4672055,70.4110286,44.3566164,35.990815,14.9516737,10.2656921,42.7720023,3.9847683,37.7948638,9.1726978\r\n2456,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4321947,1.4571078,10.2722033,59.7052086,64.3115483,54.2266823,30.8227561,8.0893352,16.5835067,70.6514535,44.2876817,35.7172881,15.281156,10.29339,43.0943511,3.5824713,38.0829075,9.7069928,1.3371049,1.3552291,10.2308247,60.9683107,63.2012734,55.0161868,30.9018383,7.8254896,16.4672055,70.4110286,44.3566164,35.990815,14.9516737,10.2656921,42.7720023,3.9847683,37.7948638,9.1726978,1.4097156,1.4188815,9.9356226,60.7391675,62.3801936,57.1111488,31.5397677,8.0469307,15.914039,71.3607621,45.6006251,36.1898898,14.3868929,9.8925204,41.5039355,4.3152415,39.2588515,8.1132075\r\n2457,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3371049,1.3552291,10.2308247,60.9683107,63.2012734,55.0161868,30.9018383,7.8254896,16.4672055,70.4110286,44.3566164,35.990815,14.9516737,10.2656921,42.7720023,3.9847683,37.7948638,9.1726978,1.4097156,1.4188815,9.9356226,60.7391675,62.3801936,57.1111488,31.5397677,8.0469307,15.914039,71.3607621,45.6006251,36.1898898,14.3868929,9.8925204,41.5039355,4.3152415,39.2588515,8.1132075,1.439232,1.4956759,10.0917948,59.7149707,62.1341934,56.0573503,32.0304992,7.2166739,16.6179596,70.9316115,45.7119494,34.7506552,14.5633321,9.9697022,41.0665882,4.5502886,38.3109501,7.6771714\r\n2458,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.4097156,1.4188815,9.9356226,60.7391675,62.3801936,57.1111488,31.5397677,8.0469307,15.914039,71.3607621,45.6006251,36.1898898,14.3868929,9.8925204,41.5039355,4.3152415,39.2588515,8.1132075,1.439232,1.4956759,10.0917948,59.7149707,62.1341934,56.0573503,32.0304992,7.2166739,16.6179596,70.9316115,45.7119494,34.7506552,14.5633321,9.9697022,41.0665882,4.5502886,38.3109501,7.6771714,1.3277771,1.3861145,9.270309,58.2080746,60.9649333,56.6349929,32.8173661,6.5961087,15.5711331,70.7452959,45.5226436,33.3823436,14.4010349,9.5572872,40.7028177,4.2280344,37.3460275,7.2549048\r\n2459,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.439232,1.4956759,10.0917948,59.7149707,62.1341934,56.0573503,32.0304992,7.2166739,16.6179596,70.9316115,45.7119494,34.7506552,14.5633321,9.9697022,41.0665882,4.5502886,38.3109501,7.6771714,1.3277771,1.3861145,9.270309,58.2080746,60.9649333,56.6349929,32.8173661,6.5961087,15.5711331,70.7452959,45.5226436,33.3823436,14.4010349,9.5572872,40.7028177,4.2280344,37.3460275,7.2549048,1.2206384,1.2779176,8.9399001,57.14809,59.6003116,55.8881249,32.4720538,6.0909299,14.3058571,71.5793872,46.9535471,33.2651621,13.6177856,8.8656163,39.5787759,4.0569515,36.5597364,6.352459\r\n2460,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3277771,1.3861145,9.270309,58.2080746,60.9649333,56.6349929,32.8173661,6.5961087,15.5711331,70.7452959,45.5226436,33.3823436,14.4010349,9.5572872,40.7028177,4.2280344,37.3460275,7.2549048,1.2206384,1.2779176,8.9399001,57.14809,59.6003116,55.8881249,32.4720538,6.0909299,14.3058571,71.5793872,46.9535471,33.2651621,13.6177856,8.8656163,39.5787759,4.0569515,36.5597364,6.352459,1.2049419,1.2934934,8.4426221,57.838586,59.8461706,56.7916996,31.7470649,5.5902548,14.6539162,70.3489388,45.1975159,32.3005091,12.8042671,8.4432149,38.8979385,4.4946736,37.8246821,6.092437\r\n2461,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2206384,1.2779176,8.9399001,57.14809,59.6003116,55.8881249,32.4720538,6.0909299,14.3058571,71.5793872,46.9535471,33.2651621,13.6177856,8.8656163,39.5787759,4.0569515,36.5597364,6.352459,1.2049419,1.2934934,8.4426221,57.838586,59.8461706,56.7916996,31.7470649,5.5902548,14.6539162,70.3489388,45.1975159,32.3005091,12.8042671,8.4432149,38.8979385,4.4946736,37.8246821,6.092437,0.9978856,1.0795449,8.3947233,60.5508437,62.6365921,60.491612,31.1461987,6.2488747,16.0100767,69.7872107,45.561577,33.6795401,12.4608386,8.1243627,38.1072045,4.6326679,36.3481415,6.5909061\r\n2462,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2049419,1.2934934,8.4426221,57.838586,59.8461706,56.7916996,31.7470649,5.5902548,14.6539162,70.3489388,45.1975159,32.3005091,12.8042671,8.4432149,38.8979385,4.4946736,37.8246821,6.092437,0.9978856,1.0795449,8.3947233,60.5508437,62.6365921,60.491612,31.1461987,6.2488747,16.0100767,69.7872107,45.561577,33.6795401,12.4608386,8.1243627,38.1072045,4.6326679,36.3481415,6.5909061,0.95239,1.036016,8.2687306,59.1360369,61.7859424,59.669017,31.666841,6.6664557,14.9922789,69.8084419,45.4908644,33.8144817,11.9711077,7.5254646,37.9816143,4.4225281,36.9131851,6.3380222\r\n2463,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9978856,1.0795449,8.3947233,60.5508437,62.6365921,60.491612,31.1461987,6.2488747,16.0100767,69.7872107,45.561577,33.6795401,12.4608386,8.1243627,38.1072045,4.6326679,36.3481415,6.5909061,0.95239,1.036016,8.2687306,59.1360369,61.7859424,59.669017,31.666841,6.6664557,14.9922789,69.8084419,45.4908644,33.8144817,11.9711077,7.5254646,37.9816143,4.4225281,36.9131851,6.3380222,0.8960996,0.9813075,8.9691482,59.0964891,61.8129257,60.1668027,31.6173603,5.829073,15.7253315,69.4823098,45.5454234,32.1157135,12.6710734,8.2375666,38.1356135,3.8837678,36.610419,6.8396162\r\n2464,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.95239,1.036016,8.2687306,59.1360369,61.7859424,59.669017,31.666841,6.6664557,14.9922789,69.8084419,45.4908644,33.8144817,11.9711077,7.5254646,37.9816143,4.4225281,36.9131851,6.3380222,0.8960996,0.9813075,8.9691482,59.0964891,61.8129257,60.1668027,31.6173603,5.829073,15.7253315,69.4823098,45.5454234,32.1157135,12.6710734,8.2375666,38.1356135,3.8837678,36.610419,6.8396162,0.8624575,0.8965581,8.7018819,59.5459442,62.5967736,60.6736416,30.8667235,5.9068885,15.2134594,69.9901223,45.7698705,32.1995049,12.2077522,7.8575517,35.7351438,3.9988433,36.5338494,8.3333254\r\n2465,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8960996,0.9813075,8.9691482,59.0964891,61.8129257,60.1668027,31.6173603,5.829073,15.7253315,69.4823098,45.5454234,32.1157135,12.6710734,8.2375666,38.1356135,3.8837678,36.610419,6.8396162,0.8624575,0.8965581,8.7018819,59.5459442,62.5967736,60.6736416,30.8667235,5.9068885,15.2134594,69.9901223,45.7698705,32.1995049,12.2077522,7.8575517,35.7351438,3.9988433,36.5338494,8.3333254,0.8700526,0.9032036,9.2803285,61.1965345,63.7642571,60.4306608,30.2342902,5.9560339,16.3371932,69.2128764,46.0079878,33.4508451,12.6123988,8.2231822,36.6991091,4.0304392,37.6338095,10.1989999\r\n2466,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8624575,0.8965581,8.7018819,59.5459442,62.5967736,60.6736416,30.8667235,5.9068885,15.2134594,69.9901223,45.7698705,32.1995049,12.2077522,7.8575517,35.7351438,3.9988433,36.5338494,8.3333254,0.8700526,0.9032036,9.2803285,61.1965345,63.7642571,60.4306608,30.2342902,5.9560339,16.3371932,69.2128764,46.0079878,33.4508451,12.6123988,8.2231822,36.6991091,4.0304392,37.6338095,10.1989999,0.7883718,0.8209557,9.5605127,63.2450608,65.3883467,62.6391378,31.821152,6.2756081,16.3588968,69.9022984,45.6141566,33.6945255,13.1688399,8.9090967,36.7057133,3.9393918,38.086888,10.2870715\r\n2467,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8700526,0.9032036,9.2803285,61.1965345,63.7642571,60.4306608,30.2342902,5.9560339,16.3371932,69.2128764,46.0079878,33.4508451,12.6123988,8.2231822,36.6991091,4.0304392,37.6338095,10.1989999,0.7883718,0.8209557,9.5605127,63.2450608,65.3883467,62.6391378,31.821152,6.2756081,16.3588968,69.9022984,45.6141566,33.6945255,13.1688399,8.9090967,36.7057133,3.9393918,38.086888,10.2870715,0.8981275,0.8981275,10.1527367,62.6787103,64.1267533,62.3655717,31.9455902,6.8209163,15.9843715,70.2993633,46.4775927,33.9825167,13.9395416,9.620921,35.8835739,3.4421194,35.2781012,9.7727228\r\n2468,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7883718,0.8209557,9.5605127,63.2450608,65.3883467,62.6391378,31.821152,6.2756081,16.3588968,69.9022984,45.6141566,33.6945255,13.1688399,8.9090967,36.7057133,3.9393918,38.086888,10.2870715,0.8981275,0.8981275,10.1527367,62.6787103,64.1267533,62.3655717,31.9455902,6.8209163,15.9843715,70.2993633,46.4775927,33.9825167,13.9395416,9.620921,35.8835739,3.4421194,35.2781012,9.7727228,0.9434646,0.9434646,9.7732917,61.2817273,62.8290021,60.5305358,32.0417742,6.2874887,15.7608146,69.7926143,46.1271297,33.3992048,13.609328,9.7209499,35.7985293,3.5662279,35.766061,9.59821\r\n2469,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8981275,0.8981275,10.1527367,62.6787103,64.1267533,62.3655717,31.9455902,6.8209163,15.9843715,70.2993633,46.4775927,33.9825167,13.9395416,9.620921,35.8835739,3.4421194,35.2781012,9.7727228,0.9434646,0.9434646,9.7732917,61.2817273,62.8290021,60.5305358,32.0417742,6.2874887,15.7608146,69.7926143,46.1271297,33.3992048,13.609328,9.7209499,35.7985293,3.5662279,35.766061,9.59821,0.9961562,1.0065426,9.753548,62.2534847,64.3652152,61.050452,31.4429402,5.981882,15.7358399,69.2958885,46.0118952,33.4747619,13.9086015,9.9600728,35.1834244,3.5949226,35.6293403,10.3686588\r\n2470,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9434646,0.9434646,9.7732917,61.2817273,62.8290021,60.5305358,32.0417742,6.2874887,15.7608146,69.7926143,46.1271297,33.3992048,13.609328,9.7209499,35.7985293,3.5662279,35.766061,9.59821,0.9961562,1.0065426,9.753548,62.2534847,64.3652152,61.050452,31.4429402,5.981882,15.7358399,69.2958885,46.0118952,33.4747619,13.9086015,9.9600728,35.1834244,3.5949226,35.6293403,10.3686588,0.8208739,0.8311704,9.3302714,62.6815662,65.5024638,61.0815364,30.8372125,6.3772031,15.0795661,70.1253275,45.8446052,36.0414401,13.8059704,9.7234488,35.2733276,3.7906956,34.3118438,9.8623808\r\n2471,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9961562,1.0065426,9.753548,62.2534847,64.3652152,61.050452,31.4429402,5.981882,15.7358399,69.2958885,46.0118952,33.4747619,13.9086015,9.9600728,35.1834244,3.5949226,35.6293403,10.3686588,0.8208739,0.8311704,9.3302714,62.6815662,65.5024638,61.0815364,30.8372125,6.3772031,15.0795661,70.1253275,45.8446052,36.0414401,13.8059704,9.7234488,35.2733276,3.7906956,34.3118438,9.8623808,0.7548216,0.7652296,9.5936604,61.2675595,62.8118495,62.1198722,31.0423245,6.4197757,13.5065208,69.4575631,46.1845175,35.9452854,13.9086079,9.8713488,36.7109641,4.0439426,34.626467,7.8828722\r\n2472,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8208739,0.8311704,9.3302714,62.6815662,65.5024638,61.0815364,30.8372125,6.3772031,15.0795661,70.1253275,45.8446052,36.0414401,13.8059704,9.7234488,35.2733276,3.7906956,34.3118438,9.8623808,0.7548216,0.7652296,9.5936604,61.2675595,62.8118495,62.1198722,31.0423245,6.4197757,13.5065208,69.4575631,46.1845175,35.9452854,13.9086079,9.8713488,36.7109641,4.0439426,34.626467,7.8828722,0.8063911,0.8168469,9.2967761,61.8313175,62.7728865,60.7525139,31.3226668,6.0024094,12.3497162,70.5552828,46.3872484,34.1597751,13.4358279,9.6033944,33.9636216,3.9349633,32.9338709,7.6388783\r\n2473,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7548216,0.7652296,9.5936604,61.2675595,62.8118495,62.1198722,31.0423245,6.4197757,13.5065208,69.4575631,46.1845175,35.9452854,13.9086079,9.8713488,36.7109641,4.0439426,34.626467,7.8828722,0.8063911,0.8168469,9.2967761,61.8313175,62.7728865,60.7525139,31.3226668,6.0024094,12.3497162,70.5552828,46.3872484,34.1597751,13.4358279,9.6033944,33.9636216,3.9349633,32.9338709,7.6388783,0.8465106,0.8569972,8.9264103,61.8904623,63.5830835,61.1522856,30.9281295,7.2653022,13.333122,70.7809154,46.183115,33.7185866,13.5467999,9.3372245,34.2905383,4.334436,32.299645,7.9185485\r\n2474,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.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,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.8063911,0.8168469,9.2967761,61.8313175,62.7728865,60.7525139,31.3226668,6.0024094,12.3497162,70.5552828,46.3872484,34.1597751,13.4358279,9.6033944,33.9636216,3.9349633,32.9338709,7.6388783,0.8465106,0.8569972,8.9264103,61.8904623,63.5830835,61.1522856,30.9281295,7.2653022,13.333122,70.7809154,46.183115,33.7185866,13.5467999,9.3372245,34.2905383,4.334436,32.299645,7.9185485,0.679026,0.6901768,8.485234,61.9696439,64.456707,61.0740071,30.4848957,7.0615313,13.0872613,70.8905356,46.1472873,34.5827942,12.6790966,8.7154003,34.7837353,4.2698342,32.2630459,8.578472\r\n2475,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.6981469,3.7015344,31.2723691,66.3911087,69.3405789,58.4868484,27.19027,9.0324018,16.6243838,64.0683715,32.7053807,48.2570162,37.8449712,30.5064102,53.0552097,2.6520387,37.8379996,22.2300697,3.7810999,3.7843594,31.8108196,66.5788817,69.4347659,56.9631497,25.6752194,9.8903812,16.8931752,63.7388716,32.3305047,47.8239762,39.0329434,31.5576174,53.6184769,2.6679007,36.9626356,23.383427,4.0000524,3.9958369,33.1793975,65.9358932,68.3990851,57.8384266,24.747481,9.9938315,16.7260875,63.8472755,33.2732739,48.1633083,40.7102207,33.0292486,54.4829181,2.8117026,36.3242678,25.2253855\r\n2476,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.7810999,3.7843594,31.8108196,66.5788817,69.4347659,56.9631497,25.6752194,9.8903812,16.8931752,63.7388716,32.3305047,47.8239762,39.0329434,31.5576174,53.6184769,2.6679007,36.9626356,23.383427,4.0000524,3.9958369,33.1793975,65.9358932,68.3990851,57.8384266,24.747481,9.9938315,16.7260875,63.8472755,33.2732739,48.1633083,40.7102207,33.0292486,54.4829181,2.8117026,36.3242678,25.2253855,4.0265701,4.0553599,34.5480084,66.4846689,68.9697578,58.4852979,23.8329241,10.1823125,16.7617195,63.3609187,33.8815915,49.0120599,42.0353573,34.4740699,55.4400076,2.8378427,36.1277378,26.94004\r\n2477,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0000524,3.9958369,33.1793975,65.9358932,68.3990851,57.8384266,24.747481,9.9938315,16.7260875,63.8472755,33.2732739,48.1633083,40.7102207,33.0292486,54.4829181,2.8117026,36.3242678,25.2253855,4.0265701,4.0553599,34.5480084,66.4846689,68.9697578,58.4852979,23.8329241,10.1823125,16.7617195,63.3609187,33.8815915,49.0120599,42.0353573,34.4740699,55.4400076,2.8378427,36.1277378,26.94004,4.3912411,4.4105595,35.3966844,66.0979253,68.3983742,58.928335,23.2158198,10.5123634,15.948522,62.4529874,34.0931887,49.609639,43.5950363,35.8716502,56.0243755,2.9969068,36.2177497,29.2460213\r\n2478,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0265701,4.0553599,34.5480084,66.4846689,68.9697578,58.4852979,23.8329241,10.1823125,16.7617195,63.3609187,33.8815915,49.0120599,42.0353573,34.4740699,55.4400076,2.8378427,36.1277378,26.94004,4.3912411,4.4105595,35.3966844,66.0979253,68.3983742,58.928335,23.2158198,10.5123634,15.948522,62.4529874,34.0931887,49.609639,43.5950363,35.8716502,56.0243755,2.9969068,36.2177497,29.2460213,4.5309338,4.5535436,36.3951283,66.166206,68.7091039,58.4933202,22.4845567,9.8163151,15.3632243,61.8073242,33.7432857,49.9571216,44.4448426,36.8286633,56.6770225,2.9214391,36.0453486,30.5964002\r\n2479,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.3912411,4.4105595,35.3966844,66.0979253,68.3983742,58.928335,23.2158198,10.5123634,15.948522,62.4529874,34.0931887,49.609639,43.5950363,35.8716502,56.0243755,2.9969068,36.2177497,29.2460213,4.5309338,4.5535436,36.3951283,66.166206,68.7091039,58.4933202,22.4845567,9.8163151,15.3632243,61.8073242,33.7432857,49.9571216,44.4448426,36.8286633,56.6770225,2.9214391,36.0453486,30.5964002,4.6589482,4.7014648,37.9070482,63.986797,66.8905133,57.153267,21.611305,9.9245665,15.0017948,61.6658948,32.9486754,49.1546782,45.4567991,37.8292042,57.0566638,2.8025912,36.1350809,32.2387838\r\n2480,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.5309338,4.5535436,36.3951283,66.166206,68.7091039,58.4933202,22.4845567,9.8163151,15.3632243,61.8073242,33.7432857,49.9571216,44.4448426,36.8286633,56.6770225,2.9214391,36.0453486,30.5964002,4.6589482,4.7014648,37.9070482,63.986797,66.8905133,57.153267,21.611305,9.9245665,15.0017948,61.6658948,32.9486754,49.1546782,45.4567991,37.8292042,57.0566638,2.8025912,36.1350809,32.2387838,4.374308,4.4549168,37.655016,63.9532435,66.6004073,57.059727,20.690282,10.737971,15.619032,60.455257,32.073634,49.7962701,45.6387458,37.8216616,57.8347905,2.7700682,35.4925191,33.1668726\r\n2481,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.6589482,4.7014648,37.9070482,63.986797,66.8905133,57.153267,21.611305,9.9245665,15.0017948,61.6658948,32.9486754,49.1546782,45.4567991,37.8292042,57.0566638,2.8025912,36.1350809,32.2387838,4.374308,4.4549168,37.655016,63.9532435,66.6004073,57.059727,20.690282,10.737971,15.619032,60.455257,32.073634,49.7962701,45.6387458,37.8216616,57.8347905,2.7700682,35.4925191,33.1668726,4.5468883,4.6573059,38.3176626,63.4378273,66.197941,56.8155705,19.574588,10.3949442,16.072143,59.3260003,30.8170019,50.47812,46.0199899,38.2712648,57.8105455,2.6280106,36.9584748,34.5799039\r\n2482,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.374308,4.4549168,37.655016,63.9532435,66.6004073,57.059727,20.690282,10.737971,15.619032,60.455257,32.073634,49.7962701,45.6387458,37.8216616,57.8347905,2.7700682,35.4925191,33.1668726,4.5468883,4.6573059,38.3176626,63.4378273,66.197941,56.8155705,19.574588,10.3949442,16.072143,59.3260003,30.8170019,50.47812,46.0199899,38.2712648,57.8105455,2.6280106,36.9584748,34.5799039,4.517712,4.6690388,38.1917179,63.662636,67.9382627,56.8526405,19.494783,10.4980326,16.234559,59.4634841,30.1730903,50.5193124,46.2217081,38.3852154,57.8625047,2.5833234,36.7813568,34.7668114\r\n2483,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.5468883,4.6573059,38.3176626,63.4378273,66.197941,56.8155705,19.574588,10.3949442,16.072143,59.3260003,30.8170019,50.47812,46.0199899,38.2712648,57.8105455,2.6280106,36.9584748,34.5799039,4.517712,4.6690388,38.1917179,63.662636,67.9382627,56.8526405,19.494783,10.4980326,16.234559,59.4634841,30.1730903,50.5193124,46.2217081,38.3852154,57.8625047,2.5833234,36.7813568,34.7668114,4.6333257,4.7688227,38.4991867,63.6591413,67.8544343,56.9595374,19.1669738,10.5878838,17.5094485,59.3320385,29.451534,49.6576499,46.7025,38.9360622,57.4848084,2.5978072,37.3101929,35.838429\r\n2484,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.517712,4.6690388,38.1917179,63.662636,67.9382627,56.8526405,19.494783,10.4980326,16.234559,59.4634841,30.1730903,50.5193124,46.2217081,38.3852154,57.8625047,2.5833234,36.7813568,34.7668114,4.6333257,4.7688227,38.4991867,63.6591413,67.8544343,56.9595374,19.1669738,10.5878838,17.5094485,59.3320385,29.451534,49.6576499,46.7025,38.9360622,57.4848084,2.5978072,37.3101929,35.838429,4.4970476,4.6090441,39.9032437,62.6955816,68.059695,56.9736616,18.7737868,10.6075896,18.4627597,59.6791946,29.018909,48.57905,47.0009346,39.6170124,57.5539769,2.4205221,37.8986355,36.516827\r\n2485,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.6333257,4.7688227,38.4991867,63.6591413,67.8544343,56.9595374,19.1669738,10.5878838,17.5094485,59.3320385,29.451534,49.6576499,46.7025,38.9360622,57.4848084,2.5978072,37.3101929,35.838429,4.4970476,4.6090441,39.9032437,62.6955816,68.059695,56.9736616,18.7737868,10.6075896,18.4627597,59.6791946,29.018909,48.57905,47.0009346,39.6170124,57.5539769,2.4205221,37.8986355,36.516827,4.4781395,4.6149759,40.2857387,63.5338589,67.763717,55.82335,18.3889191,10.9050989,18.3256474,59.4186753,28.4756768,49.3883498,47.5037436,39.9683117,57.9178707,2.3508464,37.6400537,37.1865945\r\n2486,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.4970476,4.6090441,39.9032437,62.6955816,68.059695,56.9736616,18.7737868,10.6075896,18.4627597,59.6791946,29.018909,48.57905,47.0009346,39.6170124,57.5539769,2.4205221,37.8986355,36.516827,4.4781395,4.6149759,40.2857387,63.5338589,67.763717,55.82335,18.3889191,10.9050989,18.3256474,59.4186753,28.4756768,49.3883498,47.5037436,39.9683117,57.9178707,2.3508464,37.6400537,37.1865945,4.4581016,4.5336848,40.5559566,63.9043859,68.7002975,56.9255502,18.2663725,11.0548653,18.3729528,59.2564234,29.4540174,50.5900943,47.5584139,40.1835197,57.8019147,2.523299,38.3007953,36.7770487\r\n2487,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.4781395,4.6149759,40.2857387,63.5338589,67.763717,55.82335,18.3889191,10.9050989,18.3256474,59.4186753,28.4756768,49.3883498,47.5037436,39.9683117,57.9178707,2.3508464,37.6400537,37.1865945,4.4581016,4.5336848,40.5559566,63.9043859,68.7002975,56.9255502,18.2663725,11.0548653,18.3729528,59.2564234,29.4540174,50.5900943,47.5584139,40.1835197,57.8019147,2.523299,38.3007953,36.7770487,5.0388746,5.1176684,41.2294063,64.5614405,68.6584774,56.654412,18.7718058,10.3431544,19.5353198,59.5118198,29.7625432,50.40436,48.5578494,41.4977115,58.0844747,2.2519283,39.3416973,38.5124926\r\n2488,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.4581016,4.5336848,40.5559566,63.9043859,68.7002975,56.9255502,18.2663725,11.0548653,18.3729528,59.2564234,29.4540174,50.5900943,47.5584139,40.1835197,57.8019147,2.523299,38.3007953,36.7770487,5.0388746,5.1176684,41.2294063,64.5614405,68.6584774,56.654412,18.7718058,10.3431544,19.5353198,59.5118198,29.7625432,50.40436,48.5578494,41.4977115,58.0844747,2.2519283,39.3416973,38.5124926,5.2092364,5.2947953,41.6498047,65.0060881,69.1516425,56.2504926,19.309327,10.4003482,18.7172282,60.3409828,30.7117747,50.7204619,49.3184403,42.2678309,59.0749695,2.4024684,39.4999488,39.3508542\r\n2489,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0388746,5.1176684,41.2294063,64.5614405,68.6584774,56.654412,18.7718058,10.3431544,19.5353198,59.5118198,29.7625432,50.40436,48.5578494,41.4977115,58.0844747,2.2519283,39.3416973,38.5124926,5.2092364,5.2947953,41.6498047,65.0060881,69.1516425,56.2504926,19.309327,10.4003482,18.7172282,60.3409828,30.7117747,50.7204619,49.3184403,42.2678309,59.0749695,2.4024684,39.4999488,39.3508542,5.2410308,5.3233362,42.5459867,64.8428344,67.6250327,55.6498627,18.6623589,10.515301,18.5179876,60.4935865,30.6659293,50.3576857,49.7747472,43.0780376,59.2964532,2.2774261,40.5392686,39.7332931\r\n2490,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.2092364,5.2947953,41.6498047,65.0060881,69.1516425,56.2504926,19.309327,10.4003482,18.7172282,60.3409828,30.7117747,50.7204619,49.3184403,42.2678309,59.0749695,2.4024684,39.4999488,39.3508542,5.2410308,5.3233362,42.5459867,64.8428344,67.6250327,55.6498627,18.6623589,10.515301,18.5179876,60.4935865,30.6659293,50.3576857,49.7747472,43.0780376,59.2964532,2.2774261,40.5392686,39.7332931,5.3741807,5.4496821,42.3889053,64.1603551,66.3904028,55.0052823,18.284431,10.7103397,17.4028881,59.9179139,30.4953539,49.8286926,49.7253708,43.0108175,60.0665409,2.0945717,41.3545085,39.3971292\r\n2491,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.2410308,5.3233362,42.5459867,64.8428344,67.6250327,55.6498627,18.6623589,10.515301,18.5179876,60.4935865,30.6659293,50.3576857,49.7747472,43.0780376,59.2964532,2.2774261,40.5392686,39.7332931,5.3741807,5.4496821,42.3889053,64.1603551,66.3904028,55.0052823,18.284431,10.7103397,17.4028881,59.9179139,30.4953539,49.8286926,49.7253708,43.0108175,60.0665409,2.0945717,41.3545085,39.3971292,5.4586581,5.5891784,41.8365941,64.4514945,65.5243521,54.7399727,17.469283,10.1835118,16.828924,59.2127368,29.7637791,50.0122123,49.6772058,42.7443993,59.8968596,2.3256581,41.8325028,39.3349979\r\n2492,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.3741807,5.4496821,42.3889053,64.1603551,66.3904028,55.0052823,18.284431,10.7103397,17.4028881,59.9179139,30.4953539,49.8286926,49.7253708,43.0108175,60.0665409,2.0945717,41.3545085,39.3971292,5.4586581,5.5891784,41.8365941,64.4514945,65.5243521,54.7399727,17.469283,10.1835118,16.828924,59.2127368,29.7637791,50.0122123,49.6772058,42.7443993,59.8968596,2.3256581,41.8325028,39.3349979,5.7777608,5.8693849,42.8790483,63.0002329,65.6407633,54.5210507,17.4186431,10.2273865,16.1753153,59.2994822,29.6209615,48.5309206,50.2931043,43.6144366,59.906825,2.3194248,42.1453707,39.6232227\r\n2493,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.4586581,5.5891784,41.8365941,64.4514945,65.5243521,54.7399727,17.469283,10.1835118,16.828924,59.2127368,29.7637791,50.0122123,49.6772058,42.7443993,59.8968596,2.3256581,41.8325028,39.3349979,5.7777608,5.8693849,42.8790483,63.0002329,65.6407633,54.5210507,17.4186431,10.2273865,16.1753153,59.2994822,29.6209615,48.5309206,50.2931043,43.6144366,59.906825,2.3194248,42.1453707,39.6232227,5.9922023,6.1323786,43.1746729,62.8260156,65.1168088,53.868011,17.3793557,10.0675955,17.3662234,59.196553,28.2557688,48.2735252,51.0953287,44.4794733,60.798044,2.1354664,41.9678563,40.6595741\r\n2494,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.7777608,5.8693849,42.8790483,63.0002329,65.6407633,54.5210507,17.4186431,10.2273865,16.1753153,59.2994822,29.6209615,48.5309206,50.2931043,43.6144366,59.906825,2.3194248,42.1453707,39.6232227,5.9922023,6.1323786,43.1746729,62.8260156,65.1168088,53.868011,17.3793557,10.0675955,17.3662234,59.196553,28.2557688,48.2735252,51.0953287,44.4794733,60.798044,2.1354664,41.9678563,40.6595741,5.9301244,6.0537408,43.665009,62.8677849,66.1124582,54.1533053,16.8055393,10.4086781,17.0415202,58.5914183,27.881841,47.7676311,50.7319793,44.1307857,60.9299727,2.2451712,40.9943702,40.5223353\r\n2495,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.9922023,6.1323786,43.1746729,62.8260156,65.1168088,53.868011,17.3793557,10.0675955,17.3662234,59.196553,28.2557688,48.2735252,51.0953287,44.4794733,60.798044,2.1354664,41.9678563,40.6595741,5.9301244,6.0537408,43.665009,62.8677849,66.1124582,54.1533053,16.8055393,10.4086781,17.0415202,58.5914183,27.881841,47.7676311,50.7319793,44.1307857,60.9299727,2.2451712,40.9943702,40.5223353,5.8976264,5.9900235,43.4432108,61.1297592,64.7454396,54.7551589,16.6055171,10.0085149,17.4726872,58.0345725,27.4260798,46.4492137,50.8888075,44.1846913,60.9607071,2.0589179,40.209335,41.6112537\r\n2496,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.9301244,6.0537408,43.665009,62.8677849,66.1124582,54.1533053,16.8055393,10.4086781,17.0415202,58.5914183,27.881841,47.7676311,50.7319793,44.1307857,60.9299727,2.2451712,40.9943702,40.5223353,5.8976264,5.9900235,43.4432108,61.1297592,64.7454396,54.7551589,16.6055171,10.0085149,17.4726872,58.0345725,27.4260798,46.4492137,50.8888075,44.1846913,60.9607071,2.0589179,40.209335,41.6112537,6.0155288,6.084168,43.4256737,61.7117559,65.4134974,53.5411181,16.6298266,10.1479988,17.8558183,57.7268079,27.1291369,47.1550721,50.4005648,43.946965,61.2640024,2.0555744,40.331068,43.1911916\r\n2497,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.8976264,5.9900235,43.4432108,61.1297592,64.7454396,54.7551589,16.6055171,10.0085149,17.4726872,58.0345725,27.4260798,46.4492137,50.8888075,44.1846913,60.9607071,2.0589179,40.209335,41.6112537,6.0155288,6.084168,43.4256737,61.7117559,65.4134974,53.5411181,16.6298266,10.1479988,17.8558183,57.7268079,27.1291369,47.1550721,50.4005648,43.946965,61.2640024,2.0555744,40.331068,43.1911916,5.9065079,6.0209038,43.891341,61.7360752,66.0669157,53.5336714,17.7661208,10.2267342,18.0624547,58.2297824,27.9026925,48.5807969,50.5699861,44.4400035,61.15932,2.1671017,40.306404,44.7446555\r\n2498,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,6.0155288,6.084168,43.4256737,61.7117559,65.4134974,53.5411181,16.6298266,10.1479988,17.8558183,57.7268079,27.1291369,47.1550721,50.4005648,43.946965,61.2640024,2.0555744,40.331068,43.1911916,5.9065079,6.0209038,43.891341,61.7360752,66.0669157,53.5336714,17.7661208,10.2267342,18.0624547,58.2297824,27.9026925,48.5807969,50.5699861,44.4400035,61.15932,2.1671017,40.306404,44.7446555,5.7889424,5.8584303,43.893841,61.5907453,66.4764714,53.3520214,18.5234005,10.9252325,19.1594244,59.1800863,29.0809618,48.6059048,50.9503893,44.7174804,61.2732194,2.050896,39.4357739,45.3813847\r\n2499,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.9065079,6.0209038,43.891341,61.7360752,66.0669157,53.5336714,17.7661208,10.2267342,18.0624547,58.2297824,27.9026925,48.5807969,50.5699861,44.4400035,61.15932,2.1671017,40.306404,44.7446555,5.7889424,5.8584303,43.893841,61.5907453,66.4764714,53.3520214,18.5234005,10.9252325,19.1594244,59.1800863,29.0809618,48.6059048,50.9503893,44.7174804,61.2732194,2.050896,39.4357739,45.3813847,5.4390518,5.5156065,43.169367,62.9482587,66.1273855,54.5681842,19.4095112,10.7562455,19.3789932,59.5422707,29.4096322,50.2141304,50.7301624,44.2502169,61.2768804,2.1236725,39.0800987,45.6627199\r\n2500,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.7889424,5.8584303,43.893841,61.5907453,66.4764714,53.3520214,18.5234005,10.9252325,19.1594244,59.1800863,29.0809618,48.6059048,50.9503893,44.7174804,61.2732194,2.050896,39.4357739,45.3813847,5.4390518,5.5156065,43.169367,62.9482587,66.1273855,54.5681842,19.4095112,10.7562455,19.3789932,59.5422707,29.4096322,50.2141304,50.7301624,44.2502169,61.2768804,2.1236725,39.0800987,45.6627199,4.926248,4.9821918,41.8160337,63.2644147,65.8630729,56.4055878,20.2585579,9.9408036,16.8258555,59.7418132,30.2242686,49.0142297,49.2892545,42.7514463,60.503984,2.1550964,38.723317,45.4685912\r\n2501,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.4390518,5.5156065,43.169367,62.9482587,66.1273855,54.5681842,19.4095112,10.7562455,19.3789932,59.5422707,29.4096322,50.2141304,50.7301624,44.2502169,61.2768804,2.1236725,39.0800987,45.6627199,4.926248,4.9821918,41.8160337,63.2644147,65.8630729,56.4055878,20.2585579,9.9408036,16.8258555,59.7418132,30.2242686,49.0142297,49.2892545,42.7514463,60.503984,2.1550964,38.723317,45.4685912,4.8062031,4.8671577,41.3474306,62.8048862,64.9047082,55.3825092,20.9943372,9.4613746,16.1501711,60.7335584,31.1736865,48.702458,49.0919963,42.673598,60.539219,2.15029,38.9046986,46.4508923\r\n2502,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.926248,4.9821918,41.8160337,63.2644147,65.8630729,56.4055878,20.2585579,9.9408036,16.8258555,59.7418132,30.2242686,49.0142297,49.2892545,42.7514463,60.503984,2.1550964,38.723317,45.4685912,4.8062031,4.8671577,41.3474306,62.8048862,64.9047082,55.3825092,20.9943372,9.4613746,16.1501711,60.7335584,31.1736865,48.702458,49.0919963,42.673598,60.539219,2.15029,38.9046986,46.4508923,4.734586,4.7947701,41.5035416,63.3010807,65.327874,54.9744033,21.0923965,9.4876946,15.5016915,60.3205066,31.1238414,48.9064208,48.6151129,42.369499,60.4966996,2.1150555,39.4048746,45.3154321\r\n2503,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.8062031,4.8671577,41.3474306,62.8048862,64.9047082,55.3825092,20.9943372,9.4613746,16.1501711,60.7335584,31.1736865,48.702458,49.0919963,42.673598,60.539219,2.15029,38.9046986,46.4508923,4.734586,4.7947701,41.5035416,63.3010807,65.327874,54.9744033,21.0923965,9.4876946,15.5016915,60.3205066,31.1238414,48.9064208,48.6151129,42.369499,60.4966996,2.1150555,39.4048746,45.3154321,4.6333248,4.7156444,41.0248174,62.3492631,65.0990374,55.2401115,21.4921794,9.561127,15.2281104,60.3954747,31.9877512,48.1140959,48.4689855,42.2048401,60.4475255,2.2665423,39.1555705,44.8112598\r\n2504,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.734586,4.7947701,41.5035416,63.3010807,65.327874,54.9744033,21.0923965,9.4876946,15.5016915,60.3205066,31.1238414,48.9064208,48.6151129,42.369499,60.4966996,2.1150555,39.4048746,45.3154321,4.6333248,4.7156444,41.0248174,62.3492631,65.0990374,55.2401115,21.4921794,9.561127,15.2281104,60.3954747,31.9877512,48.1140959,48.4689855,42.2048401,60.4475255,2.2665423,39.1555705,44.8112598,4.4786201,4.5261146,40.324145,62.3552642,66.0223087,54.7124182,21.385819,9.449162,15.2623336,61.0523414,32.2234614,47.2761956,48.0071104,41.5159012,60.509758,2.289941,38.6650624,43.6690534\r\n2505,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.6333248,4.7156444,41.0248174,62.3492631,65.0990374,55.2401115,21.4921794,9.561127,15.2281104,60.3954747,31.9877512,48.1140959,48.4689855,42.2048401,60.4475255,2.2665423,39.1555705,44.8112598,4.4786201,4.5261146,40.324145,62.3552642,66.0223087,54.7124182,21.385819,9.449162,15.2623336,61.0523414,32.2234614,47.2761956,48.0071104,41.5159012,60.509758,2.289941,38.6650624,43.6690534,4.4601459,4.5126689,39.6481175,62.7213582,66.7814018,54.9623285,22.0420347,9.561876,15.0984883,61.2696547,32.1221338,46.6760172,47.1948043,40.8511606,61.0018928,2.3289958,38.934889,42.8029287\r\n2506,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.4786201,4.5261146,40.324145,62.3552642,66.0223087,54.7124182,21.385819,9.449162,15.2623336,61.0523414,32.2234614,47.2761956,48.0071104,41.5159012,60.509758,2.289941,38.6650624,43.6690534,4.4601459,4.5126689,39.6481175,62.7213582,66.7814018,54.9623285,22.0420347,9.561876,15.0984883,61.2696547,32.1221338,46.6760172,47.1948043,40.8511606,61.0018928,2.3289958,38.934889,42.8029287,4.3998447,4.471949,39.3765936,61.5952481,67.0006563,53.1569368,21.923144,9.0468688,15.1751515,61.6187069,32.8124063,45.3177103,46.6061677,40.2057724,60.5494173,2.5495535,37.9375489,42.8936639\r\n2507,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.4601459,4.5126689,39.6481175,62.7213582,66.7814018,54.9623285,22.0420347,9.561876,15.0984883,61.2696547,32.1221338,46.6760172,47.1948043,40.8511606,61.0018928,2.3289958,38.934889,42.8029287,4.3998447,4.471949,39.3765936,61.5952481,67.0006563,53.1569368,21.923144,9.0468688,15.1751515,61.6187069,32.8124063,45.3177103,46.6061677,40.2057724,60.5494173,2.5495535,37.9375489,42.8936639,4.357523,4.4528451,38.2639916,61.3914568,67.6093607,51.0467227,21.5993726,9.5457857,15.5240397,61.7038701,33.0594127,46.0443577,46.3802155,39.8607465,60.5624423,2.6886721,37.3876689,42.5554528\r\n2508,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.3998447,4.471949,39.3765936,61.5952481,67.0006563,53.1569368,21.923144,9.0468688,15.1751515,61.6187069,32.8124063,45.3177103,46.6061677,40.2057724,60.5494173,2.5495535,37.9375489,42.8936639,4.357523,4.4528451,38.2639916,61.3914568,67.6093607,51.0467227,21.5993726,9.5457857,15.5240397,61.7038701,33.0594127,46.0443577,46.3802155,39.8607465,60.5624423,2.6886721,37.3876689,42.5554528,4.1254801,4.2259095,36.7330103,60.9630612,67.0811978,51.6672968,22.0331308,10.3289188,15.4024181,61.4658311,33.1222422,45.6991857,45.1220007,38.4816783,59.9896948,2.6295846,37.1076651,40.9867388\r\n2509,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.357523,4.4528451,38.2639916,61.3914568,67.6093607,51.0467227,21.5993726,9.5457857,15.5240397,61.7038701,33.0594127,46.0443577,46.3802155,39.8607465,60.5624423,2.6886721,37.3876689,42.5554528,4.1254801,4.2259095,36.7330103,60.9630612,67.0811978,51.6672968,22.0331308,10.3289188,15.4024181,61.4658311,33.1222422,45.6991857,45.1220007,38.4816783,59.9896948,2.6295846,37.1076651,40.9867388,3.8774487,3.9789726,35.6907237,61.4782734,67.2526613,52.6822651,22.5269903,10.918426,15.5885544,62.4032785,33.8905934,45.7981829,44.1444715,37.6265622,59.9440424,2.8630099,36.7767912,41.6418701\r\n2510,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.1254801,4.2259095,36.7330103,60.9630612,67.0811978,51.6672968,22.0331308,10.3289188,15.4024181,61.4658311,33.1222422,45.6991857,45.1220007,38.4816783,59.9896948,2.6295846,37.1076651,40.9867388,3.8774487,3.9789726,35.6907237,61.4782734,67.2526613,52.6822651,22.5269903,10.918426,15.5885544,62.4032785,33.8905934,45.7981829,44.1444715,37.6265622,59.9440424,2.8630099,36.7767912,41.6418701,3.6548606,3.7359758,34.6399333,60.8290391,66.0677753,52.1180307,22.8712682,9.9511099,15.0204237,62.7725242,34.2404685,45.238739,43.5456504,36.8615632,59.2030445,2.6569596,36.6714464,40.7674455\r\n2511,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.8774487,3.9789726,35.6907237,61.4782734,67.2526613,52.6822651,22.5269903,10.918426,15.5885544,62.4032785,33.8905934,45.7981829,44.1444715,37.6265622,59.9440424,2.8630099,36.7767912,41.6418701,3.6548606,3.7359758,34.6399333,60.8290391,66.0677753,52.1180307,22.8712682,9.9511099,15.0204237,62.7725242,34.2404685,45.238739,43.5456504,36.8615632,59.2030445,2.6569596,36.6714464,40.7674455,3.5008359,3.5440934,33.4743488,60.1933368,64.5938207,53.3009746,22.9236559,9.3909068,14.1157661,63.2113348,34.3642259,44.1121791,42.0386416,35.4249025,58.5867045,2.6034601,36.7434075,39.6941836\r\n2512,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.6548606,3.7359758,34.6399333,60.8290391,66.0677753,52.1180307,22.8712682,9.9511099,15.0204237,62.7725242,34.2404685,45.238739,43.5456504,36.8615632,59.2030445,2.6569596,36.6714464,40.7674455,3.5008359,3.5440934,33.4743488,60.1933368,64.5938207,53.3009746,22.9236559,9.3909068,14.1157661,63.2113348,34.3642259,44.1121791,42.0386416,35.4249025,58.5867045,2.6034601,36.7434075,39.6941836,3.2219282,3.2763483,31.7445903,60.4814151,64.3587344,53.218178,22.656708,8.8082206,14.0524359,63.182092,35.1297265,44.5724423,40.2470287,33.7663407,57.7426942,2.8770031,36.3241836,40.3642771\r\n2513,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.5008359,3.5440934,33.4743488,60.1933368,64.5938207,53.3009746,22.9236559,9.3909068,14.1157661,63.2113348,34.3642259,44.1121791,42.0386416,35.4249025,58.5867045,2.6034601,36.7434075,39.6941836,3.2219282,3.2763483,31.7445903,60.4814151,64.3587344,53.218178,22.656708,8.8082206,14.0524359,63.182092,35.1297265,44.5724423,40.2470287,33.7663407,57.7426942,2.8770031,36.3241836,40.3642771,2.978296,3.0299614,30.8642731,60.5798737,63.3430781,53.9892729,22.5191634,9.4540102,13.3307668,63.717748,34.5217113,44.8488116,39.1763047,33.0461303,57.6967223,2.7977486,36.4028303,38.9025873\r\n2514,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.2219282,3.2763483,31.7445903,60.4814151,64.3587344,53.218178,22.656708,8.8082206,14.0524359,63.182092,35.1297265,44.5724423,40.2470287,33.7663407,57.7426942,2.8770031,36.3241836,40.3642771,2.978296,3.0299614,30.8642731,60.5798737,63.3430781,53.9892729,22.5191634,9.4540102,13.3307668,63.717748,34.5217113,44.8488116,39.1763047,33.0461303,57.6967223,2.7977486,36.4028303,38.9025873,3.0166553,3.0487742,31.1394983,59.0570209,60.632616,53.1174423,23.0834226,8.9610218,13.5914491,63.7849088,34.9277134,43.3421783,37.8683738,31.8989811,57.2671667,2.7973418,36.7793382,38.3974724\r\n2515,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.978296,3.0299614,30.8642731,60.5798737,63.3430781,53.9892729,22.5191634,9.4540102,13.3307668,63.717748,34.5217113,44.8488116,39.1763047,33.0461303,57.6967223,2.7977486,36.4028303,38.9025873,3.0166553,3.0487742,31.1394983,59.0570209,60.632616,53.1174423,23.0834226,8.9610218,13.5914491,63.7849088,34.9277134,43.3421783,37.8683738,31.8989811,57.2671667,2.7973418,36.7793382,38.3974724,2.9294748,2.9353588,30.4687887,60.1373806,60.8892009,52.6897096,23.0817236,8.2825887,13.1248792,63.8781078,34.8955519,43.2685372,37.2459692,31.3672136,56.3795953,3.0145894,37.9565775,38.5471657\r\n2516,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0166553,3.0487742,31.1394983,59.0570209,60.632616,53.1174423,23.0834226,8.9610218,13.5914491,63.7849088,34.9277134,43.3421783,37.8683738,31.8989811,57.2671667,2.7973418,36.7793382,38.3974724,2.9294748,2.9353588,30.4687887,60.1373806,60.8892009,52.6897096,23.0817236,8.2825887,13.1248792,63.8781078,34.8955519,43.2685372,37.2459692,31.3672136,56.3795953,3.0145894,37.9565775,38.5471657,2.7743678,2.7896793,29.3836842,59.5750545,59.8400669,52.6143431,23.345231,6.88603,12.4649939,64.1767687,35.3163691,43.1485992,35.9368774,30.2946142,55.3815066,2.947088,37.947107,36.2937419\r\n2517,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.9294748,2.9353588,30.4687887,60.1373806,60.8892009,52.6897096,23.0817236,8.2825887,13.1248792,63.8781078,34.8955519,43.2685372,37.2459692,31.3672136,56.3795953,3.0145894,37.9565775,38.5471657,2.7743678,2.7896793,29.3836842,59.5750545,59.8400669,52.6143431,23.345231,6.88603,12.4649939,64.1767687,35.3163691,43.1485992,35.9368774,30.2946142,55.3815066,2.947088,37.947107,36.2937419,2.586139,2.6196519,28.1621023,59.7841751,60.0110669,53.2925332,24.0547735,7.2613885,12.5589297,64.4819506,35.0917238,41.8828029,34.2684436,28.8080466,55.0223966,3.1699529,37.5812378,35.6618225\r\n2518,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.7743678,2.7896793,29.3836842,59.5750545,59.8400669,52.6143431,23.345231,6.88603,12.4649939,64.1767687,35.3163691,43.1485992,35.9368774,30.2946142,55.3815066,2.947088,37.947107,36.2937419,2.586139,2.6196519,28.1621023,59.7841751,60.0110669,53.2925332,24.0547735,7.2613885,12.5589297,64.4819506,35.0917238,41.8828029,34.2684436,28.8080466,55.0223966,3.1699529,37.5812378,35.6618225,2.4504251,2.4848342,26.9200086,60.4502579,60.1327041,52.8339363,24.5803243,7.5503761,13.9321102,65.2185449,35.9172633,42.1871592,33.3298189,27.8709057,54.5174745,3.2538534,37.384645,34.7171368\r\n2519,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.586139,2.6196519,28.1621023,59.7841751,60.0110669,53.2925332,24.0547735,7.2613885,12.5589297,64.4819506,35.0917238,41.8828029,34.2684436,28.8080466,55.0223966,3.1699529,37.5812378,35.6618225,2.4504251,2.4848342,26.9200086,60.4502579,60.1327041,52.8339363,24.5803243,7.5503761,13.9321102,65.2185449,35.9172633,42.1871592,33.3298189,27.8709057,54.5174745,3.2538534,37.384645,34.7171368,2.2350121,2.2542871,26.4859061,59.8189934,59.7201098,53.2863323,24.7560807,7.6215733,13.1589285,65.5286881,36.0409021,41.9470567,32.7575927,27.3905277,54.1051012,2.8491222,38.3437634,32.3301722\r\n2520,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.4504251,2.4848342,26.9200086,60.4502579,60.1327041,52.8339363,24.5803243,7.5503761,13.9321102,65.2185449,35.9172633,42.1871592,33.3298189,27.8709057,54.5174745,3.2538534,37.384645,34.7171368,2.2350121,2.2542871,26.4859061,59.8189934,59.7201098,53.2863323,24.7560807,7.6215733,13.1589285,65.5286881,36.0409021,41.9470567,32.7575927,27.3905277,54.1051012,2.8491222,38.3437634,32.3301722,2.1624458,2.1516577,24.6701012,61.1639918,61.3963455,53.6989986,24.9555953,7.1959595,14.2159261,65.0949681,37.2428776,42.8109739,30.9959888,25.5880768,53.7122552,2.7691963,38.8699571,32.5016246\r\n2521,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.2350121,2.2542871,26.4859061,59.8189934,59.7201098,53.2863323,24.7560807,7.6215733,13.1589285,65.5286881,36.0409021,41.9470567,32.7575927,27.3905277,54.1051012,2.8491222,38.3437634,32.3301722,2.1624458,2.1516577,24.6701012,61.1639918,61.3963455,53.6989986,24.9555953,7.1959595,14.2159261,65.0949681,37.2428776,42.8109739,30.9959888,25.5880768,53.7122552,2.7691963,38.8699571,32.5016246,2.0866076,2.0757979,23.1010692,62.2484909,62.8794083,54.8192224,24.5690636,7.685929,14.2904643,65.4629878,36.9520632,43.0169255,30.4557519,24.8844716,53.4998747,2.8845085,38.9333088,31.9987153\r\n2522,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.1624458,2.1516577,24.6701012,61.1639918,61.3963455,53.6989986,24.9555953,7.1959595,14.2159261,65.0949681,37.2428776,42.8109739,30.9959888,25.5880768,53.7122552,2.7691963,38.8699571,32.5016246,2.0866076,2.0757979,23.1010692,62.2484909,62.8794083,54.8192224,24.5690636,7.685929,14.2904643,65.4629878,36.9520632,43.0169255,30.4557519,24.8844716,53.4998747,2.8845085,38.9333088,31.9987153,1.9832104,1.9862135,22.5825208,60.9584717,62.5444636,54.802738,24.4743776,7.2290686,14.3097209,66.0279212,36.4848226,42.0197749,29.3709252,23.8740383,53.6212987,2.9403098,37.6946076,29.9495833\r\n2523,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0866076,2.0757979,23.1010692,62.2484909,62.8794083,54.8192224,24.5690636,7.685929,14.2904643,65.4629878,36.9520632,43.0169255,30.4557519,24.8844716,53.4998747,2.8845085,38.9333088,31.9987153,1.9832104,1.9862135,22.5825208,60.9584717,62.5444636,54.802738,24.4743776,7.2290686,14.3097209,66.0279212,36.4848226,42.0197749,29.3709252,23.8740383,53.6212987,2.9403098,37.6946076,29.9495833,1.9581126,1.9511598,21.7929036,60.1527105,62.5230096,53.831312,25.3391491,7.3407381,15.3135756,66.0770509,36.9059398,41.0443768,28.601155,23.1729936,53.1990568,3.1725448,38.1499148,29.3747504\r\n2524,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.9832104,1.9862135,22.5825208,60.9584717,62.5444636,54.802738,24.4743776,7.2290686,14.3097209,66.0279212,36.4848226,42.0197749,29.3709252,23.8740383,53.6212987,2.9403098,37.6946076,29.9495833,1.9581126,1.9511598,21.7929036,60.1527105,62.5230096,53.831312,25.3391491,7.3407381,15.3135756,66.0770509,36.9059398,41.0443768,28.601155,23.1729936,53.1990568,3.1725448,38.1499148,29.3747504,1.9515056,1.9291429,20.9724116,61.5130747,63.4806971,56.2289745,25.17856,6.7756421,15.3650014,66.0907481,37.5975058,43.1185979,27.6400234,22.4436393,53.6416013,3.0623863,38.471876,28.7840299\r\n2525,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.9581126,1.9511598,21.7929036,60.1527105,62.5230096,53.831312,25.3391491,7.3407381,15.3135756,66.0770509,36.9059398,41.0443768,28.601155,23.1729936,53.1990568,3.1725448,38.1499148,29.3747504,1.9515056,1.9291429,20.9724116,61.5130747,63.4806971,56.2289745,25.17856,6.7756421,15.3650014,66.0907481,37.5975058,43.1185979,27.6400234,22.4436393,53.6416013,3.0623863,38.471876,28.7840299,1.984522,1.992682,21.4142815,61.8080851,64.7113198,56.0417895,25.7870023,6.6812456,14.6960532,65.695312,38.1968781,43.0167703,27.8436761,22.7068226,53.1872843,3.5174553,39.0085856,28.6090039\r\n2526,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.9515056,1.9291429,20.9724116,61.5130747,63.4806971,56.2289745,25.17856,6.7756421,15.3650014,66.0907481,37.5975058,43.1185979,27.6400234,22.4436393,53.6416013,3.0623863,38.471876,28.7840299,1.984522,1.992682,21.4142815,61.8080851,64.7113198,56.0417895,25.7870023,6.6812456,14.6960532,65.695312,38.1968781,43.0167703,27.8436761,22.7068226,53.1872843,3.5174553,39.0085856,28.6090039,2.0672037,2.0664736,20.8360094,61.833518,63.2597464,55.5148849,26.894843,6.0536973,14.6237267,66.4492102,39.0955464,42.1660092,27.4371038,22.0244611,51.7017639,3.7010878,37.657456,28.5796971\r\n2527,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.984522,1.992682,21.4142815,61.8080851,64.7113198,56.0417895,25.7870023,6.6812456,14.6960532,65.695312,38.1968781,43.0167703,27.8436761,22.7068226,53.1872843,3.5174553,39.0085856,28.6090039,2.0672037,2.0664736,20.8360094,61.833518,63.2597464,55.5148849,26.894843,6.0536973,14.6237267,66.4492102,39.0955464,42.1660092,27.4371038,22.0244611,51.7017639,3.7010878,37.657456,28.5796971,2.0527491,2.0632312,20.5136044,59.4856565,61.3270721,55.7233168,28.7358389,6.2042018,13.8204877,67.0740469,39.835092,39.9356184,26.9301315,21.5312855,51.382645,4.0324114,38.6619078,25.8849055\r\n2528,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0672037,2.0664736,20.8360094,61.833518,63.2597464,55.5148849,26.894843,6.0536973,14.6237267,66.4492102,39.0955464,42.1660092,27.4371038,22.0244611,51.7017639,3.7010878,37.657456,28.5796971,2.0527491,2.0632312,20.5136044,59.4856565,61.3270721,55.7233168,28.7358389,6.2042018,13.8204877,67.0740469,39.835092,39.9356184,26.9301315,21.5312855,51.382645,4.0324114,38.6619078,25.8849055,1.9197217,1.9704077,19.6980973,60.158663,62.7424962,55.5998205,29.0233394,5.996265,14.2789353,67.2634944,39.9235654,39.9918219,25.7259219,20.4790666,51.0608244,3.9264144,38.7873594,24.2974074\r\n2529,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0527491,2.0632312,20.5136044,59.4856565,61.3270721,55.7233168,28.7358389,6.2042018,13.8204877,67.0740469,39.835092,39.9356184,26.9301315,21.5312855,51.382645,4.0324114,38.6619078,25.8849055,1.9197217,1.9704077,19.6980973,60.158663,62.7424962,55.5998205,29.0233394,5.996265,14.2789353,67.2634944,39.9235654,39.9918219,25.7259219,20.4790666,51.0608244,3.9264144,38.7873594,24.2974074,1.8557231,1.9272137,18.1895734,60.4442,62.5062828,54.631786,29.2642482,6.5963225,13.0364787,67.5323943,41.3115492,39.6402068,25.0293078,19.622115,50.9791746,4.1504441,39.5513506,23.4426553\r\n2530,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.9197217,1.9704077,19.6980973,60.158663,62.7424962,55.5998205,29.0233394,5.996265,14.2789353,67.2634944,39.9235654,39.9918219,25.7259219,20.4790666,51.0608244,3.9264144,38.7873594,24.2974074,1.8557231,1.9272137,18.1895734,60.4442,62.5062828,54.631786,29.2642482,6.5963225,13.0364787,67.5323943,41.3115492,39.6402068,25.0293078,19.622115,50.9791746,4.1504441,39.5513506,23.4426553,1.7750957,1.8455096,18.0952174,60.7157472,62.9105528,56.2292351,29.1603019,6.6331831,12.6207455,67.4186452,41.0667503,40.2737971,24.9456578,19.0819546,51.4178646,3.8346108,39.066072,19.8611352\r\n2531,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.8557231,1.9272137,18.1895734,60.4442,62.5062828,54.631786,29.2642482,6.5963225,13.0364787,67.5323943,41.3115492,39.6402068,25.0293078,19.622115,50.9791746,4.1504441,39.5513506,23.4426553,1.7750957,1.8455096,18.0952174,60.7157472,62.9105528,56.2292351,29.1603019,6.6331831,12.6207455,67.4186452,41.0667503,40.2737971,24.9456578,19.0819546,51.4178646,3.8346108,39.066072,19.8611352,1.7944308,1.8657196,17.5794913,59.2167389,62.5880273,54.94462,28.8072186,6.7079314,13.5234733,67.1241264,41.1932342,39.0178942,24.5722478,18.4333312,49.9686047,4.1068396,39.521598,18.3560307\r\n2532,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.7750957,1.8455096,18.0952174,60.7157472,62.9105528,56.2292351,29.1603019,6.6331831,12.6207455,67.4186452,41.0667503,40.2737971,24.9456578,19.0819546,51.4178646,3.8346108,39.066072,19.8611352,1.7944308,1.8657196,17.5794913,59.2167389,62.5880273,54.94462,28.8072186,6.7079314,13.5234733,67.1241264,41.1932342,39.0178942,24.5722478,18.4333312,49.9686047,4.1068396,39.521598,18.3560307,1.5989408,1.6379135,16.5924547,57.371109,61.1349352,54.2877842,29.3005265,6.7611788,13.8170204,66.8612474,41.4516253,38.4507434,23.3179503,17.1159923,49.4298791,3.6535293,38.8673191,16.0448348\r\n2533,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.7944308,1.8657196,17.5794913,59.2167389,62.5880273,54.94462,28.8072186,6.7079314,13.5234733,67.1241264,41.1932342,39.0178942,24.5722478,18.4333312,49.9686047,4.1068396,39.521598,18.3560307,1.5989408,1.6379135,16.5924547,57.371109,61.1349352,54.2877842,29.3005265,6.7611788,13.8170204,66.8612474,41.4516253,38.4507434,23.3179503,17.1159923,49.4298791,3.6535293,38.8673191,16.0448348,1.6982732,1.7156005,16.3028384,57.0750082,60.2874042,54.2085645,29.1140838,6.754834,14.1580188,66.151546,40.8046455,38.8045019,22.5012556,16.6126143,49.5527917,3.6847881,39.9766625,15.470741\r\n2534,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.5989408,1.6379135,16.5924547,57.371109,61.1349352,54.2877842,29.3005265,6.7611788,13.8170204,66.8612474,41.4516253,38.4507434,23.3179503,17.1159923,49.4298791,3.6535293,38.8673191,16.0448348,1.6982732,1.7156005,16.3028384,57.0750082,60.2874042,54.2085645,29.1140838,6.754834,14.1580188,66.151546,40.8046455,38.8045019,22.5012556,16.6126143,49.5527917,3.6847881,39.9766625,15.470741,1.5821824,1.599598,15.0036797,58.7818307,61.9094212,53.5582684,27.4539856,6.8994809,14.0917461,66.3053059,40.1137977,39.7159296,21.4950436,15.6211606,48.5390043,3.200754,39.3112209,16.7934124\r\n2535,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.6982732,1.7156005,16.3028384,57.0750082,60.2874042,54.2085645,29.1140838,6.754834,14.1580188,66.151546,40.8046455,38.8045019,22.5012556,16.6126143,49.5527917,3.6847881,39.9766625,15.470741,1.5821824,1.599598,15.0036797,58.7818307,61.9094212,53.5582684,27.4539856,6.8994809,14.0917461,66.3053059,40.1137977,39.7159296,21.4950436,15.6211606,48.5390043,3.200754,39.3112209,16.7934124,1.5957891,1.6048393,15.0189948,58.3998974,61.3951645,53.0705255,28.8589319,6.4886389,14.3419422,66.0569434,41.7173142,40.6280159,21.0260871,15.1842513,47.5556028,3.535525,38.8583209,15.1790151\r\n2536,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.5821824,1.599598,15.0036797,58.7818307,61.9094212,53.5582684,27.4539856,6.8994809,14.0917461,66.3053059,40.1137977,39.7159296,21.4950436,15.6211606,48.5390043,3.200754,39.3112209,16.7934124,1.5957891,1.6048393,15.0189948,58.3998974,61.3951645,53.0705255,28.8589319,6.4886389,14.3419422,66.0569434,41.7173142,40.6280159,21.0260871,15.1842513,47.5556028,3.535525,38.8583209,15.1790151,1.6138116,1.6138083,15.6923196,58.5331688,62.561576,54.0784237,29.933921,5.8957436,15.6715713,66.0415898,41.7148698,40.2186659,21.0701344,15.2587002,46.729993,3.3688793,38.4952856,15.4707277\r\n2537,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.5957891,1.6048393,15.0189948,58.3998974,61.3951645,53.0705255,28.8589319,6.4886389,14.3419422,66.0569434,41.7173142,40.6280159,21.0260871,15.1842513,47.5556028,3.535525,38.8583209,15.1790151,1.6138116,1.6138083,15.6923196,58.5331688,62.561576,54.0784237,29.933921,5.8957436,15.6715713,66.0415898,41.7148698,40.2186659,21.0701344,15.2587002,46.729993,3.3688793,38.4952856,15.4707277,1.5371349,1.5371315,15.8166487,58.838301,62.5878166,53.2812098,29.9735143,5.8035651,15.3349059,66.9235043,42.6844332,39.1458343,20.7862216,15.2215403,44.8111541,3.6240546,37.927103,15.4232027\r\n2538,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.6138116,1.6138083,15.6923196,58.5331688,62.561576,54.0784237,29.933921,5.8957436,15.6715713,66.0415898,41.7148698,40.2186659,21.0701344,15.2587002,46.729993,3.3688793,38.4952856,15.4707277,1.5371349,1.5371315,15.8166487,58.838301,62.5878166,53.2812098,29.9735143,5.8035651,15.3349059,66.9235043,42.6844332,39.1458343,20.7862216,15.2215403,44.8111541,3.6240546,37.927103,15.4232027,1.3990788,1.3808854,15.2052782,58.3152015,62.2963041,52.5151622,31.4666771,6.2531647,15.2630291,68.0846546,43.1791954,38.4439075,19.9042867,14.57454,43.3912542,3.6455656,37.4055205,14.7587473\r\n2539,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.5371349,1.5371315,15.8166487,58.838301,62.5878166,53.2812098,29.9735143,5.8035651,15.3349059,66.9235043,42.6844332,39.1458343,20.7862216,15.2215403,44.8111541,3.6240546,37.927103,15.4232027,1.3990788,1.3808854,15.2052782,58.3152015,62.2963041,52.5151622,31.4666771,6.2531647,15.2630291,68.0846546,43.1791954,38.4439075,19.9042867,14.57454,43.3912542,3.6455656,37.4055205,14.7587473,1.3020259,1.3204601,14.4372515,60.180191,63.1921102,52.8676042,30.4574017,6.2361621,14.486621,68.9004665,43.0427757,39.8090471,19.1294577,14.2241719,42.9348431,3.9682365,38.0403439,16.0489165\r\n2540,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.3990788,1.3808854,15.2052782,58.3152015,62.2963041,52.5151622,31.4666771,6.2531647,15.2630291,68.0846546,43.1791954,38.4439075,19.9042867,14.57454,43.3912542,3.6455656,37.4055205,14.7587473,1.3020259,1.3204601,14.4372515,60.180191,63.1921102,52.8676042,30.4574017,6.2361621,14.486621,68.9004665,43.0427757,39.8090471,19.1294577,14.2241719,42.9348431,3.9682365,38.0403439,16.0489165,0.981631,1.0264308,13.773999,60.6249471,65.6344846,53.0651306,29.9336962,6.4236527,14.2910138,69.3085522,43.353357,38.6897671,18.6805662,13.6686962,42.1917079,3.8062738,38.2935638,14.8841149\r\n2541,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.3020259,1.3204601,14.4372515,60.180191,63.1921102,52.8676042,30.4574017,6.2361621,14.486621,68.9004665,43.0427757,39.8090471,19.1294577,14.2241719,42.9348431,3.9682365,38.0403439,16.0489165,0.981631,1.0264308,13.773999,60.6249471,65.6344846,53.0651306,29.9336962,6.4236527,14.2910138,69.3085522,43.353357,38.6897671,18.6805662,13.6686962,42.1917079,3.8062738,38.2935638,14.8841149,0.9870351,1.0567591,14.5164373,59.6751468,63.7646528,53.6854867,30.3080024,5.6846087,14.6746205,69.2736963,42.7801392,37.0898215,18.8865474,13.9520438,41.4501067,3.9809707,38.7311985,10.1687822\r\n2542,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.981631,1.0264308,13.773999,60.6249471,65.6344846,53.0651306,29.9336962,6.4236527,14.2910138,69.3085522,43.353357,38.6897671,18.6805662,13.6686962,42.1917079,3.8062738,38.2935638,14.8841149,0.9870351,1.0567591,14.5164373,59.6751468,63.7646528,53.6854867,30.3080024,5.6846087,14.6746205,69.2736963,42.7801392,37.0898215,18.8865474,13.9520438,41.4501067,3.9809707,38.7311985,10.1687822,0.9382532,0.9840945,14.111039,58.7229127,63.7014928,54.2255472,30.1489312,5.4178428,13.6358055,70.2804939,41.7113483,36.6846652,18.5733764,13.5410139,40.6724091,3.6265541,39.7065349,10.2674283\r\n2543,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9870351,1.0567591,14.5164373,59.6751468,63.7646528,53.6854867,30.3080024,5.6846087,14.6746205,69.2736963,42.7801392,37.0898215,18.8865474,13.9520438,41.4501067,3.9809707,38.7311985,10.1687822,0.9382532,0.9840945,14.111039,58.7229127,63.7014928,54.2255472,30.1489312,5.4178428,13.6358055,70.2804939,41.7113483,36.6846652,18.5733764,13.5410139,40.6724091,3.6265541,39.7065349,10.2674283,1.0092935,1.0429005,13.6773974,58.7018475,63.7672651,53.8404293,28.7205809,5.6406238,14.4294373,70.4189486,41.2990318,37.0426406,17.8575986,13.0806618,40.4746947,3.6838845,41.4871522,8.4085044\r\n2544,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9382532,0.9840945,14.111039,58.7229127,63.7014928,54.2255472,30.1489312,5.4178428,13.6358055,70.2804939,41.7113483,36.6846652,18.5733764,13.5410139,40.6724091,3.6265541,39.7065349,10.2674283,1.0092935,1.0429005,13.6773974,58.7018475,63.7672651,53.8404293,28.7205809,5.6406238,14.4294373,70.4189486,41.2990318,37.0426406,17.8575986,13.0806618,40.4746947,3.6838845,41.4871522,8.4085044,1.1405139,1.1749726,12.2291517,58.9826453,63.869084,53.2605659,28.7698774,6.1472758,14.966574,69.7379232,40.5160068,36.878079,16.8728448,12.2500495,39.9627533,3.5074412,42.9708971,10.3521534\r\n2545,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0092935,1.0429005,13.6773974,58.7018475,63.7672651,53.8404293,28.7205809,5.6406238,14.4294373,70.4189486,41.2990318,37.0426406,17.8575986,13.0806618,40.4746947,3.6838845,41.4871522,8.4085044,1.1405139,1.1749726,12.2291517,58.9826453,63.869084,53.2605659,28.7698774,6.1472758,14.966574,69.7379232,40.5160068,36.878079,16.8728448,12.2500495,39.9627533,3.5074412,42.9708971,10.3521534,1.2320234,1.2805656,12.5778519,60.218781,64.8428773,53.651099,27.6487497,5.3179791,14.4259639,70.1284101,40.8381563,38.2784021,17.477324,12.8022533,39.9894592,3.2068336,44.6498844,9.96223\r\n2546,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.1405139,1.1749726,12.2291517,58.9826453,63.869084,53.2605659,28.7698774,6.1472758,14.966574,69.7379232,40.5160068,36.878079,16.8728448,12.2500495,39.9627533,3.5074412,42.9708971,10.3521534,1.2320234,1.2805656,12.5778519,60.218781,64.8428773,53.651099,27.6487497,5.3179791,14.4259639,70.1284101,40.8381563,38.2784021,17.477324,12.8022533,39.9894592,3.2068336,44.6498844,9.96223,1.2385571,1.2670581,13.023007,58.2015202,63.2614233,53.1798091,29.0053634,5.1479415,14.3969577,70.2785217,41.6143413,36.7979081,17.9676602,13.1906239,38.8669299,3.0902993,43.3989333,8.3982899\r\n2547,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.2320234,1.2805656,12.5778519,60.218781,64.8428773,53.651099,27.6487497,5.3179791,14.4259639,70.1284101,40.8381563,38.2784021,17.477324,12.8022533,39.9894592,3.2068336,44.6498844,9.96223,1.2385571,1.2670581,13.023007,58.2015202,63.2614233,53.1798091,29.0053634,5.1479415,14.3969577,70.2785217,41.6143413,36.7979081,17.9676602,13.1906239,38.8669299,3.0902993,43.3989333,8.3982899,1.363983,1.3571731,12.3510174,57.8749589,62.8782639,52.8166485,29.4164409,5.5893077,15.1143718,71.2457369,41.4971621,37.8942215,17.4745725,12.6434892,39.0060095,3.2468854,42.3479651,8.5765348\r\n2548,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.2385571,1.2670581,13.023007,58.2015202,63.2614233,53.1798091,29.0053634,5.1479415,14.3969577,70.2785217,41.6143413,36.7979081,17.9676602,13.1906239,38.8669299,3.0902993,43.3989333,8.3982899,1.363983,1.3571731,12.3510174,57.8749589,62.8782639,52.8166485,29.4164409,5.5893077,15.1143718,71.2457369,41.4971621,37.8942215,17.4745725,12.6434892,39.0060095,3.2468854,42.3479651,8.5765348,1.2561152,1.2217624,11.8293697,58.406863,64.8021336,53.8020557,30.1481106,5.6770338,14.8555283,70.8025269,41.9723688,39.1769976,17.5840079,12.7105358,38.7095702,3.4260543,42.8081637,10.9613914\r\n2549,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.363983,1.3571731,12.3510174,57.8749589,62.8782639,52.8166485,29.4164409,5.5893077,15.1143718,71.2457369,41.4971621,37.8942215,17.4745725,12.6434892,39.0060095,3.2468854,42.3479651,8.5765348,1.2561152,1.2217624,11.8293697,58.406863,64.8021336,53.8020557,30.1481106,5.6770338,14.8555283,70.8025269,41.9723688,39.1769976,17.5840079,12.7105358,38.7095702,3.4260543,42.8081637,10.9613914,1.2752525,1.226384,10.9598953,59.5458742,65.2124822,54.2919242,28.8811958,6.2160404,15.1553076,70.8151691,42.1828436,39.1360521,17.015628,12.3892094,38.2380967,3.7653818,41.7486332,10.9998464\r\n2550,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.2561152,1.2217624,11.8293697,58.406863,64.8021336,53.8020557,30.1481106,5.6770338,14.8555283,70.8025269,41.9723688,39.1769976,17.5840079,12.7105358,38.7095702,3.4260543,42.8081637,10.9613914,1.2752525,1.226384,10.9598953,59.5458742,65.2124822,54.2919242,28.8811958,6.2160404,15.1553076,70.8151691,42.1828436,39.1360521,17.015628,12.3892094,38.2380967,3.7653818,41.7486332,10.9998464,1.2188439,1.1693114,10.6535097,58.5597552,63.7726981,55.2872989,30.0521794,5.7711386,15.1073659,70.5607583,43.2941375,39.2023449,16.8176628,12.0771735,37.3112408,3.679262,39.6231888,10.3920168\r\n2551,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.2752525,1.226384,10.9598953,59.5458742,65.2124822,54.2919242,28.8811958,6.2160404,15.1553076,70.8151691,42.1828436,39.1360521,17.015628,12.3892094,38.2380967,3.7653818,41.7486332,10.9998464,1.2188439,1.1693114,10.6535097,58.5597552,63.7726981,55.2872989,30.0521794,5.7711386,15.1073659,70.5607583,43.2941375,39.2023449,16.8176628,12.0771735,37.3112408,3.679262,39.6231888,10.3920168,1.0025104,0.9537521,10.7514716,57.4076861,63.3480764,56.2588782,31.1301793,5.0495011,14.2059991,71.7427536,45.0893718,38.3583048,16.1962657,11.3744876,36.4917943,3.8556164,39.9342568,9.1083718\r\n2552,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.2188439,1.1693114,10.6535097,58.5597552,63.7726981,55.2872989,30.0521794,5.7711386,15.1073659,70.5607583,43.2941375,39.2023449,16.8176628,12.0771735,37.3112408,3.679262,39.6231888,10.3920168,1.0025104,0.9537521,10.7514716,57.4076861,63.3480764,56.2588782,31.1301793,5.0495011,14.2059991,71.7427536,45.0893718,38.3583048,16.1962657,11.3744876,36.4917943,3.8556164,39.9342568,9.1083718,1.1530945,1.0923079,10.243104,56.2754598,62.3119467,55.4017401,31.6515971,5.2418086,13.8296986,71.3913056,45.3778716,36.4982267,15.7977865,10.8044029,35.8335558,3.8254907,39.3581347,8.6395566\r\n2553,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0025104,0.9537521,10.7514716,57.4076861,63.3480764,56.2588782,31.1301793,5.0495011,14.2059991,71.7427536,45.0893718,38.3583048,16.1962657,11.3744876,36.4917943,3.8556164,39.9342568,9.1083718,1.1530945,1.0923079,10.243104,56.2754598,62.3119467,55.4017401,31.6515971,5.2418086,13.8296986,71.3913056,45.3778716,36.4982267,15.7977865,10.8044029,35.8335558,3.8254907,39.3581347,8.6395566,1.3053045,1.2545738,9.7791896,58.3003721,63.9642445,56.3812679,30.4654807,4.8787528,13.8118216,70.1279105,44.3758094,36.505191,15.382673,10.2821434,35.7468692,3.7832983,39.5035303,8.5766329\r\n2554,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.1530945,1.0923079,10.243104,56.2754598,62.3119467,55.4017401,31.6515971,5.2418086,13.8296986,71.3913056,45.3778716,36.4982267,15.7977865,10.8044029,35.8335558,3.8254907,39.3581347,8.6395566,1.3053045,1.2545738,9.7791896,58.3003721,63.9642445,56.3812679,30.4654807,4.8787528,13.8118216,70.1279105,44.3758094,36.505191,15.382673,10.2821434,35.7468692,3.7832983,39.5035303,8.5766329,1.1236437,1.1135193,10.4469135,58.2646733,63.134954,56.7019358,30.6823886,4.3721572,12.6751065,69.4481378,45.2030788,35.3742837,15.3806443,10.582527,35.5490231,4.1330886,39.1269463,7.377657\r\n2555,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.3053045,1.2545738,9.7791896,58.3003721,63.9642445,56.3812679,30.4654807,4.8787528,13.8118216,70.1279105,44.3758094,36.505191,15.382673,10.2821434,35.7468692,3.7832983,39.5035303,8.5766329,1.1236437,1.1135193,10.4469135,58.2646733,63.134954,56.7019358,30.6823886,4.3721572,12.6751065,69.4481378,45.2030788,35.3742837,15.3806443,10.582527,35.5490231,4.1330886,39.1269463,7.377657,1.3155896,1.3057881,10.4725125,56.9678958,61.8597905,55.0311482,30.2589147,3.9965497,12.9957174,70.2373495,46.1124483,34.8029177,15.1627752,10.3303623,34.9247175,4.243337,37.7570093,7.3222826\r\n2556,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.1236437,1.1135193,10.4469135,58.2646733,63.134954,56.7019358,30.6823886,4.3721572,12.6751065,69.4481378,45.2030788,35.3742837,15.3806443,10.582527,35.5490231,4.1330886,39.1269463,7.377657,1.3155896,1.3057881,10.4725125,56.9678958,61.8597905,55.0311482,30.2589147,3.9965497,12.9957174,70.2373495,46.1124483,34.8029177,15.1627752,10.3303623,34.9247175,4.243337,37.7570093,7.3222826,1.3372368,1.3326223,10.5278159,55.2276673,61.7277152,53.4282169,30.9573565,3.6337264,11.951974,70.5275615,46.5694952,32.1235672,14.8907076,10.0967543,34.1295877,4.0991513,37.722201,7.8586011\r\n2557,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.3155896,1.3057881,10.4725125,56.9678958,61.8597905,55.0311482,30.2589147,3.9965497,12.9957174,70.2373495,46.1124483,34.8029177,15.1627752,10.3303623,34.9247175,4.243337,37.7570093,7.3222826,1.3372368,1.3326223,10.5278159,55.2276673,61.7277152,53.4282169,30.9573565,3.6337264,11.951974,70.5275615,46.5694952,32.1235672,14.8907076,10.0967543,34.1295877,4.0991513,37.722201,7.8586011,1.1342685,1.1369073,10.1958703,55.6101685,62.0070843,54.3027664,30.8739463,4.063659,11.9849866,71.2634612,46.2086698,31.3202112,14.6973264,10.0718097,33.8444677,4.2537952,37.5624253,7.8584748\r\n2558,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.3372368,1.3326223,10.5278159,55.2276673,61.7277152,53.4282169,30.9573565,3.6337264,11.951974,70.5275615,46.5694952,32.1235672,14.8907076,10.0967543,34.1295877,4.0991513,37.722201,7.8586011,1.1342685,1.1369073,10.1958703,55.6101685,62.0070843,54.3027664,30.8739463,4.063659,11.9849866,71.2634612,46.2086698,31.3202112,14.6973264,10.0718097,33.8444677,4.2537952,37.5624253,7.8584748,1.2368055,1.2451154,9.6084041,57.2941498,63.5903416,54.0848791,29.6320179,4.4456437,11.8438849,70.5782595,44.7165384,31.9590215,14.4786749,9.8946642,34.8022109,4.1729489,36.5094148,7.4732306\r\n2559,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.1342685,1.1369073,10.1958703,55.6101685,62.0070843,54.3027664,30.8739463,4.063659,11.9849866,71.2634612,46.2086698,31.3202112,14.6973264,10.0718097,33.8444677,4.2537952,37.5624253,7.8584748,1.2368055,1.2451154,9.6084041,57.2941498,63.5903416,54.0848791,29.6320179,4.4456437,11.8438849,70.5782595,44.7165384,31.9590215,14.4786749,9.8946642,34.8022109,4.1729489,36.5094148,7.4732306,1.1162502,1.2020449,9.6847217,58.7734759,64.3400547,56.2282861,28.3683974,4.186509,11.682558,70.4328159,44.0819936,33.084908,14.5940201,10.0083349,34.3961788,4.2818444,36.3965323,7.5198947\r\n2560,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.2368055,1.2451154,9.6084041,57.2941498,63.5903416,54.0848791,29.6320179,4.4456437,11.8438849,70.5782595,44.7165384,31.9590215,14.4786749,9.8946642,34.8022109,4.1729489,36.5094148,7.4732306,1.1162502,1.2020449,9.6847217,58.7734759,64.3400547,56.2282861,28.3683974,4.186509,11.682558,70.4328159,44.0819936,33.084908,14.5940201,10.0083349,34.3961788,4.2818444,36.3965323,7.5198947,0.9723524,1.0562308,9.904771,57.4865993,63.3337245,57.3712835,29.0042784,4.2290432,11.4459113,70.7220833,44.4195165,31.9704745,14.2476878,9.7560169,33.9958647,4.2740022,36.281848,7.4804227\r\n2561,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.1162502,1.2020449,9.6847217,58.7734759,64.3400547,56.2282861,28.3683974,4.186509,11.682558,70.4328159,44.0819936,33.084908,14.5940201,10.0083349,34.3961788,4.2818444,36.3965323,7.5198947,0.9723524,1.0562308,9.904771,57.4865993,63.3337245,57.3712835,29.0042784,4.2290432,11.4459113,70.7220833,44.4195165,31.9704745,14.2476878,9.7560169,33.9958647,4.2740022,36.281848,7.4804227,1.0105534,1.1280327,9.4625123,56.7010413,63.7182697,56.3704937,28.5227849,4.2071663,11.7561749,70.4895749,43.8619618,31.204886,14.3372343,9.6048054,33.1161067,4.249461,37.3134209,7.383898\r\n2562,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9723524,1.0562308,9.904771,57.4865993,63.3337245,57.3712835,29.0042784,4.2290432,11.4459113,70.7220833,44.4195165,31.9704745,14.2476878,9.7560169,33.9958647,4.2740022,36.281848,7.4804227,1.0105534,1.1280327,9.4625123,56.7010413,63.7182697,56.3704937,28.5227849,4.2071663,11.7561749,70.4895749,43.8619618,31.204886,14.3372343,9.6048054,33.1161067,4.249461,37.3134209,7.383898,0.8383847,0.9833883,9.0037692,57.931466,64.0419488,57.0718445,29.119267,5.2754452,10.8587344,69.7188431,44.1863465,31.359817,13.6593466,9.0912008,32.9558823,4.3300748,38.4474899,6.4731202\r\n2563,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.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,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0105534,1.1280327,9.4625123,56.7010413,63.7182697,56.3704937,28.5227849,4.2071663,11.7561749,70.4895749,43.8619618,31.204886,14.3372343,9.6048054,33.1161067,4.249461,37.3134209,7.383898,0.8383847,0.9833883,9.0037692,57.931466,64.0419488,57.0718445,29.119267,5.2754452,10.8587344,69.7188431,44.1863465,31.359817,13.6593466,9.0912008,32.9558823,4.3300748,38.4474899,6.4731202,0.7419678,0.8706684,8.9886629,59.6269644,63.6467907,58.0586429,29.3527914,5.0619715,11.3234132,69.0726713,43.5556022,32.4779783,14.0681402,9.2048673,32.5682335,4.3595905,39.9073025,6.4592327\r\n2564,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.1876974,4.3200895,31.2969845,72.1484857,71.6788029,64.552501,26.3458985,14.9691269,15.4837455,60.2191593,33.9715284,53.8869821,39.326412,31.4099598,60.1280419,3.6949035,40.8579023,26.3094189,4.3407732,4.4728321,32.8966455,71.371039,71.0382498,64.3339142,24.9796037,14.813743,15.6820535,59.8300138,33.3045279,54.4127943,40.8811328,32.7199274,60.8648682,3.5604127,41.0284893,27.0786295,4.4139295,4.5318582,34.7452097,71.5588632,71.0336119,64.1862849,23.5458883,15.1141135,16.1795708,59.80942,32.9553446,55.1741889,42.6979486,34.3916407,61.234525,3.562896,41.1337485,28.0030302\r\n2565,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.3407732,4.4728321,32.8966455,71.371039,71.0382498,64.3339142,24.9796037,14.813743,15.6820535,59.8300138,33.3045279,54.4127943,40.8811328,32.7199274,60.8648682,3.5604127,41.0284893,27.0786295,4.4139295,4.5318582,34.7452097,71.5588632,71.0336119,64.1862849,23.5458883,15.1141135,16.1795708,59.80942,32.9553446,55.1741889,42.6979486,34.3916407,61.234525,3.562896,41.1337485,28.0030302,4.5744591,4.7093989,35.8475101,71.8659086,71.2065307,63.5114932,22.5681174,15.9396579,16.6412764,59.2515246,32.5486901,55.5191594,43.7497485,35.3902185,62.4960218,3.591203,41.48222,29.1739049\r\n2566,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.4139295,4.5318582,34.7452097,71.5588632,71.0336119,64.1862849,23.5458883,15.1141135,16.1795708,59.80942,32.9553446,55.1741889,42.6979486,34.3916407,61.234525,3.562896,41.1337485,28.0030302,4.5744591,4.7093989,35.8475101,71.8659086,71.2065307,63.5114932,22.5681174,15.9396579,16.6412764,59.2515246,32.5486901,55.5191594,43.7497485,35.3902185,62.4960218,3.591203,41.48222,29.1739049,4.7031626,4.8687876,36.8964491,72.1392835,71.3767674,63.1537854,21.5506572,17.0042416,16.7026073,58.9318085,32.171752,55.9932051,44.7409627,36.3571031,63.1295895,3.6306985,41.5742577,30.7552729\r\n2567,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.5744591,4.7093989,35.8475101,71.8659086,71.2065307,63.5114932,22.5681174,15.9396579,16.6412764,59.2515246,32.5486901,55.5191594,43.7497485,35.3902185,62.4960218,3.591203,41.48222,29.1739049,4.7031626,4.8687876,36.8964491,72.1392835,71.3767674,63.1537854,21.5506572,17.0042416,16.7026073,58.9318085,32.171752,55.9932051,44.7409627,36.3571031,63.1295895,3.6306985,41.5742577,30.7552729,4.8009832,4.9703616,37.9961628,72.3630145,71.5181425,63.6261294,21.2745211,17.5735587,16.5864901,58.7537657,31.632323,56.5936281,45.7574945,37.4944555,63.6603217,3.5359144,41.3563272,31.880343\r\n2568,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.7031626,4.8687876,36.8964491,72.1392835,71.3767674,63.1537854,21.5506572,17.0042416,16.7026073,58.9318085,32.171752,55.9932051,44.7409627,36.3571031,63.1295895,3.6306985,41.5742577,30.7552729,4.8009832,4.9703616,37.9961628,72.3630145,71.5181425,63.6261294,21.2745211,17.5735587,16.5864901,58.7537657,31.632323,56.5936281,45.7574945,37.4944555,63.6603217,3.5359144,41.3563272,31.880343,4.9283822,5.0703726,38.8249967,72.4469969,71.5883101,63.8419476,20.7810265,17.4861042,16.1428097,58.328974,31.329527,57.7169214,46.3308327,38.2410951,64.7139967,3.5522213,41.2229834,32.4928678\r\n2569,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.8009832,4.9703616,37.9961628,72.3630145,71.5181425,63.6261294,21.2745211,17.5735587,16.5864901,58.7537657,31.632323,56.5936281,45.7574945,37.4944555,63.6603217,3.5359144,41.3563272,31.880343,4.9283822,5.0703726,38.8249967,72.4469969,71.5883101,63.8419476,20.7810265,17.4861042,16.1428097,58.328974,31.329527,57.7169214,46.3308327,38.2410951,64.7139967,3.5522213,41.2229834,32.4928678,4.9348943,5.0747169,39.0578701,72.4443047,71.3657523,63.1407872,20.2120827,18.2023256,16.434419,57.5942212,31.00839,58.2789363,46.7555403,38.5607594,64.9464601,3.4824535,41.9811407,33.5268024\r\n2570,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.9283822,5.0703726,38.8249967,72.4469969,71.5883101,63.8419476,20.7810265,17.4861042,16.1428097,58.328974,31.329527,57.7169214,46.3308327,38.2410951,64.7139967,3.5522213,41.2229834,32.4928678,4.9348943,5.0747169,39.0578701,72.4443047,71.3657523,63.1407872,20.2120827,18.2023256,16.434419,57.5942212,31.00839,58.2789363,46.7555403,38.5607594,64.9464601,3.4824535,41.9811407,33.5268024,4.9571379,5.1239212,39.8180518,73.1611106,71.7793949,63.3732886,19.5407345,19.1604594,16.5223482,57.2573824,30.7150071,58.8175683,47.2836565,39.1784864,65.6208081,3.4394527,42.4402728,33.6950819\r\n2571,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.9348943,5.0747169,39.0578701,72.4443047,71.3657523,63.1407872,20.2120827,18.2023256,16.434419,57.5942212,31.00839,58.2789363,46.7555403,38.5607594,64.9464601,3.4824535,41.9811407,33.5268024,4.9571379,5.1239212,39.8180518,73.1611106,71.7793949,63.3732886,19.5407345,19.1604594,16.5223482,57.2573824,30.7150071,58.8175683,47.2836565,39.1784864,65.6208081,3.4394527,42.4402728,33.6950819,5.163763,5.3603926,40.2532624,73.1303382,71.8159323,63.356679,19.3780042,19.4254789,16.3100369,57.7084841,31.4580375,58.5679527,47.6904685,39.6679115,66.061328,3.4066581,42.6648897,34.2993128\r\n2572,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.9571379,5.1239212,39.8180518,73.1611106,71.7793949,63.3732886,19.5407345,19.1604594,16.5223482,57.2573824,30.7150071,58.8175683,47.2836565,39.1784864,65.6208081,3.4394527,42.4402728,33.6950819,5.163763,5.3603926,40.2532624,73.1303382,71.8159323,63.356679,19.3780042,19.4254789,16.3100369,57.7084841,31.4580375,58.5679527,47.6904685,39.6679115,66.061328,3.4066581,42.6648897,34.2993128,5.2242192,5.4145813,40.9384908,73.1119147,71.3064524,63.8414676,19.4350837,19.5725884,16.2585802,57.7849225,31.4035031,58.8812945,48.7162601,40.7230684,66.0780801,3.3337179,42.5867696,34.6388179\r\n2573,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.163763,5.3603926,40.2532624,73.1303382,71.8159323,63.356679,19.3780042,19.4254789,16.3100369,57.7084841,31.4580375,58.5679527,47.6904685,39.6679115,66.061328,3.4066581,42.6648897,34.2993128,5.2242192,5.4145813,40.9384908,73.1119147,71.3064524,63.8414676,19.4350837,19.5725884,16.2585802,57.7849225,31.4035031,58.8812945,48.7162601,40.7230684,66.0780801,3.3337179,42.5867696,34.6388179,5.171595,5.3614005,41.6490549,72.5169779,70.5172701,63.805748,19.1218121,19.34826,16.2609451,57.6379308,30.8558408,59.0808353,49.4454069,41.666937,66.7138705,3.2348673,42.9255556,34.4638841\r\n2574,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.2242192,5.4145813,40.9384908,73.1119147,71.3064524,63.8414676,19.4350837,19.5725884,16.2585802,57.7849225,31.4035031,58.8812945,48.7162601,40.7230684,66.0780801,3.3337179,42.5867696,34.6388179,5.171595,5.3614005,41.6490549,72.5169779,70.5172701,63.805748,19.1218121,19.34826,16.2609451,57.6379308,30.8558408,59.0808353,49.4454069,41.666937,66.7138705,3.2348673,42.9255556,34.4638841,5.2079759,5.3883579,41.5010342,72.7753597,70.8405694,63.3795077,18.8552775,19.7118804,16.5932756,57.1607232,30.5298913,59.4040805,49.5232588,41.6094762,67.5070055,3.1875708,43.4108297,34.440193\r\n2575,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.171595,5.3614005,41.6490549,72.5169779,70.5172701,63.805748,19.1218121,19.34826,16.2609451,57.6379308,30.8558408,59.0808353,49.4454069,41.666937,66.7138705,3.2348673,42.9255556,34.4638841,5.2079759,5.3883579,41.5010342,72.7753597,70.8405694,63.3795077,18.8552775,19.7118804,16.5932756,57.1607232,30.5298913,59.4040805,49.5232588,41.6094762,67.5070055,3.1875708,43.4108297,34.440193,5.1872552,5.3891452,41.87969,72.3268326,70.0215066,62.8484801,18.795649,20.1375829,17.301653,56.6323989,29.9745898,58.1578578,49.7135748,41.7997396,67.5983649,3.0470232,43.9810944,34.8421858\r\n2576,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.2079759,5.3883579,41.5010342,72.7753597,70.8405694,63.3795077,18.8552775,19.7118804,16.5932756,57.1607232,30.5298913,59.4040805,49.5232588,41.6094762,67.5070055,3.1875708,43.4108297,34.440193,5.1872552,5.3891452,41.87969,72.3268326,70.0215066,62.8484801,18.795649,20.1375829,17.301653,56.6323989,29.9745898,58.1578578,49.7135748,41.7997396,67.5983649,3.0470232,43.9810944,34.8421858,5.411316,5.6055976,42.5497212,71.9496728,69.8690785,62.4603022,18.8696037,20.2303162,17.3420064,56.7619605,29.9167961,57.5358587,50.7456254,42.7893824,67.6821182,2.9678578,43.9987466,34.7946347\r\n2577,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.1872552,5.3891452,41.87969,72.3268326,70.0215066,62.8484801,18.795649,20.1375829,17.301653,56.6323989,29.9745898,58.1578578,49.7135748,41.7997396,67.5983649,3.0470232,43.9810944,34.8421858,5.411316,5.6055976,42.5497212,71.9496728,69.8690785,62.4603022,18.8696037,20.2303162,17.3420064,56.7619605,29.9167961,57.5358587,50.7456254,42.7893824,67.6821182,2.9678578,43.9987466,34.7946347,5.5262173,5.6924844,42.7753772,71.8362899,70.1559895,61.9165222,18.850401,20.7568605,17.6545251,56.2609864,29.7521484,57.5577496,51.3330836,43.5223383,68.0812001,2.9046624,43.6958951,35.6377794\r\n2578,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.411316,5.6055976,42.5497212,71.9496728,69.8690785,62.4603022,18.8696037,20.2303162,17.3420064,56.7619605,29.9167961,57.5358587,50.7456254,42.7893824,67.6821182,2.9678578,43.9987466,34.7946347,5.5262173,5.6924844,42.7753772,71.8362899,70.1559895,61.9165222,18.850401,20.7568605,17.6545251,56.2609864,29.7521484,57.5577496,51.3330836,43.5223383,68.0812001,2.9046624,43.6958951,35.6377794,5.4370805,5.5837096,42.8204423,71.5944448,69.7658084,61.2725027,18.9390928,20.7179464,17.784271,56.0759997,29.5351219,57.4046673,51.424241,43.5866185,68.2196553,2.8423015,43.8691262,35.8315356\r\n2579,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.5262173,5.6924844,42.7753772,71.8362899,70.1559895,61.9165222,18.850401,20.7568605,17.6545251,56.2609864,29.7521484,57.5577496,51.3330836,43.5223383,68.0812001,2.9046624,43.6958951,35.6377794,5.4370805,5.5837096,42.8204423,71.5944448,69.7658084,61.2725027,18.9390928,20.7179464,17.784271,56.0759997,29.5351219,57.4046673,51.424241,43.5866185,68.2196553,2.8423015,43.8691262,35.8315356,5.5193449,5.653417,42.9408122,70.8343416,69.5360789,61.0321461,18.4060883,20.5242157,17.6900659,56.1057544,29.7454759,57.0043742,51.2815939,43.5697937,68.5247573,2.8243687,44.0920409,35.9445793\r\n2580,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.4370805,5.5837096,42.8204423,71.5944448,69.7658084,61.2725027,18.9390928,20.7179464,17.784271,56.0759997,29.5351219,57.4046673,51.424241,43.5866185,68.2196553,2.8423015,43.8691262,35.8315356,5.5193449,5.653417,42.9408122,70.8343416,69.5360789,61.0321461,18.4060883,20.5242157,17.6900659,56.1057544,29.7454759,57.0043742,51.2815939,43.5697937,68.5247573,2.8243687,44.0920409,35.9445793,5.5659919,5.6958967,42.3294185,71.1336075,69.5377619,60.9729154,18.6842181,21.1816558,17.6610929,56.0000479,30.4326157,57.2484038,50.7211713,42.8703918,68.6330358,2.9658171,43.8621766,36.6935243\r\n2581,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.5193449,5.653417,42.9408122,70.8343416,69.5360789,61.0321461,18.4060883,20.5242157,17.6900659,56.1057544,29.7454759,57.0043742,51.2815939,43.5697937,68.5247573,2.8243687,44.0920409,35.9445793,5.5659919,5.6958967,42.3294185,71.1336075,69.5377619,60.9729154,18.6842181,21.1816558,17.6610929,56.0000479,30.4326157,57.2484038,50.7211713,42.8703918,68.6330358,2.9658171,43.8621766,36.6935243,5.5099474,5.6514922,42.7664905,70.9281883,69.1369408,61.2771791,18.3860473,21.4888867,17.1078767,55.9862632,30.5542082,56.9250416,51.189575,43.3669831,68.7028486,2.8305337,43.6248925,37.8088109\r\n2582,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.5659919,5.6958967,42.3294185,71.1336075,69.5377619,60.9729154,18.6842181,21.1816558,17.6610929,56.0000479,30.4326157,57.2484038,50.7211713,42.8703918,68.6330358,2.9658171,43.8621766,36.6935243,5.5099474,5.6514922,42.7664905,70.9281883,69.1369408,61.2771791,18.3860473,21.4888867,17.1078767,55.9862632,30.5542082,56.9250416,51.189575,43.3669831,68.7028486,2.8305337,43.6248925,37.8088109,5.3818505,5.5246622,42.3993944,70.644776,70.0904719,61.5937758,18.5315149,21.9279268,17.386115,56.5829389,31.109192,57.5880026,51.0481061,43.33139,68.6101634,2.9105808,43.3635567,37.8634402\r\n2583,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.5099474,5.6514922,42.7664905,70.9281883,69.1369408,61.2771791,18.3860473,21.4888867,17.1078767,55.9862632,30.5542082,56.9250416,51.189575,43.3669831,68.7028486,2.8305337,43.6248925,37.8088109,5.3818505,5.5246622,42.3993944,70.644776,70.0904719,61.5937758,18.5315149,21.9279268,17.386115,56.5829389,31.109192,57.5880026,51.0481061,43.33139,68.6101634,2.9105808,43.3635567,37.8634402,5.1413589,5.2720831,41.4790573,70.3163256,70.1381431,61.6213674,18.3868786,21.8620092,17.6705472,56.0422784,30.9413072,57.5665792,50.1038875,42.4253934,68.6330151,2.9977997,43.0812904,37.9194329\r\n2584,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.3818505,5.5246622,42.3993944,70.644776,70.0904719,61.5937758,18.5315149,21.9279268,17.386115,56.5829389,31.109192,57.5880026,51.0481061,43.33139,68.6101634,2.9105808,43.3635567,37.8634402,5.1413589,5.2720831,41.4790573,70.3163256,70.1381431,61.6213674,18.3868786,21.8620092,17.6705472,56.0422784,30.9413072,57.5665792,50.1038875,42.4253934,68.6330151,2.9977997,43.0812904,37.9194329,4.9365092,5.0719217,41.1881152,70.4223391,69.8841306,61.7158194,18.3462376,21.5870998,17.4170388,56.4288457,31.1731462,57.1424997,49.5436557,41.8801185,68.5005433,2.9745126,43.045828,37.7848681\r\n2585,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.1413589,5.2720831,41.4790573,70.3163256,70.1381431,61.6213674,18.3868786,21.8620092,17.6705472,56.0422784,30.9413072,57.5665792,50.1038875,42.4253934,68.6330151,2.9977997,43.0812904,37.9194329,4.9365092,5.0719217,41.1881152,70.4223391,69.8841306,61.7158194,18.3462376,21.5870998,17.4170388,56.4288457,31.1731462,57.1424997,49.5436557,41.8801185,68.5005433,2.9745126,43.045828,37.7848681,4.9019112,5.0310503,40.7599591,69.9791076,69.68806,62.4536883,18.5371617,21.6478339,17.6817775,56.7558043,31.610858,56.8801699,49.186698,41.6442737,68.6164956,2.9170059,42.9390792,38.1869113\r\n2586,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.9365092,5.0719217,41.1881152,70.4223391,69.8841306,61.7158194,18.3462376,21.5870998,17.4170388,56.4288457,31.1731462,57.1424997,49.5436557,41.8801185,68.5005433,2.9745126,43.045828,37.7848681,4.9019112,5.0310503,40.7599591,69.9791076,69.68806,62.4536883,18.5371617,21.6478339,17.6817775,56.7558043,31.610858,56.8801699,49.186698,41.6442737,68.6164956,2.9170059,42.9390792,38.1869113,4.6262371,4.7495064,40.2461913,70.1013967,69.619692,62.3347821,18.9222384,22.1469788,18.0660797,57.1811569,32.1327844,56.8225337,48.7484402,41.216102,68.5474657,2.9123966,42.9973116,38.1075444\r\n2587,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.9019112,5.0310503,40.7599591,69.9791076,69.68806,62.4536883,18.5371617,21.6478339,17.6817775,56.7558043,31.610858,56.8801699,49.186698,41.6442737,68.6164956,2.9170059,42.9390792,38.1869113,4.6262371,4.7495064,40.2461913,70.1013967,69.619692,62.3347821,18.9222384,22.1469788,18.0660797,57.1811569,32.1327844,56.8225337,48.7484402,41.216102,68.5474657,2.9123966,42.9973116,38.1075444,4.4910855,4.5860778,39.2362627,69.708416,69.855509,62.1623044,19.1796295,21.4704887,18.0966412,58.1376504,31.9905658,56.145494,48.0217554,40.3337597,67.9242439,2.7322731,42.3644366,37.2680102\r\n2588,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.6262371,4.7495064,40.2461913,70.1013967,69.619692,62.3347821,18.9222384,22.1469788,18.0660797,57.1811569,32.1327844,56.8225337,48.7484402,41.216102,68.5474657,2.9123966,42.9973116,38.1075444,4.4910855,4.5860778,39.2362627,69.708416,69.855509,62.1623044,19.1796295,21.4704887,18.0966412,58.1376504,31.9905658,56.145494,48.0217554,40.3337597,67.9242439,2.7322731,42.3644366,37.2680102,4.2324607,4.3413251,38.2766648,69.3883394,69.5138962,62.3756709,19.6330044,21.1487122,18.2876974,58.7911627,32.2809446,55.1688342,46.6779418,39.2134572,67.584979,2.9628983,42.5008583,36.535088\r\n2589,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.4910855,4.5860778,39.2362627,69.708416,69.855509,62.1623044,19.1796295,21.4704887,18.0966412,58.1376504,31.9905658,56.145494,48.0217554,40.3337597,67.9242439,2.7322731,42.3644366,37.2680102,4.2324607,4.3413251,38.2766648,69.3883394,69.5138962,62.3756709,19.6330044,21.1487122,18.2876974,58.7911627,32.2809446,55.1688342,46.6779418,39.2134572,67.584979,2.9628983,42.5008583,36.535088,4.085256,4.1976347,36.7410881,69.8485067,69.1993294,62.226962,19.6219707,21.227658,17.8273156,58.2123056,32.0973407,54.6257789,45.2702558,37.7821654,67.5829435,2.9240033,42.7036058,36.220243\r\n2590,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.2324607,4.3413251,38.2766648,69.3883394,69.5138962,62.3756709,19.6330044,21.1487122,18.2876974,58.7911627,32.2809446,55.1688342,46.6779418,39.2134572,67.584979,2.9628983,42.5008583,36.535088,4.085256,4.1976347,36.7410881,69.8485067,69.1993294,62.226962,19.6219707,21.227658,17.8273156,58.2123056,32.0973407,54.6257789,45.2702558,37.7821654,67.5829435,2.9240033,42.7036058,36.220243,3.8937399,3.9988288,35.8932041,70.2237579,69.0525399,63.1504602,19.9356913,21.2211918,17.2906443,58.8330474,32.5489581,54.6462112,44.2985097,36.9091453,67.9113532,2.8783239,43.0199,36.1428046\r\n2591,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.085256,4.1976347,36.7410881,69.8485067,69.1993294,62.226962,19.6219707,21.227658,17.8273156,58.2123056,32.0973407,54.6257789,45.2702558,37.7821654,67.5829435,2.9240033,42.7036058,36.220243,3.8937399,3.9988288,35.8932041,70.2237579,69.0525399,63.1504602,19.9356913,21.2211918,17.2906443,58.8330474,32.5489581,54.6462112,44.2985097,36.9091453,67.9113532,2.8783239,43.0199,36.1428046,3.7256886,3.8169788,34.9280493,69.905192,69.2234673,63.41204,20.3589264,20.8071748,17.6809799,59.2418825,33.2793835,54.3194874,43.1831407,35.8765614,67.4487217,2.9488383,42.6112137,36.0183919\r\n2592,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.8937399,3.9988288,35.8932041,70.2237579,69.0525399,63.1504602,19.9356913,21.2211918,17.2906443,58.8330474,32.5489581,54.6462112,44.2985097,36.9091453,67.9113532,2.8783239,43.0199,36.1428046,3.7256886,3.8169788,34.9280493,69.905192,69.2234673,63.41204,20.3589264,20.8071748,17.6809799,59.2418825,33.2793835,54.3194874,43.1831407,35.8765614,67.4487217,2.9488383,42.6112137,36.0183919,3.4726125,3.5596127,34.0295148,70.4726289,69.759217,63.6178696,20.687448,20.6919289,17.4719219,59.2174282,33.2768853,54.2582888,41.78323,34.6619834,67.1975486,2.9753257,42.0690605,35.2899684\r\n2593,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.7256886,3.8169788,34.9280493,69.905192,69.2234673,63.41204,20.3589264,20.8071748,17.6809799,59.2418825,33.2793835,54.3194874,43.1831407,35.8765614,67.4487217,2.9488383,42.6112137,36.0183919,3.4726125,3.5596127,34.0295148,70.4726289,69.759217,63.6178696,20.687448,20.6919289,17.4719219,59.2174282,33.2768853,54.2582888,41.78323,34.6619834,67.1975486,2.9753257,42.0690605,35.2899684,3.3864822,3.5064359,32.8129535,70.7005616,70.1380378,63.9014805,21.0132299,20.5380394,17.7255112,59.3604289,33.2253852,54.2378788,40.6155984,33.5281959,67.1337128,3.0962706,41.9961558,35.2362991\r\n2594,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.4726125,3.5596127,34.0295148,70.4726289,69.759217,63.6178696,20.687448,20.6919289,17.4719219,59.2174282,33.2768853,54.2582888,41.78323,34.6619834,67.1975486,2.9753257,42.0690605,35.2899684,3.3864822,3.5064359,32.8129535,70.7005616,70.1380378,63.9014805,21.0132299,20.5380394,17.7255112,59.3604289,33.2253852,54.2378788,40.6155984,33.5281959,67.1337128,3.0962706,41.9961558,35.2362991,3.2289245,3.3548053,32.2661021,70.883922,70.4207178,64.3471028,21.0982024,20.4127816,17.7317429,59.1779052,33.4692578,54.3209546,39.8210324,33.128489,67.1452178,3.0821526,42.5601353,34.9414116\r\n2595,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.3864822,3.5064359,32.8129535,70.7005616,70.1380378,63.9014805,21.0132299,20.5380394,17.7255112,59.3604289,33.2253852,54.2378788,40.6155984,33.5281959,67.1337128,3.0962706,41.9961558,35.2362991,3.2289245,3.3548053,32.2661021,70.883922,70.4207178,64.3471028,21.0982024,20.4127816,17.7317429,59.1779052,33.4692578,54.3209546,39.8210324,33.128489,67.1452178,3.0821526,42.5601353,34.9414116,3.0260018,3.1255821,30.6848686,71.18764,70.7155847,63.2042953,21.2307148,19.9687704,18.1106234,59.5120759,33.7840148,54.3308927,38.2251989,31.5324365,66.9186977,3.064699,41.9781156,33.5573833\r\n2596,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.2289245,3.3548053,32.2661021,70.883922,70.4207178,64.3471028,21.0982024,20.4127816,17.7317429,59.1779052,33.4692578,54.3209546,39.8210324,33.128489,67.1452178,3.0821526,42.5601353,34.9414116,3.0260018,3.1255821,30.6848686,71.18764,70.7155847,63.2042953,21.2307148,19.9687704,18.1106234,59.5120759,33.7840148,54.3308927,38.2251989,31.5324365,66.9186977,3.064699,41.9781156,33.5573833,2.8078926,2.8971075,29.6217244,70.582978,70.6631772,63.5008084,21.3575233,19.309798,17.9415463,60.59633,34.3095988,53.9308611,36.7246009,30.1746602,66.5597931,2.9404127,41.2438115,32.437193\r\n2597,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.0260018,3.1255821,30.6848686,71.18764,70.7155847,63.2042953,21.2307148,19.9687704,18.1106234,59.5120759,33.7840148,54.3308927,38.2251989,31.5324365,66.9186977,3.064699,41.9781156,33.5573833,2.8078926,2.8971075,29.6217244,70.582978,70.6631772,63.5008084,21.3575233,19.309798,17.9415463,60.59633,34.3095988,53.9308611,36.7246009,30.1746602,66.5597931,2.9404127,41.2438115,32.437193,2.6652428,2.7510211,28.5134778,70.1032322,71.0210126,63.3144116,21.3193993,19.1794969,18.0083821,60.1676943,33.6362762,53.3509928,35.073049,28.9420534,65.9305676,2.9344901,40.1490482,31.2105157\r\n2598,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.8078926,2.8971075,29.6217244,70.582978,70.6631772,63.5008084,21.3575233,19.309798,17.9415463,60.59633,34.3095988,53.9308611,36.7246009,30.1746602,66.5597931,2.9404127,41.2438115,32.437193,2.6652428,2.7510211,28.5134778,70.1032322,71.0210126,63.3144116,21.3193993,19.1794969,18.0083821,60.1676943,33.6362762,53.3509928,35.073049,28.9420534,65.9305676,2.9344901,40.1490482,31.2105157,2.5575506,2.6246518,27.2070139,70.1664793,70.577757,62.9829032,21.0333685,19.470222,17.7297455,60.0141794,33.1711942,53.1962966,33.4314783,27.4649667,65.6845715,2.930831,40.0924814,30.0625335\r\n2599,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.6652428,2.7510211,28.5134778,70.1032322,71.0210126,63.3144116,21.3193993,19.1794969,18.0083821,60.1676943,33.6362762,53.3509928,35.073049,28.9420534,65.9305676,2.9344901,40.1490482,31.2105157,2.5575506,2.6246518,27.2070139,70.1664793,70.577757,62.9829032,21.0333685,19.470222,17.7297455,60.0141794,33.1711942,53.1962966,33.4314783,27.4649667,65.6845715,2.930831,40.0924814,30.0625335,2.3366978,2.4031284,25.5764919,70.0372822,71.0496332,62.1544686,20.7870988,19.9144891,17.4845024,60.2693608,33.3220407,52.7197964,31.9103293,26.0083759,65.2462205,3.0063489,39.6685589,29.1500753\r\n2600,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.5575506,2.6246518,27.2070139,70.1664793,70.577757,62.9829032,21.0333685,19.470222,17.7297455,60.0141794,33.1711942,53.1962966,33.4314783,27.4649667,65.6845715,2.930831,40.0924814,30.0625335,2.3366978,2.4031284,25.5764919,70.0372822,71.0496332,62.1544686,20.7870988,19.9144891,17.4845024,60.2693608,33.3220407,52.7197964,31.9103293,26.0083759,65.2462205,3.0063489,39.6685589,29.1500753,2.1954294,2.2259579,24.5485541,69.4676903,70.6482953,61.7857355,21.188917,19.5679379,16.572429,60.5579362,33.8311602,51.7586267,30.5712995,24.9153502,64.7355614,3.0572985,39.3216972,28.6393592\r\n2601,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.3366978,2.4031284,25.5764919,70.0372822,71.0496332,62.1544686,20.7870988,19.9144891,17.4845024,60.2693608,33.3220407,52.7197964,31.9103293,26.0083759,65.2462205,3.0063489,39.6685589,29.1500753,2.1954294,2.2259579,24.5485541,69.4676903,70.6482953,61.7857355,21.188917,19.5679379,16.572429,60.5579362,33.8311602,51.7586267,30.5712995,24.9153502,64.7355614,3.0572985,39.3216972,28.6393592,2.0877153,2.12565,23.1515256,69.2735765,70.30969,61.4065378,21.9170021,19.4904412,16.1008168,60.5730418,34.5548031,50.5628012,29.0151305,23.3225013,64.1008021,3.2626883,39.2310892,27.7249884\r\n2602,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.1954294,2.2259579,24.5485541,69.4676903,70.6482953,61.7857355,21.188917,19.5679379,16.572429,60.5579362,33.8311602,51.7586267,30.5712995,24.9153502,64.7355614,3.0572985,39.3216972,28.6393592,2.0877153,2.12565,23.1515256,69.2735765,70.30969,61.4065378,21.9170021,19.4904412,16.1008168,60.5730418,34.5548031,50.5628012,29.0151305,23.3225013,64.1008021,3.2626883,39.2310892,27.7249884,2.0181154,2.058978,22.1358348,68.8316854,69.9695354,62.08564,21.9425074,19.3162494,15.6273127,60.5493354,35.0077783,50.668775,28.2278041,22.500284,63.6499379,3.2564845,39.0847473,27.5813067\r\n2603,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0877153,2.12565,23.1515256,69.2735765,70.30969,61.4065378,21.9170021,19.4904412,16.1008168,60.5730418,34.5548031,50.5628012,29.0151305,23.3225013,64.1008021,3.2626883,39.2310892,27.7249884,2.0181154,2.058978,22.1358348,68.8316854,69.9695354,62.08564,21.9425074,19.3162494,15.6273127,60.5493354,35.0077783,50.668775,28.2278041,22.500284,63.6499379,3.2564845,39.0847473,27.5813067,1.8990338,1.9512036,21.6663781,68.8438327,69.6815636,61.9629377,22.5847523,19.3034967,15.1895217,60.9803123,35.5586825,50.3823611,27.7508699,22.0120339,63.2307413,3.5060181,39.5907316,26.6534909\r\n2604,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0181154,2.058978,22.1358348,68.8316854,69.9695354,62.08564,21.9425074,19.3162494,15.6273127,60.5493354,35.0077783,50.668775,28.2278041,22.500284,63.6499379,3.2564845,39.0847473,27.5813067,1.8990338,1.9512036,21.6663781,68.8438327,69.6815636,61.9629377,22.5847523,19.3034967,15.1895217,60.9803123,35.5586825,50.3823611,27.7508699,22.0120339,63.2307413,3.5060181,39.5907316,26.6534909,1.8831359,1.9348962,21.0105501,68.9063582,69.2903865,61.1706877,23.2780525,19.2935924,15.1149476,62.4363056,36.826386,49.9198785,27.4701096,21.5234524,62.9540451,3.7190062,39.5801249,25.2461748\r\n2605,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.8990338,1.9512036,21.6663781,68.8438327,69.6815636,61.9629377,22.5847523,19.3034967,15.1895217,60.9803123,35.5586825,50.3823611,27.7508699,22.0120339,63.2307413,3.5060181,39.5907316,26.6534909,1.8831359,1.9348962,21.0105501,68.9063582,69.2903865,61.1706877,23.2780525,19.2935924,15.1149476,62.4363056,36.826386,49.9198785,27.4701096,21.5234524,62.9540451,3.7190062,39.5801249,25.2461748,1.7919422,1.8542909,19.7281695,68.8164202,69.0394873,61.8507086,23.9671336,19.1631718,14.7587322,63.2949635,37.5226952,49.7419308,26.6253387,20.603255,62.6508514,3.9400716,39.7988154,24.8141244\r\n2606,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.8831359,1.9348962,21.0105501,68.9063582,69.2903865,61.1706877,23.2780525,19.2935924,15.1149476,62.4363056,36.826386,49.9198785,27.4701096,21.5234524,62.9540451,3.7190062,39.5801249,25.2461748,1.7919422,1.8542909,19.7281695,68.8164202,69.0394873,61.8507086,23.9671336,19.1631718,14.7587322,63.2949635,37.5226952,49.7419308,26.6253387,20.603255,62.6508514,3.9400716,39.7988154,24.8141244,1.844746,1.8972451,19.2557895,68.6562205,68.5454912,62.0171144,24.600182,18.3407239,14.4250211,63.8574316,38.5665057,49.4610732,25.828702,19.9262257,62.2814337,4.1566529,39.7796813,24.1531589\r\n2607,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.7919422,1.8542909,19.7281695,68.8164202,69.0394873,61.8507086,23.9671336,19.1631718,14.7587322,63.2949635,37.5226952,49.7419308,26.6253387,20.603255,62.6508514,3.9400716,39.7988154,24.8141244,1.844746,1.8972451,19.2557895,68.6562205,68.5454912,62.0171144,24.600182,18.3407239,14.4250211,63.8574316,38.5665057,49.4610732,25.828702,19.9262257,62.2814337,4.1566529,39.7796813,24.1531589,1.7724623,1.8215204,18.3842294,69.8006466,69.265132,62.1268144,24.9501734,18.1295354,14.7101022,64.1894739,38.5529824,49.7574719,24.9779502,19.0048472,61.890271,4.2309834,39.5307887,21.7976287\r\n2608,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.844746,1.8972451,19.2557895,68.6562205,68.5454912,62.0171144,24.600182,18.3407239,14.4250211,63.8574316,38.5665057,49.4610732,25.828702,19.9262257,62.2814337,4.1566529,39.7796813,24.1531589,1.7724623,1.8215204,18.3842294,69.8006466,69.265132,62.1268144,24.9501734,18.1295354,14.7101022,64.1894739,38.5529824,49.7574719,24.9779502,19.0048472,61.890271,4.2309834,39.5307887,21.7976287,1.7703496,1.8119738,17.9126381,69.1336062,68.7993076,62.1017009,25.0669205,17.7690711,14.9115999,64.7432387,38.7593394,49.9343774,24.6267796,18.7005275,61.7229978,4.1878997,39.4805759,20.9106063\r\n2609,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.7724623,1.8215204,18.3842294,69.8006466,69.265132,62.1268144,24.9501734,18.1295354,14.7101022,64.1894739,38.5529824,49.7574719,24.9779502,19.0048472,61.890271,4.2309834,39.5307887,21.7976287,1.7703496,1.8119738,17.9126381,69.1336062,68.7993076,62.1017009,25.0669205,17.7690711,14.9115999,64.7432387,38.7593394,49.9343774,24.6267796,18.7005275,61.7229978,4.1878997,39.4805759,20.9106063,1.6647165,1.7037062,17.2545515,68.6941061,68.8162715,62.9172529,25.8080246,17.4028997,14.4839003,64.9992441,39.3326789,49.380016,23.7494142,17.8826682,61.2359598,4.2954448,39.6884151,19.9576705\r\n2610,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.7703496,1.8119738,17.9126381,69.1336062,68.7993076,62.1017009,25.0669205,17.7690711,14.9115999,64.7432387,38.7593394,49.9343774,24.6267796,18.7005275,61.7229978,4.1878997,39.4805759,20.9106063,1.6647165,1.7037062,17.2545515,68.6941061,68.8162715,62.9172529,25.8080246,17.4028997,14.4839003,64.9992441,39.3326789,49.380016,23.7494142,17.8826682,61.2359598,4.2954448,39.6884151,19.9576705,1.670081,1.6795155,16.6055387,67.8481996,68.5121536,61.6704061,26.3583611,17.1899995,14.7022833,64.9267247,39.762721,49.1974957,22.8816141,17.3137862,60.4843171,4.1286639,39.2876107,18.7227006\r\n2611,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.6647165,1.7037062,17.2545515,68.6941061,68.8162715,62.9172529,25.8080246,17.4028997,14.4839003,64.9992441,39.3326789,49.380016,23.7494142,17.8826682,61.2359598,4.2954448,39.6884151,19.9576705,1.670081,1.6795155,16.6055387,67.8481996,68.5121536,61.6704061,26.3583611,17.1899995,14.7022833,64.9267247,39.762721,49.1974957,22.8816141,17.3137862,60.4843171,4.1286639,39.2876107,18.7227006,1.5569984,1.5914952,15.9022344,67.1873245,67.5872151,61.7848768,26.8637463,16.3853812,14.4539849,64.8789455,40.2799913,48.513692,21.8703375,16.4389501,59.4915594,4.1346326,39.4325378,18.5126198\r\n2612,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.670081,1.6795155,16.6055387,67.8481996,68.5121536,61.6704061,26.3583611,17.1899995,14.7022833,64.9267247,39.762721,49.1974957,22.8816141,17.3137862,60.4843171,4.1286639,39.2876107,18.7227006,1.5569984,1.5914952,15.9022344,67.1873245,67.5872151,61.7848768,26.8637463,16.3853812,14.4539849,64.8789455,40.2799913,48.513692,21.8703375,16.4389501,59.4915594,4.1346326,39.4325378,18.5126198,1.5693725,1.6016055,15.5832698,67.2126706,68.3969594,61.6542009,27.4817679,15.7782961,14.4883913,64.7123799,40.6699301,48.0746047,21.687484,16.094127,59.0212073,4.0184056,39.6223364,18.1375283\r\n2613,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.5569984,1.5914952,15.9022344,67.1873245,67.5872151,61.7848768,26.8637463,16.3853812,14.4539849,64.8789455,40.2799913,48.513692,21.8703375,16.4389501,59.4915594,4.1346326,39.4325378,18.5126198,1.5693725,1.6016055,15.5832698,67.2126706,68.3969594,61.6542009,27.4817679,15.7782961,14.4883913,64.7123799,40.6699301,48.0746047,21.687484,16.094127,59.0212073,4.0184056,39.6223364,18.1375283,1.5063806,1.5473036,15.1373763,66.9151603,67.7811026,61.6129989,27.9856574,15.8825017,15.1821562,64.5926796,40.2243497,48.1812834,21.1480521,15.5793686,58.2535493,3.9212306,40.4372229,16.0750625\r\n2614,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.5693725,1.6016055,15.5832698,67.2126706,68.3969594,61.6542009,27.4817679,15.7782961,14.4883913,64.7123799,40.6699301,48.0746047,21.687484,16.094127,59.0212073,4.0184056,39.6223364,18.1375283,1.5063806,1.5473036,15.1373763,66.9151603,67.7811026,61.6129989,27.9856574,15.8825017,15.1821562,64.5926796,40.2243497,48.1812834,21.1480521,15.5793686,58.2535493,3.9212306,40.4372229,16.0750625,1.4126499,1.4800616,14.9289214,65.7618034,66.4349842,61.7179684,28.6302639,15.6731651,15.3211576,64.947132,41.5189073,47.8868536,20.6839043,15.2299775,57.7041375,3.9672262,40.5016364,15.6705996\r\n2615,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.5063806,1.5473036,15.1373763,66.9151603,67.7811026,61.6129989,27.9856574,15.8825017,15.1821562,64.5926796,40.2243497,48.1812834,21.1480521,15.5793686,58.2535493,3.9212306,40.4372229,16.0750625,1.4126499,1.4800616,14.9289214,65.7618034,66.4349842,61.7179684,28.6302639,15.6731651,15.3211576,64.947132,41.5189073,47.8868536,20.6839043,15.2299775,57.7041375,3.9672262,40.5016364,15.6705996,1.3064355,1.3805035,14.8956775,66.0928794,66.5043432,61.9344747,28.760931,15.761814,15.5870747,64.3734341,41.4699199,47.5737042,20.1926119,15.0000623,57.1368576,4.1641988,40.3132583,15.8554002\r\n2616,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.4126499,1.4800616,14.9289214,65.7618034,66.4349842,61.7179684,28.6302639,15.6731651,15.3211576,64.947132,41.5189073,47.8868536,20.6839043,15.2299775,57.7041375,3.9672262,40.5016364,15.6705996,1.3064355,1.3805035,14.8956775,66.0928794,66.5043432,61.9344747,28.760931,15.761814,15.5870747,64.3734341,41.4699199,47.5737042,20.1926119,15.0000623,57.1368576,4.1641988,40.3132583,15.8554002,1.3881557,1.4466326,15.0153517,66.2664558,66.2901337,61.0672299,28.9008046,15.8440022,15.9742758,65.1531486,41.9544817,47.5762482,20.0012865,14.9201104,56.4847724,4.1967269,39.6573579,14.7165398\r\n2617,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.3064355,1.3805035,14.8956775,66.0928794,66.5043432,61.9344747,28.760931,15.761814,15.5870747,64.3734341,41.4699199,47.5737042,20.1926119,15.0000623,57.1368576,4.1641988,40.3132583,15.8554002,1.3881557,1.4466326,15.0153517,66.2664558,66.2901337,61.0672299,28.9008046,15.8440022,15.9742758,65.1531486,41.9544817,47.5762482,20.0012865,14.9201104,56.4847724,4.1967269,39.6573579,14.7165398,1.3404777,1.4125607,14.4376112,66.776984,66.4807905,62.3018253,28.2191998,15.5691759,16.1292335,64.4896277,41.7325539,47.2468865,19.6972699,14.3496045,56.312898,4.3560748,39.524257,14.364013\r\n2618,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.3881557,1.4466326,15.0153517,66.2664558,66.2901337,61.0672299,28.9008046,15.8440022,15.9742758,65.1531486,41.9544817,47.5762482,20.0012865,14.9201104,56.4847724,4.1967269,39.6573579,14.7165398,1.3404777,1.4125607,14.4376112,66.776984,66.4807905,62.3018253,28.2191998,15.5691759,16.1292335,64.4896277,41.7325539,47.2468865,19.6972699,14.3496045,56.312898,4.3560748,39.524257,14.364013,1.399545,1.4453075,14.1985035,66.8802772,66.952922,62.5956685,28.3671554,15.4875663,16.6279049,63.9398663,42.0703421,47.4912176,19.5076666,14.2196882,56.0701842,4.4140182,40.1867045,14.2366195\r\n2619,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.3404777,1.4125607,14.4376112,66.776984,66.4807905,62.3018253,28.2191998,15.5691759,16.1292335,64.4896277,41.7325539,47.2468865,19.6972699,14.3496045,56.312898,4.3560748,39.524257,14.364013,1.399545,1.4453075,14.1985035,66.8802772,66.952922,62.5956685,28.3671554,15.4875663,16.6279049,63.9398663,42.0703421,47.4912176,19.5076666,14.2196882,56.0701842,4.4140182,40.1867045,14.2366195,1.314872,1.3578955,13.6308153,66.9549983,65.8058678,62.3430529,28.0769811,14.7189268,15.990955,64.0261297,41.8586301,46.8809029,18.7118394,13.6617449,55.6327007,4.4575275,39.6325988,13.2228078\r\n2620,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.399545,1.4453075,14.1985035,66.8802772,66.952922,62.5956685,28.3671554,15.4875663,16.6279049,63.9398663,42.0703421,47.4912176,19.5076666,14.2196882,56.0701842,4.4140182,40.1867045,14.2366195,1.314872,1.3578955,13.6308153,66.9549983,65.8058678,62.3430529,28.0769811,14.7189268,15.990955,64.0261297,41.8586301,46.8809029,18.7118394,13.6617449,55.6327007,4.4575275,39.6325988,13.2228078,1.2916463,1.3239817,13.4718449,66.6720052,65.5027333,62.6336928,28.1052505,14.2327826,15.2390236,64.080254,42.4929469,46.4067231,18.3731953,13.5467951,55.3010743,4.428228,39.6297747,13.6871442\r\n2621,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.314872,1.3578955,13.6308153,66.9549983,65.8058678,62.3430529,28.0769811,14.7189268,15.990955,64.0261297,41.8586301,46.8809029,18.7118394,13.6617449,55.6327007,4.4575275,39.6325988,13.2228078,1.2916463,1.3239817,13.4718449,66.6720052,65.5027333,62.6336928,28.1052505,14.2327826,15.2390236,64.080254,42.4929469,46.4067231,18.3731953,13.5467951,55.3010743,4.428228,39.6297747,13.6871442,1.248774,1.2645383,12.8488927,66.9701501,65.9123755,62.0509114,28.1524951,14.254092,15.0189606,64.2999764,42.2270911,45.5681313,17.8145831,12.9710633,54.759078,4.4553285,39.7149525,13.4236353\r\n2622,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2916463,1.3239817,13.4718449,66.6720052,65.5027333,62.6336928,28.1052505,14.2327826,15.2390236,64.080254,42.4929469,46.4067231,18.3731953,13.5467951,55.3010743,4.428228,39.6297747,13.6871442,1.248774,1.2645383,12.8488927,66.9701501,65.9123755,62.0509114,28.1524951,14.254092,15.0189606,64.2999764,42.2270911,45.5681313,17.8145831,12.9710633,54.759078,4.4553285,39.7149525,13.4236353,1.2025494,1.2093703,12.3593277,67.0703584,66.3033985,62.3356219,28.2758906,13.7082572,14.8963905,64.9394419,42.804438,44.9430106,17.3923886,12.3245666,54.5804692,4.270977,39.9878204,12.2023731\r\n2623,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.248774,1.2645383,12.8488927,66.9701501,65.9123755,62.0509114,28.1524951,14.254092,15.0189606,64.2999764,42.2270911,45.5681313,17.8145831,12.9710633,54.759078,4.4553285,39.7149525,13.4236353,1.2025494,1.2093703,12.3593277,67.0703584,66.3033985,62.3356219,28.2758906,13.7082572,14.8963905,64.9394419,42.804438,44.9430106,17.3923886,12.3245666,54.5804692,4.270977,39.9878204,12.2023731,1.1589488,1.2073064,11.9765832,66.6109194,66.2008801,62.4494315,28.7437078,13.7399386,14.8525119,64.3553808,42.6731102,44.0167829,16.9916554,12.0178483,54.1397821,4.1600609,41.5457005,12.4000034\r\n2624,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2025494,1.2093703,12.3593277,67.0703584,66.3033985,62.3356219,28.2758906,13.7082572,14.8963905,64.9394419,42.804438,44.9430106,17.3923886,12.3245666,54.5804692,4.270977,39.9878204,12.2023731,1.1589488,1.2073064,11.9765832,66.6109194,66.2008801,62.4494315,28.7437078,13.7399386,14.8525119,64.3553808,42.6731102,44.0167829,16.9916554,12.0178483,54.1397821,4.1600609,41.5457005,12.4000034,1.1393354,1.1830457,12.1523519,66.2444788,65.9201891,62.3923613,29.9507289,13.5107406,14.5481066,65.352283,43.5504123,43.7382605,16.8582303,11.9382715,52.9818699,4.339364,42.2502346,11.975776\r\n2625,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1589488,1.2073064,11.9765832,66.6109194,66.2008801,62.4494315,28.7437078,13.7399386,14.8525119,64.3553808,42.6731102,44.0167829,16.9916554,12.0178483,54.1397821,4.1600609,41.5457005,12.4000034,1.1393354,1.1830457,12.1523519,66.2444788,65.9201891,62.3923613,29.9507289,13.5107406,14.5481066,65.352283,43.5504123,43.7382605,16.8582303,11.9382715,52.9818699,4.339364,42.2502346,11.975776,1.025217,1.0472959,11.7883129,66.5477185,66.3460603,62.818481,30.1913466,13.1873383,14.1605039,66.2350558,43.5505106,43.7446049,16.6182856,11.5120754,52.0394065,4.3964339,41.7655426,11.1164154\r\n2626,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1393354,1.1830457,12.1523519,66.2444788,65.9201891,62.3923613,29.9507289,13.5107406,14.5481066,65.352283,43.5504123,43.7382605,16.8582303,11.9382715,52.9818699,4.339364,42.2502346,11.975776,1.025217,1.0472959,11.7883129,66.5477185,66.3460603,62.818481,30.1913466,13.1873383,14.1605039,66.2350558,43.5505106,43.7446049,16.6182856,11.5120754,52.0394065,4.3964339,41.7655426,11.1164154,1.1032631,1.128083,11.8604497,66.464079,66.5883968,63.2202565,30.5914786,13.3371661,14.8751176,66.0527664,44.4774955,44.0337531,16.6242591,11.4421519,51.0304133,4.4222457,42.8468503,10.1184649\r\n2627,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.025217,1.0472959,11.7883129,66.5477185,66.3460603,62.818481,30.1913466,13.1873383,14.1605039,66.2350558,43.5505106,43.7446049,16.6182856,11.5120754,52.0394065,4.3964339,41.7655426,11.1164154,1.1032631,1.128083,11.8604497,66.464079,66.5883968,63.2202565,30.5914786,13.3371661,14.8751176,66.0527664,44.4774955,44.0337531,16.6242591,11.4421519,51.0304133,4.4222457,42.8468503,10.1184649,1.1474408,1.1765514,11.9407752,66.1061456,66.5466445,62.4687752,30.4034922,12.4309529,14.8267517,66.1533167,44.4157407,43.4312449,16.5608959,11.0788563,50.3921854,4.590694,42.7794206,8.6189455\r\n2628,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1032631,1.128083,11.8604497,66.464079,66.5883968,63.2202565,30.5914786,13.3371661,14.8751176,66.0527664,44.4774955,44.0337531,16.6242591,11.4421519,51.0304133,4.4222457,42.8468503,10.1184649,1.1474408,1.1765514,11.9407752,66.1061456,66.5466445,62.4687752,30.4034922,12.4309529,14.8267517,66.1533167,44.4157407,43.4312449,16.5608959,11.0788563,50.3921854,4.590694,42.7794206,8.6189455,1.1899812,1.2266822,11.8755432,64.7912132,66.0152766,62.3818472,30.3750522,12.2624875,14.6413207,65.8044324,44.3869563,43.0267929,16.6826213,11.2243489,50.0939527,4.7006153,42.9355908,8.6666707\r\n2629,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1474408,1.1765514,11.9407752,66.1061456,66.5466445,62.4687752,30.4034922,12.4309529,14.8267517,66.1533167,44.4157407,43.4312449,16.5608959,11.0788563,50.3921854,4.590694,42.7794206,8.6189455,1.1899812,1.2266822,11.8755432,64.7912132,66.0152766,62.3818472,30.3750522,12.2624875,14.6413207,65.8044324,44.3869563,43.0267929,16.6826213,11.2243489,50.0939527,4.7006153,42.9355908,8.6666707,1.2413414,1.2800286,11.9289929,64.7761408,66.3124448,61.9208217,30.600814,12.0844787,14.4525747,65.6370337,44.0411225,43.9004886,16.6052398,11.2817377,49.1254629,4.9573298,42.8296288,8.1477793\r\n2630,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1899812,1.2266822,11.8755432,64.7912132,66.0152766,62.3818472,30.3750522,12.2624875,14.6413207,65.8044324,44.3869563,43.0267929,16.6826213,11.2243489,50.0939527,4.7006153,42.9355908,8.6666707,1.2413414,1.2800286,11.9289929,64.7761408,66.3124448,61.9208217,30.600814,12.0844787,14.4525747,65.6370337,44.0411225,43.9004886,16.6052398,11.2817377,49.1254629,4.9573298,42.8296288,8.1477793,1.267371,1.2824252,11.943657,65.5351092,66.4401058,61.1360259,30.3300885,10.6206728,13.4824729,65.7149941,44.074687,43.8340167,16.7561221,11.1959811,48.0847582,4.9885525,42.2046995,7.4847345\r\n2631,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2413414,1.2800286,11.9289929,64.7761408,66.3124448,61.9208217,30.600814,12.0844787,14.4525747,65.6370337,44.0411225,43.9004886,16.6052398,11.2817377,49.1254629,4.9573298,42.8296288,8.1477793,1.267371,1.2824252,11.943657,65.5351092,66.4401058,61.1360259,30.3300885,10.6206728,13.4824729,65.7149941,44.074687,43.8340167,16.7561221,11.1959811,48.0847582,4.9885525,42.2046995,7.4847345,1.3496882,1.3613593,11.524007,66.4293568,67.4724625,61.0605078,29.9793031,10.3520594,13.6357284,65.495242,43.8453001,44.4905522,16.3438541,10.926313,48.2129306,4.797834,42.0182037,7.7122233\r\n2632,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.267371,1.2824252,11.943657,65.5351092,66.4401058,61.1360259,30.3300885,10.6206728,13.4824729,65.7149941,44.074687,43.8340167,16.7561221,11.1959811,48.0847582,4.9885525,42.2046995,7.4847345,1.3496882,1.3613593,11.524007,66.4293568,67.4724625,61.0605078,29.9793031,10.3520594,13.6357284,65.495242,43.8453001,44.4905522,16.3438541,10.926313,48.2129306,4.797834,42.0182037,7.7122233,1.4395374,1.4805672,11.3452975,66.7251881,67.2670887,60.720288,29.6711582,10.3461483,13.5751949,64.8826895,43.5765058,43.9900114,16.3346839,10.9482369,48.2057555,4.7803813,42.389657,7.4869191\r\n2633,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.3496882,1.3613593,11.524007,66.4293568,67.4724625,61.0605078,29.9793031,10.3520594,13.6357284,65.495242,43.8453001,44.4905522,16.3438541,10.926313,48.2129306,4.797834,42.0182037,7.7122233,1.4395374,1.4805672,11.3452975,66.7251881,67.2670887,60.720288,29.6711582,10.3461483,13.5751949,64.8826895,43.5765058,43.9900114,16.3346839,10.9482369,48.2057555,4.7803813,42.389657,7.4869191,1.3323089,1.3714062,11.8533007,65.9388968,67.9073439,60.10017,29.8196442,10.195651,13.3400096,64.9955942,43.4151362,43.0950442,16.3510799,11.1261378,47.8395342,4.9546892,42.3206589,7.2192498\r\n2634,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.4395374,1.4805672,11.3452975,66.7251881,67.2670887,60.720288,29.6711582,10.3461483,13.5751949,64.8826895,43.5765058,43.9900114,16.3346839,10.9482369,48.2057555,4.7803813,42.389657,7.4869191,1.3323089,1.3714062,11.8533007,65.9388968,67.9073439,60.10017,29.8196442,10.195651,13.3400096,64.9955942,43.4151362,43.0950442,16.3510799,11.1261378,47.8395342,4.9546892,42.3206589,7.2192498,1.3135746,1.3485729,11.3696435,65.9462114,68.0742962,60.1233982,30.1616136,10.598473,13.3462216,65.1618705,43.9881972,43.0340735,15.880163,10.9609569,47.295011,5.1122795,42.0659128,7.4945287\r\n2635,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.3323089,1.3714062,11.8533007,65.9388968,67.9073439,60.10017,29.8196442,10.195651,13.3400096,64.9955942,43.4151362,43.0950442,16.3510799,11.1261378,47.8395342,4.9546892,42.3206589,7.2192498,1.3135746,1.3485729,11.3696435,65.9462114,68.0742962,60.1233982,30.1616136,10.598473,13.3462216,65.1618705,43.9881972,43.0340735,15.880163,10.9609569,47.295011,5.1122795,42.0659128,7.4945287,1.2607112,1.2750613,11.4033185,66.4435219,67.7788267,60.2380704,30.2986293,9.6488669,13.3557453,65.0597622,43.8881634,43.1827302,15.5696012,10.7308896,46.4318646,5.2214028,41.4547144,6.6258233\r\n2636,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.3135746,1.3485729,11.3696435,65.9462114,68.0742962,60.1233982,30.1616136,10.598473,13.3462216,65.1618705,43.9881972,43.0340735,15.880163,10.9609569,47.295011,5.1122795,42.0659128,7.4945287,1.2607112,1.2750613,11.4033185,66.4435219,67.7788267,60.2380704,30.2986293,9.6488669,13.3557453,65.0597622,43.8881634,43.1827302,15.5696012,10.7308896,46.4318646,5.2214028,41.4547144,6.6258233,1.2425531,1.2451594,11.1091435,66.0428165,67.2426413,60.0504655,29.9595148,9.3058842,13.3145576,65.162557,44.773215,41.8883087,15.3840714,10.3172479,46.0741484,5.2836859,41.1497553,6.2853751\r\n2637,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2607112,1.2750613,11.4033185,66.4435219,67.7788267,60.2380704,30.2986293,9.6488669,13.3557453,65.0597622,43.8881634,43.1827302,15.5696012,10.7308896,46.4318646,5.2214028,41.4547144,6.6258233,1.2425531,1.2451594,11.1091435,66.0428165,67.2426413,60.0504655,29.9595148,9.3058842,13.3145576,65.162557,44.773215,41.8883087,15.3840714,10.3172479,46.0741484,5.2836859,41.1497553,6.2853751,1.2617443,1.2562797,10.9056483,65.6902432,67.4788983,61.394527,29.8037164,10.1119028,14.2301309,65.3966503,44.9524335,42.139239,15.0562196,9.9912651,46.4285702,5.4593806,40.6056036,6.3078638\r\n2638,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2425531,1.2451594,11.1091435,66.0428165,67.2426413,60.0504655,29.9595148,9.3058842,13.3145576,65.162557,44.773215,41.8883087,15.3840714,10.3172479,46.0741484,5.2836859,41.1497553,6.2853751,1.2617443,1.2562797,10.9056483,65.6902432,67.4788983,61.394527,29.8037164,10.1119028,14.2301309,65.3966503,44.9524335,42.139239,15.0562196,9.9912651,46.4285702,5.4593806,40.6056036,6.3078638,1.1708559,1.1707601,11.0639686,64.5446238,65.639612,60.8174506,29.7773966,9.8833929,15.4546961,65.5654568,45.405507,41.0831719,15.1997251,9.9273967,45.5491006,5.5673394,40.7780611,6.0275469\r\n2639,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2617443,1.2562797,10.9056483,65.6902432,67.4788983,61.394527,29.8037164,10.1119028,14.2301309,65.3966503,44.9524335,42.139239,15.0562196,9.9912651,46.4285702,5.4593806,40.6056036,6.3078638,1.1708559,1.1707601,11.0639686,64.5446238,65.639612,60.8174506,29.7773966,9.8833929,15.4546961,65.5654568,45.405507,41.0831719,15.1997251,9.9273967,45.5491006,5.5673394,40.7780611,6.0275469,1.1304883,1.1175272,11.2181194,64.5769555,66.0768309,60.5570481,30.6896039,9.0726076,15.222154,66.2869219,46.3880286,40.693329,14.8678461,9.7283524,44.9432906,5.589539,41.0686758,6.2793354\r\n2640,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1708559,1.1707601,11.0639686,64.5446238,65.639612,60.8174506,29.7773966,9.8833929,15.4546961,65.5654568,45.405507,41.0831719,15.1997251,9.9273967,45.5491006,5.5673394,40.7780611,6.0275469,1.1304883,1.1175272,11.2181194,64.5769555,66.0768309,60.5570481,30.6896039,9.0726076,15.222154,66.2869219,46.3880286,40.693329,14.8678461,9.7283524,44.9432906,5.589539,41.0686758,6.2793354,1.2164245,1.2022696,10.5439111,64.666762,64.9974309,60.0823917,30.8822841,8.5129377,14.727844,66.6851337,47.3102238,40.8911093,14.4545211,9.3118424,44.7340231,5.6777667,40.1546726,6.43028\r\n2641,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1304883,1.1175272,11.2181194,64.5769555,66.0768309,60.5570481,30.6896039,9.0726076,15.222154,66.2869219,46.3880286,40.693329,14.8678461,9.7283524,44.9432906,5.589539,41.0686758,6.2793354,1.2164245,1.2022696,10.5439111,64.666762,64.9974309,60.0823917,30.8822841,8.5129377,14.727844,66.6851337,47.3102238,40.8911093,14.4545211,9.3118424,44.7340231,5.6777667,40.1546726,6.43028,1.2150114,1.2008041,10.7001448,64.8487189,64.8503702,60.1256117,31.242606,7.8784876,14.6033719,66.8158333,47.5073024,40.6562884,14.7466486,9.3666309,44.043381,5.4473122,39.8948538,6.3252928\r\n2642,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2164245,1.2022696,10.5439111,64.666762,64.9974309,60.0823917,30.8822841,8.5129377,14.727844,66.6851337,47.3102238,40.8911093,14.4545211,9.3118424,44.7340231,5.6777667,40.1546726,6.43028,1.2150114,1.2008041,10.7001448,64.8487189,64.8503702,60.1256117,31.242606,7.8784876,14.6033719,66.8158333,47.5073024,40.6562884,14.7466486,9.3666309,44.043381,5.4473122,39.8948538,6.3252928,1.2982813,1.2944589,10.932983,64.983188,65.2109144,60.0655567,30.9523382,7.3819116,14.0058201,67.3769635,47.8755937,40.4532266,14.8530035,9.4412884,43.5419136,5.5991897,40.2800155,5.9953371\r\n2643,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2150114,1.2008041,10.7001448,64.8487189,64.8503702,60.1256117,31.242606,7.8784876,14.6033719,66.8158333,47.5073024,40.6562884,14.7466486,9.3666309,44.043381,5.4473122,39.8948538,6.3252928,1.2982813,1.2944589,10.932983,64.983188,65.2109144,60.0655567,30.9523382,7.3819116,14.0058201,67.3769635,47.8755937,40.4532266,14.8530035,9.4412884,43.5419136,5.5991897,40.2800155,5.9953371,1.2989851,1.3026668,10.87841,65.0202742,64.554413,60.3823497,31.4814552,7.5798997,13.9549837,67.5174062,47.4258949,41.1270427,14.7776035,9.60364,43.3653228,5.7930177,40.5868608,5.6146526\r\n2644,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2982813,1.2944589,10.932983,64.983188,65.2109144,60.0655567,30.9523382,7.3819116,14.0058201,67.3769635,47.8755937,40.4532266,14.8530035,9.4412884,43.5419136,5.5991897,40.2800155,5.9953371,1.2989851,1.3026668,10.87841,65.0202742,64.554413,60.3823497,31.4814552,7.5798997,13.9549837,67.5174062,47.4258949,41.1270427,14.7776035,9.60364,43.3653228,5.7930177,40.5868608,5.6146526,1.2716693,1.2796272,10.6149431,64.3231402,63.7598593,59.2135522,31.7594866,7.0585295,13.7821101,67.1878166,47.6368327,41.3297611,14.6630373,9.5849338,42.635754,5.8948449,41.2175389,5.946876\r\n2645,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2989851,1.3026668,10.87841,65.0202742,64.554413,60.3823497,31.4814552,7.5798997,13.9549837,67.5174062,47.4258949,41.1270427,14.7776035,9.60364,43.3653228,5.7930177,40.5868608,5.6146526,1.2716693,1.2796272,10.6149431,64.3231402,63.7598593,59.2135522,31.7594866,7.0585295,13.7821101,67.1878166,47.6368327,41.3297611,14.6630373,9.5849338,42.635754,5.8948449,41.2175389,5.946876,1.3096476,1.3415588,10.41787,65.1434673,64.6801532,59.4414751,32.0887811,6.6491122,12.487455,67.4111132,47.2842239,41.3544414,14.4127837,9.3377702,42.6209209,5.8244211,41.3670662,6.3959913\r\n2646,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2716693,1.2796272,10.6149431,64.3231402,63.7598593,59.2135522,31.7594866,7.0585295,13.7821101,67.1878166,47.6368327,41.3297611,14.6630373,9.5849338,42.635754,5.8948449,41.2175389,5.946876,1.3096476,1.3415588,10.41787,65.1434673,64.6801532,59.4414751,32.0887811,6.6491122,12.487455,67.4111132,47.2842239,41.3544414,14.4127837,9.3377702,42.6209209,5.8244211,41.3670662,6.3959913,1.2616254,1.2946241,10.3487026,64.2457481,64.2495735,59.7707441,31.6366849,6.9764783,12.7779615,67.0401151,46.6296311,41.5678808,14.6183997,9.5798041,42.5980985,5.952991,40.8710791,6.5264251\r\n2647,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.3096476,1.3415588,10.41787,65.1434673,64.6801532,59.4414751,32.0887811,6.6491122,12.487455,67.4111132,47.2842239,41.3544414,14.4127837,9.3377702,42.6209209,5.8244211,41.3670662,6.3959913,1.2616254,1.2946241,10.3487026,64.2457481,64.2495735,59.7707441,31.6366849,6.9764783,12.7779615,67.0401151,46.6296311,41.5678808,14.6183997,9.5798041,42.5980985,5.952991,40.8710791,6.5264251,1.163855,1.1996455,10.3197325,64.4174496,64.6346926,60.3127806,31.8317358,7.5196886,13.706065,67.3605296,46.5674704,41.5744672,14.6895614,9.6194393,42.0611888,5.8071565,41.1666822,6.7204272\r\n2648,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.2616254,1.2946241,10.3487026,64.2457481,64.2495735,59.7707441,31.6366849,6.9764783,12.7779615,67.0401151,46.6296311,41.5678808,14.6183997,9.5798041,42.5980985,5.952991,40.8710791,6.5264251,1.163855,1.1996455,10.3197325,64.4174496,64.6346926,60.3127806,31.8317358,7.5196886,13.706065,67.3605296,46.5674704,41.5744672,14.6895614,9.6194393,42.0611888,5.8071565,41.1666822,6.7204272,1.1035665,1.1381361,10.3639504,64.3357165,64.5042408,60.6886626,31.4371288,7.681863,14.1398952,67.3770521,46.0219412,41.2251318,14.7130188,9.7362873,42.1932416,5.9131796,41.743395,7.5643653\r\n2649,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.163855,1.1996455,10.3197325,64.4174496,64.6346926,60.3127806,31.8317358,7.5196886,13.706065,67.3605296,46.5674704,41.5744672,14.6895614,9.6194393,42.0611888,5.8071565,41.1666822,6.7204272,1.1035665,1.1381361,10.3639504,64.3357165,64.5042408,60.6886626,31.4371288,7.681863,14.1398952,67.3770521,46.0219412,41.2251318,14.7130188,9.7362873,42.1932416,5.9131796,41.743395,7.5643653,1.0765223,1.1316901,10.3492998,64.3914622,64.4253996,61.1820577,31.5847309,8.3031972,14.861131,66.9152286,45.4290695,40.7292477,14.9689495,9.8726057,42.0402097,5.6014904,41.6454536,8.2386213\r\n2650,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1035665,1.1381361,10.3639504,64.3357165,64.5042408,60.6886626,31.4371288,7.681863,14.1398952,67.3770521,46.0219412,41.2251318,14.7130188,9.7362873,42.1932416,5.9131796,41.743395,7.5643653,1.0765223,1.1316901,10.3492998,64.3914622,64.4253996,61.1820577,31.5847309,8.3031972,14.861131,66.9152286,45.4290695,40.7292477,14.9689495,9.8726057,42.0402097,5.6014904,41.6454536,8.2386213,1.1113016,1.1696404,10.6004648,63.8394569,64.4194244,60.753262,31.4572159,7.7961169,14.3720321,66.5438381,45.1497535,40.2592457,15.1121671,9.9183404,41.5333213,5.4214297,41.6795274,8.9728976\r\n2651,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0765223,1.1316901,10.3492998,64.3914622,64.4253996,61.1820577,31.5847309,8.3031972,14.861131,66.9152286,45.4290695,40.7292477,14.9689495,9.8726057,42.0402097,5.6014904,41.6454536,8.2386213,1.1113016,1.1696404,10.6004648,63.8394569,64.4194244,60.753262,31.4572159,7.7961169,14.3720321,66.5438381,45.1497535,40.2592457,15.1121671,9.9183404,41.5333213,5.4214297,41.6795274,8.9728976,1.172769,1.2384298,10.4592153,64.3270911,65.192875,61.3793129,31.5154215,7.8890641,14.888039,66.840526,44.6380235,39.8794461,15.2549357,9.9058856,41.0860843,5.404684,41.237932,9.0856355\r\n2652,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.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,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.1113016,1.1696404,10.6004648,63.8394569,64.4194244,60.753262,31.4572159,7.7961169,14.3720321,66.5438381,45.1497535,40.2592457,15.1121671,9.9183404,41.5333213,5.4214297,41.6795274,8.9728976,1.172769,1.2384298,10.4592153,64.3270911,65.192875,61.3793129,31.5154215,7.8890641,14.888039,66.840526,44.6380235,39.8794461,15.2549357,9.9058856,41.0860843,5.404684,41.237932,9.0856355,1.1222411,1.1760085,10.4885438,64.1556859,65.1387556,61.3182779,31.5524199,7.4183494,14.1073603,66.9750229,45.1267136,40.0356872,15.3601394,10.0964555,40.4515004,5.6814618,40.7175937,8.4755955\r\n2653,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.7757347,3.8004354,30.8308419,74.5063014,73.5159888,71.7772261,21.5967321,24.8526697,19.7868623,60.8703299,29.3695368,56.7588482,38.1421299,30.9480581,70.6085054,3.1826783,34.1677927,22.8594861,4.0998526,4.1989083,33.1209077,74.8060871,73.968932,71.7073585,20.8086505,24.6094163,20.0280164,60.9375042,29.5342693,56.6230488,39.9988544,32.7531245,70.5039222,2.9378857,33.721719,22.5072795,4.1262909,4.2126359,34.5975201,74.1351534,74.7699659,71.2578926,20.1223674,24.7468716,20.4121378,61.4629134,29.760805,58.415007,41.5213632,34.4979678,71.2948377,2.9890337,33.5374944,22.3960744\r\n2654,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0998526,4.1989083,33.1209077,74.8060871,73.968932,71.7073585,20.8086505,24.6094163,20.0280164,60.9375042,29.5342693,56.6230488,39.9988544,32.7531245,70.5039222,2.9378857,33.721719,22.5072795,4.1262909,4.2126359,34.5975201,74.1351534,74.7699659,71.2578926,20.1223674,24.7468716,20.4121378,61.4629134,29.760805,58.415007,41.5213632,34.4979678,71.2948377,2.9890337,33.5374944,22.3960744,4.2142646,4.3150408,35.3082539,73.2653228,74.0630457,70.5687043,19.0055133,24.3158675,20.7159481,60.684774,29.5155759,58.4156127,42.2437759,35.2457864,71.8959539,2.9745978,34.3011607,23.3279703\r\n2655,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.1262909,4.2126359,34.5975201,74.1351534,74.7699659,71.2578926,20.1223674,24.7468716,20.4121378,61.4629134,29.760805,58.415007,41.5213632,34.4979678,71.2948377,2.9890337,33.5374944,22.3960744,4.2142646,4.3150408,35.3082539,73.2653228,74.0630457,70.5687043,19.0055133,24.3158675,20.7159481,60.684774,29.5155759,58.4156127,42.2437759,35.2457864,71.8959539,2.9745978,34.3011607,23.3279703,4.3956068,4.5327242,35.7885511,72.3402339,73.7393799,71.5849624,18.1874013,24.9719659,20.8337412,59.8864779,28.7654096,57.6502853,43.1065199,36.0912674,72.1555633,2.9702687,35.0800341,23.7085497\r\n2656,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.2142646,4.3150408,35.3082539,73.2653228,74.0630457,70.5687043,19.0055133,24.3158675,20.7159481,60.684774,29.5155759,58.4156127,42.2437759,35.2457864,71.8959539,2.9745978,34.3011607,23.3279703,4.3956068,4.5327242,35.7885511,72.3402339,73.7393799,71.5849624,18.1874013,24.9719659,20.8337412,59.8864779,28.7654096,57.6502853,43.1065199,36.0912674,72.1555633,2.9702687,35.0800341,23.7085497,4.5507891,4.6860215,36.1415756,71.6209733,73.1590816,71.4606676,17.6904753,26.03506,21.1476955,58.9082519,27.6774946,57.6284993,43.3103591,36.3896993,72.272699,2.9245844,35.2615487,24.9708766\r\n2657,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.3956068,4.5327242,35.7885511,72.3402339,73.7393799,71.5849624,18.1874013,24.9719659,20.8337412,59.8864779,28.7654096,57.6502853,43.1065199,36.0912674,72.1555633,2.9702687,35.0800341,23.7085497,4.5507891,4.6860215,36.1415756,71.6209733,73.1590816,71.4606676,17.6904753,26.03506,21.1476955,58.9082519,27.6774946,57.6284993,43.3103591,36.3896993,72.272699,2.9245844,35.2615487,24.9708766,4.5548358,4.6674443,37.2142229,72.0107528,73.2066058,72.0183343,16.651753,26.5941141,21.0700533,58.0602961,26.4662673,57.7722527,44.3450262,37.3010537,72.5900084,2.8609824,35.5477397,26.5987049\r\n2658,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.5507891,4.6860215,36.1415756,71.6209733,73.1590816,71.4606676,17.6904753,26.03506,21.1476955,58.9082519,27.6774946,57.6284993,43.3103591,36.3896993,72.272699,2.9245844,35.2615487,24.9708766,4.5548358,4.6674443,37.2142229,72.0107528,73.2066058,72.0183343,16.651753,26.5941141,21.0700533,58.0602961,26.4662673,57.7722527,44.3450262,37.3010537,72.5900084,2.8609824,35.5477397,26.5987049,4.4755085,4.6042144,38.2149466,71.3997375,72.2605024,72.0985905,16.1695258,27.6145227,21.3490509,57.2244108,26.1004665,57.8357232,44.5856536,37.8112905,73.1356822,3.0879786,34.6325388,28.1505655\r\n2659,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.5548358,4.6674443,37.2142229,72.0107528,73.2066058,72.0183343,16.651753,26.5941141,21.0700533,58.0602961,26.4662673,57.7722527,44.3450262,37.3010537,72.5900084,2.8609824,35.5477397,26.5987049,4.4755085,4.6042144,38.2149466,71.3997375,72.2605024,72.0985905,16.1695258,27.6145227,21.3490509,57.2244108,26.1004665,57.8357232,44.5856536,37.8112905,73.1356822,3.0879786,34.6325388,28.1505655,4.3806606,4.4843905,37.5904952,71.4482299,72.5143602,72.5859623,15.2420285,28.8758491,20.9042516,55.8073385,24.885745,58.4750471,44.4495672,37.5969493,74.3483243,2.9911779,35.179803,28.7901203\r\n2660,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.4755085,4.6042144,38.2149466,71.3997375,72.2605024,72.0985905,16.1695258,27.6145227,21.3490509,57.2244108,26.1004665,57.8357232,44.5856536,37.8112905,73.1356822,3.0879786,34.6325388,28.1505655,4.3806606,4.4843905,37.5904952,71.4482299,72.5143602,72.5859623,15.2420285,28.8758491,20.9042516,55.8073385,24.885745,58.4750471,44.4495672,37.5969493,74.3483243,2.9911779,35.179803,28.7901203,4.3758507,4.5119081,37.7313589,71.7212547,72.5315121,73.2608867,14.7599574,29.662911,21.2450421,55.6864556,24.9308887,58.293413,44.5924637,37.5286602,74.6567278,2.8649915,35.8538387,31.3947057\r\n2661,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.3806606,4.4843905,37.5904952,71.4482299,72.5143602,72.5859623,15.2420285,28.8758491,20.9042516,55.8073385,24.885745,58.4750471,44.4495672,37.5969493,74.3483243,2.9911779,35.179803,28.7901203,4.3758507,4.5119081,37.7313589,71.7212547,72.5315121,73.2608867,14.7599574,29.662911,21.2450421,55.6864556,24.9308887,58.293413,44.5924637,37.5286602,74.6567278,2.8649915,35.8538387,31.3947057,4.4079704,4.5419266,38.253361,72.7830801,72.8093654,73.2310325,14.8402673,30.6632747,21.1237544,55.6610824,24.5095512,59.110683,45.2832157,38.2001294,75.2285388,2.9347143,35.5476604,32.2017977\r\n2662,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.3758507,4.5119081,37.7313589,71.7212547,72.5315121,73.2608867,14.7599574,29.662911,21.2450421,55.6864556,24.9308887,58.293413,44.5924637,37.5286602,74.6567278,2.8649915,35.8538387,31.3947057,4.4079704,4.5419266,38.253361,72.7830801,72.8093654,73.2310325,14.8402673,30.6632747,21.1237544,55.6610824,24.5095512,59.110683,45.2832157,38.2001294,75.2285388,2.9347143,35.5476604,32.2017977,4.3121216,4.4341598,38.2680324,73.1301728,72.9187866,72.1081502,14.6525389,30.2376295,21.0021567,55.9814925,24.7683664,59.1912044,45.5361845,38.3483034,75.3337683,2.7269475,36.1983024,34.4529108\r\n2663,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.4079704,4.5419266,38.253361,72.7830801,72.8093654,73.2310325,14.8402673,30.6632747,21.1237544,55.6610824,24.5095512,59.110683,45.2832157,38.2001294,75.2285388,2.9347143,35.5476604,32.2017977,4.3121216,4.4341598,38.2680324,73.1301728,72.9187866,72.1081502,14.6525389,30.2376295,21.0021567,55.9814925,24.7683664,59.1912044,45.5361845,38.3483034,75.3337683,2.7269475,36.1983024,34.4529108,4.2229064,4.3501952,38.7936632,72.3883602,72.5909548,71.6412301,14.2835101,30.2171403,20.479346,56.2851453,24.6096968,58.710171,46.0325456,38.8802646,75.799387,2.7779066,36.258606,35.131199\r\n2664,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.3121216,4.4341598,38.2680324,73.1301728,72.9187866,72.1081502,14.6525389,30.2376295,21.0021567,55.9814925,24.7683664,59.1912044,45.5361845,38.3483034,75.3337683,2.7269475,36.1983024,34.4529108,4.2229064,4.3501952,38.7936632,72.3883602,72.5909548,71.6412301,14.2835101,30.2171403,20.479346,56.2851453,24.6096968,58.710171,46.0325456,38.8802646,75.799387,2.7779066,36.258606,35.131199,4.1291957,4.3094398,38.267074,73.6939402,73.074155,71.1532236,14.0279927,30.9718928,21.0447478,56.2862258,24.4653022,58.5240901,45.5151892,38.4100147,76.0504864,2.8507506,36.9155212,35.6780665\r\n2665,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.2229064,4.3501952,38.7936632,72.3883602,72.5909548,71.6412301,14.2835101,30.2171403,20.479346,56.2851453,24.6096968,58.710171,46.0325456,38.8802646,75.799387,2.7779066,36.258606,35.131199,4.1291957,4.3094398,38.267074,73.6939402,73.074155,71.1532236,14.0279927,30.9718928,21.0447478,56.2862258,24.4653022,58.5240901,45.5151892,38.4100147,76.0504864,2.8507506,36.9155212,35.6780665,4.1043552,4.2556457,37.5328938,73.2539608,73.3243568,69.9029156,14.1462176,31.8807159,21.4223802,56.8731369,24.7443683,58.1076424,45.2308343,37.9809489,76.1349199,2.6950306,37.2266504,36.6050398\r\n2666,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.1291957,4.3094398,38.267074,73.6939402,73.074155,71.1532236,14.0279927,30.9718928,21.0447478,56.2862258,24.4653022,58.5240901,45.5151892,38.4100147,76.0504864,2.8507506,36.9155212,35.6780665,4.1043552,4.2556457,37.5328938,73.2539608,73.3243568,69.9029156,14.1462176,31.8807159,21.4223802,56.8731369,24.7443683,58.1076424,45.2308343,37.9809489,76.1349199,2.6950306,37.2266504,36.6050398,4.0308746,4.155481,37.8013128,72.9202746,72.5781487,69.4607702,14.5919768,31.9195409,21.8703526,58.4641315,26.0989483,58.2711339,44.9814364,38.0636076,76.5263497,2.7437452,36.858626,37.744356\r\n2667,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.1043552,4.2556457,37.5328938,73.2539608,73.3243568,69.9029156,14.1462176,31.8807159,21.4223802,56.8731369,24.7443683,58.1076424,45.2308343,37.9809489,76.1349199,2.6950306,37.2266504,36.6050398,4.0308746,4.155481,37.8013128,72.9202746,72.5781487,69.4607702,14.5919768,31.9195409,21.8703526,58.4641315,26.0989483,58.2711339,44.9814364,38.0636076,76.5263497,2.7437452,36.858626,37.744356,4.0113807,4.1594337,37.4600713,72.1316215,72.1106939,69.0520368,14.6401488,32.6742724,22.5956941,58.6951044,25.71696,57.5039049,44.5334254,37.7275682,76.7113534,2.6757886,36.5515852,37.5880413\r\n2668,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0308746,4.155481,37.8013128,72.9202746,72.5781487,69.4607702,14.5919768,31.9195409,21.8703526,58.4641315,26.0989483,58.2711339,44.9814364,38.0636076,76.5263497,2.7437452,36.858626,37.744356,4.0113807,4.1594337,37.4600713,72.1316215,72.1106939,69.0520368,14.6401488,32.6742724,22.5956941,58.6951044,25.71696,57.5039049,44.5334254,37.7275682,76.7113534,2.6757886,36.5515852,37.5880413,3.8634718,4.0258451,36.8492589,71.3353029,71.6466307,69.1032954,14.9869575,33.2220302,22.7903455,58.4249824,25.4266775,56.4286005,43.3190394,36.5691546,76.8513427,2.5430793,36.9856166,37.7787694\r\n2669,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0113807,4.1594337,37.4600713,72.1316215,72.1106939,69.0520368,14.6401488,32.6742724,22.5956941,58.6951044,25.71696,57.5039049,44.5334254,37.7275682,76.7113534,2.6757886,36.5515852,37.5880413,3.8634718,4.0258451,36.8492589,71.3353029,71.6466307,69.1032954,14.9869575,33.2220302,22.7903455,58.4249824,25.4266775,56.4286005,43.3190394,36.5691546,76.8513427,2.5430793,36.9856166,37.7787694,3.7877552,3.9390842,36.432126,71.6825204,72.4938236,70.1944571,14.9589863,34.040371,23.5358543,58.1360468,25.281549,56.3349035,42.4874037,35.8750752,77.3366642,2.7498813,36.4307084,37.596224\r\n2670,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.8634718,4.0258451,36.8492589,71.3353029,71.6466307,69.1032954,14.9869575,33.2220302,22.7903455,58.4249824,25.4266775,56.4286005,43.3190394,36.5691546,76.8513427,2.5430793,36.9856166,37.7787694,3.7877552,3.9390842,36.432126,71.6825204,72.4938236,70.1944571,14.9589863,34.040371,23.5358543,58.1360468,25.281549,56.3349035,42.4874037,35.8750752,77.3366642,2.7498813,36.4307084,37.596224,3.790454,3.9416981,35.5607806,73.4875429,73.8270036,71.2255769,14.5552462,34.9442823,23.9357765,57.5875615,25.0975904,55.5806224,42.3167797,35.520463,77.7773373,2.9432761,35.9982575,38.4771062\r\n2671,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.7877552,3.9390842,36.432126,71.6825204,72.4938236,70.1944571,14.9589863,34.040371,23.5358543,58.1360468,25.281549,56.3349035,42.4874037,35.8750752,77.3366642,2.7498813,36.4307084,37.596224,3.790454,3.9416981,35.5607806,73.4875429,73.8270036,71.2255769,14.5552462,34.9442823,23.9357765,57.5875615,25.0975904,55.5806224,42.3167797,35.520463,77.7773373,2.9432761,35.9982575,38.4771062,3.7172722,3.8229735,34.8685088,72.2357981,73.4388006,70.8940456,14.659462,34.0327797,23.2867291,57.7521601,24.8920599,55.141191,41.777486,35.1938452,77.4668782,2.9395225,35.3704807,37.7980342\r\n2672,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.790454,3.9416981,35.5607806,73.4875429,73.8270036,71.2255769,14.5552462,34.9442823,23.9357765,57.5875615,25.0975904,55.5806224,42.3167797,35.520463,77.7773373,2.9432761,35.9982575,38.4771062,3.7172722,3.8229735,34.8685088,72.2357981,73.4388006,70.8940456,14.659462,34.0327797,23.2867291,57.7521601,24.8920599,55.141191,41.777486,35.1938452,77.4668782,2.9395225,35.3704807,37.7980342,3.5690528,3.6766457,33.6831689,72.6301068,73.2773481,70.6801324,14.7015791,32.9206411,23.3141244,56.8911538,24.4972915,54.8008933,40.8739703,34.4096758,77.5642736,2.8325741,34.883213,36.6876999\r\n2673,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.7172722,3.8229735,34.8685088,72.2357981,73.4388006,70.8940456,14.659462,34.0327797,23.2867291,57.7521601,24.8920599,55.141191,41.777486,35.1938452,77.4668782,2.9395225,35.3704807,37.7980342,3.5690528,3.6766457,33.6831689,72.6301068,73.2773481,70.6801324,14.7015791,32.9206411,23.3141244,56.8911538,24.4972915,54.8008933,40.8739703,34.4096758,77.5642736,2.8325741,34.883213,36.6876999,3.5108452,3.6093149,33.1815286,72.6076378,72.9547291,70.6737729,14.0756039,32.9467194,23.2472009,55.9741868,23.0822921,53.8303417,40.2150454,33.5103227,77.6385861,2.9747441,34.5105121,36.619932\r\n2674,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.5690528,3.6766457,33.6831689,72.6301068,73.2773481,70.6801324,14.7015791,32.9206411,23.3141244,56.8911538,24.4972915,54.8008933,40.8739703,34.4096758,77.5642736,2.8325741,34.883213,36.6876999,3.5108452,3.6093149,33.1815286,72.6076378,72.9547291,70.6737729,14.0756039,32.9467194,23.2472009,55.9741868,23.0822921,53.8303417,40.2150454,33.5103227,77.6385861,2.9747441,34.5105121,36.619932,3.2968943,3.3808074,33.0189213,73.0328819,73.7471241,70.5779676,14.3464386,32.1863073,22.5874342,55.8660112,23.6258707,54.1633901,39.3205316,32.9266701,77.5464336,2.9965364,34.0300043,36.2332286\r\n2675,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.5108452,3.6093149,33.1815286,72.6076378,72.9547291,70.6737729,14.0756039,32.9467194,23.2472009,55.9741868,23.0822921,53.8303417,40.2150454,33.5103227,77.6385861,2.9747441,34.5105121,36.619932,3.2968943,3.3808074,33.0189213,73.0328819,73.7471241,70.5779676,14.3464386,32.1863073,22.5874342,55.8660112,23.6258707,54.1633901,39.3205316,32.9266701,77.5464336,2.9965364,34.0300043,36.2332286,3.2188776,3.2773812,33.2805213,73.3258634,74.2150476,70.546623,14.2429352,31.66023,22.3700601,56.6478467,24.7048893,54.3899254,39.4081,33.2928134,77.2449814,3.225217,33.6396265,35.738815\r\n2676,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.2968943,3.3808074,33.0189213,73.0328819,73.7471241,70.5779676,14.3464386,32.1863073,22.5874342,55.8660112,23.6258707,54.1633901,39.3205316,32.9266701,77.5464336,2.9965364,34.0300043,36.2332286,3.2188776,3.2773812,33.2805213,73.3258634,74.2150476,70.546623,14.2429352,31.66023,22.3700601,56.6478467,24.7048893,54.3899254,39.4081,33.2928134,77.2449814,3.225217,33.6396265,35.738815,3.1165074,3.1875434,32.9669948,73.6869365,74.1057657,71.089348,14.8129579,32.2915875,21.9288859,57.5641146,25.2963989,54.9110815,39.2344412,33.0334878,77.2053653,3.2066973,33.1829643,34.7242901\r\n2677,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.2188776,3.2773812,33.2805213,73.3258634,74.2150476,70.546623,14.2429352,31.66023,22.3700601,56.6478467,24.7048893,54.3899254,39.4081,33.2928134,77.2449814,3.225217,33.6396265,35.738815,3.1165074,3.1875434,32.9669948,73.6869365,74.1057657,71.089348,14.8129579,32.2915875,21.9288859,57.5641146,25.2963989,54.9110815,39.2344412,33.0334878,77.2053653,3.2066973,33.1829643,34.7242901,2.9423198,2.9997559,33.0535828,72.6734774,73.2968946,70.4646368,15.2944555,31.0034561,21.9792132,58.8488512,25.9636755,56.2371411,38.2255488,32.4985728,76.9636208,3.2226471,33.4904192,33.5861456\r\n2678,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.1165074,3.1875434,32.9669948,73.6869365,74.1057657,71.089348,14.8129579,32.2915875,21.9288859,57.5641146,25.2963989,54.9110815,39.2344412,33.0334878,77.2053653,3.2066973,33.1829643,34.7242901,2.9423198,2.9997559,33.0535828,72.6734774,73.2968946,70.4646368,15.2944555,31.0034561,21.9792132,58.8488512,25.9636755,56.2371411,38.2255488,32.4985728,76.9636208,3.2226471,33.4904192,33.5861456,2.838667,2.8748393,31.8351897,73.3353647,73.7817973,70.7612112,15.8966398,32.1981234,22.3104948,58.5346916,26.431795,56.7531737,37.5410507,31.693167,76.7794149,3.2751115,33.2095996,32.9676103\r\n2679,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.9423198,2.9997559,33.0535828,72.6734774,73.2968946,70.4646368,15.2944555,31.0034561,21.9792132,58.8488512,25.9636755,56.2371411,38.2255488,32.4985728,76.9636208,3.2226471,33.4904192,33.5861456,2.838667,2.8748393,31.8351897,73.3353647,73.7817973,70.7612112,15.8966398,32.1981234,22.3104948,58.5346916,26.431795,56.7531737,37.5410507,31.693167,76.7794149,3.2751115,33.2095996,32.9676103,2.8044856,2.8526944,31.2839728,73.7590192,73.215226,71.9500356,16.6333063,33.2052039,22.2510354,59.4619242,27.6661823,56.6718394,36.8988365,31.1940784,76.6338956,3.5325101,33.8281503,33.0094819\r\n2680,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.838667,2.8748393,31.8351897,73.3353647,73.7817973,70.7612112,15.8966398,32.1981234,22.3104948,58.5346916,26.431795,56.7531737,37.5410507,31.693167,76.7794149,3.2751115,33.2095996,32.9676103,2.8044856,2.8526944,31.2839728,73.7590192,73.215226,71.9500356,16.6333063,33.2052039,22.2510354,59.4619242,27.6661823,56.6718394,36.8988365,31.1940784,76.6338956,3.5325101,33.8281503,33.0094819,2.6209882,2.6647103,30.87764,73.8165202,73.630251,72.6462584,17.5166411,33.0730493,22.1391317,59.8096243,28.3762023,56.9738142,36.5097121,31.0454117,76.6859175,3.4654902,33.9112914,32.2979617\r\n2681,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.8044856,2.8526944,31.2839728,73.7590192,73.215226,71.9500356,16.6333063,33.2052039,22.2510354,59.4619242,27.6661823,56.6718394,36.8988365,31.1940784,76.6338956,3.5325101,33.8281503,33.0094819,2.6209882,2.6647103,30.87764,73.8165202,73.630251,72.6462584,17.5166411,33.0730493,22.1391317,59.8096243,28.3762023,56.9738142,36.5097121,31.0454117,76.6859175,3.4654902,33.9112914,32.2979617,2.6163531,2.6420151,29.5638786,73.4193429,72.7465617,72.9587996,17.4776501,32.7881893,21.235787,59.9581637,28.1261347,56.7241624,35.785428,30.1364906,76.4389335,3.5191975,34.590244,32.7999588\r\n2682,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.6209882,2.6647103,30.87764,73.8165202,73.630251,72.6462584,17.5166411,33.0730493,22.1391317,59.8096243,28.3762023,56.9738142,36.5097121,31.0454117,76.6859175,3.4654902,33.9112914,32.2979617,2.6163531,2.6420151,29.5638786,73.4193429,72.7465617,72.9587996,17.4776501,32.7881893,21.235787,59.9581637,28.1261347,56.7241624,35.785428,30.1364906,76.4389335,3.5191975,34.590244,32.7999588,2.5997539,2.6303923,27.7284058,72.2055158,71.6280218,73.2061551,17.8972229,32.6673223,21.0703796,60.0793958,28.0619146,55.4688552,34.4120135,28.6256437,75.9385424,3.3036027,34.0344061,33.4260588\r\n2683,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.6163531,2.6420151,29.5638786,73.4193429,72.7465617,72.9587996,17.4776501,32.7881893,21.235787,59.9581637,28.1261347,56.7241624,35.785428,30.1364906,76.4389335,3.5191975,34.590244,32.7999588,2.5997539,2.6303923,27.7284058,72.2055158,71.6280218,73.2061551,17.8972229,32.6673223,21.0703796,60.0793958,28.0619146,55.4688552,34.4120135,28.6256437,75.9385424,3.3036027,34.0344061,33.4260588,2.5532636,2.6289742,27.416285,71.9913929,71.3839171,72.4863928,17.7891687,31.1107877,20.9023046,59.7226081,27.7854362,54.8269615,33.5276402,28.0368416,75.868507,3.4353167,34.154302,33.2178586\r\n2684,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.5997539,2.6303923,27.7284058,72.2055158,71.6280218,73.2061551,17.8972229,32.6673223,21.0703796,60.0793958,28.0619146,55.4688552,34.4120135,28.6256437,75.9385424,3.3036027,34.0344061,33.4260588,2.5532636,2.6289742,27.416285,71.9913929,71.3839171,72.4863928,17.7891687,31.1107877,20.9023046,59.7226081,27.7854362,54.8269615,33.5276402,28.0368416,75.868507,3.4353167,34.154302,33.2178586,2.4959546,2.5978766,26.476411,72.223638,71.7285829,72.1177839,18.7207675,32.0549636,20.9576435,60.1827269,27.8980104,53.7218058,33.0499143,27.4161104,75.594014,3.2875804,33.3631053,32.548169\r\n2685,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.5532636,2.6289742,27.416285,71.9913929,71.3839171,72.4863928,17.7891687,31.1107877,20.9023046,59.7226081,27.7854362,54.8269615,33.5276402,28.0368416,75.868507,3.4353167,34.154302,33.2178586,2.4959546,2.5978766,26.476411,72.223638,71.7285829,72.1177839,18.7207675,32.0549636,20.9576435,60.1827269,27.8980104,53.7218058,33.0499143,27.4161104,75.594014,3.2875804,33.3631053,32.548169,2.4441583,2.5827995,25.8342734,72.3742159,71.3215275,72.5052686,19.0488261,31.6829121,19.8392289,60.6944233,28.0115545,53.1448715,32.0679453,26.3843723,75.2803063,3.2881222,33.6388309,33.1061796\r\n2686,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.4959546,2.5978766,26.476411,72.223638,71.7285829,72.1177839,18.7207675,32.0549636,20.9576435,60.1827269,27.8980104,53.7218058,33.0499143,27.4161104,75.594014,3.2875804,33.3631053,32.548169,2.4441583,2.5827995,25.8342734,72.3742159,71.3215275,72.5052686,19.0488261,31.6829121,19.8392289,60.6944233,28.0115545,53.1448715,32.0679453,26.3843723,75.2803063,3.2881222,33.6388309,33.1061796,2.4293746,2.5561564,25.9191222,72.9279172,72.2730025,72.7253206,18.6612837,31.2667258,19.0326885,60.371557,27.1784987,52.8667592,31.8743259,26.036374,75.3297499,3.2018027,33.2417842,32.0691863\r\n2687,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.4441583,2.5827995,25.8342734,72.3742159,71.3215275,72.5052686,19.0488261,31.6829121,19.8392289,60.6944233,28.0115545,53.1448715,32.0679453,26.3843723,75.2803063,3.2881222,33.6388309,33.1061796,2.4293746,2.5561564,25.9191222,72.9279172,72.2730025,72.7253206,18.6612837,31.2667258,19.0326885,60.371557,27.1784987,52.8667592,31.8743259,26.036374,75.3297499,3.2018027,33.2417842,32.0691863,2.4052081,2.5083119,24.4152706,72.9114737,72.1730167,72.0045538,19.066745,31.0143315,19.0987668,60.9188777,27.9990554,52.511395,30.6808411,24.6548456,74.3067169,3.4046749,32.8380404,31.3311315\r\n2688,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.4293746,2.5561564,25.9191222,72.9279172,72.2730025,72.7253206,18.6612837,31.2667258,19.0326885,60.371557,27.1784987,52.8667592,31.8743259,26.036374,75.3297499,3.2018027,33.2417842,32.0691863,2.4052081,2.5083119,24.4152706,72.9114737,72.1730167,72.0045538,19.066745,31.0143315,19.0987668,60.9188777,27.9990554,52.511395,30.6808411,24.6548456,74.3067169,3.4046749,32.8380404,31.3311315,2.273222,2.3636358,23.7416077,72.9514498,71.6500422,70.6978798,19.8622762,30.4710392,19.7937894,61.3648423,29.2815132,52.2824462,29.9145762,24.0577825,74.4607042,3.7153475,32.1350424,30.029901\r\n2689,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.4052081,2.5083119,24.4152706,72.9114737,72.1730167,72.0045538,19.066745,31.0143315,19.0987668,60.9188777,27.9990554,52.511395,30.6808411,24.6548456,74.3067169,3.4046749,32.8380404,31.3311315,2.273222,2.3636358,23.7416077,72.9514498,71.6500422,70.6978798,19.8622762,30.4710392,19.7937894,61.3648423,29.2815132,52.2824462,29.9145762,24.0577825,74.4607042,3.7153475,32.1350424,30.029901,2.0810569,2.156373,23.5201575,73.2657829,71.5903128,69.9863739,20.2195707,29.9109911,19.4791133,61.6704431,29.9812108,51.6250873,29.6725927,24.0464806,74.1124705,4.1110782,32.8920141,28.5202875\r\n2690,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.273222,2.3636358,23.7416077,72.9514498,71.6500422,70.6978798,19.8622762,30.4710392,19.7937894,61.3648423,29.2815132,52.2824462,29.9145762,24.0577825,74.4607042,3.7153475,32.1350424,30.029901,2.0810569,2.156373,23.5201575,73.2657829,71.5903128,69.9863739,20.2195707,29.9109911,19.4791133,61.6704431,29.9812108,51.6250873,29.6725927,24.0464806,74.1124705,4.1110782,32.8920141,28.5202875,1.9655895,2.0093067,22.6468092,72.4920992,71.2546164,69.8241158,21.3290329,31.6676226,19.6143262,62.3918106,31.1565272,50.8749267,29.0848682,23.4727602,73.5346133,3.9560476,32.0283474,27.0790307\r\n2691,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0810569,2.156373,23.5201575,73.2657829,71.5903128,69.9863739,20.2195707,29.9109911,19.4791133,61.6704431,29.9812108,51.6250873,29.6725927,24.0464806,74.1124705,4.1110782,32.8920141,28.5202875,1.9655895,2.0093067,22.6468092,72.4920992,71.2546164,69.8241158,21.3290329,31.6676226,19.6143262,62.3918106,31.1565272,50.8749267,29.0848682,23.4727602,73.5346133,3.9560476,32.0283474,27.0790307,1.8119249,1.8546283,21.9879172,72.1285693,70.8673612,70.4060584,20.9464764,32.0595151,19.2335742,62.0346095,31.7157665,50.1316988,28.271661,22.7868463,73.4524569,3.9532368,31.7759006,26.7261068\r\n2692,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.9655895,2.0093067,22.6468092,72.4920992,71.2546164,69.8241158,21.3290329,31.6676226,19.6143262,62.3918106,31.1565272,50.8749267,29.0848682,23.4727602,73.5346133,3.9560476,32.0283474,27.0790307,1.8119249,1.8546283,21.9879172,72.1285693,70.8673612,70.4060584,20.9464764,32.0595151,19.2335742,62.0346095,31.7157665,50.1316988,28.271661,22.7868463,73.4524569,3.9532368,31.7759006,26.7261068,1.7427055,1.7746904,21.2675597,70.3920638,70.0054579,68.8778126,21.2194286,30.8751913,19.4337429,62.9227812,32.6011581,49.1765931,27.8112325,22.4306637,73.0608876,3.9241573,31.3095056,25.2447867\r\n2693,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.8119249,1.8546283,21.9879172,72.1285693,70.8673612,70.4060584,20.9464764,32.0595151,19.2335742,62.0346095,31.7157665,50.1316988,28.271661,22.7868463,73.4524569,3.9532368,31.7759006,26.7261068,1.7427055,1.7746904,21.2675597,70.3920638,70.0054579,68.8778126,21.2194286,30.8751913,19.4337429,62.9227812,32.6011581,49.1765931,27.8112325,22.4306637,73.0608876,3.9241573,31.3095056,25.2447867,1.5691664,1.6019574,20.6944051,68.9295437,69.7991885,69.0927575,22.5759395,30.4008801,19.0390207,63.588776,34.3791728,48.7870626,26.6942358,21.5488309,72.6548591,4.062296,31.38543,24.5604421\r\n2694,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.7427055,1.7746904,21.2675597,70.3920638,70.0054579,68.8778126,21.2194286,30.8751913,19.4337429,62.9227812,32.6011581,49.1765931,27.8112325,22.4306637,73.0608876,3.9241573,31.3095056,25.2447867,1.5691664,1.6019574,20.6944051,68.9295437,69.7991885,69.0927575,22.5759395,30.4008801,19.0390207,63.588776,34.3791728,48.7870626,26.6942358,21.5488309,72.6548591,4.062296,31.38543,24.5604421,1.5268399,1.5848627,20.2569309,68.2384576,69.7769195,68.8159609,22.8819586,30.4250121,18.1187298,63.6255921,35.182378,48.078831,25.8421527,21.0050572,72.3774522,4.1394407,32.0749997,25.1635732\r\n2695,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.5691664,1.6019574,20.6944051,68.9295437,69.7991885,69.0927575,22.5759395,30.4008801,19.0390207,63.588776,34.3791728,48.7870626,26.6942358,21.5488309,72.6548591,4.062296,31.38543,24.5604421,1.5268399,1.5848627,20.2569309,68.2384576,69.7769195,68.8159609,22.8819586,30.4250121,18.1187298,63.6255921,35.182378,48.078831,25.8421527,21.0050572,72.3774522,4.1394407,32.0749997,25.1635732,1.5506899,1.5998466,20.2477984,68.7498779,70.3222925,70.1746859,23.1843367,30.6671223,17.566887,64.2930686,35.4253472,48.2314157,25.6101586,20.7049731,71.7792189,3.9513985,32.6009187,24.5465404\r\n2696,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.5268399,1.5848627,20.2569309,68.2384576,69.7769195,68.8159609,22.8819586,30.4250121,18.1187298,63.6255921,35.182378,48.078831,25.8421527,21.0050572,72.3774522,4.1394407,32.0749997,25.1635732,1.5506899,1.5998466,20.2477984,68.7498779,70.3222925,70.1746859,23.1843367,30.6671223,17.566887,64.2930686,35.4253472,48.2314157,25.6101586,20.7049731,71.7792189,3.9513985,32.6009187,24.5465404,1.5091562,1.5679225,19.8231046,69.2202217,70.7320812,71.2359151,23.4771271,31.3898523,18.7414768,65.1024822,35.7239736,47.7840399,24.6223861,19.7974753,71.0638809,3.6838629,32.16753,25.3215377\r\n2697,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.5506899,1.5998466,20.2477984,68.7498779,70.3222925,70.1746859,23.1843367,30.6671223,17.566887,64.2930686,35.4253472,48.2314157,25.6101586,20.7049731,71.7792189,3.9513985,32.6009187,24.5465404,1.5091562,1.5679225,19.8231046,69.2202217,70.7320812,71.2359151,23.4771271,31.3898523,18.7414768,65.1024822,35.7239736,47.7840399,24.6223861,19.7974753,71.0638809,3.6838629,32.16753,25.3215377,1.5441569,1.5797431,18.9393285,69.872331,70.7245409,71.7494652,22.7600356,30.9290193,20.1389797,66.2561611,36.3060118,47.8047033,23.6004905,18.9320827,70.9595175,3.7485603,32.2438316,26.6483387\r\n2698,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.5091562,1.5679225,19.8231046,69.2202217,70.7320812,71.2359151,23.4771271,31.3898523,18.7414768,65.1024822,35.7239736,47.7840399,24.6223861,19.7974753,71.0638809,3.6838629,32.16753,25.3215377,1.5441569,1.5797431,18.9393285,69.872331,70.7245409,71.7494652,22.7600356,30.9290193,20.1389797,66.2561611,36.3060118,47.8047033,23.6004905,18.9320827,70.9595175,3.7485603,32.2438316,26.6483387,1.6093755,1.5938902,18.7585396,69.6180667,70.7725328,71.5124725,23.1923261,28.9246252,19.7300283,66.1841861,36.1239236,47.9859225,23.1111218,18.3528971,70.1545731,3.7358367,33.2798444,25.499455\r\n2699,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.5441569,1.5797431,18.9393285,69.872331,70.7245409,71.7494652,22.7600356,30.9290193,20.1389797,66.2561611,36.3060118,47.8047033,23.6004905,18.9320827,70.9595175,3.7485603,32.2438316,26.6483387,1.6093755,1.5938902,18.7585396,69.6180667,70.7725328,71.5124725,23.1923261,28.9246252,19.7300283,66.1841861,36.1239236,47.9859225,23.1111218,18.3528971,70.1545731,3.7358367,33.2798444,25.499455,1.6448518,1.6101248,18.5254436,69.9688925,71.1788998,72.4313366,23.4103779,28.9475533,20.2356533,65.9305477,35.9318252,47.6830446,22.8401199,18.1684841,70.158745,3.8005365,33.9641151,25.1314829\r\n2700,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.6093755,1.5938902,18.7585396,69.6180667,70.7725328,71.5124725,23.1923261,28.9246252,19.7300283,66.1841861,36.1239236,47.9859225,23.1111218,18.3528971,70.1545731,3.7358367,33.2798444,25.499455,1.6448518,1.6101248,18.5254436,69.9688925,71.1788998,72.4313366,23.4103779,28.9475533,20.2356533,65.9305477,35.9318252,47.6830446,22.8401199,18.1684841,70.158745,3.8005365,33.9641151,25.1314829,1.6631388,1.6282893,16.9581647,69.2236725,70.654197,71.7040884,22.5790142,29.0602548,20.5828656,66.2766028,35.1380027,46.638062,22.3807318,17.6257552,69.4839269,3.9492543,33.5885675,25.4570647\r\n2701,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.6448518,1.6101248,18.5254436,69.9688925,71.1788998,72.4313366,23.4103779,28.9475533,20.2356533,65.9305477,35.9318252,47.6830446,22.8401199,18.1684841,70.158745,3.8005365,33.9641151,25.1314829,1.6631388,1.6282893,16.9581647,69.2236725,70.654197,71.7040884,22.5790142,29.0602548,20.5828656,66.2766028,35.1380027,46.638062,22.3807318,17.6257552,69.4839269,3.9492543,33.5885675,25.4570647,1.6215281,1.5849417,16.4428461,69.4334015,71.1888835,71.2927917,22.5407797,28.6264052,21.2419682,66.2686886,35.0618547,46.4498696,21.9924784,17.2311896,69.1126095,4.0259821,33.4631647,23.4253774\r\n2702,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.6631388,1.6282893,16.9581647,69.2236725,70.654197,71.7040884,22.5790142,29.0602548,20.5828656,66.2766028,35.1380027,46.638062,22.3807318,17.6257552,69.4839269,3.9492543,33.5885675,25.4570647,1.6215281,1.5849417,16.4428461,69.4334015,71.1888835,71.2927917,22.5407797,28.6264052,21.2419682,66.2686886,35.0618547,46.4498696,21.9924784,17.2311896,69.1126095,4.0259821,33.4631647,23.4253774,1.5143221,1.4862323,15.6320044,68.9027136,70.9665471,70.8765934,22.2878028,27.5904421,22.0020648,65.5399308,34.706029,46.0153325,21.2124287,16.5318936,68.5194474,4.335971,33.0361779,21.874489\r\n2703,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.6215281,1.5849417,16.4428461,69.4334015,71.1888835,71.2927917,22.5407797,28.6264052,21.2419682,66.2686886,35.0618547,46.4498696,21.9924784,17.2311896,69.1126095,4.0259821,33.4631647,23.4253774,1.5143221,1.4862323,15.6320044,68.9027136,70.9665471,70.8765934,22.2878028,27.5904421,22.0020648,65.5399308,34.706029,46.0153325,21.2124287,16.5318936,68.5194474,4.335971,33.0361779,21.874489,1.4233888,1.3799101,15.7189427,67.7223427,71.14903,69.3784039,22.485778,25.5841541,20.3482458,65.3231162,35.5659573,46.1438937,21.4585848,16.5770707,68.5371621,4.2697474,32.8214642,19.8499516\r\n2704,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.5143221,1.4862323,15.6320044,68.9027136,70.9665471,70.8765934,22.2878028,27.5904421,22.0020648,65.5399308,34.706029,46.0153325,21.2124287,16.5318936,68.5194474,4.335971,33.0361779,21.874489,1.4233888,1.3799101,15.7189427,67.7223427,71.14903,69.3784039,22.485778,25.5841541,20.3482458,65.3231162,35.5659573,46.1438937,21.4585848,16.5770707,68.5371621,4.2697474,32.8214642,19.8499516,1.3292926,1.2821048,15.3164596,67.1893836,70.6777037,68.9913839,22.8429842,23.3820601,19.0694072,65.0020916,35.4074572,45.8931398,21.1802578,16.0966148,67.6471775,4.2015806,32.9992415,18.5652578\r\n2705,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.4233888,1.3799101,15.7189427,67.7223427,71.14903,69.3784039,22.485778,25.5841541,20.3482458,65.3231162,35.5659573,46.1438937,21.4585848,16.5770707,68.5371621,4.2697474,32.8214642,19.8499516,1.3292926,1.2821048,15.3164596,67.1893836,70.6777037,68.9913839,22.8429842,23.3820601,19.0694072,65.0020916,35.4074572,45.8931398,21.1802578,16.0966148,67.6471775,4.2015806,32.9992415,18.5652578,1.2311354,1.205318,14.3312285,67.4925123,70.8828124,68.8339895,22.9056663,22.7280779,19.234062,65.9760222,36.6261065,44.8243408,20.3639498,15.1211136,67.4570595,4.2722848,32.0410516,17.9335588\r\n2706,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.3292926,1.2821048,15.3164596,67.1893836,70.6777037,68.9913839,22.8429842,23.3820601,19.0694072,65.0020916,35.4074572,45.8931398,21.1802578,16.0966148,67.6471775,4.2015806,32.9992415,18.5652578,1.2311354,1.205318,14.3312285,67.4925123,70.8828124,68.8339895,22.9056663,22.7280779,19.234062,65.9760222,36.6261065,44.8243408,20.3639498,15.1211136,67.4570595,4.2722848,32.0410516,17.9335588,1.1356547,1.133196,13.6239427,67.7202283,70.7301944,68.2254156,22.9248767,22.3967515,19.3916976,65.8100936,37.1365565,44.1616306,19.86887,14.4717584,66.673214,4.5366639,31.5394208,17.1973567\r\n2707,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.2311354,1.205318,14.3312285,67.4925123,70.8828124,68.8339895,22.9056663,22.7280779,19.234062,65.9760222,36.6261065,44.8243408,20.3639498,15.1211136,67.4570595,4.2722848,32.0410516,17.9335588,1.1356547,1.133196,13.6239427,67.7202283,70.7301944,68.2254156,22.9248767,22.3967515,19.3916976,65.8100936,37.1365565,44.1616306,19.86887,14.4717584,66.673214,4.5366639,31.5394208,17.1973567,1.1630797,1.1606166,13.8893515,69.1401853,71.6525352,69.0905724,22.9227226,20.6460338,18.6854191,65.7172948,37.1033243,45.3576059,19.8660196,14.478352,66.5801366,4.3503282,32.6729346,16.5510269\r\n2708,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.1356547,1.133196,13.6239427,67.7202283,70.7301944,68.2254156,22.9248767,22.3967515,19.3916976,65.8100936,37.1365565,44.1616306,19.86887,14.4717584,66.673214,4.5366639,31.5394208,17.1973567,1.1630797,1.1606166,13.8893515,69.1401853,71.6525352,69.0905724,22.9227226,20.6460338,18.6854191,65.7172948,37.1033243,45.3576059,19.8660196,14.478352,66.5801366,4.3503282,32.6729346,16.5510269,1.1386058,1.1361209,13.65365,69.4776375,71.2635139,70.4564305,22.928957,19.9814584,18.0504039,65.6005126,36.8142309,44.8611733,19.2801517,14.0123635,65.7150911,4.3232563,33.1014719,18.0176009\r\n2709,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.1630797,1.1606166,13.8893515,69.1401853,71.6525352,69.0905724,22.9227226,20.6460338,18.6854191,65.7172948,37.1033243,45.3576059,19.8660196,14.478352,66.5801366,4.3503282,32.6729346,16.5510269,1.1386058,1.1361209,13.65365,69.4776375,71.2635139,70.4564305,22.928957,19.9814584,18.0504039,65.6005126,36.8142309,44.8611733,19.2801517,14.0123635,65.7150911,4.3232563,33.1014719,18.0176009,1.1378906,1.167068,12.774623,69.4668303,71.8875935,71.1112907,23.1958805,19.5149424,16.7922934,66.7712981,38.1166557,44.6279797,18.231694,12.9730867,65.1982208,4.0811778,33.9276145,17.1049509\r\n2710,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.1386058,1.1361209,13.65365,69.4776375,71.2635139,70.4564305,22.928957,19.9814584,18.0504039,65.6005126,36.8142309,44.8611733,19.2801517,14.0123635,65.7150911,4.3232563,33.1014719,18.0176009,1.1378906,1.167068,12.774623,69.4668303,71.8875935,71.1112907,23.1958805,19.5149424,16.7922934,66.7712981,38.1166557,44.6279797,18.231694,12.9730867,65.1982208,4.0811778,33.9276145,17.1049509,1.2551874,1.3018723,12.0978199,69.3482553,72.3027212,71.0328651,24.0691463,19.631675,17.12799,66.9914257,37.8790609,44.2260172,17.7745881,12.7165138,64.6123677,4.2997675,34.1095422,17.2544412\r\n2711,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.1378906,1.167068,12.774623,69.4668303,71.8875935,71.1112907,23.1958805,19.5149424,16.7922934,66.7712981,38.1166557,44.6279797,18.231694,12.9730867,65.1982208,4.0811778,33.9276145,17.1049509,1.2551874,1.3018723,12.0978199,69.3482553,72.3027212,71.0328651,24.0691463,19.631675,17.12799,66.9914257,37.8790609,44.2260172,17.7745881,12.7165138,64.6123677,4.2997675,34.1095422,17.2544412,1.2971858,1.3449993,12.3272286,69.2087902,71.5780074,71.0544731,24.4273492,20.4580995,17.6461612,66.6019833,38.0574354,43.8818193,17.4577606,12.4145299,64.453931,4.6263419,35.1833414,15.3742135\r\n2712,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.2551874,1.3018723,12.0978199,69.3482553,72.3027212,71.0328651,24.0691463,19.631675,17.12799,66.9914257,37.8790609,44.2260172,17.7745881,12.7165138,64.6123677,4.2997675,34.1095422,17.2544412,1.2971858,1.3449993,12.3272286,69.2087902,71.5780074,71.0544731,24.4273492,20.4580995,17.6461612,66.6019833,38.0574354,43.8818193,17.4577606,12.4145299,64.453931,4.6263419,35.1833414,15.3742135,1.3278336,1.3764424,12.6553521,68.1067909,71.1086654,71.5353164,23.8185132,20.2695829,17.2770962,65.1217101,37.9867495,44.2253261,17.6215939,12.5887118,63.3354069,4.7502317,36.0583015,16.4681309\r\n2713,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.2971858,1.3449993,12.3272286,69.2087902,71.5780074,71.0544731,24.4273492,20.4580995,17.6461612,66.6019833,38.0574354,43.8818193,17.4577606,12.4145299,64.453931,4.6263419,35.1833414,15.3742135,1.3278336,1.3764424,12.6553521,68.1067909,71.1086654,71.5353164,23.8185132,20.2695829,17.2770962,65.1217101,37.9867495,44.2253261,17.6215939,12.5887118,63.3354069,4.7502317,36.0583015,16.4681309,1.2144826,1.2707421,12.7518524,67.8090275,70.7422715,72.3140739,24.3039578,19.0614549,15.8208678,65.3701854,38.2057734,44.3253117,16.9150102,12.1806204,62.5854593,4.6292933,36.0521691,16.9691708\r\n2714,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.3278336,1.3764424,12.6553521,68.1067909,71.1086654,71.5353164,23.8185132,20.2695829,17.2770962,65.1217101,37.9867495,44.2253261,17.6215939,12.5887118,63.3354069,4.7502317,36.0583015,16.4681309,1.2144826,1.2707421,12.7518524,67.8090275,70.7422715,72.3140739,24.3039578,19.0614549,15.8208678,65.3701854,38.2057734,44.3253117,16.9150102,12.1806204,62.5854593,4.6292933,36.0521691,16.9691708,1.1629004,1.2195083,12.2440175,65.4123026,69.1765293,70.9926219,24.824224,18.5467135,16.3334069,65.229511,39.0199162,43.706985,16.3878638,11.8302542,61.2169879,4.6969717,35.4961989,17.0823624\r\n2715,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.2144826,1.2707421,12.7518524,67.8090275,70.7422715,72.3140739,24.3039578,19.0614549,15.8208678,65.3701854,38.2057734,44.3253117,16.9150102,12.1806204,62.5854593,4.6292933,36.0521691,16.9691708,1.1629004,1.2195083,12.2440175,65.4123026,69.1765293,70.9926219,24.824224,18.5467135,16.3334069,65.229511,39.0199162,43.706985,16.3878638,11.8302542,61.2169879,4.6969717,35.4961989,17.0823624,1.171711,1.2289859,12.4645793,65.2816397,69.4999164,69.6398082,24.4262917,19.0850581,17.7348036,65.6702432,38.7561026,43.7279881,16.4032127,11.7960726,61.0230919,4.9128986,34.5892994,15.5596326\r\n2716,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.1629004,1.2195083,12.2440175,65.4123026,69.1765293,70.9926219,24.824224,18.5467135,16.3334069,65.229511,39.0199162,43.706985,16.3878638,11.8302542,61.2169879,4.6969717,35.4961989,17.0823624,1.171711,1.2289859,12.4645793,65.2816397,69.4999164,69.6398082,24.4262917,19.0850581,17.7348036,65.6702432,38.7561026,43.7279881,16.4032127,11.7960726,61.0230919,4.9128986,34.5892994,15.5596326,1.155544,1.173505,13.085119,64.3176417,68.3359565,69.1226634,25.7793325,18.0788957,17.522016,65.777661,38.2419856,42.0025602,16.5151599,12.2377344,59.0561528,5.0737491,33.3464904,15.6767473\r\n2717,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.171711,1.2289859,12.4645793,65.2816397,69.4999164,69.6398082,24.4262917,19.0850581,17.7348036,65.6702432,38.7561026,43.7279881,16.4032127,11.7960726,61.0230919,4.9128986,34.5892994,15.5596326,1.155544,1.173505,13.085119,64.3176417,68.3359565,69.1226634,25.7793325,18.0788957,17.522016,65.777661,38.2419856,42.0025602,16.5151599,12.2377344,59.0561528,5.0737491,33.3464904,15.6767473,1.0301868,1.0433889,12.9405328,65.466596,67.0003113,70.218062,25.1422777,17.5082767,18.3388827,65.4219561,38.1080801,41.9071035,16.2933816,11.9962461,58.4928007,4.9141005,34.1204072,15.6679518\r\n2718,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.155544,1.173505,13.085119,64.3176417,68.3359565,69.1226634,25.7793325,18.0788957,17.522016,65.777661,38.2419856,42.0025602,16.5151599,12.2377344,59.0561528,5.0737491,33.3464904,15.6767473,1.0301868,1.0433889,12.9405328,65.466596,67.0003113,70.218062,25.1422777,17.5082767,18.3388827,65.4219561,38.1080801,41.9071035,16.2933816,11.9962461,58.4928007,4.9141005,34.1204072,15.6679518,0.9762576,0.9894485,11.8788334,66.0068246,68.4120407,70.0605982,25.5432581,16.3954069,17.6619176,65.3361222,37.9073719,42.1714207,15.4813392,11.2658031,58.1021836,4.689357,34.2234188,16.0188504\r\n2719,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0301868,1.0433889,12.9405328,65.466596,67.0003113,70.218062,25.1422777,17.5082767,18.3388827,65.4219561,38.1080801,41.9071035,16.2933816,11.9962461,58.4928007,4.9141005,34.1204072,15.6679518,0.9762576,0.9894485,11.8788334,66.0068246,68.4120407,70.0605982,25.5432581,16.3954069,17.6619176,65.3361222,37.9073719,42.1714207,15.4813392,11.2658031,58.1021836,4.689357,34.2234188,16.0188504,0.9098796,0.9265137,11.0850926,67.4080084,68.9885174,70.5809366,26.0906742,16.8720534,17.6882741,66.1933026,37.3311117,42.7952193,14.7853959,10.6712763,57.6658413,4.8002543,34.0786842,14.1460355\r\n2720,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.9762576,0.9894485,11.8788334,66.0068246,68.4120407,70.0605982,25.5432581,16.3954069,17.6619176,65.3361222,37.9073719,42.1714207,15.4813392,11.2658031,58.1021836,4.689357,34.2234188,16.0188504,0.9098796,0.9265137,11.0850926,67.4080084,68.9885174,70.5809366,26.0906742,16.8720534,17.6882741,66.1933026,37.3311117,42.7952193,14.7853959,10.6712763,57.6658413,4.8002543,34.0786842,14.1460355,0.9696426,0.9729595,10.7408934,67.4771084,69.2143468,70.0307018,26.762024,15.7393981,18.1455418,65.5628606,37.6342938,41.8845173,14.7741102,10.4734231,56.9138205,4.8096658,34.7197211,13.2112948\r\n2721,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.9098796,0.9265137,11.0850926,67.4080084,68.9885174,70.5809366,26.0906742,16.8720534,17.6882741,66.1933026,37.3311117,42.7952193,14.7853959,10.6712763,57.6658413,4.8002543,34.0786842,14.1460355,0.9696426,0.9729595,10.7408934,67.4771084,69.2143468,70.0307018,26.762024,15.7393981,18.1455418,65.5628606,37.6342938,41.8845173,14.7741102,10.4734231,56.9138205,4.8096658,34.7197211,13.2112948,1.0034817,1.0068602,10.9557217,69.5246185,69.7726195,69.912122,26.4980461,16.748023,18.1993064,65.7444169,37.0653398,41.5752144,14.6563831,10.2772496,57.0238217,4.5649053,35.5642278,13.2567503\r\n2722,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.9696426,0.9729595,10.7408934,67.4771084,69.2143468,70.0307018,26.762024,15.7393981,18.1455418,65.5628606,37.6342938,41.8845173,14.7741102,10.4734231,56.9138205,4.8096658,34.7197211,13.2112948,1.0034817,1.0068602,10.9557217,69.5246185,69.7726195,69.912122,26.4980461,16.748023,18.1993064,65.7444169,37.0653398,41.5752144,14.6563831,10.2772496,57.0238217,4.5649053,35.5642278,13.2567503,0.9167766,0.9428358,10.4551524,67.9693391,67.5450532,71.6728053,26.9541975,15.5332683,16.9795364,66.8362957,39.1569559,40.482106,14.3659948,10.1397748,55.7341695,4.3437266,36.4015975,12.7472947\r\n2723,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0034817,1.0068602,10.9557217,69.5246185,69.7726195,69.912122,26.4980461,16.748023,18.1993064,65.7444169,37.0653398,41.5752144,14.6563831,10.2772496,57.0238217,4.5649053,35.5642278,13.2567503,0.9167766,0.9428358,10.4551524,67.9693391,67.5450532,71.6728053,26.9541975,15.5332683,16.9795364,66.8362957,39.1569559,40.482106,14.3659948,10.1397748,55.7341695,4.3437266,36.4015975,12.7472947,0.8709265,0.8971928,9.7673844,67.5151647,67.6119541,71.9011818,25.7002878,15.2059745,17.5680476,65.5382836,38.6292013,40.4859582,14.3408101,9.870424,56.1156672,4.180422,36.9417585,12.325166\r\n2724,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.9167766,0.9428358,10.4551524,67.9693391,67.5450532,71.6728053,26.9541975,15.5332683,16.9795364,66.8362957,39.1569559,40.482106,14.3659948,10.1397748,55.7341695,4.3437266,36.4015975,12.7472947,0.8709265,0.8971928,9.7673844,67.5151647,67.6119541,71.9011818,25.7002878,15.2059745,17.5680476,65.5382836,38.6292013,40.4859582,14.3408101,9.870424,56.1156672,4.180422,36.9417585,12.325166,0.8538775,0.8807797,9.7510907,66.2548067,68.6033549,70.6272488,25.26995,15.2258885,17.3106483,66.1881217,38.9108132,39.684659,13.6739552,9.3843267,54.7716278,4.4874502,36.0067097,11.4613012\r\n2725,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.8709265,0.8971928,9.7673844,67.5151647,67.6119541,71.9011818,25.7002878,15.2059745,17.5680476,65.5382836,38.6292013,40.4859582,14.3408101,9.870424,56.1156672,4.180422,36.9417585,12.325166,0.8538775,0.8807797,9.7510907,66.2548067,68.6033549,70.6272488,25.26995,15.2258885,17.3106483,66.1881217,38.9108132,39.684659,13.6739552,9.3843267,54.7716278,4.4874502,36.0067097,11.4613012,0.8686023,0.8961689,10.2502778,66.6584591,68.7413698,71.9411458,24.4804843,14.4332005,16.6550828,66.9255361,39.006854,38.3718095,14.020746,9.6724038,53.1466812,4.9197245,35.2276888,12.2933128\r\n2726,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.8538775,0.8807797,9.7510907,66.2548067,68.6033549,70.6272488,25.26995,15.2258885,17.3106483,66.1881217,38.9108132,39.684659,13.6739552,9.3843267,54.7716278,4.4874502,36.0067097,11.4613012,0.8686023,0.8961689,10.2502778,66.6584591,68.7413698,71.9411458,24.4804843,14.4332005,16.6550828,66.9255361,39.006854,38.3718095,14.020746,9.6724038,53.1466812,4.9197245,35.2276888,12.2933128,0.9428107,0.9666061,10.3060699,66.075405,67.8037903,71.1195148,24.9804184,13.2797959,17.8351514,67.0113814,38.7116632,38.3945389,13.9576507,9.8288563,52.3385476,4.714533,35.8093959,12.2098677\r\n2727,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.8686023,0.8961689,10.2502778,66.6584591,68.7413698,71.9411458,24.4804843,14.4332005,16.6550828,66.9255361,39.006854,38.3718095,14.020746,9.6724038,53.1466812,4.9197245,35.2276888,12.2933128,0.9428107,0.9666061,10.3060699,66.075405,67.8037903,71.1195148,24.9804184,13.2797959,17.8351514,67.0113814,38.7116632,38.3945389,13.9576507,9.8288563,52.3385476,4.714533,35.8093959,12.2098677,0.9250223,0.9487319,10.1362576,65.6855747,69.0330673,71.6648073,24.2119507,13.4091598,18.0780069,68.1426833,38.5831546,38.5453366,14.2636735,9.9763757,51.9622495,4.6603282,35.6151181,12.0310913\r\n2728,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.9428107,0.9666061,10.3060699,66.075405,67.8037903,71.1195148,24.9804184,13.2797959,17.8351514,67.0113814,38.7116632,38.3945389,13.9576507,9.8288563,52.3385476,4.714533,35.8093959,12.2098677,0.9250223,0.9487319,10.1362576,65.6855747,69.0330673,71.6648073,24.2119507,13.4091598,18.0780069,68.1426833,38.5831546,38.5453366,14.2636735,9.9763757,51.9622495,4.6603282,35.6151181,12.0310913,0.8793459,0.9036123,10.5095824,65.1960504,69.7756089,72.3292312,24.2846915,11.8030646,16.7991042,67.8195085,39.5387186,38.3400405,14.6055333,10.3816037,50.8562655,4.9194827,35.6521731,11.738278\r\n2729,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.9250223,0.9487319,10.1362576,65.6855747,69.0330673,71.6648073,24.2119507,13.4091598,18.0780069,68.1426833,38.5831546,38.5453366,14.2636735,9.9763757,51.9622495,4.6603282,35.6151181,12.0310913,0.8793459,0.9036123,10.5095824,65.1960504,69.7756089,72.3292312,24.2846915,11.8030646,16.7991042,67.8195085,39.5387186,38.3400405,14.6055333,10.3816037,50.8562655,4.9194827,35.6521731,11.738278,0.8464105,0.8464105,9.7309987,65.9984105,71.5069765,70.5407808,24.764197,10.7623898,16.5966961,66.4987431,38.2720124,38.2050742,14.0414068,9.6617736,50.5214695,5.02096,35.4920998,12.4722854\r\n2730,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.8793459,0.9036123,10.5095824,65.1960504,69.7756089,72.3292312,24.2846915,11.8030646,16.7991042,67.8195085,39.5387186,38.3400405,14.6055333,10.3816037,50.8562655,4.9194827,35.6521731,11.738278,0.8464105,0.8464105,9.7309987,65.9984105,71.5069765,70.5407808,24.764197,10.7623898,16.5966961,66.4987431,38.2720124,38.2050742,14.0414068,9.6617736,50.5214695,5.02096,35.4920998,12.4722854,0.8628179,0.8949023,10.1350428,67.6473302,73.6303474,70.1184187,25.4423185,11.3635688,17.2600156,67.8095319,38.5798858,38.4235286,14.0719556,9.853408,49.8560123,5.5123382,35.1574493,11.3531948\r\n2731,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.8464105,0.8464105,9.7309987,65.9984105,71.5069765,70.5407808,24.764197,10.7623898,16.5966961,66.4987431,38.2720124,38.2050742,14.0414068,9.6617736,50.5214695,5.02096,35.4920998,12.4722854,0.8628179,0.8949023,10.1350428,67.6473302,73.6303474,70.1184187,25.4423185,11.3635688,17.2600156,67.8095319,38.5798858,38.4235286,14.0719556,9.853408,49.8560123,5.5123382,35.1574493,11.3531948,0.932679,0.9578857,9.4901253,68.9816939,73.950707,71.7320905,25.5037726,10.4900377,16.1881023,67.6469057,38.4409316,38.6947304,13.7551904,9.5654425,49.358486,5.4373012,36.571099,10.410676\r\n2732,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.8628179,0.8949023,10.1350428,67.6473302,73.6303474,70.1184187,25.4423185,11.3635688,17.2600156,67.8095319,38.5798858,38.4235286,14.0719556,9.853408,49.8560123,5.5123382,35.1574493,11.3531948,0.932679,0.9578857,9.4901253,68.9816939,73.950707,71.7320905,25.5037726,10.4900377,16.1881023,67.6469057,38.4409316,38.6947304,13.7551904,9.5654425,49.358486,5.4373012,36.571099,10.410676,0.9898496,1.0178826,8.8313128,68.3053211,74.0361043,70.4763568,26.0541229,10.3737481,15.9108649,66.644795,37.8992165,39.0895412,13.6884562,9.3377542,49.2668103,4.9842267,37.2457887,9.5249204\r\n2733,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.932679,0.9578857,9.4901253,68.9816939,73.950707,71.7320905,25.5037726,10.4900377,16.1881023,67.6469057,38.4409316,38.6947304,13.7551904,9.5654425,49.358486,5.4373012,36.571099,10.410676,0.9898496,1.0178826,8.8313128,68.3053211,74.0361043,70.4763568,26.0541229,10.3737481,15.9108649,66.644795,37.8992165,39.0895412,13.6884562,9.3377542,49.2668103,4.9842267,37.2457887,9.5249204,1.036345,1.0640482,8.844475,67.9612199,74.6270559,71.5169317,26.4591448,10.1696407,14.521907,66.701419,38.9438489,38.7409584,14.0304822,9.4912883,49.0838507,5.429708,37.9943202,9.032842\r\n2734,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.9898496,1.0178826,8.8313128,68.3053211,74.0361043,70.4763568,26.0541229,10.3737481,15.9108649,66.644795,37.8992165,39.0895412,13.6884562,9.3377542,49.2668103,4.9842267,37.2457887,9.5249204,1.036345,1.0640482,8.844475,67.9612199,74.6270559,71.5169317,26.4591448,10.1696407,14.521907,66.701419,38.9438489,38.7409584,14.0304822,9.4912883,49.0838507,5.429708,37.9943202,9.032842,1.1368887,1.1630536,9.1779258,69.0167571,74.1541149,72.5518627,26.9154102,10.3826836,14.2500097,65.9295427,38.850534,38.334595,13.7404218,9.3153616,48.5398015,5.6055236,37.3721139,9.1707718\r\n2735,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.036345,1.0640482,8.844475,67.9612199,74.6270559,71.5169317,26.4591448,10.1696407,14.521907,66.701419,38.9438489,38.7409584,14.0304822,9.4912883,49.0838507,5.429708,37.9943202,9.032842,1.1368887,1.1630536,9.1779258,69.0167571,74.1541149,72.5518627,26.9154102,10.3826836,14.2500097,65.9295427,38.850534,38.334595,13.7404218,9.3153616,48.5398015,5.6055236,37.3721139,9.1707718,1.2417748,1.3054494,8.5339251,68.3308055,73.2822121,71.6906057,27.5745122,10.5044575,14.7569119,66.6705949,38.7771097,37.9770216,13.5029365,8.941901,48.2018837,5.7013775,36.4229152,9.0089238\r\n2736,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.1368887,1.1630536,9.1779258,69.0167571,74.1541149,72.5518627,26.9154102,10.3826836,14.2500097,65.9295427,38.850534,38.334595,13.7404218,9.3153616,48.5398015,5.6055236,37.3721139,9.1707718,1.2417748,1.3054494,8.5339251,68.3308055,73.2822121,71.6906057,27.5745122,10.5044575,14.7569119,66.6705949,38.7771097,37.9770216,13.5029365,8.941901,48.2018837,5.7013775,36.4229152,9.0089238,1.2656067,1.3427749,9.5123226,68.8461912,72.5459493,72.4351271,28.0558777,10.558879,14.587639,67.0281581,39.2362766,37.7327841,13.9141704,9.2233743,47.2495096,5.5805276,35.7104537,8.0631706\r\n2737,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.2417748,1.3054494,8.5339251,68.3308055,73.2822121,71.6906057,27.5745122,10.5044575,14.7569119,66.6705949,38.7771097,37.9770216,13.5029365,8.941901,48.2018837,5.7013775,36.4229152,9.0089238,1.2656067,1.3427749,9.5123226,68.8461912,72.5459493,72.4351271,28.0558777,10.558879,14.587639,67.0281581,39.2362766,37.7327841,13.9141704,9.2233743,47.2495096,5.5805276,35.7104537,8.0631706,1.3037329,1.3592411,9.5205576,67.4106703,70.1118016,72.008671,27.2412523,9.8947435,13.7599428,66.7374369,39.8133758,37.8621572,14.1026488,9.0665736,47.0737803,5.0307775,36.4141228,8.6141996\r\n2738,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.2656067,1.3427749,9.5123226,68.8461912,72.5459493,72.4351271,28.0558777,10.558879,14.587639,67.0281581,39.2362766,37.7327841,13.9141704,9.2233743,47.2495096,5.5805276,35.7104537,8.0631706,1.3037329,1.3592411,9.5205576,67.4106703,70.1118016,72.008671,27.2412523,9.8947435,13.7599428,66.7374369,39.8133758,37.8621572,14.1026488,9.0665736,47.0737803,5.0307775,36.4141228,8.6141996,1.1898962,1.2544436,10.2183231,66.7261086,69.2658062,70.840398,28.1492713,10.0184511,13.6007217,66.1366407,39.9464267,37.9782452,14.5656696,9.4656297,46.9360098,5.0247981,35.0040035,8.4414063\r\n2739,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.3037329,1.3592411,9.5205576,67.4106703,70.1118016,72.008671,27.2412523,9.8947435,13.7599428,66.7374369,39.8133758,37.8621572,14.1026488,9.0665736,47.0737803,5.0307775,36.4141228,8.6141996,1.1898962,1.2544436,10.2183231,66.7261086,69.2658062,70.840398,28.1492713,10.0184511,13.6007217,66.1366407,39.9464267,37.9782452,14.5656696,9.4656297,46.9360098,5.0247981,35.0040035,8.4414063,1.1246095,1.1864686,10.4208086,66.8127855,68.9370366,70.8768516,28.1450027,10.0537281,13.8271476,65.8370835,40.1084651,38.147302,14.490152,9.7545305,46.668663,5.2297091,34.4359485,8.4517921\r\n2740,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.1898962,1.2544436,10.2183231,66.7261086,69.2658062,70.840398,28.1492713,10.0184511,13.6007217,66.1366407,39.9464267,37.9782452,14.5656696,9.4656297,46.9360098,5.0247981,35.0040035,8.4414063,1.1246095,1.1864686,10.4208086,66.8127855,68.9370366,70.8768516,28.1450027,10.0537281,13.8271476,65.8370835,40.1084651,38.147302,14.490152,9.7545305,46.668663,5.2297091,34.4359485,8.4517921,0.9976885,1.0644911,10.26013,67.5633764,69.0170836,70.1474034,27.554062,9.8536683,13.551732,65.672448,40.0663506,38.0693529,14.1911315,9.3504436,46.371507,4.8485693,32.2288828,8.7868633\r\n2741,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.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,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.1246095,1.1864686,10.4208086,66.8127855,68.9370366,70.8768516,28.1450027,10.0537281,13.8271476,65.8370835,40.1084651,38.147302,14.490152,9.7545305,46.668663,5.2297091,34.4359485,8.4517921,0.9976885,1.0644911,10.26013,67.5633764,69.0170836,70.1474034,27.554062,9.8536683,13.551732,65.672448,40.0663506,38.0693529,14.1911315,9.3504436,46.371507,4.8485693,32.2288828,8.7868633,0.8764121,0.9540875,9.9264664,67.4962646,68.5490248,68.7596399,26.9860282,9.4171858,13.9185112,65.3870822,39.9044166,39.6800815,13.9181492,9.1978496,46.4707334,4.5007488,31.9074284,8.9283339\r\n2742,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.1701214,2.1908963,23.6903444,79.7992702,78.7158351,77.3211727,17.8817437,68.0853118,23.4854879,56.8800899,24.8956611,57.6888599,27.9328311,23.2614826,88.5570724,4.3692344,31.6950217,13.0502858,2.2979444,2.343043,24.6967882,79.1870494,77.9735611,75.9347996,16.8195004,67.9174489,24.3477921,56.2537927,24.6275093,57.2342601,28.7084169,23.7638859,88.6428819,4.4293025,31.2368084,14.3739341,2.5060035,2.5674436,25.3782612,78.6277618,78.2752695,75.5211548,15.5668916,67.0389436,24.2958572,56.3438982,25.2632368,56.8941466,29.6634632,24.4903562,88.4996121,4.3120371,31.0938901,15.9948466\r\n2743,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.2979444,2.343043,24.6967882,79.1870494,77.9735611,75.9347996,16.8195004,67.9174489,24.3477921,56.2537927,24.6275093,57.2342601,28.7084169,23.7638859,88.6428819,4.4293025,31.2368084,14.3739341,2.5060035,2.5674436,25.3782612,78.6277618,78.2752695,75.5211548,15.5668916,67.0389436,24.2958572,56.3438982,25.2632368,56.8941466,29.6634632,24.4903562,88.4996121,4.3120371,31.0938901,15.9948466,2.7010508,2.8002862,26.9225976,78.9791856,77.8517801,75.2389098,14.4934738,68.0359152,26.0641091,57.5489638,25.9764017,57.2409454,31.0805532,25.7535079,88.9308445,4.357599,32.1192017,16.9569554\r\n2744,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.5060035,2.5674436,25.3782612,78.6277618,78.2752695,75.5211548,15.5668916,67.0389436,24.2958572,56.3438982,25.2632368,56.8941466,29.6634632,24.4903562,88.4996121,4.3120371,31.0938901,15.9948466,2.7010508,2.8002862,26.9225976,78.9791856,77.8517801,75.2389098,14.4934738,68.0359152,26.0641091,57.5489638,25.9764017,57.2409454,31.0805532,25.7535079,88.9308445,4.357599,32.1192017,16.9569554,2.6885539,2.7960208,28.6375758,78.4178,76.6840936,74.2537618,14.6896131,66.2992575,26.8886839,58.5257784,26.0659241,56.9218413,32.526334,27.0440171,88.7905059,4.4120285,32.8753321,17.5720917\r\n2745,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.7010508,2.8002862,26.9225976,78.9791856,77.8517801,75.2389098,14.4934738,68.0359152,26.0641091,57.5489638,25.9764017,57.2409454,31.0805532,25.7535079,88.9308445,4.357599,32.1192017,16.9569554,2.6885539,2.7960208,28.6375758,78.4178,76.6840936,74.2537618,14.6896131,66.2992575,26.8886839,58.5257784,26.0659241,56.9218413,32.526334,27.0440171,88.7905059,4.4120285,32.8753321,17.5720917,2.8947499,3.0209982,30.5421639,78.5042435,77.0165944,74.5303319,14.0547358,66.4533327,26.9199945,58.8370215,25.1283283,56.9328469,34.352167,28.5753652,88.9349647,4.2942915,33.7780136,19.5897496\r\n2746,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.6885539,2.7960208,28.6375758,78.4178,76.6840936,74.2537618,14.6896131,66.2992575,26.8886839,58.5257784,26.0659241,56.9218413,32.526334,27.0440171,88.7905059,4.4120285,32.8753321,17.5720917,2.8947499,3.0209982,30.5421639,78.5042435,77.0165944,74.5303319,14.0547358,66.4533327,26.9199945,58.8370215,25.1283283,56.9328469,34.352167,28.5753652,88.9349647,4.2942915,33.7780136,19.5897496,2.9587745,3.1101249,31.864834,77.4401613,76.3426005,73.5042507,14.3771306,66.5599093,27.9754284,58.9444765,24.8035714,56.1338885,35.8753571,30.0886999,88.7517102,4.3733135,33.8541469,19.5016301\r\n2747,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.8947499,3.0209982,30.5421639,78.5042435,77.0165944,74.5303319,14.0547358,66.4533327,26.9199945,58.8370215,25.1283283,56.9328469,34.352167,28.5753652,88.9349647,4.2942915,33.7780136,19.5897496,2.9587745,3.1101249,31.864834,77.4401613,76.3426005,73.5042507,14.3771306,66.5599093,27.9754284,58.9444765,24.8035714,56.1338885,35.8753571,30.0886999,88.7517102,4.3733135,33.8541469,19.5016301,3.1843359,3.3296789,33.211457,77.1594409,76.2435749,73.0612744,14.3720372,67.2249349,26.7631296,58.3386919,24.1063679,55.6427849,37.2804131,31.3458555,89.2792406,4.2698066,33.7987295,20.5568927\r\n2748,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.9587745,3.1101249,31.864834,77.4401613,76.3426005,73.5042507,14.3771306,66.5599093,27.9754284,58.9444765,24.8035714,56.1338885,35.8753571,30.0886999,88.7517102,4.3733135,33.8541469,19.5016301,3.1843359,3.3296789,33.211457,77.1594409,76.2435749,73.0612744,14.3720372,67.2249349,26.7631296,58.3386919,24.1063679,55.6427849,37.2804131,31.3458555,89.2792406,4.2698066,33.7987295,20.5568927,3.4454449,3.5728462,34.5733604,76.3189087,75.777828,73.6565923,13.5278693,67.7455196,26.2624836,58.1955513,23.3528166,56.4626704,39.1105261,33.3861119,89.4073312,4.3961324,34.3354478,21.8536536\r\n2749,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.1843359,3.3296789,33.211457,77.1594409,76.2435749,73.0612744,14.3720372,67.2249349,26.7631296,58.3386919,24.1063679,55.6427849,37.2804131,31.3458555,89.2792406,4.2698066,33.7987295,20.5568927,3.4454449,3.5728462,34.5733604,76.3189087,75.777828,73.6565923,13.5278693,67.7455196,26.2624836,58.1955513,23.3528166,56.4626704,39.1105261,33.3861119,89.4073312,4.3961324,34.3354478,21.8536536,3.4472981,3.5878738,36.2800426,76.292936,75.7008872,73.6605719,13.2844592,68.6459779,26.9573648,58.9874245,23.3494306,57.9232497,41.2487738,35.4527662,89.775021,4.5147846,35.1067159,22.6264543\r\n2750,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.4454449,3.5728462,34.5733604,76.3189087,75.777828,73.6565923,13.5278693,67.7455196,26.2624836,58.1955513,23.3528166,56.4626704,39.1105261,33.3861119,89.4073312,4.3961324,34.3354478,21.8536536,3.4472981,3.5878738,36.2800426,76.292936,75.7008872,73.6605719,13.2844592,68.6459779,26.9573648,58.9874245,23.3494306,57.9232497,41.2487738,35.4527662,89.775021,4.5147846,35.1067159,22.6264543,3.6139742,3.7296229,37.4624505,75.6864538,75.8627403,73.5733372,13.5513329,68.8964895,27.1793082,58.8226486,23.2186016,58.3860047,42.8037683,36.8436403,89.6220062,4.7055317,34.999932,25.1730755\r\n2751,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.4472981,3.5878738,36.2800426,76.292936,75.7008872,73.6605719,13.2844592,68.6459779,26.9573648,58.9874245,23.3494306,57.9232497,41.2487738,35.4527662,89.775021,4.5147846,35.1067159,22.6264543,3.6139742,3.7296229,37.4624505,75.6864538,75.8627403,73.5733372,13.5513329,68.8964895,27.1793082,58.8226486,23.2186016,58.3860047,42.8037683,36.8436403,89.6220062,4.7055317,34.999932,25.1730755,3.9898757,4.0780012,38.1766236,75.6024741,76.5315187,73.6127295,13.5437007,68.499503,26.3726519,58.637539,23.373528,59.1631967,43.9269774,37.7678392,89.4048027,4.6256174,34.4134303,26.7992411\r\n2752,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.6139742,3.7296229,37.4624505,75.6864538,75.8627403,73.5733372,13.5513329,68.8964895,27.1793082,58.8226486,23.2186016,58.3860047,42.8037683,36.8436403,89.6220062,4.7055317,34.999932,25.1730755,3.9898757,4.0780012,38.1766236,75.6024741,76.5315187,73.6127295,13.5437007,68.499503,26.3726519,58.637539,23.373528,59.1631967,43.9269774,37.7678392,89.4048027,4.6256174,34.4134303,26.7992411,3.9551631,4.0763992,39.0107694,75.7399002,75.7566898,73.6107626,14.1684107,68.902667,26.0608244,58.1845954,24.6154428,58.3172362,44.4994446,38.4841067,89.1525377,4.5464308,34.3853569,26.6174484\r\n2753,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.9898757,4.0780012,38.1766236,75.6024741,76.5315187,73.6127295,13.5437007,68.499503,26.3726519,58.637539,23.373528,59.1631967,43.9269774,37.7678392,89.4048027,4.6256174,34.4134303,26.7992411,3.9551631,4.0763992,39.0107694,75.7399002,75.7566898,73.6107626,14.1684107,68.902667,26.0608244,58.1845954,24.6154428,58.3172362,44.4994446,38.4841067,89.1525377,4.5464308,34.3853569,26.6174484,4.1920863,4.2962536,39.6341983,76.1628316,75.8510026,73.5183694,13.8273554,69.1084007,23.5740347,57.2321626,24.8847518,60.918662,45.0681578,38.8950326,89.5798551,4.4017507,35.2076652,28.4557455\r\n2754,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.9551631,4.0763992,39.0107694,75.7399002,75.7566898,73.6107626,14.1684107,68.902667,26.0608244,58.1845954,24.6154428,58.3172362,44.4994446,38.4841067,89.1525377,4.5464308,34.3853569,26.6174484,4.1920863,4.2962536,39.6341983,76.1628316,75.8510026,73.5183694,13.8273554,69.1084007,23.5740347,57.2321626,24.8847518,60.918662,45.0681578,38.8950326,89.5798551,4.4017507,35.2076652,28.4557455,4.3791099,4.4579903,40.2823817,75.5882936,75.2944535,73.7775904,13.4467282,68.8133233,23.8724958,57.3500621,24.447412,61.2854335,46.5524895,40.4050145,89.6201203,4.047949,35.9187412,30.1910204\r\n2755,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.1920863,4.2962536,39.6341983,76.1628316,75.8510026,73.5183694,13.8273554,69.1084007,23.5740347,57.2321626,24.8847518,60.918662,45.0681578,38.8950326,89.5798551,4.4017507,35.2076652,28.4557455,4.3791099,4.4579903,40.2823817,75.5882936,75.2944535,73.7775904,13.4467282,68.8133233,23.8724958,57.3500621,24.447412,61.2854335,46.5524895,40.4050145,89.6201203,4.047949,35.9187412,30.1910204,4.5575263,4.6337775,40.8795436,75.6137031,75.2796946,73.5347721,13.7092078,68.5284327,23.6226631,57.3610242,24.8451046,61.0211114,47.1056093,40.5906908,88.9605334,4.095203,35.7606616,30.7777804\r\n2756,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.3791099,4.4579903,40.2823817,75.5882936,75.2944535,73.7775904,13.4467282,68.8133233,23.8724958,57.3500621,24.447412,61.2854335,46.5524895,40.4050145,89.6201203,4.047949,35.9187412,30.1910204,4.5575263,4.6337775,40.8795436,75.6137031,75.2796946,73.5347721,13.7092078,68.5284327,23.6226631,57.3610242,24.8451046,61.0211114,47.1056093,40.5906908,88.9605334,4.095203,35.7606616,30.7777804,4.4948602,4.5316889,41.3952542,74.9229744,74.631948,72.65166,14.5389937,67.6209997,22.9698191,57.6073406,25.1126581,60.6691288,46.9026313,40.5159767,89.0548411,4.3110344,35.4807364,31.4153262\r\n2757,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.5575263,4.6337775,40.8795436,75.6137031,75.2796946,73.5347721,13.7092078,68.5284327,23.6226631,57.3610242,24.8451046,61.0211114,47.1056093,40.5906908,88.9605334,4.095203,35.7606616,30.7777804,4.4948602,4.5316889,41.3952542,74.9229744,74.631948,72.65166,14.5389937,67.6209997,22.9698191,57.6073406,25.1126581,60.6691288,46.9026313,40.5159767,89.0548411,4.3110344,35.4807364,31.4153262,4.461383,4.4932888,41.2590144,74.9885022,74.4113921,72.8492595,14.5044766,66.4253413,22.7487896,57.7872767,26.0483992,60.4054913,46.7696529,40.6688378,89.086378,4.1601126,35.2656505,29.8886997\r\n2758,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.4948602,4.5316889,41.3952542,74.9229744,74.631948,72.65166,14.5389937,67.6209997,22.9698191,57.6073406,25.1126581,60.6691288,46.9026313,40.5159767,89.0548411,4.3110344,35.4807364,31.4153262,4.461383,4.4932888,41.2590144,74.9885022,74.4113921,72.8492595,14.5044766,66.4253413,22.7487896,57.7872767,26.0483992,60.4054913,46.7696529,40.6688378,89.086378,4.1601126,35.2656505,29.8886997,4.2055406,4.2554112,41.4452731,74.5781435,74.0521763,72.4391996,14.426497,67.7365584,22.5678253,57.895675,26.1102142,60.2913944,46.9501829,40.9262963,89.3728188,3.9893648,35.4231809,29.5876882\r\n2759,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.461383,4.4932888,41.2590144,74.9885022,74.4113921,72.8492595,14.5044766,66.4253413,22.7487896,57.7872767,26.0483992,60.4054913,46.7696529,40.6688378,89.086378,4.1601126,35.2656505,29.8886997,4.2055406,4.2554112,41.4452731,74.5781435,74.0521763,72.4391996,14.426497,67.7365584,22.5678253,57.895675,26.1102142,60.2913944,46.9501829,40.9262963,89.3728188,3.9893648,35.4231809,29.5876882,4.2423569,4.3141677,40.9533313,73.8122674,74.6647074,72.8603146,13.8650849,67.3058764,23.3015084,58.11704,25.2324546,60.7170011,46.8829177,40.8113436,89.4304226,4.0499929,35.5568602,30.4531601\r\n2760,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.2055406,4.2554112,41.4452731,74.5781435,74.0521763,72.4391996,14.426497,67.7365584,22.5678253,57.895675,26.1102142,60.2913944,46.9501829,40.9262963,89.3728188,3.9893648,35.4231809,29.5876882,4.2423569,4.3141677,40.9533313,73.8122674,74.6647074,72.8603146,13.8650849,67.3058764,23.3015084,58.11704,25.2324546,60.7170011,46.8829177,40.8113436,89.4304226,4.0499929,35.5568602,30.4531601,4.0719812,4.1555593,40.8289289,74.8497458,75.2865542,73.7738628,13.5713121,67.4585145,25.8271843,58.6742418,25.2222741,58.4185769,47.0106559,40.9305787,89.471414,4.0550084,34.6061018,30.3869973\r\n2761,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.2423569,4.3141677,40.9533313,73.8122674,74.6647074,72.8603146,13.8650849,67.3058764,23.3015084,58.11704,25.2324546,60.7170011,46.8829177,40.8113436,89.4304226,4.0499929,35.5568602,30.4531601,4.0719812,4.1555593,40.8289289,74.8497458,75.2865542,73.7738628,13.5713121,67.4585145,25.8271843,58.6742418,25.2222741,58.4185769,47.0106559,40.9305787,89.471414,4.0550084,34.6061018,30.3869973,3.7309531,3.8371209,39.9118899,74.769897,75.8499822,72.0801056,13.5342726,66.4499108,26.0818551,58.6086761,25.3182122,58.4935352,46.0031599,39.977133,89.5125776,4.127371,34.4696649,29.5691889\r\n2762,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.0719812,4.1555593,40.8289289,74.8497458,75.2865542,73.7738628,13.5713121,67.4585145,25.8271843,58.6742418,25.2222741,58.4185769,47.0106559,40.9305787,89.471414,4.0550084,34.6061018,30.3869973,3.7309531,3.8371209,39.9118899,74.769897,75.8499822,72.0801056,13.5342726,66.4499108,26.0818551,58.6086761,25.3182122,58.4935352,46.0031599,39.977133,89.5125776,4.127371,34.4696649,29.5691889,3.4674102,3.5669725,39.6471996,74.6412513,75.956919,72.2348975,13.7202643,66.8086011,26.1754036,58.131371,25.2334293,58.2900004,45.3768666,39.6966787,89.5707856,3.9176716,34.3179215,30.1662179\r\n2763,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.7309531,3.8371209,39.9118899,74.769897,75.8499822,72.0801056,13.5342726,66.4499108,26.0818551,58.6086761,25.3182122,58.4935352,46.0031599,39.977133,89.5125776,4.127371,34.4696649,29.5691889,3.4674102,3.5669725,39.6471996,74.6412513,75.956919,72.2348975,13.7202643,66.8086011,26.1754036,58.131371,25.2334293,58.2900004,45.3768666,39.6966787,89.5707856,3.9176716,34.3179215,30.1662179,3.5370778,3.6637774,38.858809,74.7333749,75.6299277,73.0471357,13.9530327,66.4976842,26.2293423,57.8788488,25.3890605,58.4871404,45.0207612,39.3731278,89.3687904,3.7171033,33.7594724,30.3652167\r\n2764,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.4674102,3.5669725,39.6471996,74.6412513,75.956919,72.2348975,13.7202643,66.8086011,26.1754036,58.131371,25.2334293,58.2900004,45.3768666,39.6966787,89.5707856,3.9176716,34.3179215,30.1662179,3.5370778,3.6637774,38.858809,74.7333749,75.6299277,73.0471357,13.9530327,66.4976842,26.2293423,57.8788488,25.3890605,58.4871404,45.0207612,39.3731278,89.3687904,3.7171033,33.7594724,30.3652167,3.4702932,3.5849055,38.802242,75.6021069,76.0432075,72.6165033,13.9770618,67.0114647,26.2278155,57.9364174,24.9258542,58.3196911,44.4371171,38.9977423,89.491312,3.5489669,33.7252489,32.3605729\r\n2765,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.5370778,3.6637774,38.858809,74.7333749,75.6299277,73.0471357,13.9530327,66.4976842,26.2293423,57.8788488,25.3890605,58.4871404,45.0207612,39.3731278,89.3687904,3.7171033,33.7594724,30.3652167,3.4702932,3.5849055,38.802242,75.6021069,76.0432075,72.6165033,13.9770618,67.0114647,26.2278155,57.9364174,24.9258542,58.3196911,44.4371171,38.9977423,89.491312,3.5489669,33.7252489,32.3605729,3.531071,3.6513532,38.1680291,77.0185182,76.4645846,72.5688121,14.1455023,66.8513703,26.8147994,57.7992842,24.5471927,58.487843,43.8413864,38.5377242,89.7486175,3.8073717,34.3450192,31.5772068\r\n2766,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.4702932,3.5849055,38.802242,75.6021069,76.0432075,72.6165033,13.9770618,67.0114647,26.2278155,57.9364174,24.9258542,58.3196911,44.4371171,38.9977423,89.491312,3.5489669,33.7252489,32.3605729,3.531071,3.6513532,38.1680291,77.0185182,76.4645846,72.5688121,14.1455023,66.8513703,26.8147994,57.7992842,24.5471927,58.487843,43.8413864,38.5377242,89.7486175,3.8073717,34.3450192,31.5772068,3.2927959,3.360674,37.322925,76.6149817,75.6156494,71.2194769,15.0037571,66.1130097,25.9370002,57.8032308,25.2422749,58.1841305,43.085536,37.8753331,90.0021574,3.9605132,33.1922424,30.7614854\r\n2767,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.531071,3.6513532,38.1680291,77.0185182,76.4645846,72.5688121,14.1455023,66.8513703,26.8147994,57.7992842,24.5471927,58.487843,43.8413864,38.5377242,89.7486175,3.8073717,34.3450192,31.5772068,3.2927959,3.360674,37.322925,76.6149817,75.6156494,71.2194769,15.0037571,66.1130097,25.9370002,57.8032308,25.2422749,58.1841305,43.085536,37.8753331,90.0021574,3.9605132,33.1922424,30.7614854,3.2762997,3.3508993,36.9274187,75.6265501,74.8537243,70.5574596,15.8039427,64.4650132,25.0235229,57.717797,25.4480957,58.9461431,42.1027667,37.1853367,89.7536345,3.8391526,33.9448663,31.2710334\r\n2768,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.2927959,3.360674,37.322925,76.6149817,75.6156494,71.2194769,15.0037571,66.1130097,25.9370002,57.8032308,25.2422749,58.1841305,43.085536,37.8753331,90.0021574,3.9605132,33.1922424,30.7614854,3.2762997,3.3508993,36.9274187,75.6265501,74.8537243,70.5574596,15.8039427,64.4650132,25.0235229,57.717797,25.4480957,58.9461431,42.1027667,37.1853367,89.7536345,3.8391526,33.9448663,31.2710334,3.3816149,3.4683354,36.9101711,76.6633271,74.369169,72.3494609,15.7893951,64.8514932,25.519768,57.2208789,25.4969339,60.1394788,41.9120325,36.866948,89.4008313,3.8049161,34.1264355,32.3265073\r\n2769,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.2762997,3.3508993,36.9274187,75.6265501,74.8537243,70.5574596,15.8039427,64.4650132,25.0235229,57.717797,25.4480957,58.9461431,42.1027667,37.1853367,89.7536345,3.8391526,33.9448663,31.2710334,3.3816149,3.4683354,36.9101711,76.6633271,74.369169,72.3494609,15.7893951,64.8514932,25.519768,57.2208789,25.4969339,60.1394788,41.9120325,36.866948,89.4008313,3.8049161,34.1264355,32.3265073,3.1969339,3.3114605,36.2412377,77.4380949,74.6997076,72.1152522,16.0375338,65.0612484,26.3440058,57.6750311,26.2904836,60.3300318,41.2059232,36.4721578,89.8508621,4.0265026,33.8405442,31.2546695\r\n2770,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.3816149,3.4683354,36.9101711,76.6633271,74.369169,72.3494609,15.7893951,64.8514932,25.519768,57.2208789,25.4969339,60.1394788,41.9120325,36.866948,89.4008313,3.8049161,34.1264355,32.3265073,3.1969339,3.3114605,36.2412377,77.4380949,74.6997076,72.1152522,16.0375338,65.0612484,26.3440058,57.6750311,26.2904836,60.3300318,41.2059232,36.4721578,89.8508621,4.0265026,33.8405442,31.2546695,3.1212681,3.2307642,35.8703872,76.2310285,74.5204321,71.5882377,16.0446131,64.9316192,26.4705659,57.7966157,26.8668262,58.275074,40.3683942,35.6760378,89.6952776,4.2959522,34.4096858,31.4174289\r\n2771,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.1969339,3.3114605,36.2412377,77.4380949,74.6997076,72.1152522,16.0375338,65.0612484,26.3440058,57.6750311,26.2904836,60.3300318,41.2059232,36.4721578,89.8508621,4.0265026,33.8405442,31.2546695,3.1212681,3.2307642,35.8703872,76.2310285,74.5204321,71.5882377,16.0446131,64.9316192,26.4705659,57.7966157,26.8668262,58.275074,40.3683942,35.6760378,89.6952776,4.2959522,34.4096858,31.4174289,2.8352928,2.9599492,34.9195501,75.1890843,74.1737443,71.2701626,16.529451,63.3903151,26.217287,57.9645672,27.5850983,58.4607676,38.9835622,34.2276382,89.3558336,4.5425181,35.0417015,28.8093684\r\n2772,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.1212681,3.2307642,35.8703872,76.2310285,74.5204321,71.5882377,16.0446131,64.9316192,26.4705659,57.7966157,26.8668262,58.275074,40.3683942,35.6760378,89.6952776,4.2959522,34.4096858,31.4174289,2.8352928,2.9599492,34.9195501,75.1890843,74.1737443,71.2701626,16.529451,63.3903151,26.217287,57.9645672,27.5850983,58.4607676,38.9835622,34.2276382,89.3558336,4.5425181,35.0417015,28.8093684,2.6473795,2.7817875,34.0384268,74.2341412,73.6599114,71.005312,16.5139708,62.7984094,25.5024075,59.1585926,28.1265428,57.8358702,38.2208965,33.2378359,89.051933,4.4977002,34.7196955,28.2825649\r\n2773,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.8352928,2.9599492,34.9195501,75.1890843,74.1737443,71.2701626,16.529451,63.3903151,26.217287,57.9645672,27.5850983,58.4607676,38.9835622,34.2276382,89.3558336,4.5425181,35.0417015,28.8093684,2.6473795,2.7817875,34.0384268,74.2341412,73.6599114,71.005312,16.5139708,62.7984094,25.5024075,59.1585926,28.1265428,57.8358702,38.2208965,33.2378359,89.051933,4.4977002,34.7196955,28.2825649,2.7322536,2.8662241,33.5579504,75.5112051,74.5576963,71.8633255,16.1558878,63.6033073,26.0676099,59.8593809,28.1784504,58.7372342,37.37938,32.3654325,88.4282192,4.6349513,35.6277489,28.65359\r\n2774,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.6473795,2.7817875,34.0384268,74.2341412,73.6599114,71.005312,16.5139708,62.7984094,25.5024075,59.1585926,28.1265428,57.8358702,38.2208965,33.2378359,89.051933,4.4977002,34.7196955,28.2825649,2.7322536,2.8662241,33.5579504,75.5112051,74.5576963,71.8633255,16.1558878,63.6033073,26.0676099,59.8593809,28.1784504,58.7372342,37.37938,32.3654325,88.4282192,4.6349513,35.6277489,28.65359,2.6606442,2.78135,31.8083652,75.5482001,74.0585979,72.7979007,15.53099,62.895781,25.4527991,59.6686087,27.8690295,57.444198,36.4695854,31.1054068,88.3275918,4.76566,35.3332799,28.7344869\r\n2775,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.7322536,2.8662241,33.5579504,75.5112051,74.5576963,71.8633255,16.1558878,63.6033073,26.0676099,59.8593809,28.1784504,58.7372342,37.37938,32.3654325,88.4282192,4.6349513,35.6277489,28.65359,2.6606442,2.78135,31.8083652,75.5482001,74.0585979,72.7979007,15.53099,62.895781,25.4527991,59.6686087,27.8690295,57.444198,36.4695854,31.1054068,88.3275918,4.76566,35.3332799,28.7344869,2.4770417,2.6015368,30.2879985,74.9284235,74.2752715,71.8891452,15.5762197,63.2548814,25.2941366,61.1090015,28.5880899,55.1448784,35.0819704,29.7580774,88.0071872,4.9019586,34.4754843,27.6327938\r\n2776,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.6606442,2.78135,31.8083652,75.5482001,74.0585979,72.7979007,15.53099,62.895781,25.4527991,59.6686087,27.8690295,57.444198,36.4695854,31.1054068,88.3275918,4.76566,35.3332799,28.7344869,2.4770417,2.6015368,30.2879985,74.9284235,74.2752715,71.8891452,15.5762197,63.2548814,25.2941366,61.1090015,28.5880899,55.1448784,35.0819704,29.7580774,88.0071872,4.9019586,34.4754843,27.6327938,2.5369945,2.656306,28.5530142,73.4389368,72.6252319,71.973346,16.0741726,62.7782542,25.1598053,61.8376596,29.4793313,54.2484226,33.6688138,28.0818205,87.3133083,4.9086165,34.5131425,27.1526935\r\n2777,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.4770417,2.6015368,30.2879985,74.9284235,74.2752715,71.8891452,15.5762197,63.2548814,25.2941366,61.1090015,28.5880899,55.1448784,35.0819704,29.7580774,88.0071872,4.9019586,34.4754843,27.6327938,2.5369945,2.656306,28.5530142,73.4389368,72.6252319,71.973346,16.0741726,62.7782542,25.1598053,61.8376596,29.4793313,54.2484226,33.6688138,28.0818205,87.3133083,4.9086165,34.5131425,27.1526935,2.3057491,2.3963355,27.1865949,74.2675772,72.8544335,71.7810992,16.1682524,62.6265462,24.9486296,61.9911898,29.2945715,55.1262939,32.5033778,26.9915697,87.2779133,4.603385,33.5676626,25.7483054\r\n2778,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.5369945,2.656306,28.5530142,73.4389368,72.6252319,71.973346,16.0741726,62.7782542,25.1598053,61.8376596,29.4793313,54.2484226,33.6688138,28.0818205,87.3133083,4.9086165,34.5131425,27.1526935,2.3057491,2.3963355,27.1865949,74.2675772,72.8544335,71.7810992,16.1682524,62.6265462,24.9486296,61.9911898,29.2945715,55.1262939,32.5033778,26.9915697,87.2779133,4.603385,33.5676626,25.7483054,2.319111,2.4011499,25.781258,74.3332664,72.8137898,71.4768656,16.663472,63.5935585,25.2470365,62.3028046,29.6596783,53.7650716,31.708645,26.2444176,87.0000187,4.3483706,32.4817665,26.9617533\r\n2779,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.3057491,2.3963355,27.1865949,74.2675772,72.8544335,71.7810992,16.1682524,62.6265462,24.9486296,61.9911898,29.2945715,55.1262939,32.5033778,26.9915697,87.2779133,4.603385,33.5676626,25.7483054,2.319111,2.4011499,25.781258,74.3332664,72.8137898,71.4768656,16.663472,63.5935585,25.2470365,62.3028046,29.6596783,53.7650716,31.708645,26.2444176,87.0000187,4.3483706,32.4817665,26.9617533,2.0691989,2.1243359,24.6356457,73.826194,72.2902147,71.5134055,16.9888124,63.0331268,25.9560206,62.1243187,29.2416236,53.1328919,30.1338516,24.9881778,86.6209936,4.3864128,31.378798,27.8206415\r\n2780,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.319111,2.4011499,25.781258,74.3332664,72.8137898,71.4768656,16.663472,63.5935585,25.2470365,62.3028046,29.6596783,53.7650716,31.708645,26.2444176,87.0000187,4.3483706,32.4817665,26.9617533,2.0691989,2.1243359,24.6356457,73.826194,72.2902147,71.5134055,16.9888124,63.0331268,25.9560206,62.1243187,29.2416236,53.1328919,30.1338516,24.9881778,86.6209936,4.3864128,31.378798,27.8206415,1.9556049,2.0169506,23.7344617,72.7541912,72.5737091,70.5891498,17.3252689,62.7771878,25.7193514,61.9509966,30.1158308,51.3836861,29.3369299,24.4177313,86.5039363,4.0909303,30.9476466,25.9017716\r\n2781,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0691989,2.1243359,24.6356457,73.826194,72.2902147,71.5134055,16.9888124,63.0331268,25.9560206,62.1243187,29.2416236,53.1328919,30.1338516,24.9881778,86.6209936,4.3864128,31.378798,27.8206415,1.9556049,2.0169506,23.7344617,72.7541912,72.5737091,70.5891498,17.3252689,62.7771878,25.7193514,61.9509966,30.1158308,51.3836861,29.3369299,24.4177313,86.5039363,4.0909303,30.9476466,25.9017716,1.7351399,1.7909857,23.0100172,71.7490292,72.6398217,70.8076071,18.4963622,63.9797339,27.017461,63.4365702,31.7207738,50.5629391,28.1992903,23.6322149,85.9762648,4.2220775,30.4829198,24.1750858\r\n2782,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.9556049,2.0169506,23.7344617,72.7541912,72.5737091,70.5891498,17.3252689,62.7771878,25.7193514,61.9509966,30.1158308,51.3836861,29.3369299,24.4177313,86.5039363,4.0909303,30.9476466,25.9017716,1.7351399,1.7909857,23.0100172,71.7490292,72.6398217,70.8076071,18.4963622,63.9797339,27.017461,63.4365702,31.7207738,50.5629391,28.1992903,23.6322149,85.9762648,4.2220775,30.4829198,24.1750858,1.5223095,1.5675586,21.8940914,71.4405448,72.0655125,71.2472606,19.1896698,63.185387,26.726156,64.0055021,32.5444098,50.0922938,27.0847565,22.8553698,85.8495762,4.243561,30.9841009,22.1814497\r\n2783,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.7351399,1.7909857,23.0100172,71.7490292,72.6398217,70.8076071,18.4963622,63.9797339,27.017461,63.4365702,31.7207738,50.5629391,28.1992903,23.6322149,85.9762648,4.2220775,30.4829198,24.1750858,1.5223095,1.5675586,21.8940914,71.4405448,72.0655125,71.2472606,19.1896698,63.185387,26.726156,64.0055021,32.5444098,50.0922938,27.0847565,22.8553698,85.8495762,4.243561,30.9841009,22.1814497,1.2826146,1.3055927,21.3980609,72.54196,73.0841183,70.598103,19.8447286,61.7702424,26.1066704,65.1193327,33.9755349,48.8568518,26.406969,22.3070227,85.6539874,4.0834366,31.2562491,20.5470228\r\n2784,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.5223095,1.5675586,21.8940914,71.4405448,72.0655125,71.2472606,19.1896698,63.185387,26.726156,64.0055021,32.5444098,50.0922938,27.0847565,22.8553698,85.8495762,4.243561,30.9841009,22.1814497,1.2826146,1.3055927,21.3980609,72.54196,73.0841183,70.598103,19.8447286,61.7702424,26.1066704,65.1193327,33.9755349,48.8568518,26.406969,22.3070227,85.6539874,4.0834366,31.2562491,20.5470228,1.3039514,1.3329606,20.5308375,73.0450169,73.1600377,71.3050727,19.7639571,62.6246402,25.8526203,65.0719553,35.2989063,47.7617719,25.8882075,21.9185701,85.450143,4.2066911,31.1556632,19.7017182\r\n2785,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.2826146,1.3055927,21.3980609,72.54196,73.0841183,70.598103,19.8447286,61.7702424,26.1066704,65.1193327,33.9755349,48.8568518,26.406969,22.3070227,85.6539874,4.0834366,31.2562491,20.5470228,1.3039514,1.3329606,20.5308375,73.0450169,73.1600377,71.3050727,19.7639571,62.6246402,25.8526203,65.0719553,35.2989063,47.7617719,25.8882075,21.9185701,85.450143,4.2066911,31.1556632,19.7017182,1.2729151,1.3328531,19.8831781,71.6502409,72.863321,70.6740327,20.3884309,61.5009531,25.7915663,64.6917857,34.380723,47.3201554,25.1264063,21.07985,85.3558063,4.5359687,31.2534168,18.3964832\r\n2786,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.3039514,1.3329606,20.5308375,73.0450169,73.1600377,71.3050727,19.7639571,62.6246402,25.8526203,65.0719553,35.2989063,47.7617719,25.8882075,21.9185701,85.450143,4.2066911,31.1556632,19.7017182,1.2729151,1.3328531,19.8831781,71.6502409,72.863321,70.6740327,20.3884309,61.5009531,25.7915663,64.6917857,34.380723,47.3201554,25.1264063,21.07985,85.3558063,4.5359687,31.2534168,18.3964832,1.3622048,1.4434294,18.7266819,71.7813978,73.4348874,70.6628416,20.513921,62.0671784,25.6834397,64.4048522,35.1987986,47.1260661,24.4169436,20.2084078,85.5448115,4.5408294,31.7396382,17.2072947\r\n2787,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.2729151,1.3328531,19.8831781,71.6502409,72.863321,70.6740327,20.3884309,61.5009531,25.7915663,64.6917857,34.380723,47.3201554,25.1264063,21.07985,85.3558063,4.5359687,31.2534168,18.3964832,1.3622048,1.4434294,18.7266819,71.7813978,73.4348874,70.6628416,20.513921,62.0671784,25.6834397,64.4048522,35.1987986,47.1260661,24.4169436,20.2084078,85.5448115,4.5408294,31.7396382,17.2072947,1.2520614,1.2849925,18.2499624,70.8189935,71.5268122,70.9652888,20.548822,60.7855654,25.7844208,64.9894904,35.1011042,46.5027273,23.2568186,19.1442105,85.2686348,4.9145049,31.4547423,16.8451106\r\n2788,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.3622048,1.4434294,18.7266819,71.7813978,73.4348874,70.6628416,20.513921,62.0671784,25.6834397,64.4048522,35.1987986,47.1260661,24.4169436,20.2084078,85.5448115,4.5408294,31.7396382,17.2072947,1.2520614,1.2849925,18.2499624,70.8189935,71.5268122,70.9652888,20.548822,60.7855654,25.7844208,64.9894904,35.1011042,46.5027273,23.2568186,19.1442105,85.2686348,4.9145049,31.4547423,16.8451106,1.2583185,1.3173775,17.6537973,71.5044139,71.4717501,70.0579049,20.4672859,60.2672773,24.5709965,64.8657436,34.7108798,47.3652234,22.4940736,18.440573,85.2530413,5.0125394,31.4407579,16.0953773\r\n2789,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.2520614,1.2849925,18.2499624,70.8189935,71.5268122,70.9652888,20.548822,60.7855654,25.7844208,64.9894904,35.1011042,46.5027273,23.2568186,19.1442105,85.2686348,4.9145049,31.4547423,16.8451106,1.2583185,1.3173775,17.6537973,71.5044139,71.4717501,70.0579049,20.4672859,60.2672773,24.5709965,64.8657436,34.7108798,47.3652234,22.4940736,18.440573,85.2530413,5.0125394,31.4407579,16.0953773,1.366652,1.4033737,18.0131321,71.2521853,72.2135025,70.0675544,20.5974291,59.7694032,24.1251085,64.0114713,34.762134,47.2132767,22.742929,18.4044085,84.9604741,5.1381454,30.9306138,15.291793\r\n2790,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.2583185,1.3173775,17.6537973,71.5044139,71.4717501,70.0579049,20.4672859,60.2672773,24.5709965,64.8657436,34.7108798,47.3652234,22.4940736,18.440573,85.2530413,5.0125394,31.4407579,16.0953773,1.366652,1.4033737,18.0131321,71.2521853,72.2135025,70.0675544,20.5974291,59.7694032,24.1251085,64.0114713,34.762134,47.2132767,22.742929,18.4044085,84.9604741,5.1381454,30.9306138,15.291793,1.4079111,1.4505385,17.4893156,70.6676104,73.116511,71.0817831,19.8936753,59.2327043,23.0710505,63.4896941,33.6464359,50.5654584,22.3260209,17.8365807,84.902724,5.3692358,30.6851202,15.4497432\r\n2791,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.366652,1.4033737,18.0131321,71.2521853,72.2135025,70.0675544,20.5974291,59.7694032,24.1251085,64.0114713,34.762134,47.2132767,22.742929,18.4044085,84.9604741,5.1381454,30.9306138,15.291793,1.4079111,1.4505385,17.4893156,70.6676104,73.116511,71.0817831,19.8936753,59.2327043,23.0710505,63.4896941,33.6464359,50.5654584,22.3260209,17.8365807,84.902724,5.3692358,30.6851202,15.4497432,1.3506445,1.3804228,17.740434,68.9336281,72.6432898,70.374852,20.4826728,59.0200698,23.3071246,63.9481487,33.8827466,50.5416872,21.8690006,17.4602119,84.5744761,5.4760649,30.8398558,15.81431\r\n2792,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.4079111,1.4505385,17.4893156,70.6676104,73.116511,71.0817831,19.8936753,59.2327043,23.0710505,63.4896941,33.6464359,50.5654584,22.3260209,17.8365807,84.902724,5.3692358,30.6851202,15.4497432,1.3506445,1.3804228,17.740434,68.9336281,72.6432898,70.374852,20.4826728,59.0200698,23.3071246,63.9481487,33.8827466,50.5416872,21.8690006,17.4602119,84.5744761,5.4760649,30.8398558,15.81431,1.3337874,1.3317118,17.1161046,70.0330834,73.035034,71.1713671,19.8030269,58.5102759,22.417785,65.0960185,36.0690889,50.1975559,20.9238663,16.6364712,83.5804433,5.5811602,31.0767025,15.1007079\r\n2793,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.3506445,1.3804228,17.740434,68.9336281,72.6432898,70.374852,20.4826728,59.0200698,23.3071246,63.9481487,33.8827466,50.5416872,21.8690006,17.4602119,84.5744761,5.4760649,30.8398558,15.81431,1.3337874,1.3317118,17.1161046,70.0330834,73.035034,71.1713671,19.8030269,58.5102759,22.417785,65.0960185,36.0690889,50.1975559,20.9238663,16.6364712,83.5804433,5.5811602,31.0767025,15.1007079,1.3995632,1.3704401,17.3295752,70.6560246,73.834211,71.8230054,20.127247,58.1264698,22.8472099,65.4504746,36.9260573,50.4169219,20.3933141,16.3542218,83.3932553,5.8290457,32.273269,14.3342007\r\n2794,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.3337874,1.3317118,17.1161046,70.0330834,73.035034,71.1713671,19.8030269,58.5102759,22.417785,65.0960185,36.0690889,50.1975559,20.9238663,16.6364712,83.5804433,5.5811602,31.0767025,15.1007079,1.3995632,1.3704401,17.3295752,70.6560246,73.834211,71.8230054,20.127247,58.1264698,22.8472099,65.4504746,36.9260573,50.4169219,20.3933141,16.3542218,83.3932553,5.8290457,32.273269,14.3342007,1.3531021,1.3489028,15.9567312,70.7921732,74.7529744,72.3220139,20.3162051,58.0809969,21.8176871,65.8445017,37.8080458,50.436424,19.4599074,15.3098424,83.1051086,5.9361047,31.9789868,14.1574396\r\n2795,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.3995632,1.3704401,17.3295752,70.6560246,73.834211,71.8230054,20.127247,58.1264698,22.8472099,65.4504746,36.9260573,50.4169219,20.3933141,16.3542218,83.3932553,5.8290457,32.273269,14.3342007,1.3531021,1.3489028,15.9567312,70.7921732,74.7529744,72.3220139,20.3162051,58.0809969,21.8176871,65.8445017,37.8080458,50.436424,19.4599074,15.3098424,83.1051086,5.9361047,31.9789868,14.1574396,1.429886,1.4244352,16.4454401,70.8340571,74.2803148,72.039522,20.1846433,57.253042,22.0403079,65.5410028,37.9615102,50.4030665,19.800442,15.5716946,82.9020773,5.9087222,32.9513433,13.8387764\r\n2796,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.3531021,1.3489028,15.9567312,70.7921732,74.7529744,72.3220139,20.3162051,58.0809969,21.8176871,65.8445017,37.8080458,50.436424,19.4599074,15.3098424,83.1051086,5.9361047,31.9789868,14.1574396,1.429886,1.4244352,16.4454401,70.8340571,74.2803148,72.039522,20.1846433,57.253042,22.0403079,65.5410028,37.9615102,50.4030665,19.800442,15.5716946,82.9020773,5.9087222,32.9513433,13.8387764,1.3557523,1.3900306,15.200364,70.9540458,73.5187719,70.7615112,20.7886806,58.1183184,23.0199217,65.8748642,38.0345247,50.5388559,19.1807363,14.8859095,82.4564042,5.7988639,33.4543959,14.9223177\r\n2797,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.429886,1.4244352,16.4454401,70.8340571,74.2803148,72.039522,20.1846433,57.253042,22.0403079,65.5410028,37.9615102,50.4030665,19.800442,15.5716946,82.9020773,5.9087222,32.9513433,13.8387764,1.3557523,1.3900306,15.200364,70.9540458,73.5187719,70.7615112,20.7886806,58.1183184,23.0199217,65.8748642,38.0345247,50.5388559,19.1807363,14.8859095,82.4564042,5.7988639,33.4543959,14.9223177,1.2500772,1.2785492,15.0816569,70.8955471,71.457044,69.8102448,20.7322381,58.9112429,23.6339761,65.3376347,37.5840898,47.5195154,18.6994842,14.4183662,82.209436,5.9025536,33.4756909,14.3768539\r\n2798,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.3557523,1.3900306,15.200364,70.9540458,73.5187719,70.7615112,20.7886806,58.1183184,23.0199217,65.8748642,38.0345247,50.5388559,19.1807363,14.8859095,82.4564042,5.7988639,33.4543959,14.9223177,1.2500772,1.2785492,15.0816569,70.8955471,71.457044,69.8102448,20.7322381,58.9112429,23.6339761,65.3376347,37.5840898,47.5195154,18.6994842,14.4183662,82.209436,5.9025536,33.4756909,14.3768539,1.2078345,1.2755364,14.2416281,71.3400681,70.8640736,69.6624613,20.9107247,57.1295089,23.0222545,65.0883023,37.7972314,46.8276176,17.9994597,13.8236739,81.6061301,6.0610009,34.0566209,13.3478856\r\n2799,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.2500772,1.2785492,15.0816569,70.8955471,71.457044,69.8102448,20.7322381,58.9112429,23.6339761,65.3376347,37.5840898,47.5195154,18.6994842,14.4183662,82.209436,5.9025536,33.4756909,14.3768539,1.2078345,1.2755364,14.2416281,71.3400681,70.8640736,69.6624613,20.9107247,57.1295089,23.0222545,65.0883023,37.7972314,46.8276176,17.9994597,13.8236739,81.6061301,6.0610009,34.0566209,13.3478856,1.1360256,1.2059156,13.9380058,71.8276251,70.3328242,70.2319799,21.5099561,58.1716674,22.824774,65.1385972,37.5506719,46.7957383,18.0731161,13.8818129,81.5509852,5.9988145,33.5014132,12.2951977\r\n2800,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.2078345,1.2755364,14.2416281,71.3400681,70.8640736,69.6624613,20.9107247,57.1295089,23.0222545,65.0883023,37.7972314,46.8276176,17.9994597,13.8236739,81.6061301,6.0610009,34.0566209,13.3478856,1.1360256,1.2059156,13.9380058,71.8276251,70.3328242,70.2319799,21.5099561,58.1716674,22.824774,65.1385972,37.5506719,46.7957383,18.0731161,13.8818129,81.5509852,5.9988145,33.5014132,12.2951977,0.9569078,1.0496004,13.2316725,70.8233233,69.4004828,70.1146887,21.755994,56.7639067,22.0168584,65.5334049,37.8278194,44.8982921,17.8157764,13.6620374,80.7474814,6.0291695,32.8860543,11.7785878\r\n2801,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.1360256,1.2059156,13.9380058,71.8276251,70.3328242,70.2319799,21.5099561,58.1716674,22.824774,65.1385972,37.5506719,46.7957383,18.0731161,13.8818129,81.5509852,5.9988145,33.5014132,12.2951977,0.9569078,1.0496004,13.2316725,70.8233233,69.4004828,70.1146887,21.755994,56.7639067,22.0168584,65.5334049,37.8278194,44.8982921,17.8157764,13.6620374,80.7474814,6.0291695,32.8860543,11.7785878,1.0330471,1.1267976,14.1072961,73.1848547,70.926002,71.1637967,21.7366029,55.5385115,23.9018375,65.5202318,36.9824231,45.8547359,17.7134018,13.7168039,80.6407338,5.7578495,32.8415399,11.5764756\r\n2802,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.9569078,1.0496004,13.2316725,70.8233233,69.4004828,70.1146887,21.755994,56.7639067,22.0168584,65.5334049,37.8278194,44.8982921,17.8157764,13.6620374,80.7474814,6.0291695,32.8860543,11.7785878,1.0330471,1.1267976,14.1072961,73.1848547,70.926002,71.1637967,21.7366029,55.5385115,23.9018375,65.5202318,36.9824231,45.8547359,17.7134018,13.7168039,80.6407338,5.7578495,32.8415399,11.5764756,0.8488335,0.9320287,12.7670194,72.5851702,71.1250297,71.8797292,22.0453205,55.6611519,24.0148409,66.0012789,36.7370282,44.0410344,16.6472564,12.7731028,80.4648404,5.6669741,31.7395769,11.7698636\r\n2803,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0330471,1.1267976,14.1072961,73.1848547,70.926002,71.1637967,21.7366029,55.5385115,23.9018375,65.5202318,36.9824231,45.8547359,17.7134018,13.7168039,80.6407338,5.7578495,32.8415399,11.5764756,0.8488335,0.9320287,12.7670194,72.5851702,71.1250297,71.8797292,22.0453205,55.6611519,24.0148409,66.0012789,36.7370282,44.0410344,16.6472564,12.7731028,80.4648404,5.6669741,31.7395769,11.7698636,0.8213375,0.8599505,12.3476711,72.1080601,71.1264967,72.856103,21.5766718,54.2594255,23.2446325,65.5625245,37.1776788,42.6494967,15.7964318,12.1091263,80.3582272,5.8071538,31.6801961,9.6911732\r\n2804,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8488335,0.9320287,12.7670194,72.5851702,71.1250297,71.8797292,22.0453205,55.6611519,24.0148409,66.0012789,36.7370282,44.0410344,16.6472564,12.7731028,80.4648404,5.6669741,31.7395769,11.7698636,0.8213375,0.8599505,12.3476711,72.1080601,71.1264967,72.856103,21.5766718,54.2594255,23.2446325,65.5625245,37.1776788,42.6494967,15.7964318,12.1091263,80.3582272,5.8071538,31.6801961,9.6911732,0.8557194,0.9380274,12.5237229,72.5383411,72.7157942,73.1075881,21.5604198,52.2648753,23.856752,66.1300964,37.0246322,42.6804137,15.6249798,12.0017999,80.4540363,5.6429234,31.7535919,10.1618134\r\n2805,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8213375,0.8599505,12.3476711,72.1080601,71.1264967,72.856103,21.5766718,54.2594255,23.2446325,65.5625245,37.1776788,42.6494967,15.7964318,12.1091263,80.3582272,5.8071538,31.6801961,9.6911732,0.8557194,0.9380274,12.5237229,72.5383411,72.7157942,73.1075881,21.5604198,52.2648753,23.856752,66.1300964,37.0246322,42.6804137,15.6249798,12.0017999,80.4540363,5.6429234,31.7535919,10.1618134,0.8272404,0.8744517,12.0584268,74.771797,74.1311859,74.0494578,21.5876942,53.9131957,24.5877539,66.7100075,36.8057558,44.5022991,15.0045663,11.2725446,81.3927207,5.4919269,31.6319175,9.2292845\r\n2806,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8557194,0.9380274,12.5237229,72.5383411,72.7157942,73.1075881,21.5604198,52.2648753,23.856752,66.1300964,37.0246322,42.6804137,15.6249798,12.0017999,80.4540363,5.6429234,31.7535919,10.1618134,0.8272404,0.8744517,12.0584268,74.771797,74.1311859,74.0494578,21.5876942,53.9131957,24.5877539,66.7100075,36.8057558,44.5022991,15.0045663,11.2725446,81.3927207,5.4919269,31.6319175,9.2292845,0.735216,0.7924274,11.6614179,74.6875869,75.1117676,73.9962984,21.4104248,52.3347264,24.5242119,66.9563544,35.8704286,45.5233379,14.3669011,10.6791403,81.5182095,5.5698658,32.3855599,9.2458543\r\n2807,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8272404,0.8744517,12.0584268,74.771797,74.1311859,74.0494578,21.5876942,53.9131957,24.5877539,66.7100075,36.8057558,44.5022991,15.0045663,11.2725446,81.3927207,5.4919269,31.6319175,9.2292845,0.735216,0.7924274,11.6614179,74.6875869,75.1117676,73.9962984,21.4104248,52.3347264,24.5242119,66.9563544,35.8704286,45.5233379,14.3669011,10.6791403,81.5182095,5.5698658,32.3855599,9.2458543,0.8328295,0.8912877,11.9859425,75.0090388,75.0166083,73.8191762,21.8800473,51.6606798,24.2041919,66.2799618,35.2246103,46.0121315,14.5165983,10.6559664,80.8549662,5.4936452,32.4679082,10.3538884\r\n2808,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.735216,0.7924274,11.6614179,74.6875869,75.1117676,73.9962984,21.4104248,52.3347264,24.5242119,66.9563544,35.8704286,45.5233379,14.3669011,10.6791403,81.5182095,5.5698658,32.3855599,9.2458543,0.8328295,0.8912877,11.9859425,75.0090388,75.0166083,73.8191762,21.8800473,51.6606798,24.2041919,66.2799618,35.2246103,46.0121315,14.5165983,10.6559664,80.8549662,5.4936452,32.4679082,10.3538884,0.8015974,0.8612485,10.9698048,73.5680595,73.1234848,71.939343,21.7070548,52.9893706,22.6079295,66.5654266,35.2384077,45.2943991,14.5212485,10.5507164,80.7300799,5.5926908,33.6875626,10.789364\r\n2809,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8328295,0.8912877,11.9859425,75.0090388,75.0166083,73.8191762,21.8800473,51.6606798,24.2041919,66.2799618,35.2246103,46.0121315,14.5165983,10.6559664,80.8549662,5.4936452,32.4679082,10.3538884,0.8015974,0.8612485,10.9698048,73.5680595,73.1234848,71.939343,21.7070548,52.9893706,22.6079295,66.5654266,35.2384077,45.2943991,14.5212485,10.5507164,80.7300799,5.5926908,33.6875626,10.789364,0.7706043,0.7961904,11.8596628,72.7607883,72.2383663,71.0189799,22.666233,51.700191,23.0553583,66.7412707,36.4486385,45.9620156,14.5234159,10.5169269,80.1609651,5.6340772,34.1051826,9.6568987\r\n2810,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8015974,0.8612485,10.9698048,73.5680595,73.1234848,71.939343,21.7070548,52.9893706,22.6079295,66.5654266,35.2384077,45.2943991,14.5212485,10.5507164,80.7300799,5.5926908,33.6875626,10.789364,0.7706043,0.7961904,11.8596628,72.7607883,72.2383663,71.0189799,22.666233,51.700191,23.0553583,66.7412707,36.4486385,45.9620156,14.5234159,10.5169269,80.1609651,5.6340772,34.1051826,9.6568987,0.7312605,0.7761603,11.5657126,71.6999423,71.8030911,70.2447336,23.7844025,51.6959613,22.9746651,67.8513637,36.9516021,45.898441,13.8284263,10.1234938,79.7766535,5.3385314,34.062664,10.7558598\r\n2811,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.7706043,0.7961904,11.8596628,72.7607883,72.2383663,71.0189799,22.666233,51.700191,23.0553583,66.7412707,36.4486385,45.9620156,14.5234159,10.5169269,80.1609651,5.6340772,34.1051826,9.6568987,0.7312605,0.7761603,11.5657126,71.6999423,71.8030911,70.2447336,23.7844025,51.6959613,22.9746651,67.8513637,36.9516021,45.898441,13.8284263,10.1234938,79.7766535,5.3385314,34.062664,10.7558598,0.7419339,0.7561812,10.5523473,72.1940606,71.4875627,70.51109,24.251349,53.5973454,22.0562911,67.7275909,37.9429126,45.8725692,13.3235197,9.8164488,79.2593672,5.5063428,34.2346408,9.8633024\r\n2812,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.7312605,0.7761603,11.5657126,71.6999423,71.8030911,70.2447336,23.7844025,51.6959613,22.9746651,67.8513637,36.9516021,45.898441,13.8284263,10.1234938,79.7766535,5.3385314,34.062664,10.7558598,0.7419339,0.7561812,10.5523473,72.1940606,71.4875627,70.51109,24.251349,53.5973454,22.0562911,67.7275909,37.9429126,45.8725692,13.3235197,9.8164488,79.2593672,5.5063428,34.2346408,9.8633024,0.8229449,0.851366,10.7812784,70.8506715,70.8391925,69.7221663,24.4201582,51.8463783,21.0299977,69.0464934,37.9273522,44.6122942,13.6843812,10.0858156,77.592201,5.6321305,34.7312762,10.6573939\r\n2813,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.7419339,0.7561812,10.5523473,72.1940606,71.4875627,70.51109,24.251349,53.5973454,22.0562911,67.7275909,37.9429126,45.8725692,13.3235197,9.8164488,79.2593672,5.5063428,34.2346408,9.8633024,0.8229449,0.851366,10.7812784,70.8506715,70.8391925,69.7221663,24.4201582,51.8463783,21.0299977,69.0464934,37.9273522,44.6122942,13.6843812,10.0858156,77.592201,5.6321305,34.7312762,10.6573939,1.0303977,1.06869,10.9060174,69.4554935,69.583231,69.0333429,24.849008,49.4456504,20.5565294,68.9173319,39.2452174,43.1619307,14.1985643,10.1748289,76.6012236,5.5842264,35.321341,10.9856511\r\n2814,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8229449,0.851366,10.7812784,70.8506715,70.8391925,69.7221663,24.4201582,51.8463783,21.0299977,69.0464934,37.9273522,44.6122942,13.6843812,10.0858156,77.592201,5.6321305,34.7312762,10.6573939,1.0303977,1.06869,10.9060174,69.4554935,69.583231,69.0333429,24.849008,49.4456504,20.5565294,68.9173319,39.2452174,43.1619307,14.1985643,10.1748289,76.6012236,5.5842264,35.321341,10.9856511,0.8591213,0.9079591,10.7834111,69.0463435,69.2779606,68.415001,24.3199474,47.2893664,19.8765807,68.9655843,39.3538609,43.1889295,13.8632281,9.9967396,75.6288571,5.4392624,34.5988086,9.5184276\r\n2815,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0303977,1.06869,10.9060174,69.4554935,69.583231,69.0333429,24.849008,49.4456504,20.5565294,68.9173319,39.2452174,43.1619307,14.1985643,10.1748289,76.6012236,5.5842264,35.321341,10.9856511,0.8591213,0.9079591,10.7834111,69.0463435,69.2779606,68.415001,24.3199474,47.2893664,19.8765807,68.9655843,39.3538609,43.1889295,13.8632281,9.9967396,75.6288571,5.4392624,34.5988086,9.5184276,0.8165715,0.8651808,10.8406093,69.4022511,70.3060719,67.8378633,24.9527718,43.0432567,19.4644394,68.693627,40.4354158,42.5523547,13.9592748,10.0789727,73.2091966,5.5194908,34.1003642,8.6403871\r\n2816,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8591213,0.9079591,10.7834111,69.0463435,69.2779606,68.415001,24.3199474,47.2893664,19.8765807,68.9655843,39.3538609,43.1889295,13.8632281,9.9967396,75.6288571,5.4392624,34.5988086,9.5184276,0.8165715,0.8651808,10.8406093,69.4022511,70.3060719,67.8378633,24.9527718,43.0432567,19.4644394,68.693627,40.4354158,42.5523547,13.9592748,10.0789727,73.2091966,5.5194908,34.1003642,8.6403871,0.8596817,0.896158,9.9813218,71.0165346,71.9272072,66.8973493,23.9606918,39.0373418,18.3081682,68.9965768,39.3616451,42.8262361,13.6570528,9.9220698,70.9981912,5.3511265,34.0762572,8.8962568\r\n2817,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8165715,0.8651808,10.8406093,69.4022511,70.3060719,67.8378633,24.9527718,43.0432567,19.4644394,68.693627,40.4354158,42.5523547,13.9592748,10.0789727,73.2091966,5.5194908,34.1003642,8.6403871,0.8596817,0.896158,9.9813218,71.0165346,71.9272072,66.8973493,23.9606918,39.0373418,18.3081682,68.9965768,39.3616451,42.8262361,13.6570528,9.9220698,70.9981912,5.3511265,34.0762572,8.8962568,0.8143256,0.8515596,10.9386166,72.4186156,73.402171,68.9682355,22.8905311,33.2311693,17.9723247,69.3361626,37.7606218,44.4553639,14.0290341,10.0725506,68.3737603,5.6822222,33.2737346,8.5175368\r\n2818,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8596817,0.896158,9.9813218,71.0165346,71.9272072,66.8973493,23.9606918,39.0373418,18.3081682,68.9965768,39.3616451,42.8262361,13.6570528,9.9220698,70.9981912,5.3511265,34.0762572,8.8962568,0.8143256,0.8515596,10.9386166,72.4186156,73.402171,68.9682355,22.8905311,33.2311693,17.9723247,69.3361626,37.7606218,44.4553639,14.0290341,10.0725506,68.3737603,5.6822222,33.2737346,8.5175368,0.6932659,0.7148636,11.1201698,72.1712712,73.9941337,69.0718059,22.3815666,28.6478387,19.5513255,69.2557163,37.2172172,45.0486815,14.217148,10.2118523,65.9074673,5.805893,33.8743284,8.0042202\r\n2819,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8143256,0.8515596,10.9386166,72.4186156,73.402171,68.9682355,22.8905311,33.2311693,17.9723247,69.3361626,37.7606218,44.4553639,14.0290341,10.0725506,68.3737603,5.6822222,33.2737346,8.5175368,0.6932659,0.7148636,11.1201698,72.1712712,73.9941337,69.0718059,22.3815666,28.6478387,19.5513255,69.2557163,37.2172172,45.0486815,14.217148,10.2118523,65.9074673,5.805893,33.8743284,8.0042202,0.6623319,0.6775564,10.7110504,70.5182659,72.9643309,69.2968731,22.1615786,23.8990168,20.9132098,68.2371505,37.5896772,44.8494609,13.8403254,9.7822559,62.455796,5.4479439,33.2978152,7.3694369\r\n2820,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.6932659,0.7148636,11.1201698,72.1712712,73.9941337,69.0718059,22.3815666,28.6478387,19.5513255,69.2557163,37.2172172,45.0486815,14.217148,10.2118523,65.9074673,5.805893,33.8743284,8.0042202,0.6623319,0.6775564,10.7110504,70.5182659,72.9643309,69.2968731,22.1615786,23.8990168,20.9132098,68.2371505,37.5896772,44.8494609,13.8403254,9.7822559,62.455796,5.4479439,33.2978152,7.3694369,0.5899428,0.5846768,11.2619022,71.4836347,73.0658785,70.5378942,21.6037983,20.6054435,20.1338275,68.2591263,36.0681172,44.7665801,13.7868602,10.1125467,59.3871899,5.4227283,31.7362701,6.5515375\r\n2821,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.6623319,0.6775564,10.7110504,70.5182659,72.9643309,69.2968731,22.1615786,23.8990168,20.9132098,68.2371505,37.5896772,44.8494609,13.8403254,9.7822559,62.455796,5.4479439,33.2978152,7.3694369,0.5899428,0.5846768,11.2619022,71.4836347,73.0658785,70.5378942,21.6037983,20.6054435,20.1338275,68.2591263,36.0681172,44.7665801,13.7868602,10.1125467,59.3871899,5.4227283,31.7362701,6.5515375,0.6927567,0.6927567,11.4141004,71.1761126,74.1063184,69.7821732,22.1014685,17.6423851,20.0482447,69.2267047,36.83871,45.0298646,14.2359218,10.4573391,56.4298858,5.5690844,32.039233,6.7816435\r\n2822,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.5899428,0.5846768,11.2619022,71.4836347,73.0658785,70.5378942,21.6037983,20.6054435,20.1338275,68.2591263,36.0681172,44.7665801,13.7868602,10.1125467,59.3871899,5.4227283,31.7362701,6.5515375,0.6927567,0.6927567,11.4141004,71.1761126,74.1063184,69.7821732,22.1014685,17.6423851,20.0482447,69.2267047,36.83871,45.0298646,14.2359218,10.4573391,56.4298858,5.5690844,32.039233,6.7816435,0.8623622,0.8315738,11.4340687,70.1006351,73.394814,70.8017371,21.7292648,15.7762991,19.4353606,68.2674241,37.0087516,44.8453588,14.6840294,10.6543778,54.9240866,5.4861906,31.8532147,6.4024533\r\n2823,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.6927567,0.6927567,11.4141004,71.1761126,74.1063184,69.7821732,22.1014685,17.6423851,20.0482447,69.2267047,36.83871,45.0298646,14.2359218,10.4573391,56.4298858,5.5690844,32.039233,6.7816435,0.8623622,0.8315738,11.4340687,70.1006351,73.394814,70.8017371,21.7292648,15.7762991,19.4353606,68.2674241,37.0087516,44.8453588,14.6840294,10.6543778,54.9240866,5.4861906,31.8532147,6.4024533,0.9246224,0.909461,11.6301581,70.0803821,72.9999255,71.8132901,21.9621011,15.2757089,20.1111035,67.6494749,37.3256876,44.6973788,14.7819842,10.7260547,53.748261,5.4573112,31.6977937,6.7797969\r\n2824,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.8623622,0.8315738,11.4340687,70.1006351,73.394814,70.8017371,21.7292648,15.7762991,19.4353606,68.2674241,37.0087516,44.8453588,14.6840294,10.6543778,54.9240866,5.4861906,31.8532147,6.4024533,0.9246224,0.909461,11.6301581,70.0803821,72.9999255,71.8132901,21.9621011,15.2757089,20.1111035,67.6494749,37.3256876,44.6973788,14.7819842,10.7260547,53.748261,5.4573112,31.6977937,6.7797969,1.0055625,1.0055625,11.3469507,69.5139378,72.4875986,70.6743916,22.5874935,13.9599791,18.9964265,66.7867699,38.5605277,44.0558379,15.2206457,10.8805661,52.8779644,5.558623,32.680273,7.0659718\r\n2825,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.9246224,0.909461,11.6301581,70.0803821,72.9999255,71.8132901,21.9621011,15.2757089,20.1111035,67.6494749,37.3256876,44.6973788,14.7819842,10.7260547,53.748261,5.4573112,31.6977937,6.7797969,1.0055625,1.0055625,11.3469507,69.5139378,72.4875986,70.6743916,22.5874935,13.9599791,18.9964265,66.7867699,38.5605277,44.0558379,15.2206457,10.8805661,52.8779644,5.558623,32.680273,7.0659718,1.1416658,1.1416658,11.673976,68.7618479,71.0027005,69.6463252,23.0723225,11.5377127,16.939312,66.9002485,38.9084762,43.0613955,15.2852656,10.8763394,51.2114837,5.6379187,32.2618036,7.3468895\r\n2826,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0055625,1.0055625,11.3469507,69.5139378,72.4875986,70.6743916,22.5874935,13.9599791,18.9964265,66.7867699,38.5605277,44.0558379,15.2206457,10.8805661,52.8779644,5.558623,32.680273,7.0659718,1.1416658,1.1416658,11.673976,68.7618479,71.0027005,69.6463252,23.0723225,11.5377127,16.939312,66.9002485,38.9084762,43.0613955,15.2852656,10.8763394,51.2114837,5.6379187,32.2618036,7.3468895,1.1265297,1.135723,11.8401942,70.7059312,72.3612298,70.1201972,22.9779014,10.7610648,15.3357106,65.4458271,37.8020343,43.1887448,15.5002637,10.9968932,50.5554816,5.815454,32.7192095,7.8363709\r\n2827,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.1416658,1.1416658,11.673976,68.7618479,71.0027005,69.6463252,23.0723225,11.5377127,16.939312,66.9002485,38.9084762,43.0613955,15.2852656,10.8763394,51.2114837,5.6379187,32.2618036,7.3468895,1.1265297,1.135723,11.8401942,70.7059312,72.3612298,70.1201972,22.9779014,10.7610648,15.3357106,65.4458271,37.8020343,43.1887448,15.5002637,10.9968932,50.5554816,5.815454,32.7192095,7.8363709,1.0461836,1.0665661,11.7257768,70.3533597,72.4631088,69.1889818,23.639426,10.4850861,16.0418022,65.0039207,39.4229651,43.5336608,15.5752808,11.0708668,49.4100684,6.020092,32.8591074,7.6873459\r\n2828,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.1265297,1.135723,11.8401942,70.7059312,72.3612298,70.1201972,22.9779014,10.7610648,15.3357106,65.4458271,37.8020343,43.1887448,15.5002637,10.9968932,50.5554816,5.815454,32.7192095,7.8363709,1.0461836,1.0665661,11.7257768,70.3533597,72.4631088,69.1889818,23.639426,10.4850861,16.0418022,65.0039207,39.4229651,43.5336608,15.5752808,11.0708668,49.4100684,6.020092,32.8591074,7.6873459,1.0186138,1.0099481,11.1821936,71.6003306,71.739035,70.6570064,22.9901838,10.0073524,16.5845727,64.5027116,38.6621679,43.8829921,15.3229343,10.5832687,48.8236005,6.1706793,33.028367,8.4089433\r\n2829,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0461836,1.0665661,11.7257768,70.3533597,72.4631088,69.1889818,23.639426,10.4850861,16.0418022,65.0039207,39.4229651,43.5336608,15.5752808,11.0708668,49.4100684,6.020092,32.8591074,7.6873459,1.0186138,1.0099481,11.1821936,71.6003306,71.739035,70.6570064,22.9901838,10.0073524,16.5845727,64.5027116,38.6621679,43.8829921,15.3229343,10.5832687,48.8236005,6.1706793,33.028367,8.4089433,0.827458,0.8828393,11.2872256,71.589545,72.33548,70.1710448,23.6090524,9.875677,16.6426347,65.7258074,38.604046,44.8897317,15.1670855,10.5164293,47.8860557,6.3901164,33.7407245,8.8640404\r\n2830,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.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,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0186138,1.0099481,11.1821936,71.6003306,71.739035,70.6570064,22.9901838,10.0073524,16.5845727,64.5027116,38.6621679,43.8829921,15.3229343,10.5832687,48.8236005,6.1706793,33.028367,8.4089433,0.827458,0.8828393,11.2872256,71.589545,72.33548,70.1710448,23.6090524,9.875677,16.6426347,65.7258074,38.604046,44.8897317,15.1670855,10.5164293,47.8860557,6.3901164,33.7407245,8.8640404,0.8031157,0.8626003,11.4154817,71.3300484,72.2424955,70.3058713,24.4098101,9.6529436,16.3786138,66.1802267,39.0878424,44.1625324,15.4284377,10.6812088,46.4521745,6.9083405,33.7526521,9.7114278\r\n2831,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.3414061,3.4482246,30.4083853,63.1267585,66.2668068,58.7863737,24.7012097,8.9707964,13.8030023,60.9400421,29.2805331,46.8661604,37.8952105,30.4521026,56.862228,2.2182776,40.4183329,19.9663425,3.3398397,3.3836871,31.0478834,62.1141339,65.5010494,57.6070456,23.0846112,8.7843781,14.5696862,61.6360046,31.0098454,45.2630409,38.6608386,31.3746501,57.5197747,2.3170865,40.9803568,18.8290245,3.3558678,3.3602387,31.1862221,60.9269221,64.5204887,57.6536114,20.9282819,9.1690383,15.1722977,62.0087077,31.550508,44.5992713,39.8342375,32.4379446,57.7501429,2.1322705,41.1923815,19.7851972\r\n2832,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.3398397,3.3836871,31.0478834,62.1141339,65.5010494,57.6070456,23.0846112,8.7843781,14.5696862,61.6360046,31.0098454,45.2630409,38.6608386,31.3746501,57.5197747,2.3170865,40.9803568,18.8290245,3.3558678,3.3602387,31.1862221,60.9269221,64.5204887,57.6536114,20.9282819,9.1690383,15.1722977,62.0087077,31.550508,44.5992713,39.8342375,32.4379446,57.7501429,2.1322705,41.1923815,19.7851972,3.7094791,3.7138126,33.0823777,62.4362678,65.5218607,56.1143739,21.0910492,9.5757014,16.0479835,61.6376067,30.7801313,46.2233288,41.6569744,33.8304775,58.5079786,1.9872633,39.6458939,20.9063655\r\n2833,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.3558678,3.3602387,31.1862221,60.9269221,64.5204887,57.6536114,20.9282819,9.1690383,15.1722977,62.0087077,31.550508,44.5992713,39.8342375,32.4379446,57.7501429,2.1322705,41.1923815,19.7851972,3.7094791,3.7138126,33.0823777,62.4362678,65.5218607,56.1143739,21.0910492,9.5757014,16.0479835,61.6376067,30.7801313,46.2233288,41.6569744,33.8304775,58.5079786,1.9872633,39.6458939,20.9063655,3.6034324,3.6077886,33.829333,61.9662239,64.3317755,56.1896272,20.8818238,9.5728628,15.3677216,61.9864152,31.3329129,46.1741953,41.9243618,34.611978,58.422755,2.2368612,40.7503604,21.2856717\r\n2834,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.7094791,3.7138126,33.0823777,62.4362678,65.5218607,56.1143739,21.0910492,9.5757014,16.0479835,61.6376067,30.7801313,46.2233288,41.6569744,33.8304775,58.5079786,1.9872633,39.6458939,20.9063655,3.6034324,3.6077886,33.829333,61.9662239,64.3317755,56.1896272,20.8818238,9.5728628,15.3677216,61.9864152,31.3329129,46.1741953,41.9243618,34.611978,58.422755,2.2368612,40.7503604,21.2856717,3.6841652,3.6937819,34.6567404,61.6919044,64.0956163,56.30292,18.7658782,10.3149948,15.7274713,61.6040543,30.9951088,46.5935542,42.1151231,35.0882672,59.2005526,2.4320205,41.2406247,22.6027238\r\n2835,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.6034324,3.6077886,33.829333,61.9662239,64.3317755,56.1896272,20.8818238,9.5728628,15.3677216,61.9864152,31.3329129,46.1741953,41.9243618,34.611978,58.422755,2.2368612,40.7503604,21.2856717,3.6841652,3.6937819,34.6567404,61.6919044,64.0956163,56.30292,18.7658782,10.3149948,15.7274713,61.6040543,30.9951088,46.5935542,42.1151231,35.0882672,59.2005526,2.4320205,41.2406247,22.6027238,3.8528923,3.9110928,35.1205351,61.6883659,63.7896356,58.1010126,17.6733803,9.4656048,16.1380373,61.5762972,30.2940472,45.9946259,42.968694,36.1832124,58.942003,2.7793827,43.036512,25.1282857\r\n2836,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.6841652,3.6937819,34.6567404,61.6919044,64.0956163,56.30292,18.7658782,10.3149948,15.7274713,61.6040543,30.9951088,46.5935542,42.1151231,35.0882672,59.2005526,2.4320205,41.2406247,22.6027238,3.8528923,3.9110928,35.1205351,61.6883659,63.7896356,58.1010126,17.6733803,9.4656048,16.1380373,61.5762972,30.2940472,45.9946259,42.968694,36.1832124,58.942003,2.7793827,43.036512,25.1282857,4.0131424,4.0720978,35.4121152,62.753439,63.5304314,57.9294428,16.9693073,9.3589273,17.0815465,59.989445,28.0592253,46.7924039,43.7346546,37.0568926,60.3755469,2.8838075,41.4462988,27.5229551\r\n2837,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.8528923,3.9110928,35.1205351,61.6883659,63.7896356,58.1010126,17.6733803,9.4656048,16.1380373,61.5762972,30.2940472,45.9946259,42.968694,36.1832124,58.942003,2.7793827,43.036512,25.1282857,4.0131424,4.0720978,35.4121152,62.753439,63.5304314,57.9294428,16.9693073,9.3589273,17.0815465,59.989445,28.0592253,46.7924039,43.7346546,37.0568926,60.3755469,2.8838075,41.4462988,27.5229551,3.984074,4.0692032,36.2247862,63.3257751,64.8087381,58.2489324,15.1954741,9.9175877,16.4369238,58.8009698,26.0788158,49.6953506,44.4917307,37.5387432,61.2291208,2.6519952,42.2545922,30.5665097\r\n2838,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0131424,4.0720978,35.4121152,62.753439,63.5304314,57.9294428,16.9693073,9.3589273,17.0815465,59.989445,28.0592253,46.7924039,43.7346546,37.0568926,60.3755469,2.8838075,41.4462988,27.5229551,3.984074,4.0692032,36.2247862,63.3257751,64.8087381,58.2489324,15.1954741,9.9175877,16.4369238,58.8009698,26.0788158,49.6953506,44.4917307,37.5387432,61.2291208,2.6519952,42.2545922,30.5665097,4.0123606,4.1746263,36.4091788,60.8670251,64.0371218,56.3572295,15.0829519,9.5686487,15.7123095,58.6523469,26.7162134,50.294053,44.1342505,37.4023131,61.5344933,2.4948937,41.7321903,31.0916416\r\n2839,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.984074,4.0692032,36.2247862,63.3257751,64.8087381,58.2489324,15.1954741,9.9175877,16.4369238,58.8009698,26.0788158,49.6953506,44.4917307,37.5387432,61.2291208,2.6519952,42.2545922,30.5665097,4.0123606,4.1746263,36.4091788,60.8670251,64.0371218,56.3572295,15.0829519,9.5686487,15.7123095,58.6523469,26.7162134,50.294053,44.1342505,37.4023131,61.5344933,2.4948937,41.7321903,31.0916416,3.771385,3.9551188,36.2617779,60.1133647,63.100241,55.8200476,14.5250307,9.2663024,16.0000027,58.3912753,27.2642817,50.3383732,43.7521363,37.4085091,61.7301836,2.5747186,41.9090319,30.6276717\r\n2840,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0123606,4.1746263,36.4091788,60.8670251,64.0371218,56.3572295,15.0829519,9.5686487,15.7123095,58.6523469,26.7162134,50.294053,44.1342505,37.4023131,61.5344933,2.4948937,41.7321903,31.0916416,3.771385,3.9551188,36.2617779,60.1133647,63.100241,55.8200476,14.5250307,9.2663024,16.0000027,58.3912753,27.2642817,50.3383732,43.7521363,37.4085091,61.7301836,2.5747186,41.9090319,30.6276717,3.9235439,4.102214,37.133673,58.9883462,62.6208144,54.2646808,14.5102922,9.957349,17.1841526,57.6817928,26.589663,50.5680094,44.5978468,38.2113969,61.2557987,2.773703,41.2787023,32.2844396\r\n2841,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.771385,3.9551188,36.2617779,60.1133647,63.100241,55.8200476,14.5250307,9.2663024,16.0000027,58.3912753,27.2642817,50.3383732,43.7521363,37.4085091,61.7301836,2.5747186,41.9090319,30.6276717,3.9235439,4.102214,37.133673,58.9883462,62.6208144,54.2646808,14.5102922,9.957349,17.1841526,57.6817928,26.589663,50.5680094,44.5978468,38.2113969,61.2557987,2.773703,41.2787023,32.2844396,4.0891904,4.2778888,36.599308,59.6072089,60.7778654,54.8612445,15.133034,11.2255015,17.0625512,58.3044668,26.3150107,52.1806081,45.1690987,38.3669307,60.489672,3.0057057,40.7405496,33.0009737\r\n2842,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.9235439,4.102214,37.133673,58.9883462,62.6208144,54.2646808,14.5102922,9.957349,17.1841526,57.6817928,26.589663,50.5680094,44.5978468,38.2113969,61.2557987,2.773703,41.2787023,32.2844396,4.0891904,4.2778888,36.599308,59.6072089,60.7778654,54.8612445,15.133034,11.2255015,17.0625512,58.3044668,26.3150107,52.1806081,45.1690987,38.3669307,60.489672,3.0057057,40.7405496,33.0009737,4.0855915,4.2232679,38.6757509,61.700194,62.2033664,54.0106112,15.784582,11.4841146,16.0675044,59.7648875,28.2372154,52.2100086,45.8193404,39.4120136,60.7441045,2.5394227,40.5675318,32.1085646\r\n2843,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0891904,4.2778888,36.599308,59.6072089,60.7778654,54.8612445,15.133034,11.2255015,17.0625512,58.3044668,26.3150107,52.1806081,45.1690987,38.3669307,60.489672,3.0057057,40.7405496,33.0009737,4.0855915,4.2232679,38.6757509,61.700194,62.2033664,54.0106112,15.784582,11.4841146,16.0675044,59.7648875,28.2372154,52.2100086,45.8193404,39.4120136,60.7441045,2.5394227,40.5675318,32.1085646,4.3487695,4.4964033,39.705742,61.8492269,62.9631243,53.3896755,15.7587675,11.5705985,15.997493,61.4946286,29.1267645,52.9323338,46.6700963,40.1368607,60.760825,2.4288619,42.9291545,30.7535547\r\n2844,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0855915,4.2232679,38.6757509,61.700194,62.2033664,54.0106112,15.784582,11.4841146,16.0675044,59.7648875,28.2372154,52.2100086,45.8193404,39.4120136,60.7441045,2.5394227,40.5675318,32.1085646,4.3487695,4.4964033,39.705742,61.8492269,62.9631243,53.3896755,15.7587675,11.5705985,15.997493,61.4946286,29.1267645,52.9323338,46.6700963,40.1368607,60.760825,2.4288619,42.9291545,30.7535547,4.5299057,4.6299839,41.2657372,61.9221546,61.9570193,52.6583639,17.1183303,10.9561009,16.8320416,62.2102293,29.3966743,51.4812103,47.7656919,41.3549049,61.1387924,2.4741617,42.6816586,31.1279073\r\n2845,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.3487695,4.4964033,39.705742,61.8492269,62.9631243,53.3896755,15.7587675,11.5705985,15.997493,61.4946286,29.1267645,52.9323338,46.6700963,40.1368607,60.760825,2.4288619,42.9291545,30.7535547,4.5299057,4.6299839,41.2657372,61.9221546,61.9570193,52.6583639,17.1183303,10.9561009,16.8320416,62.2102293,29.3966743,51.4812103,47.7656919,41.3549049,61.1387924,2.4741617,42.6816586,31.1279073,4.560181,4.6018583,40.7603852,63.836816,63.1198157,54.4850358,17.5016036,11.2106997,16.9184022,63.8761197,29.6680667,51.7405622,47.8705121,41.5771274,62.0206346,2.4089255,43.2755295,33.2009231\r\n2846,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.5299057,4.6299839,41.2657372,61.9221546,61.9570193,52.6583639,17.1183303,10.9561009,16.8320416,62.2102293,29.3966743,51.4812103,47.7656919,41.3549049,61.1387924,2.4741617,42.6816586,31.1279073,4.560181,4.6018583,40.7603852,63.836816,63.1198157,54.4850358,17.5016036,11.2106997,16.9184022,63.8761197,29.6680667,51.7405622,47.8705121,41.5771274,62.0206346,2.4089255,43.2755295,33.2009231,4.5479731,4.584812,41.2892237,65.2664668,65.4046175,56.1679383,17.773183,11.8898854,16.4410606,62.9175716,28.5522037,51.0884541,48.2568045,42.0701283,62.8723355,2.3522363,44.8458627,34.8284785\r\n2847,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.560181,4.6018583,40.7603852,63.836816,63.1198157,54.4850358,17.5016036,11.2106997,16.9184022,63.8761197,29.6680667,51.7405622,47.8705121,41.5771274,62.0206346,2.4089255,43.2755295,33.2009231,4.5479731,4.584812,41.2892237,65.2664668,65.4046175,56.1679383,17.773183,11.8898854,16.4410606,62.9175716,28.5522037,51.0884541,48.2568045,42.0701283,62.8723355,2.3522363,44.8458627,34.8284785,4.5306384,4.5730832,42.1797189,67.1877987,66.3258266,57.6300534,17.5979234,11.0536708,16.5366148,62.6753694,28.8128962,52.2101754,48.5800273,42.1735614,64.4337007,2.1621938,43.8603146,36.3002948\r\n2848,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.5479731,4.584812,41.2892237,65.2664668,65.4046175,56.1679383,17.773183,11.8898854,16.4410606,62.9175716,28.5522037,51.0884541,48.2568045,42.0701283,62.8723355,2.3522363,44.8458627,34.8284785,4.5306384,4.5730832,42.1797189,67.1877987,66.3258266,57.6300534,17.5979234,11.0536708,16.5366148,62.6753694,28.8128962,52.2101754,48.5800273,42.1735614,64.4337007,2.1621938,43.8603146,36.3002948,4.4526072,4.4929251,42.8577823,65.7884489,67.6498734,55.3216484,17.9028838,10.2857104,16.0607149,61.8430255,27.8759592,50.4899757,49.0869739,42.7271558,64.9956934,2.236779,44.2713938,37.5593609\r\n2849,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.5306384,4.5730832,42.1797189,67.1877987,66.3258266,57.6300534,17.5979234,11.0536708,16.5366148,62.6753694,28.8128962,52.2101754,48.5800273,42.1735614,64.4337007,2.1621938,43.8603146,36.3002948,4.4526072,4.4929251,42.8577823,65.7884489,67.6498734,55.3216484,17.9028838,10.2857104,16.0607149,61.8430255,27.8759592,50.4899757,49.0869739,42.7271558,64.9956934,2.236779,44.2713938,37.5593609,4.624625,4.648494,42.2186007,62.1648559,65.5936019,55.2298037,16.8732143,10.1528118,16.4199239,59.4828355,26.0970009,50.3894889,49.3945392,42.7477,65.0675129,2.4564293,43.8774223,37.5241752\r\n2850,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.4526072,4.4929251,42.8577823,65.7884489,67.6498734,55.3216484,17.9028838,10.2857104,16.0607149,61.8430255,27.8759592,50.4899757,49.0869739,42.7271558,64.9956934,2.236779,44.2713938,37.5593609,4.624625,4.648494,42.2186007,62.1648559,65.5936019,55.2298037,16.8732143,10.1528118,16.4199239,59.4828355,26.0970009,50.3894889,49.3945392,42.7477,65.0675129,2.4564293,43.8774223,37.5241752,4.4950994,4.5060691,41.987103,61.7553264,64.9993823,55.6620797,16.9483875,10.4247176,16.2032096,57.4834728,26.7287072,49.0614383,49.1119552,42.4811971,64.7511507,2.4177596,44.1288086,38.1235255\r\n2851,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.624625,4.648494,42.2186007,62.1648559,65.5936019,55.2298037,16.8732143,10.1528118,16.4199239,59.4828355,26.0970009,50.3894889,49.3945392,42.7477,65.0675129,2.4564293,43.8774223,37.5241752,4.4950994,4.5060691,41.987103,61.7553264,64.9993823,55.6620797,16.9483875,10.4247176,16.2032096,57.4834728,26.7287072,49.0614383,49.1119552,42.4811971,64.7511507,2.4177596,44.1288086,38.1235255,4.5249368,4.5768668,40.7294188,62.6598033,65.5578466,58.3270147,17.0327137,11.4612682,16.0744914,56.9645526,26.2035542,49.397753,48.6661695,41.709865,64.5380908,2.5502898,44.2913566,38.305508\r\n2852,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.4950994,4.5060691,41.987103,61.7553264,64.9993823,55.6620797,16.9483875,10.4247176,16.2032096,57.4834728,26.7287072,49.0614383,49.1119552,42.4811971,64.7511507,2.4177596,44.1288086,38.1235255,4.5249368,4.5768668,40.7294188,62.6598033,65.5578466,58.3270147,17.0327137,11.4612682,16.0744914,56.9645526,26.2035542,49.397753,48.6661695,41.709865,64.5380908,2.5502898,44.2913566,38.305508,4.6502235,4.6796162,41.2582246,62.8203721,65.7686682,57.9121766,16.8637252,10.773201,16.0417489,55.6574091,25.8093289,49.8340574,49.3049384,42.0220851,64.1568529,2.826411,44.8770495,37.6794255\r\n2853,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.5249368,4.5768668,40.7294188,62.6598033,65.5578466,58.3270147,17.0327137,11.4612682,16.0744914,56.9645526,26.2035542,49.397753,48.6661695,41.709865,64.5380908,2.5502898,44.2913566,38.305508,4.6502235,4.6796162,41.2582246,62.8203721,65.7686682,57.9121766,16.8637252,10.773201,16.0417489,55.6574091,25.8093289,49.8340574,49.3049384,42.0220851,64.1568529,2.826411,44.8770495,37.6794255,4.7394809,4.7539226,40.6474763,61.0487619,64.1545394,57.5013491,16.4804557,9.5114431,15.9786569,56.4993541,26.2543446,49.2900732,48.8883675,41.7148293,63.1682883,2.9259425,43.6820688,38.5265681\r\n2854,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.6502235,4.6796162,41.2582246,62.8203721,65.7686682,57.9121766,16.8637252,10.773201,16.0417489,55.6574091,25.8093289,49.8340574,49.3049384,42.0220851,64.1568529,2.826411,44.8770495,37.6794255,4.7394809,4.7539226,40.6474763,61.0487619,64.1545394,57.5013491,16.4804557,9.5114431,15.9786569,56.4993541,26.2543446,49.2900732,48.8883675,41.7148293,63.1682883,2.9259425,43.6820688,38.5265681,4.6993868,4.7521871,39.5870795,59.5911737,63.5376348,58.635578,16.4078802,9.9898801,15.4147345,56.7669405,26.5523101,48.4320414,48.4592776,41.4268182,62.9090035,2.861636,44.4818109,39.0096442\r\n2855,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.7394809,4.7539226,40.6474763,61.0487619,64.1545394,57.5013491,16.4804557,9.5114431,15.9786569,56.4993541,26.2543446,49.2900732,48.8883675,41.7148293,63.1682883,2.9259425,43.6820688,38.5265681,4.6993868,4.7521871,39.5870795,59.5911737,63.5376348,58.635578,16.4078802,9.9898801,15.4147345,56.7669405,26.5523101,48.4320414,48.4592776,41.4268182,62.9090035,2.861636,44.4818109,39.0096442,4.4498808,4.5026448,38.8239069,58.7960955,62.0103444,60.6121161,17.1311015,10.005772,18.7368308,56.6324101,27.0781384,48.1274192,47.660196,40.7070053,62.925861,2.5367609,43.8748216,39.5486659\r\n2856,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.6993868,4.7521871,39.5870795,59.5911737,63.5376348,58.635578,16.4078802,9.9898801,15.4147345,56.7669405,26.5523101,48.4320414,48.4592776,41.4268182,62.9090035,2.861636,44.4818109,39.0096442,4.4498808,4.5026448,38.8239069,58.7960955,62.0103444,60.6121161,17.1311015,10.005772,18.7368308,56.6324101,27.0781384,48.1274192,47.660196,40.7070053,62.925861,2.5367609,43.8748216,39.5486659,4.0057295,4.1325688,38.906248,59.0774828,62.4523698,60.3744198,18.3896398,10.6827554,18.9174493,56.5917753,28.3207648,48.9344513,47.7129211,40.9549128,62.8155511,2.5748761,44.4813297,41.6261955\r\n2857,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.4498808,4.5026448,38.8239069,58.7960955,62.0103444,60.6121161,17.1311015,10.005772,18.7368308,56.6324101,27.0781384,48.1274192,47.660196,40.7070053,62.925861,2.5367609,43.8748216,39.5486659,4.0057295,4.1325688,38.906248,59.0774828,62.4523698,60.3744198,18.3896398,10.6827554,18.9174493,56.5917753,28.3207648,48.9344513,47.7129211,40.9549128,62.8155511,2.5748761,44.4813297,41.6261955,3.9898677,4.1141602,38.5766497,59.0921699,62.7308316,60.9064189,18.1189691,10.2874372,20.0570214,56.6274747,27.646896,50.5951475,47.5476157,40.6895064,63.3162907,2.7103645,43.464,41.5876918\r\n2858,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0057295,4.1325688,38.906248,59.0774828,62.4523698,60.3744198,18.3896398,10.6827554,18.9174493,56.5917753,28.3207648,48.9344513,47.7129211,40.9549128,62.8155511,2.5748761,44.4813297,41.6261955,3.9898677,4.1141602,38.5766497,59.0921699,62.7308316,60.9064189,18.1189691,10.2874372,20.0570214,56.6274747,27.646896,50.5951475,47.5476157,40.6895064,63.3162907,2.7103645,43.464,41.5876918,3.7062273,3.8018865,38.4524573,56.6439286,61.0535631,56.6800702,18.494058,9.4914932,20.522692,56.0278367,28.5063755,48.3379222,46.569507,39.953501,62.8958071,2.7033821,42.604655,41.0356968\r\n2859,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.9898677,4.1141602,38.5766497,59.0921699,62.7308316,60.9064189,18.1189691,10.2874372,20.0570214,56.6274747,27.646896,50.5951475,47.5476157,40.6895064,63.3162907,2.7103645,43.464,41.5876918,3.7062273,3.8018865,38.4524573,56.6439286,61.0535631,56.6800702,18.494058,9.4914932,20.522692,56.0278367,28.5063755,48.3379222,46.569507,39.953501,62.8958071,2.7033821,42.604655,41.0356968,3.4384644,3.5359704,38.6960314,57.2808477,61.4839275,55.285317,19.351099,9.9958042,21.5397393,56.5772505,29.5799914,49.8883383,46.6508125,40.2027701,63.2783757,2.8026451,42.0804861,39.7856723\r\n2860,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.7062273,3.8018865,38.4524573,56.6439286,61.0535631,56.6800702,18.494058,9.4914932,20.522692,56.0278367,28.5063755,48.3379222,46.569507,39.953501,62.8958071,2.7033821,42.604655,41.0356968,3.4384644,3.5359704,38.6960314,57.2808477,61.4839275,55.285317,19.351099,9.9958042,21.5397393,56.5772505,29.5799914,49.8883383,46.6508125,40.2027701,63.2783757,2.8026451,42.0804861,39.7856723,3.6105572,3.7338826,38.587663,56.5235171,59.8710302,55.0649037,20.5115231,10.6565728,20.5990815,57.719448,30.8282879,50.3571281,46.6845026,40.3722016,62.4676866,2.7595514,42.0591494,38.6494843\r\n2861,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.4384644,3.5359704,38.6960314,57.2808477,61.4839275,55.285317,19.351099,9.9958042,21.5397393,56.5772505,29.5799914,49.8883383,46.6508125,40.2027701,63.2783757,2.8026451,42.0804861,39.7856723,3.6105572,3.7338826,38.587663,56.5235171,59.8710302,55.0649037,20.5115231,10.6565728,20.5990815,57.719448,30.8282879,50.3571281,46.6845026,40.3722016,62.4676866,2.7595514,42.0591494,38.6494843,3.5964507,3.6813168,38.4040561,57.7055921,61.2682538,53.0195624,21.2160549,10.5982782,20.0995926,57.6310788,31.7743682,49.0043755,46.2045178,40.2212062,62.4938127,2.971708,40.9711911,39.2930946\r\n2862,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.6105572,3.7338826,38.587663,56.5235171,59.8710302,55.0649037,20.5115231,10.6565728,20.5990815,57.719448,30.8282879,50.3571281,46.6845026,40.3722016,62.4676866,2.7595514,42.0591494,38.6494843,3.5964507,3.6813168,38.4040561,57.7055921,61.2682538,53.0195624,21.2160549,10.5982782,20.0995926,57.6310788,31.7743682,49.0043755,46.2045178,40.2212062,62.4938127,2.971708,40.9711911,39.2930946,3.7872977,3.8750114,39.0646074,59.8822412,62.4087341,53.2726226,20.5489393,10.3960737,18.0806586,57.5700125,31.2636724,50.8311262,46.147896,40.4305167,63.5748034,3.1481597,40.9409479,39.3375093\r\n2863,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.5964507,3.6813168,38.4040561,57.7055921,61.2682538,53.0195624,21.2160549,10.5982782,20.0995926,57.6310788,31.7743682,49.0043755,46.2045178,40.2212062,62.4938127,2.971708,40.9711911,39.2930946,3.7872977,3.8750114,39.0646074,59.8822412,62.4087341,53.2726226,20.5489393,10.3960737,18.0806586,57.5700125,31.2636724,50.8311262,46.147896,40.4305167,63.5748034,3.1481597,40.9409479,39.3375093,3.8031332,3.8165649,37.9575605,61.9789422,64.4819191,53.9012173,20.438356,10.9437421,19.5223076,59.5079356,30.3523341,50.9611581,44.5764749,38.4782533,63.8209642,2.8989403,39.8459054,37.5706002\r\n2864,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.7872977,3.8750114,39.0646074,59.8822412,62.4087341,53.2726226,20.5489393,10.3960737,18.0806586,57.5700125,31.2636724,50.8311262,46.147896,40.4305167,63.5748034,3.1481597,40.9409479,39.3375093,3.8031332,3.8165649,37.9575605,61.9789422,64.4819191,53.9012173,20.438356,10.9437421,19.5223076,59.5079356,30.3523341,50.9611581,44.5764749,38.4782533,63.8209642,2.8989403,39.8459054,37.5706002,3.3711967,3.3849699,38.1136664,62.1607251,65.2082143,52.3304267,20.4719544,10.0276505,18.0474797,60.5205409,30.8180794,49.5744988,43.5325135,37.8169802,63.1808244,2.7776754,39.0647091,36.6300861\r\n2865,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.8031332,3.8165649,37.9575605,61.9789422,64.4819191,53.9012173,20.438356,10.9437421,19.5223076,59.5079356,30.3523341,50.9611581,44.5764749,38.4782533,63.8209642,2.8989403,39.8459054,37.5706002,3.3711967,3.3849699,38.1136664,62.1607251,65.2082143,52.3304267,20.4719544,10.0276505,18.0474797,60.5205409,30.8180794,49.5744988,43.5325135,37.8169802,63.1808244,2.7776754,39.0647091,36.6300861,3.3658199,3.3928235,36.421112,61.793875,66.1764252,55.0516253,19.6829641,10.3752727,17.5266945,60.5374878,30.2670352,50.3181274,42.3211462,37.0616725,63.4806023,2.4927715,39.1654318,37.1794707\r\n2866,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.3711967,3.3849699,38.1136664,62.1607251,65.2082143,52.3304267,20.4719544,10.0276505,18.0474797,60.5205409,30.8180794,49.5744988,43.5325135,37.8169802,63.1808244,2.7776754,39.0647091,36.6300861,3.3658199,3.3928235,36.421112,61.793875,66.1764252,55.0516253,19.6829641,10.3752727,17.5266945,60.5374878,30.2670352,50.3181274,42.3211462,37.0616725,63.4806023,2.4927715,39.1654318,37.1794707,3.5126575,3.5400139,35.1724776,60.6777829,65.285291,54.732951,19.5652783,9.9674027,16.2428453,61.1932115,29.665614,47.8397769,40.6962268,35.4109978,62.636677,2.4613337,39.7221944,38.9212406\r\n2867,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.3658199,3.3928235,36.421112,61.793875,66.1764252,55.0516253,19.6829641,10.3752727,17.5266945,60.5374878,30.2670352,50.3181274,42.3211462,37.0616725,63.4806023,2.4927715,39.1654318,37.1794707,3.5126575,3.5400139,35.1724776,60.6777829,65.285291,54.732951,19.5652783,9.9674027,16.2428453,61.1932115,29.665614,47.8397769,40.6962268,35.4109978,62.636677,2.4613337,39.7221944,38.9212406,3.1524966,3.1524966,33.3295134,61.9105763,66.7345256,56.6385443,19.1883469,11.8934038,15.4961928,62.050922,29.4182004,49.5387346,39.1809396,33.6095091,63.4766348,2.6076101,39.8922688,39.176784\r\n2868,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.5126575,3.5400139,35.1724776,60.6777829,65.285291,54.732951,19.5652783,9.9674027,16.2428453,61.1932115,29.665614,47.8397769,40.6962268,35.4109978,62.636677,2.4613337,39.7221944,38.9212406,3.1524966,3.1524966,33.3295134,61.9105763,66.7345256,56.6385443,19.1883469,11.8934038,15.4961928,62.050922,29.4182004,49.5387346,39.1809396,33.6095091,63.4766348,2.6076101,39.8922688,39.176784,3.1340243,3.1452917,31.5572575,60.9416032,66.4859874,58.7008213,20.2477635,11.8571258,15.6587999,62.2706537,29.4744115,51.1259056,38.8177931,32.4506641,63.5307193,2.5609755,41.4846168,37.8834263\r\n2869,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.1524966,3.1524966,33.3295134,61.9105763,66.7345256,56.6385443,19.1883469,11.8934038,15.4961928,62.050922,29.4182004,49.5387346,39.1809396,33.6095091,63.4766348,2.6076101,39.8922688,39.176784,3.1340243,3.1452917,31.5572575,60.9416032,66.4859874,58.7008213,20.2477635,11.8571258,15.6587999,62.2706537,29.4744115,51.1259056,38.8177931,32.4506641,63.5307193,2.5609755,41.4846168,37.8834263,2.947498,2.9588497,29.6090929,60.8120647,65.6458351,58.0881103,20.826703,11.58764,15.709244,63.6088948,29.2001248,49.9240161,38.4057108,31.7201424,62.2186109,2.4154693,40.7519195,36.2341144\r\n2870,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.1340243,3.1452917,31.5572575,60.9416032,66.4859874,58.7008213,20.2477635,11.8571258,15.6587999,62.2706537,29.4744115,51.1259056,38.8177931,32.4506641,63.5307193,2.5609755,41.4846168,37.8834263,2.947498,2.9588497,29.6090929,60.8120647,65.6458351,58.0881103,20.826703,11.58764,15.709244,63.6088948,29.2001248,49.9240161,38.4057108,31.7201424,62.2186109,2.4154693,40.7519195,36.2341144,2.8143262,2.953392,28.9486962,59.6976114,65.0629385,56.5386283,21.280751,9.9667166,14.5957575,62.6431477,30.6043521,48.8572712,37.9761783,31.4402172,60.8704834,2.7444213,42.0549773,36.5319063\r\n2871,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.947498,2.9588497,29.6090929,60.8120647,65.6458351,58.0881103,20.826703,11.58764,15.709244,63.6088948,29.2001248,49.9240161,38.4057108,31.7201424,62.2186109,2.4154693,40.7519195,36.2341144,2.8143262,2.953392,28.9486962,59.6976114,65.0629385,56.5386283,21.280751,9.9667166,14.5957575,62.6431477,30.6043521,48.8572712,37.9761783,31.4402172,60.8704834,2.7444213,42.0549773,36.5319063,2.9488676,3.1658564,28.0759848,61.4204941,66.1376204,56.2868142,22.139136,12.7689833,16.0732415,63.8558927,30.9121493,48.9379571,37.3908537,31.1268302,60.590833,3.1503239,41.6222656,38.1033809\r\n2872,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.8143262,2.953392,28.9486962,59.6976114,65.0629385,56.5386283,21.280751,9.9667166,14.5957575,62.6431477,30.6043521,48.8572712,37.9761783,31.4402172,60.8704834,2.7444213,42.0549773,36.5319063,2.9488676,3.1658564,28.0759848,61.4204941,66.1376204,56.2868142,22.139136,12.7689833,16.0732415,63.8558927,30.9121493,48.9379571,37.3908537,31.1268302,60.590833,3.1503239,41.6222656,38.1033809,3.2164627,3.4173395,28.7639764,64.2407345,67.0865749,55.3157189,21.9122611,12.2471417,15.258944,65.1729584,30.5637261,49.8677423,38.2061514,31.4480767,60.5849913,3.3572066,43.4924513,37.1079375\r\n2873,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.9488676,3.1658564,28.0759848,61.4204941,66.1376204,56.2868142,22.139136,12.7689833,16.0732415,63.8558927,30.9121493,48.9379571,37.3908537,31.1268302,60.590833,3.1503239,41.6222656,38.1033809,3.2164627,3.4173395,28.7639764,64.2407345,67.0865749,55.3157189,21.9122611,12.2471417,15.258944,65.1729584,30.5637261,49.8677423,38.2061514,31.4480767,60.5849913,3.3572066,43.4924513,37.1079375,3.198677,3.4026639,27.438535,64.2625618,66.8953819,56.0353486,21.414929,12.0962397,15.9335701,64.0483652,30.2872936,49.5148484,37.7812809,30.6899029,60.3692557,3.2136105,42.3460725,37.1309556\r\n2874,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.2164627,3.4173395,28.7639764,64.2407345,67.0865749,55.3157189,21.9122611,12.2471417,15.258944,65.1729584,30.5637261,49.8677423,38.2061514,31.4480767,60.5849913,3.3572066,43.4924513,37.1079375,3.198677,3.4026639,27.438535,64.2625618,66.8953819,56.0353486,21.414929,12.0962397,15.9335701,64.0483652,30.2872936,49.5148484,37.7812809,30.6899029,60.3692557,3.2136105,42.3460725,37.1309556,3.7145572,3.9137335,26.6527813,62.6712501,65.8417822,55.6317564,21.6295388,10.3342423,16.9305815,63.6624434,30.7747149,46.336004,37.293961,29.8754848,59.7291949,3.3689722,43.3724697,37.5832042\r\n2875,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.198677,3.4026639,27.438535,64.2625618,66.8953819,56.0353486,21.414929,12.0962397,15.9335701,64.0483652,30.2872936,49.5148484,37.7812809,30.6899029,60.3692557,3.2136105,42.3460725,37.1309556,3.7145572,3.9137335,26.6527813,62.6712501,65.8417822,55.6317564,21.6295388,10.3342423,16.9305815,63.6624434,30.7747149,46.336004,37.293961,29.8754848,59.7291949,3.3689722,43.3724697,37.5832042,3.7354116,3.9992096,26.6124145,62.491688,65.288013,53.9827127,21.7220896,9.8555208,17.6680152,64.8367026,30.1276272,45.0526061,36.5481824,29.3770828,58.6457344,3.2830488,41.9667571,36.7469052\r\n2876,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.7145572,3.9137335,26.6527813,62.6712501,65.8417822,55.6317564,21.6295388,10.3342423,16.9305815,63.6624434,30.7747149,46.336004,37.293961,29.8754848,59.7291949,3.3689722,43.3724697,37.5832042,3.7354116,3.9992096,26.6124145,62.491688,65.288013,53.9827127,21.7220896,9.8555208,17.6680152,64.8367026,30.1276272,45.0526061,36.5481824,29.3770828,58.6457344,3.2830488,41.9667571,36.7469052,3.621305,3.882114,27.1216807,63.0321398,65.7428331,53.0920033,20.9264637,9.558928,17.3537139,65.2735117,32.1988068,44.8707506,36.3248751,28.9067042,57.4770412,3.181285,43.8806945,35.1438167\r\n2877,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.7354116,3.9992096,26.6124145,62.491688,65.288013,53.9827127,21.7220896,9.8555208,17.6680152,64.8367026,30.1276272,45.0526061,36.5481824,29.3770828,58.6457344,3.2830488,41.9667571,36.7469052,3.621305,3.882114,27.1216807,63.0321398,65.7428331,53.0920033,20.9264637,9.558928,17.3537139,65.2735117,32.1988068,44.8707506,36.3248751,28.9067042,57.4770412,3.181285,43.8806945,35.1438167,3.6352241,3.7769054,26.5714705,62.0527819,64.8677083,53.2750638,20.3628169,9.5289848,16.759339,65.1973584,31.8720075,45.1785561,35.181068,28.3639824,57.844454,3.1375439,43.6098125,34.1538237\r\n2878,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.621305,3.882114,27.1216807,63.0321398,65.7428331,53.0920033,20.9264637,9.558928,17.3537139,65.2735117,32.1988068,44.8707506,36.3248751,28.9067042,57.4770412,3.181285,43.8806945,35.1438167,3.6352241,3.7769054,26.5714705,62.0527819,64.8677083,53.2750638,20.3628169,9.5289848,16.759339,65.1973584,31.8720075,45.1785561,35.181068,28.3639824,57.844454,3.1375439,43.6098125,34.1538237,3.4400011,3.5066733,24.7956276,57.5130467,61.2261677,53.5338408,20.550899,7.2037183,15.3932045,65.0702215,33.0587055,43.6078309,34.1618036,26.9439484,56.5772894,3.0900708,45.1768672,30.2574773\r\n2879,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.6352241,3.7769054,26.5714705,62.0527819,64.8677083,53.2750638,20.3628169,9.5289848,16.759339,65.1973584,31.8720075,45.1785561,35.181068,28.3639824,57.844454,3.1375439,43.6098125,34.1538237,3.4400011,3.5066733,24.7956276,57.5130467,61.2261677,53.5338408,20.550899,7.2037183,15.3932045,65.0702215,33.0587055,43.6078309,34.1618036,26.9439484,56.5772894,3.0900708,45.1768672,30.2574773,3.3056544,3.4517699,23.7412583,56.4416315,60.3900145,55.0584782,20.9015492,8.1125467,16.700236,63.7995854,33.1922721,44.3178051,32.9247972,25.8964017,55.2359895,2.9025696,44.60739,29.675384\r\n2880,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.4400011,3.5066733,24.7956276,57.5130467,61.2261677,53.5338408,20.550899,7.2037183,15.3932045,65.0702215,33.0587055,43.6078309,34.1618036,26.9439484,56.5772894,3.0900708,45.1768672,30.2574773,3.3056544,3.4517699,23.7412583,56.4416315,60.3900145,55.0584782,20.9015492,8.1125467,16.700236,63.7995854,33.1922721,44.3178051,32.9247972,25.8964017,55.2359895,2.9025696,44.60739,29.675384,3.5669224,3.635871,24.5596963,56.3179723,60.825656,55.7078065,22.6605323,8.2895473,15.7880306,64.2743529,34.4157851,45.3279404,33.4007832,26.6616814,54.6873703,3.1413152,46.2525976,28.2100958\r\n2881,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.3056544,3.4517699,23.7412583,56.4416315,60.3900145,55.0584782,20.9015492,8.1125467,16.700236,63.7995854,33.1922721,44.3178051,32.9247972,25.8964017,55.2359895,2.9025696,44.60739,29.675384,3.5669224,3.635871,24.5596963,56.3179723,60.825656,55.7078065,22.6605323,8.2895473,15.7880306,64.2743529,34.4157851,45.3279404,33.4007832,26.6616814,54.6873703,3.1413152,46.2525976,28.2100958,3.1287212,3.2073946,25.1075271,57.2236663,60.7573837,51.9203498,23.3055727,7.6240305,15.0702125,64.258284,35.1227321,46.1240824,33.1212468,26.840368,54.6542898,3.1357648,44.8633089,26.2194976\r\n2882,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.5669224,3.635871,24.5596963,56.3179723,60.825656,55.7078065,22.6605323,8.2895473,15.7880306,64.2743529,34.4157851,45.3279404,33.4007832,26.6616814,54.6873703,3.1413152,46.2525976,28.2100958,3.1287212,3.2073946,25.1075271,57.2236663,60.7573837,51.9203498,23.3055727,7.6240305,15.0702125,64.258284,35.1227321,46.1240824,33.1212468,26.840368,54.6542898,3.1357648,44.8633089,26.2194976,2.9326401,2.9326476,24.6017565,55.1387325,60.0034866,52.3678279,23.8049932,7.2405186,14.4095547,63.0903092,36.3966715,44.165505,31.7440671,26.0950696,53.0741546,3.4371904,44.8121073,24.4856194\r\n2883,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.1287212,3.2073946,25.1075271,57.2236663,60.7573837,51.9203498,23.3055727,7.6240305,15.0702125,64.258284,35.1227321,46.1240824,33.1212468,26.840368,54.6542898,3.1357648,44.8633089,26.2194976,2.9326401,2.9326476,24.6017565,55.1387325,60.0034866,52.3678279,23.8049932,7.2405186,14.4095547,63.0903092,36.3966715,44.165505,31.7440671,26.0950696,53.0741546,3.4371904,44.8121073,24.4856194,2.9478213,2.9478291,23.4994425,55.2451184,61.4412405,52.1531123,24.0627666,6.3539056,14.3325565,61.9460838,35.6872825,43.4585188,30.2780527,25.2389607,53.0586293,3.4244975,43.6919761,25.757583\r\n2884,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.9326401,2.9326476,24.6017565,55.1387325,60.0034866,52.3678279,23.8049932,7.2405186,14.4095547,63.0903092,36.3966715,44.165505,31.7440671,26.0950696,53.0741546,3.4371904,44.8121073,24.4856194,2.9478213,2.9478291,23.4994425,55.2451184,61.4412405,52.1531123,24.0627666,6.3539056,14.3325565,61.9460838,35.6872825,43.4585188,30.2780527,25.2389607,53.0586293,3.4244975,43.6919761,25.757583,2.9008095,2.9008173,24.4000918,56.9523123,63.6538214,54.7284589,23.746392,7.3055788,16.1076069,61.9274186,35.0845995,42.5670842,29.6793922,24.740064,53.3449756,3.3812685,42.6579376,25.9174618\r\n2885,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.9478213,2.9478291,23.4994425,55.2451184,61.4412405,52.1531123,24.0627666,6.3539056,14.3325565,61.9460838,35.6872825,43.4585188,30.2780527,25.2389607,53.0586293,3.4244975,43.6919761,25.757583,2.9008095,2.9008173,24.4000918,56.9523123,63.6538214,54.7284589,23.746392,7.3055788,16.1076069,61.9274186,35.0845995,42.5670842,29.6793922,24.740064,53.3449756,3.3812685,42.6579376,25.9174618,2.9407313,2.9199076,26.0067441,59.4260365,64.9385289,54.8075822,23.9109554,6.5790605,15.8393591,62.0458696,34.78584,43.0822323,30.053445,25.3339545,53.4157271,3.5254762,42.5511185,25.3623535\r\n2886,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.9008095,2.9008173,24.4000918,56.9523123,63.6538214,54.7284589,23.746392,7.3055788,16.1076069,61.9274186,35.0845995,42.5670842,29.6793922,24.740064,53.3449756,3.3812685,42.6579376,25.9174618,2.9407313,2.9199076,26.0067441,59.4260365,64.9385289,54.8075822,23.9109554,6.5790605,15.8393591,62.0458696,34.78584,43.0822323,30.053445,25.3339545,53.4157271,3.5254762,42.5511185,25.3623535,2.6998044,2.5937915,25.420708,59.2023459,65.4687615,53.669458,25.6797081,5.3384889,16.698645,62.5699179,36.4518026,42.4567499,29.3291033,24.3427134,53.163765,3.8459624,42.8170924,25.3695177\r\n2887,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.9407313,2.9199076,26.0067441,59.4260365,64.9385289,54.8075822,23.9109554,6.5790605,15.8393591,62.0458696,34.78584,43.0822323,30.053445,25.3339545,53.4157271,3.5254762,42.5511185,25.3623535,2.6998044,2.5937915,25.420708,59.2023459,65.4687615,53.669458,25.6797081,5.3384889,16.698645,62.5699179,36.4518026,42.4567499,29.3291033,24.3427134,53.163765,3.8459624,42.8170924,25.3695177,2.288774,2.2671683,24.691891,59.9364366,64.7506179,53.2829539,24.5531172,4.7223585,16.1974448,62.092345,35.8928127,40.6710234,27.3020282,22.882147,52.7773555,3.4432224,41.7781528,24.345619\r\n2888,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.6998044,2.5937915,25.420708,59.2023459,65.4687615,53.669458,25.6797081,5.3384889,16.698645,62.5699179,36.4518026,42.4567499,29.3291033,24.3427134,53.163765,3.8459624,42.8170924,25.3695177,2.288774,2.2671683,24.691891,59.9364366,64.7506179,53.2829539,24.5531172,4.7223585,16.1974448,62.092345,35.8928127,40.6710234,27.3020282,22.882147,52.7773555,3.4432224,41.7781528,24.345619,1.8300114,1.8087745,24.1587211,60.6395147,68.4301102,55.6983112,24.1224396,4.4972098,18.390953,61.2813712,35.3176708,42.5192487,26.5459321,22.0089477,51.8893707,3.5711059,40.8973653,23.3610684\r\n2889,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.288774,2.2671683,24.691891,59.9364366,64.7506179,53.2829539,24.5531172,4.7223585,16.1974448,62.092345,35.8928127,40.6710234,27.3020282,22.882147,52.7773555,3.4432224,41.7781528,24.345619,1.8300114,1.8087745,24.1587211,60.6395147,68.4301102,55.6983112,24.1224396,4.4972098,18.390953,61.2813712,35.3176708,42.5192487,26.5459321,22.0089477,51.8893707,3.5711059,40.8973653,23.3610684,1.5837322,1.5618446,23.3029873,64.2872728,69.8521182,55.3939286,23.4019789,5.0298686,18.3980771,62.4713379,33.8841649,46.0099611,25.7098134,20.9932793,52.4497687,3.6054424,42.8727013,22.6714734\r\n2890,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.8300114,1.8087745,24.1587211,60.6395147,68.4301102,55.6983112,24.1224396,4.4972098,18.390953,61.2813712,35.3176708,42.5192487,26.5459321,22.0089477,51.8893707,3.5711059,40.8973653,23.3610684,1.5837322,1.5618446,23.3029873,64.2872728,69.8521182,55.3939286,23.4019789,5.0298686,18.3980771,62.4713379,33.8841649,46.0099611,25.7098134,20.9932793,52.4497687,3.6054424,42.8727013,22.6714734,1.3648558,1.4305187,22.6072123,63.4913701,68.8976858,56.7978974,24.6538536,4.9231626,18.7473054,63.9885936,35.0690627,47.0616572,25.0961,20.3123114,51.2473872,3.9977166,42.4524721,19.6079211\r\n2891,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.5837322,1.5618446,23.3029873,64.2872728,69.8521182,55.3939286,23.4019789,5.0298686,18.3980771,62.4713379,33.8841649,46.0099611,25.7098134,20.9932793,52.4497687,3.6054424,42.8727013,22.6714734,1.3648558,1.4305187,22.6072123,63.4913701,68.8976858,56.7978974,24.6538536,4.9231626,18.7473054,63.9885936,35.0690627,47.0616572,25.0961,20.3123114,51.2473872,3.9977166,42.4524721,19.6079211,1.348661,1.4149624,20.8711923,63.6174463,67.3871207,52.6635912,25.4653223,3.7625482,16.5956909,64.9035086,35.4540355,48.286753,25.5250986,20.1073565,49.9495818,3.9278745,42.309213,18.8780011\r\n2892,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.3648558,1.4305187,22.6072123,63.4913701,68.8976858,56.7978974,24.6538536,4.9231626,18.7473054,63.9885936,35.0690627,47.0616572,25.0961,20.3123114,51.2473872,3.9977166,42.4524721,19.6079211,1.348661,1.4149624,20.8711923,63.6174463,67.3871207,52.6635912,25.4653223,3.7625482,16.5956909,64.9035086,35.4540355,48.286753,25.5250986,20.1073565,49.9495818,3.9278745,42.309213,18.8780011,1.2591502,1.3769153,19.2944968,64.082471,68.7284406,55.3888494,25.2489045,4.9203427,15.8071266,64.8693411,35.1568386,48.5492782,25.3086106,19.5598446,49.5436222,3.5641372,41.7347357,20.9543949\r\n2893,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.348661,1.4149624,20.8711923,63.6174463,67.3871207,52.6635912,25.4653223,3.7625482,16.5956909,64.9035086,35.4540355,48.286753,25.5250986,20.1073565,49.9495818,3.9278745,42.309213,18.8780011,1.2591502,1.3769153,19.2944968,64.082471,68.7284406,55.3888494,25.2489045,4.9203427,15.8071266,64.8693411,35.1568386,48.5492782,25.3086106,19.5598446,49.5436222,3.5641372,41.7347357,20.9543949,1.3700138,1.4886067,19.8953651,64.2744947,67.4700749,56.4785387,24.6507577,5.7863898,15.6112934,65.3885128,35.4527864,48.7185485,25.501598,20.44987,48.399729,3.4119915,41.3149285,19.9445595\r\n2894,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.2591502,1.3769153,19.2944968,64.082471,68.7284406,55.3888494,25.2489045,4.9203427,15.8071266,64.8693411,35.1568386,48.5492782,25.3086106,19.5598446,49.5436222,3.5641372,41.7347357,20.9543949,1.3700138,1.4886067,19.8953651,64.2744947,67.4700749,56.4785387,24.6507577,5.7863898,15.6112934,65.3885128,35.4527864,48.7185485,25.501598,20.44987,48.399729,3.4119915,41.3149285,19.9445595,1.1179127,1.2349442,18.7170708,64.4360351,68.3310897,55.6307967,25.3347622,7.8725337,19.8216173,66.0853251,35.8949392,49.9363889,25.5879652,19.8610377,46.4447198,3.7592474,41.0554658,18.1532564\r\n2895,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.3700138,1.4886067,19.8953651,64.2744947,67.4700749,56.4785387,24.6507577,5.7863898,15.6112934,65.3885128,35.4527864,48.7185485,25.501598,20.44987,48.399729,3.4119915,41.3149285,19.9445595,1.1179127,1.2349442,18.7170708,64.4360351,68.3310897,55.6307967,25.3347622,7.8725337,19.8216173,66.0853251,35.8949392,49.9363889,25.5879652,19.8610377,46.4447198,3.7592474,41.0554658,18.1532564,1.1691525,1.2882854,18.4614667,64.21605,67.7344503,57.9257759,26.0315574,8.2020386,18.1446433,65.9361933,36.0379961,48.6487421,24.807207,19.2838911,46.6979231,3.6206838,41.6113521,19.6133387\r\n2896,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.1179127,1.2349442,18.7170708,64.4360351,68.3310897,55.6307967,25.3347622,7.8725337,19.8216173,66.0853251,35.8949392,49.9363889,25.5879652,19.8610377,46.4447198,3.7592474,41.0554658,18.1532564,1.1691525,1.2882854,18.4614667,64.21605,67.7344503,57.9257759,26.0315574,8.2020386,18.1446433,65.9361933,36.0379961,48.6487421,24.807207,19.2838911,46.6979231,3.6206838,41.6113521,19.6133387,1.3359186,1.4549555,20.4017401,63.1925801,68.3529226,58.3901159,25.8014535,8.0635801,20.4771379,65.9005648,36.5559278,46.3067933,26.0837167,20.4235862,45.7925197,3.6029807,40.7370887,19.2935574\r\n2897,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.1691525,1.2882854,18.4614667,64.21605,67.7344503,57.9257759,26.0315574,8.2020386,18.1446433,65.9361933,36.0379961,48.6487421,24.807207,19.2838911,46.6979231,3.6206838,41.6113521,19.6133387,1.3359186,1.4549555,20.4017401,63.1925801,68.3529226,58.3901159,25.8014535,8.0635801,20.4771379,65.9005648,36.5559278,46.3067933,26.0837167,20.4235862,45.7925197,3.6029807,40.7370887,19.2935574,1.3677813,1.3980816,20.2600606,63.9649925,69.230618,60.1115294,26.1324142,8.4806035,21.2961328,65.7784807,35.9911553,44.1734415,26.1961152,20.2576804,45.9933825,3.5965662,43.0184975,18.4066874\r\n2898,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.3359186,1.4549555,20.4017401,63.1925801,68.3529226,58.3901159,25.8014535,8.0635801,20.4771379,65.9005648,36.5559278,46.3067933,26.0837167,20.4235862,45.7925197,3.6029807,40.7370887,19.2935574,1.3677813,1.3980816,20.2600606,63.9649925,69.230618,60.1115294,26.1324142,8.4806035,21.2961328,65.7784807,35.9911553,44.1734415,26.1961152,20.2576804,45.9933825,3.5965662,43.0184975,18.4066874,1.3905069,1.4208072,20.4578079,62.9616392,70.0013247,62.5536317,24.6549832,8.0149278,22.2936135,65.6697707,36.8861861,43.1068469,25.2365043,19.4382771,45.893107,3.4357128,43.800856,17.1196631\r\n2899,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.3677813,1.3980816,20.2600606,63.9649925,69.230618,60.1115294,26.1324142,8.4806035,21.2961328,65.7784807,35.9911553,44.1734415,26.1961152,20.2576804,45.9933825,3.5965662,43.0184975,18.4066874,1.3905069,1.4208072,20.4578079,62.9616392,70.0013247,62.5536317,24.6549832,8.0149278,22.2936135,65.6697707,36.8861861,43.1068469,25.2365043,19.4382771,45.893107,3.4357128,43.800856,17.1196631,1.3585218,1.3585218,20.9713192,63.3805994,69.3079484,62.4202888,24.8304688,6.8972923,22.7471103,66.0485648,36.0119926,43.3737937,24.807665,19.2629815,44.4010701,3.5059308,43.8508602,14.4971083\r\n2900,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.3905069,1.4208072,20.4578079,62.9616392,70.0013247,62.5536317,24.6549832,8.0149278,22.2936135,65.6697707,36.8861861,43.1068469,25.2365043,19.4382771,45.893107,3.4357128,43.800856,17.1196631,1.3585218,1.3585218,20.9713192,63.3805994,69.3079484,62.4202888,24.8304688,6.8972923,22.7471103,66.0485648,36.0119926,43.3737937,24.807665,19.2629815,44.4010701,3.5059308,43.8508602,14.4971083,1.2708626,1.3631133,20.1917601,60.5751042,66.7780845,59.1428619,25.2524707,5.8483446,20.679056,66.764676,36.0684787,39.5164463,23.7980902,17.9326948,44.5686802,3.95278,43.5551593,14.6707345\r\n2901,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.3585218,1.3585218,20.9713192,63.3805994,69.3079484,62.4202888,24.8304688,6.8972923,22.7471103,66.0485648,36.0119926,43.3737937,24.807665,19.2629815,44.4010701,3.5059308,43.8508602,14.4971083,1.2708626,1.3631133,20.1917601,60.5751042,66.7780845,59.1428619,25.2524707,5.8483446,20.679056,66.764676,36.0684787,39.5164463,23.7980902,17.9326948,44.5686802,3.95278,43.5551593,14.6707345,1.4934318,1.5868896,20.6146662,58.261763,65.6678346,59.5936904,25.9706643,3.7367918,17.2401361,68.0381927,35.9126833,38.1578252,23.8769562,18.3105554,45.5376097,3.5788485,44.765082,14.687535\r\n2902,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.2708626,1.3631133,20.1917601,60.5751042,66.7780845,59.1428619,25.2524707,5.8483446,20.679056,66.764676,36.0684787,39.5164463,23.7980902,17.9326948,44.5686802,3.95278,43.5551593,14.6707345,1.4934318,1.5868896,20.6146662,58.261763,65.6678346,59.5936904,25.9706643,3.7367918,17.2401361,68.0381927,35.9126833,38.1578252,23.8769562,18.3105554,45.5376097,3.5788485,44.765082,14.687535,1.4681025,1.5613859,20.5595918,57.4688062,64.2593797,57.9466788,24.5977506,4.0443039,18.2285234,68.7243264,35.2379478,37.1598605,23.9786067,18.4338639,44.0796541,3.2846842,45.3685324,13.057419\r\n2903,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.4934318,1.5868896,20.6146662,58.261763,65.6678346,59.5936904,25.9706643,3.7367918,17.2401361,68.0381927,35.9126833,38.1578252,23.8769562,18.3105554,45.5376097,3.5788485,44.765082,14.687535,1.4681025,1.5613859,20.5595918,57.4688062,64.2593797,57.9466788,24.5977506,4.0443039,18.2285234,68.7243264,35.2379478,37.1598605,23.9786067,18.4338639,44.0796541,3.2846842,45.3685324,13.057419,1.341545,1.4366017,18.1776207,56.8419352,62.53638,55.772049,25.0883824,4.2690037,15.9684009,67.7553025,35.1173736,36.5440948,22.0953198,16.6335602,44.0854192,3.5676457,45.3291706,13.871061\r\n2904,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.4681025,1.5613859,20.5595918,57.4688062,64.2593797,57.9466788,24.5977506,4.0443039,18.2285234,68.7243264,35.2379478,37.1598605,23.9786067,18.4338639,44.0796541,3.2846842,45.3685324,13.057419,1.341545,1.4366017,18.1776207,56.8419352,62.53638,55.772049,25.0883824,4.2690037,15.9684009,67.7553025,35.1173736,36.5440948,22.0953198,16.6335602,44.0854192,3.5676457,45.3291706,13.871061,1.2813424,1.3763991,17.8256333,55.1904665,60.703522,54.2494879,23.5837623,3.9595417,14.2968953,68.3779028,35.3533703,36.7296435,21.6933752,15.9819612,42.6615247,3.6741416,42.0772074,15.5173365\r\n2905,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.341545,1.4366017,18.1776207,56.8419352,62.53638,55.772049,25.0883824,4.2690037,15.9684009,67.7553025,35.1173736,36.5440948,22.0953198,16.6335602,44.0854192,3.5676457,45.3291706,13.871061,1.2813424,1.3763991,17.8256333,55.1904665,60.703522,54.2494879,23.5837623,3.9595417,14.2968953,68.3779028,35.3533703,36.7296435,21.6933752,15.9819612,42.6615247,3.6741416,42.0772074,15.5173365,1.0688078,1.1644098,16.8465267,54.3751831,58.6990924,53.8528036,24.6666743,4.7755676,13.8210704,68.7019391,35.5343165,35.4887232,21.2562633,15.5276385,42.2697121,3.6859181,40.8009706,15.6935194\r\n2906,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.2813424,1.3763991,17.8256333,55.1904665,60.703522,54.2494879,23.5837623,3.9595417,14.2968953,68.3779028,35.3533703,36.7296435,21.6933752,15.9819612,42.6615247,3.6741416,42.0772074,15.5173365,1.0688078,1.1644098,16.8465267,54.3751831,58.6990924,53.8528036,24.6666743,4.7755676,13.8210704,68.7019391,35.5343165,35.4887232,21.2562633,15.5276385,42.2697121,3.6859181,40.8009706,15.6935194,1.1519076,1.2644008,15.9653685,55.0816613,58.3137361,49.5543176,24.2368094,6.7433954,17.6219587,69.2897333,37.0699302,34.0069503,20.8786149,15.1155217,43.5999634,3.7661731,41.3590611,15.6489599\r\n2907,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0688078,1.1644098,16.8465267,54.3751831,58.6990924,53.8528036,24.6666743,4.7755676,13.8210704,68.7019391,35.5343165,35.4887232,21.2562633,15.5276385,42.2697121,3.6859181,40.8009706,15.6935194,1.1519076,1.2644008,15.9653685,55.0816613,58.3137361,49.5543176,24.2368094,6.7433954,17.6219587,69.2897333,37.0699302,34.0069503,20.8786149,15.1155217,43.5999634,3.7661731,41.3590611,15.6489599,1.3067158,1.3230862,17.3707016,60.1376326,62.885322,49.5141903,22.2339677,6.4868758,18.1352572,68.4423563,36.7895468,37.6018795,21.4937447,15.8239249,42.9336622,3.5351592,41.4450239,16.9291726\r\n2908,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.1519076,1.2644008,15.9653685,55.0816613,58.3137361,49.5543176,24.2368094,6.7433954,17.6219587,69.2897333,37.0699302,34.0069503,20.8786149,15.1155217,43.5999634,3.7661731,41.3590611,15.6489599,1.3067158,1.3230862,17.3707016,60.1376326,62.885322,49.5141903,22.2339677,6.4868758,18.1352572,68.4423563,36.7895468,37.6018795,21.4937447,15.8239249,42.9336622,3.5351592,41.4450239,16.9291726,1.5774723,1.6441323,17.252394,61.9317823,64.2462098,50.9132965,20.3884232,6.9126831,18.2614907,66.9047605,35.5737916,36.6285005,21.5992823,15.3234561,42.5207049,3.8327336,39.6143319,17.5781345\r\n2909,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.3067158,1.3230862,17.3707016,60.1376326,62.885322,49.5141903,22.2339677,6.4868758,18.1352572,68.4423563,36.7895468,37.6018795,21.4937447,15.8239249,42.9336622,3.5351592,41.4450239,16.9291726,1.5774723,1.6441323,17.252394,61.9317823,64.2462098,50.9132965,20.3884232,6.9126831,18.2614907,66.9047605,35.5737916,36.6285005,21.5992823,15.3234561,42.5207049,3.8327336,39.6143319,17.5781345,1.5997931,1.6656565,15.612631,62.3545875,63.4038193,51.2208877,21.5245785,6.1728145,17.529986,66.4984773,36.9528733,37.1283927,20.9389181,14.5279947,41.778007,4.1098977,40.7779299,18.4211812\r\n2910,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.5774723,1.6441323,17.252394,61.9317823,64.2462098,50.9132965,20.3884232,6.9126831,18.2614907,66.9047605,35.5737916,36.6285005,21.5992823,15.3234561,42.5207049,3.8327336,39.6143319,17.5781345,1.5997931,1.6656565,15.612631,62.3545875,63.4038193,51.2208877,21.5245785,6.1728145,17.529986,66.4984773,36.9528733,37.1283927,20.9389181,14.5279947,41.778007,4.1098977,40.7779299,18.4211812,1.8057468,1.8885074,16.091296,63.075899,64.3462768,54.0927714,21.2038302,5.3977532,17.4601864,68.4168759,36.4741583,37.4215783,21.2691612,15.3638406,40.8601643,3.8793586,40.1261609,16.538616\r\n2911,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.5997931,1.6656565,15.612631,62.3545875,63.4038193,51.2208877,21.5245785,6.1728145,17.529986,66.4984773,36.9528733,37.1283927,20.9389181,14.5279947,41.778007,4.1098977,40.7779299,18.4211812,1.8057468,1.8885074,16.091296,63.075899,64.3462768,54.0927714,21.2038302,5.3977532,17.4601864,68.4168759,36.4741583,37.4215783,21.2691612,15.3638406,40.8601643,3.8793586,40.1261609,16.538616,1.8624013,1.9429317,15.9272407,62.6123613,64.3221694,52.2688949,23.1022431,5.3088374,17.4131364,67.9912636,37.5450581,37.0239349,20.12417,14.4990934,39.7376267,3.3329831,41.8226354,15.9260656\r\n2912,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.8057468,1.8885074,16.091296,63.075899,64.3462768,54.0927714,21.2038302,5.3977532,17.4601864,68.4168759,36.4741583,37.4215783,21.2691612,15.3638406,40.8601643,3.8793586,40.1261609,16.538616,1.8624013,1.9429317,15.9272407,62.6123613,64.3221694,52.2688949,23.1022431,5.3088374,17.4131364,67.9912636,37.5450581,37.0239349,20.12417,14.4990934,39.7376267,3.3329831,41.8226354,15.9260656,1.8906678,1.9702371,16.322372,62.2001447,63.9494696,53.2494114,24.4284138,4.5197351,17.1926883,68.3084769,38.3159141,37.9342026,20.4678656,14.9075034,37.2417719,3.2843302,43.7009071,16.0157843\r\n2913,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.8624013,1.9429317,15.9272407,62.6123613,64.3221694,52.2688949,23.1022431,5.3088374,17.4131364,67.9912636,37.5450581,37.0239349,20.12417,14.4990934,39.7376267,3.3329831,41.8226354,15.9260656,1.8906678,1.9702371,16.322372,62.2001447,63.9494696,53.2494114,24.4284138,4.5197351,17.1926883,68.3084769,38.3159141,37.9342026,20.4678656,14.9075034,37.2417719,3.2843302,43.7009071,16.0157843,1.9581527,2.0208094,16.1885829,60.1817867,65.4296208,56.3733731,24.9426066,3.7669093,14.4612697,67.5129803,38.4318073,36.9541417,20.4952747,14.7734746,35.9633261,3.0854868,42.1971573,18.560749\r\n2914,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.8906678,1.9702371,16.322372,62.2001447,63.9494696,53.2494114,24.4284138,4.5197351,17.1926883,68.3084769,38.3159141,37.9342026,20.4678656,14.9075034,37.2417719,3.2843302,43.7009071,16.0157843,1.9581527,2.0208094,16.1885829,60.1817867,65.4296208,56.3733731,24.9426066,3.7669093,14.4612697,67.5129803,38.4318073,36.9541417,20.4952747,14.7734746,35.9633261,3.0854868,42.1971573,18.560749,1.8861017,1.947387,14.2513528,57.1997043,63.5432001,57.4056581,27.0795923,3.8736325,14.446736,67.9269324,37.6731337,34.8204178,19.6213558,13.7395515,35.1916139,3.1049507,42.3553172,16.538616\r\n2915,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.9581527,2.0208094,16.1885829,60.1817867,65.4296208,56.3733731,24.9426066,3.7669093,14.4612697,67.5129803,38.4318073,36.9541417,20.4952747,14.7734746,35.9633261,3.0854868,42.1971573,18.560749,1.8861017,1.947387,14.2513528,57.1997043,63.5432001,57.4056581,27.0795923,3.8736325,14.446736,67.9269324,37.6731337,34.8204178,19.6213558,13.7395515,35.1916139,3.1049507,42.3553172,16.538616,1.5304729,1.5474466,14.6619797,55.4778682,61.4551909,56.8137082,28.1392783,3.5212851,13.7918977,68.0625715,39.7416274,35.0385154,19.39705,14.2006171,33.838222,3.5586907,43.920435,16.2880567\r\n2916,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.8861017,1.947387,14.2513528,57.1997043,63.5432001,57.4056581,27.0795923,3.8736325,14.446736,67.9269324,37.6731337,34.8204178,19.6213558,13.7395515,35.1916139,3.1049507,42.3553172,16.538616,1.5304729,1.5474466,14.6619797,55.4778682,61.4551909,56.8137082,28.1392783,3.5212851,13.7918977,68.0625715,39.7416274,35.0385154,19.39705,14.2006171,33.838222,3.5586907,43.920435,16.2880567,1.5491345,1.5667216,15.6471387,57.1703874,61.6817775,55.5013468,29.1812824,3.431893,13.7209552,68.7834272,39.2721704,34.7724622,19.8024345,14.7702773,33.5192439,3.3802491,43.4795669,15.416641\r\n2917,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.5304729,1.5474466,14.6619797,55.4778682,61.4551909,56.8137082,28.1392783,3.5212851,13.7918977,68.0625715,39.7416274,35.0385154,19.39705,14.2006171,33.838222,3.5586907,43.920435,16.2880567,1.5491345,1.5667216,15.6471387,57.1703874,61.6817775,55.5013468,29.1812824,3.431893,13.7209552,68.7834272,39.2721704,34.7724622,19.8024345,14.7702773,33.5192439,3.3802491,43.4795669,15.416641,1.2384816,1.2384816,15.5553296,55.1278891,60.197839,53.6005884,29.6927911,3.0888456,13.2657496,68.5732876,41.0288627,34.3366326,19.6069162,14.0730851,32.7318489,2.972482,43.1829622,14.3518253\r\n2918,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.5491345,1.5667216,15.6471387,57.1703874,61.6817775,55.5013468,29.1812824,3.431893,13.7209552,68.7834272,39.2721704,34.7724622,19.8024345,14.7702773,33.5192439,3.3802491,43.4795669,15.416641,1.2384816,1.2384816,15.5553296,55.1278891,60.197839,53.6005884,29.6927911,3.0888456,13.2657496,68.5732876,41.0288627,34.3366326,19.6069162,14.0730851,32.7318489,2.972482,43.1829622,14.3518253,1.4734908,1.4734908,15.8912679,56.1234182,61.3649939,56.1980653,29.4437754,3.4207496,13.7891004,69.0443354,40.1840484,37.0403842,20.5765448,14.978154,33.5630491,3.0553131,42.8160033,14.0908963\r\n2919,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.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,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.2384816,1.2384816,15.5553296,55.1278891,60.197839,53.6005884,29.6927911,3.0888456,13.2657496,68.5732876,41.0288627,34.3366326,19.6069162,14.0730851,32.7318489,2.972482,43.1829622,14.3518253,1.4734908,1.4734908,15.8912679,56.1234182,61.3649939,56.1980653,29.4437754,3.4207496,13.7891004,69.0443354,40.1840484,37.0403842,20.5765448,14.978154,33.5630491,3.0553131,42.8160033,14.0908963,1.2932807,1.2932807,15.3612746,56.4332565,61.9444285,53.6760586,29.8233865,3.1877492,14.1943416,68.7767478,41.3721994,35.4934059,19.2821015,14.1469137,34.0064572,3.7612493,41.5605733,10.7758342\r\n2920,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.9088194,2.971527,31.2658415,68.843085,68.9336552,66.3356616,26.9297186,15.3860573,15.9616838,61.5862955,32.3706744,50.4773383,37.2621142,31.7510815,55.6074739,3.0727137,30.6943868,18.0957745,2.9425709,3.0010413,30.9934628,67.5761792,67.9786149,65.0246933,25.9254755,15.4285815,16.5795499,61.3955205,32.2090189,51.2821311,37.3617685,31.578584,56.6425599,2.9093532,30.0254006,18.7832655,3.124169,3.2031806,31.9914371,67.8773913,68.7970346,64.4189924,24.2121912,15.7081976,16.6954582,60.9532589,31.9732146,51.0522076,38.8089048,32.5369888,57.3869109,3.0410685,29.5298516,19.1544211\r\n2921,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.9425709,3.0010413,30.9934628,67.5761792,67.9786149,65.0246933,25.9254755,15.4285815,16.5795499,61.3955205,32.2090189,51.2821311,37.3617685,31.578584,56.6425599,2.9093532,30.0254006,18.7832655,3.124169,3.2031806,31.9914371,67.8773913,68.7970346,64.4189924,24.2121912,15.7081976,16.6954582,60.9532589,31.9732146,51.0522076,38.8089048,32.5369888,57.3869109,3.0410685,29.5298516,19.1544211,3.365989,3.4566611,32.5261499,66.6741937,67.2524225,63.1371011,23.1289753,16.6476473,17.7153381,60.7450385,32.2807911,50.5226253,39.6422323,32.8294326,57.8522062,3.0307053,30.8155045,20.5315983\r\n2922,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.124169,3.2031806,31.9914371,67.8773913,68.7970346,64.4189924,24.2121912,15.7081976,16.6954582,60.9532589,31.9732146,51.0522076,38.8089048,32.5369888,57.3869109,3.0410685,29.5298516,19.1544211,3.365989,3.4566611,32.5261499,66.6741937,67.2524225,63.1371011,23.1289753,16.6476473,17.7153381,60.7450385,32.2807911,50.5226253,39.6422323,32.8294326,57.8522062,3.0307053,30.8155045,20.5315983,3.4485982,3.5745702,33.2810473,66.5251668,66.8184891,62.5106818,22.9726349,16.8235819,17.1223825,60.6666265,32.2606913,50.6135662,40.7514631,33.8519037,58.3882015,3.172564,31.1671629,21.2362565\r\n2923,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.365989,3.4566611,32.5261499,66.6741937,67.2524225,63.1371011,23.1289753,16.6476473,17.7153381,60.7450385,32.2807911,50.5226253,39.6422323,32.8294326,57.8522062,3.0307053,30.8155045,20.5315983,3.4485982,3.5745702,33.2810473,66.5251668,66.8184891,62.5106818,22.9726349,16.8235819,17.1223825,60.6666265,32.2606913,50.6135662,40.7514631,33.8519037,58.3882015,3.172564,31.1671629,21.2362565,3.4044244,3.5136174,33.7585077,67.4125702,67.7883818,62.757954,22.4286622,17.301339,16.742572,61.1526114,32.3898147,50.1792259,41.8224821,34.6817077,58.9647755,3.1272573,31.6171685,22.1665647\r\n2924,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.4485982,3.5745702,33.2810473,66.5251668,66.8184891,62.5106818,22.9726349,16.8235819,17.1223825,60.6666265,32.2606913,50.6135662,40.7514631,33.8519037,58.3882015,3.172564,31.1671629,21.2362565,3.4044244,3.5136174,33.7585077,67.4125702,67.7883818,62.757954,22.4286622,17.301339,16.742572,61.1526114,32.3898147,50.1792259,41.8224821,34.6817077,58.9647755,3.1272573,31.6171685,22.1665647,3.4370695,3.551916,34.9949088,67.6022179,68.5039385,62.4011117,21.5824424,17.5120284,17.4257523,60.3907276,31.2736146,50.0158063,42.7253752,35.496636,58.787655,2.993139,32.7413495,23.1642904\r\n2925,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.4044244,3.5136174,33.7585077,67.4125702,67.7883818,62.757954,22.4286622,17.301339,16.742572,61.1526114,32.3898147,50.1792259,41.8224821,34.6817077,58.9647755,3.1272573,31.6171685,22.1665647,3.4370695,3.551916,34.9949088,67.6022179,68.5039385,62.4011117,21.5824424,17.5120284,17.4257523,60.3907276,31.2736146,50.0158063,42.7253752,35.496636,58.787655,2.993139,32.7413495,23.1642904,3.3302601,3.4186663,35.6928188,68.6125989,69.0651275,62.8488399,20.7847872,17.2656233,17.4658277,59.6988483,31.4840759,49.6525969,43.4937218,36.2169127,59.6929673,3.1516133,32.9198486,24.0054833\r\n2926,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.4370695,3.551916,34.9949088,67.6022179,68.5039385,62.4011117,21.5824424,17.5120284,17.4257523,60.3907276,31.2736146,50.0158063,42.7253752,35.496636,58.787655,2.993139,32.7413495,23.1642904,3.3302601,3.4186663,35.6928188,68.6125989,69.0651275,62.8488399,20.7847872,17.2656233,17.4658277,59.6988483,31.4840759,49.6525969,43.4937218,36.2169127,59.6929673,3.1516133,32.9198486,24.0054833,3.4641354,3.5275311,37.4080615,68.9096288,69.8357844,63.9672783,19.7729399,16.5078259,17.083824,59.3988532,31.0409201,49.5921664,44.6346458,37.6704852,59.9142735,3.1662587,32.3844888,25.0447416\r\n2927,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.3302601,3.4186663,35.6928188,68.6125989,69.0651275,62.8488399,20.7847872,17.2656233,17.4658277,59.6988483,31.4840759,49.6525969,43.4937218,36.2169127,59.6929673,3.1516133,32.9198486,24.0054833,3.4641354,3.5275311,37.4080615,68.9096288,69.8357844,63.9672783,19.7729399,16.5078259,17.083824,59.3988532,31.0409201,49.5921664,44.6346458,37.6704852,59.9142735,3.1662587,32.3844888,25.0447416,3.3925198,3.4279942,38.1281489,69.3385447,69.9509481,64.0692819,19.6767427,17.6325356,17.5674131,60.4766693,31.4674808,49.7924278,45.0558879,38.1299078,60.0812102,3.0822533,32.5442445,26.4319077\r\n2928,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.4641354,3.5275311,37.4080615,68.9096288,69.8357844,63.9672783,19.7729399,16.5078259,17.083824,59.3988532,31.0409201,49.5921664,44.6346458,37.6704852,59.9142735,3.1662587,32.3844888,25.0447416,3.3925198,3.4279942,38.1281489,69.3385447,69.9509481,64.0692819,19.6767427,17.6325356,17.5674131,60.4766693,31.4674808,49.7924278,45.0558879,38.1299078,60.0812102,3.0822533,32.5442445,26.4319077,3.5355906,3.5479724,39.4809964,70.0172615,70.6849016,64.9637722,19.8053073,18.29211,16.4218024,60.2404093,30.9364324,50.6379066,46.0107192,39.2665631,60.4419447,2.9481915,31.2233206,28.1842794\r\n2929,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.3925198,3.4279942,38.1281489,69.3385447,69.9509481,64.0692819,19.6767427,17.6325356,17.5674131,60.4766693,31.4674808,49.7924278,45.0558879,38.1299078,60.0812102,3.0822533,32.5442445,26.4319077,3.5355906,3.5479724,39.4809964,70.0172615,70.6849016,64.9637722,19.8053073,18.29211,16.4218024,60.2404093,30.9364324,50.6379066,46.0107192,39.2665631,60.4419447,2.9481915,31.2233206,28.1842794,3.6112944,3.5920013,39.9619238,68.982421,70.0377509,65.1994514,19.370587,17.9910593,16.8183039,59.3294043,30.388711,49.7117946,46.520835,39.747696,60.6302483,2.7798399,30.5221139,30.2511442\r\n2930,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.5355906,3.5479724,39.4809964,70.0172615,70.6849016,64.9637722,19.8053073,18.29211,16.4218024,60.2404093,30.9364324,50.6379066,46.0107192,39.2665631,60.4419447,2.9481915,31.2233206,28.1842794,3.6112944,3.5920013,39.9619238,68.982421,70.0377509,65.1994514,19.370587,17.9910593,16.8183039,59.3294043,30.388711,49.7117946,46.520835,39.747696,60.6302483,2.7798399,30.5221139,30.2511442,3.7040558,3.697232,41.0072892,69.1128481,70.7191372,65.0476115,18.8460463,18.5341795,16.9469899,58.3113009,29.3153663,52.2725042,47.1719769,40.5636955,61.0068474,2.7496667,30.8817344,31.2451879\r\n2931,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.6112944,3.5920013,39.9619238,68.982421,70.0377509,65.1994514,19.370587,17.9910593,16.8183039,59.3294043,30.388711,49.7117946,46.520835,39.747696,60.6302483,2.7798399,30.5221139,30.2511442,3.7040558,3.697232,41.0072892,69.1128481,70.7191372,65.0476115,18.8460463,18.5341795,16.9469899,58.3113009,29.3153663,52.2725042,47.1719769,40.5636955,61.0068474,2.7496667,30.8817344,31.2451879,3.7051668,3.6828408,40.6415056,68.4115828,68.9668253,64.7743771,19.3977286,18.9686087,16.4151723,59.1741177,30.4208174,50.8833459,46.727162,40.2338688,61.5374538,2.8310106,30.2774336,32.3975499\r\n2932,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.7040558,3.697232,41.0072892,69.1128481,70.7191372,65.0476115,18.8460463,18.5341795,16.9469899,58.3113009,29.3153663,52.2725042,47.1719769,40.5636955,61.0068474,2.7496667,30.8817344,31.2451879,3.7051668,3.6828408,40.6415056,68.4115828,68.9668253,64.7743771,19.3977286,18.9686087,16.4151723,59.1741177,30.4208174,50.8833459,46.727162,40.2338688,61.5374538,2.8310106,30.2774336,32.3975499,3.8960308,3.8852184,40.7231688,67.1339918,68.0746449,64.3932668,19.6050071,18.9075751,15.6804497,59.1085343,29.7260652,51.034644,46.511355,40.2711009,61.7092295,2.8693558,31.0973132,33.7106698\r\n2933,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.7051668,3.6828408,40.6415056,68.4115828,68.9668253,64.7743771,19.3977286,18.9686087,16.4151723,59.1741177,30.4208174,50.8833459,46.727162,40.2338688,61.5374538,2.8310106,30.2774336,32.3975499,3.8960308,3.8852184,40.7231688,67.1339918,68.0746449,64.3932668,19.6050071,18.9075751,15.6804497,59.1085343,29.7260652,51.034644,46.511355,40.2711009,61.7092295,2.8693558,31.0973132,33.7106698,3.8302397,3.8415278,40.0209508,67.0624236,67.3849624,63.986231,19.4207058,19.4212583,16.0761719,58.5458981,29.4600481,50.6714314,45.7824204,39.5387194,61.8817049,2.9264056,32.4829718,34.8214588\r\n2934,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.8960308,3.8852184,40.7231688,67.1339918,68.0746449,64.3932668,19.6050071,18.9075751,15.6804497,59.1085343,29.7260652,51.034644,46.511355,40.2711009,61.7092295,2.8693558,31.0973132,33.7106698,3.8302397,3.8415278,40.0209508,67.0624236,67.3849624,63.986231,19.4207058,19.4212583,16.0761719,58.5458981,29.4600481,50.6714314,45.7824204,39.5387194,61.8817049,2.9264056,32.4829718,34.8214588,3.9323231,3.9705276,39.4871636,65.4361145,65.0908088,63.1672521,19.513283,18.8690181,16.1778672,58.0349283,29.8457765,49.531768,44.7393538,38.8998952,62.4044383,2.9342981,32.7114874,35.9945467\r\n2935,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.8302397,3.8415278,40.0209508,67.0624236,67.3849624,63.986231,19.4207058,19.4212583,16.0761719,58.5458981,29.4600481,50.6714314,45.7824204,39.5387194,61.8817049,2.9264056,32.4829718,34.8214588,3.9323231,3.9705276,39.4871636,65.4361145,65.0908088,63.1672521,19.513283,18.8690181,16.1778672,58.0349283,29.8457765,49.531768,44.7393538,38.8998952,62.4044383,2.9342981,32.7114874,35.9945467,3.9635722,4.0656927,38.327213,64.4087175,64.9946491,62.4959192,19.6270581,18.216157,16.2549087,58.4314468,30.8920451,49.0139491,43.6456295,38.2388185,62.1691344,3.1225785,33.7195278,35.7539269\r\n2936,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.9323231,3.9705276,39.4871636,65.4361145,65.0908088,63.1672521,19.513283,18.8690181,16.1778672,58.0349283,29.8457765,49.531768,44.7393538,38.8998952,62.4044383,2.9342981,32.7114874,35.9945467,3.9635722,4.0656927,38.327213,64.4087175,64.9946491,62.4959192,19.6270581,18.216157,16.2549087,58.4314468,30.8920451,49.0139491,43.6456295,38.2388185,62.1691344,3.1225785,33.7195278,35.7539269,3.8802221,4.003271,38.4033646,65.0699843,65.4382841,62.2458988,19.6309143,18.1079363,16.3420243,58.6663336,30.6392529,49.7787005,43.7655018,38.4758014,62.3570651,2.8753755,33.8990767,35.7785637\r\n2937,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.9635722,4.0656927,38.327213,64.4087175,64.9946491,62.4959192,19.6270581,18.216157,16.2549087,58.4314468,30.8920451,49.0139491,43.6456295,38.2388185,62.1691344,3.1225785,33.7195278,35.7539269,3.8802221,4.003271,38.4033646,65.0699843,65.4382841,62.2458988,19.6309143,18.1079363,16.3420243,58.6663336,30.6392529,49.7787005,43.7655018,38.4758014,62.3570651,2.8753755,33.8990767,35.7785637,3.7287845,3.8288795,37.9877415,64.2811662,64.4516396,62.8721513,20.795781,17.6920787,16.9165174,58.9118634,32.1623483,47.8894668,43.1904849,38.0804338,62.7410265,2.8748907,33.1010593,34.5985824\r\n2938,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.8802221,4.003271,38.4033646,65.0699843,65.4382841,62.2458988,19.6309143,18.1079363,16.3420243,58.6663336,30.6392529,49.7787005,43.7655018,38.4758014,62.3570651,2.8753755,33.8990767,35.7785637,3.7287845,3.8288795,37.9877415,64.2811662,64.4516396,62.8721513,20.795781,17.6920787,16.9165174,58.9118634,32.1623483,47.8894668,43.1904849,38.0804338,62.7410265,2.8748907,33.1010593,34.5985824,3.6713217,3.7324794,37.7415701,63.9417026,65.0183138,63.3730485,21.0874941,17.7121452,17.8062353,58.6896937,31.8083727,48.2488492,43.5285654,38.2918704,62.6267555,2.9955117,32.6535562,33.9270721\r\n2939,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.7287845,3.8288795,37.9877415,64.2811662,64.4516396,62.8721513,20.795781,17.6920787,16.9165174,58.9118634,32.1623483,47.8894668,43.1904849,38.0804338,62.7410265,2.8748907,33.1010593,34.5985824,3.6713217,3.7324794,37.7415701,63.9417026,65.0183138,63.3730485,21.0874941,17.7121452,17.8062353,58.6896937,31.8083727,48.2488492,43.5285654,38.2918704,62.6267555,2.9955117,32.6535562,33.9270721,3.4464487,3.5248676,37.118848,64.3454157,65.2631936,64.0564377,20.5393922,17.7528727,18.0645008,58.6550984,31.4240079,47.9297111,42.8257305,37.5784396,62.8490036,2.949684,31.7417249,34.2105087\r\n2940,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.6713217,3.7324794,37.7415701,63.9417026,65.0183138,63.3730485,21.0874941,17.7121452,17.8062353,58.6896937,31.8083727,48.2488492,43.5285654,38.2918704,62.6267555,2.9955117,32.6535562,33.9270721,3.4464487,3.5248676,37.118848,64.3454157,65.2631936,64.0564377,20.5393922,17.7528727,18.0645008,58.6550984,31.4240079,47.9297111,42.8257305,37.5784396,62.8490036,2.949684,31.7417249,34.2105087,3.1358982,3.1873568,35.8406992,64.8222541,65.5282204,63.9025992,21.1955109,17.7418147,18.5591927,59.2478075,32.1865372,48.2628389,42.3826856,37.0529026,62.8743103,3.2327642,31.9701739,33.7033627\r\n2941,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.4464487,3.5248676,37.118848,64.3454157,65.2631936,64.0564377,20.5393922,17.7528727,18.0645008,58.6550984,31.4240079,47.9297111,42.8257305,37.5784396,62.8490036,2.949684,31.7417249,34.2105087,3.1358982,3.1873568,35.8406992,64.8222541,65.5282204,63.9025992,21.1955109,17.7418147,18.5591927,59.2478075,32.1865372,48.2628389,42.3826856,37.0529026,62.8743103,3.2327642,31.9701739,33.7033627,2.8590068,2.858433,35.3764323,65.3181732,66.4697931,64.5822124,21.1358239,18.0935305,18.1449699,59.5884123,31.6833898,49.7862861,42.4722773,36.9054553,63.2556444,3.2083526,32.5904638,33.5667412\r\n2942,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.1358982,3.1873568,35.8406992,64.8222541,65.5282204,63.9025992,21.1955109,17.7418147,18.5591927,59.2478075,32.1865372,48.2628389,42.3826856,37.0529026,62.8743103,3.2327642,31.9701739,33.7033627,2.8590068,2.858433,35.3764323,65.3181732,66.4697931,64.5822124,21.1358239,18.0935305,18.1449699,59.5884123,31.6833898,49.7862861,42.4722773,36.9054553,63.2556444,3.2083526,32.5904638,33.5667412,2.5963538,2.544708,34.3461892,65.4241218,66.5640746,64.3175168,21.3967667,18.9013015,19.3354752,59.6299333,31.0614719,49.8170608,41.5054128,35.6701202,63.0608004,3.1292408,32.6713736,33.6676246\r\n2943,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.8590068,2.858433,35.3764323,65.3181732,66.4697931,64.5822124,21.1358239,18.0935305,18.1449699,59.5884123,31.6833898,49.7862861,42.4722773,36.9054553,63.2556444,3.2083526,32.5904638,33.5667412,2.5963538,2.544708,34.3461892,65.4241218,66.5640746,64.3175168,21.3967667,18.9013015,19.3354752,59.6299333,31.0614719,49.8170608,41.5054128,35.6701202,63.0608004,3.1292408,32.6713736,33.6676246,2.4262093,2.3823385,33.5764749,64.9979329,65.9023512,65.0103579,21.5005505,19.2618935,19.4822883,60.1024449,31.6075876,49.2835441,40.1608995,34.602382,62.9967085,3.3582165,32.4048476,32.6520378\r\n2944,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.5963538,2.544708,34.3461892,65.4241218,66.5640746,64.3175168,21.3967667,18.9013015,19.3354752,59.6299333,31.0614719,49.8170608,41.5054128,35.6701202,63.0608004,3.1292408,32.6713736,33.6676246,2.4262093,2.3823385,33.5764749,64.9979329,65.9023512,65.0103579,21.5005505,19.2618935,19.4822883,60.1024449,31.6075876,49.2835441,40.1608995,34.602382,62.9967085,3.3582165,32.4048476,32.6520378,2.3418888,2.3230776,32.3426093,65.4200083,66.2653023,64.3082871,21.3244667,19.1349267,19.5263455,59.9492212,30.4752706,49.6100487,38.786705,33.3115459,62.7010788,3.2644726,32.1408741,34.4387882\r\n2945,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.4262093,2.3823385,33.5764749,64.9979329,65.9023512,65.0103579,21.5005505,19.2618935,19.4822883,60.1024449,31.6075876,49.2835441,40.1608995,34.602382,62.9967085,3.3582165,32.4048476,32.6520378,2.3418888,2.3230776,32.3426093,65.4200083,66.2653023,64.3082871,21.3244667,19.1349267,19.5263455,59.9492212,30.4752706,49.6100487,38.786705,33.3115459,62.7010788,3.2644726,32.1408741,34.4387882,2.3054578,2.311811,31.28645,66.0997961,65.9575154,64.8079182,20.9834236,18.6194363,18.6451973,59.5409297,30.8635956,50.3411154,37.3033769,31.9952784,63.2656011,3.001119,32.3314376,35.3347527\r\n2946,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.3418888,2.3230776,32.3426093,65.4200083,66.2653023,64.3082871,21.3244667,19.1349267,19.5263455,59.9492212,30.4752706,49.6100487,38.786705,33.3115459,62.7010788,3.2644726,32.1408741,34.4387882,2.3054578,2.311811,31.28645,66.0997961,65.9575154,64.8079182,20.9834236,18.6194363,18.6451973,59.5409297,30.8635956,50.3411154,37.3033769,31.9952784,63.2656011,3.001119,32.3314376,35.3347527,2.2709522,2.2429743,30.2740254,65.242369,65.0457258,64.7757463,21.3165145,18.3054609,17.9507494,59.545321,31.5334436,48.4884589,36.4663579,31.0800572,62.7869258,2.8203003,31.7875004,34.5936864\r\n2947,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.3054578,2.311811,31.28645,66.0997961,65.9575154,64.8079182,20.9834236,18.6194363,18.6451973,59.5409297,30.8635956,50.3411154,37.3033769,31.9952784,63.2656011,3.001119,32.3314376,35.3347527,2.2709522,2.2429743,30.2740254,65.242369,65.0457258,64.7757463,21.3165145,18.3054609,17.9507494,59.545321,31.5334436,48.4884589,36.4663579,31.0800572,62.7869258,2.8203003,31.7875004,34.5936864,2.3950011,2.4015619,30.0691202,64.1086492,65.011239,65.3854987,21.9736413,18.8687413,17.120998,60.3146164,32.8612965,47.481849,35.5505045,30.1854341,62.5596327,2.5822394,31.2645822,35.0285891\r\n2948,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.2709522,2.2429743,30.2740254,65.242369,65.0457258,64.7757463,21.3165145,18.3054609,17.9507494,59.545321,31.5334436,48.4884589,36.4663579,31.0800572,62.7869258,2.8203003,31.7875004,34.5936864,2.3950011,2.4015619,30.0691202,64.1086492,65.011239,65.3854987,21.9736413,18.8687413,17.120998,60.3146164,32.8612965,47.481849,35.5505045,30.1854341,62.5596327,2.5822394,31.2645822,35.0285891,2.330706,2.3812521,29.28963,63.2886056,64.4192422,65.1036311,22.806408,18.442149,17.0858861,60.6363253,34.130377,46.6943917,34.4298969,29.2397418,61.5119289,2.76493,30.4083089,34.1197081\r\n2949,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.3950011,2.4015619,30.0691202,64.1086492,65.011239,65.3854987,21.9736413,18.8687413,17.120998,60.3146164,32.8612965,47.481849,35.5505045,30.1854341,62.5596327,2.5822394,31.2645822,35.0285891,2.330706,2.3812521,29.28963,63.2886056,64.4192422,65.1036311,22.806408,18.442149,17.0858861,60.6363253,34.130377,46.6943917,34.4298969,29.2397418,61.5119289,2.76493,30.4083089,34.1197081,2.0440899,2.0863471,28.5631892,64.6998938,64.469951,65.4397155,23.1918697,18.3949811,15.7555472,60.8296935,34.3210617,45.8977632,33.600447,28.7141293,61.5190206,2.9266445,29.6331103,32.5237284\r\n2950,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.330706,2.3812521,29.28963,63.2886056,64.4192422,65.1036311,22.806408,18.442149,17.0858861,60.6363253,34.130377,46.6943917,34.4298969,29.2397418,61.5119289,2.76493,30.4083089,34.1197081,2.0440899,2.0863471,28.5631892,64.6998938,64.469951,65.4397155,23.1918697,18.3949811,15.7555472,60.8296935,34.3210617,45.8977632,33.600447,28.7141293,61.5190206,2.9266445,29.6331103,32.5237284,1.9658314,2.0193929,27.5230903,64.0686338,62.7223766,64.2863037,22.8994935,18.5292624,15.041146,60.2402064,34.2980427,45.1228955,32.2487707,27.1890258,61.4347534,3.0112004,30.0236199,33.4788403\r\n2951,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0440899,2.0863471,28.5631892,64.6998938,64.469951,65.4397155,23.1918697,18.3949811,15.7555472,60.8296935,34.3210617,45.8977632,33.600447,28.7141293,61.5190206,2.9266445,29.6331103,32.5237284,1.9658314,2.0193929,27.5230903,64.0686338,62.7223766,64.2863037,22.8994935,18.5292624,15.041146,60.2402064,34.2980427,45.1228955,32.2487707,27.1890258,61.4347534,3.0112004,30.0236199,33.4788403,1.895706,1.9421185,26.7566936,64.3452155,63.1412901,65.2787088,22.927972,18.7217874,14.6867013,61.2733791,35.059315,43.2639035,31.3447183,26.3795068,60.8150945,2.9961201,29.9824811,31.6513858\r\n2952,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.9658314,2.0193929,27.5230903,64.0686338,62.7223766,64.2863037,22.8994935,18.5292624,15.041146,60.2402064,34.2980427,45.1228955,32.2487707,27.1890258,61.4347534,3.0112004,30.0236199,33.4788403,1.895706,1.9421185,26.7566936,64.3452155,63.1412901,65.2787088,22.927972,18.7217874,14.6867013,61.2733791,35.059315,43.2639035,31.3447183,26.3795068,60.8150945,2.9961201,29.9824811,31.6513858,1.7686523,1.8337873,26.9926778,64.1668649,63.138422,64.9452236,23.3165067,18.8306765,15.0235406,61.8440016,35.9677867,42.517121,31.0794254,26.1150375,60.3837402,3.2820079,30.9955859,29.8063833\r\n2953,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.895706,1.9421185,26.7566936,64.3452155,63.1412901,65.2787088,22.927972,18.7217874,14.6867013,61.2733791,35.059315,43.2639035,31.3447183,26.3795068,60.8150945,2.9961201,29.9824811,31.6513858,1.7686523,1.8337873,26.9926778,64.1668649,63.138422,64.9452236,23.3165067,18.8306765,15.0235406,61.8440016,35.9677867,42.517121,31.0794254,26.1150375,60.3837402,3.2820079,30.9955859,29.8063833,1.7080995,1.7990912,26.3693781,64.0532136,63.3416783,64.7188229,23.4518069,19.5607582,14.749516,62.6445788,36.0572494,42.2769416,30.2304732,25.3290393,60.0224678,3.5711985,31.1710339,29.2253697\r\n2954,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.7686523,1.8337873,26.9926778,64.1668649,63.138422,64.9452236,23.3165067,18.8306765,15.0235406,61.8440016,35.9677867,42.517121,31.0794254,26.1150375,60.3837402,3.2820079,30.9955859,29.8063833,1.7080995,1.7990912,26.3693781,64.0532136,63.3416783,64.7188229,23.4518069,19.5607582,14.749516,62.6445788,36.0572494,42.2769416,30.2304732,25.3290393,60.0224678,3.5711985,31.1710339,29.2253697,1.6231644,1.7205462,25.1354738,64.7303504,63.7389206,63.9523098,23.3501129,19.1210859,15.7743012,62.5622822,35.5109835,43.2424889,29.0700182,24.3584114,59.8887331,3.4816563,31.3057135,27.4264718\r\n2955,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.7080995,1.7990912,26.3693781,64.0532136,63.3416783,64.7188229,23.4518069,19.5607582,14.749516,62.6445788,36.0572494,42.2769416,30.2304732,25.3290393,60.0224678,3.5711985,31.1710339,29.2253697,1.6231644,1.7205462,25.1354738,64.7303504,63.7389206,63.9523098,23.3501129,19.1210859,15.7743012,62.5622822,35.5109835,43.2424889,29.0700182,24.3584114,59.8887331,3.4816563,31.3057135,27.4264718,1.6110422,1.7147902,23.7903909,66.7228722,65.3390741,64.4149822,23.306235,19.0378966,15.5546803,62.2666446,35.265275,43.0027385,28.2088141,23.4946707,60.0161953,3.7730446,31.1824358,26.9637659\r\n2956,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.6231644,1.7205462,25.1354738,64.7303504,63.7389206,63.9523098,23.3501129,19.1210859,15.7743012,62.5622822,35.5109835,43.2424889,29.0700182,24.3584114,59.8887331,3.4816563,31.3057135,27.4264718,1.6110422,1.7147902,23.7903909,66.7228722,65.3390741,64.4149822,23.306235,19.0378966,15.5546803,62.2666446,35.265275,43.0027385,28.2088141,23.4946707,60.0161953,3.7730446,31.1824358,26.9637659,1.6817434,1.7996977,23.2791337,64.4933276,63.8611611,64.3222631,24.2152176,17.7453092,15.1852476,62.6258861,36.0663843,42.0102487,27.5304069,22.8334193,59.7541695,3.6087877,31.3729816,27.1384366\r\n2957,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.6110422,1.7147902,23.7903909,66.7228722,65.3390741,64.4149822,23.306235,19.0378966,15.5546803,62.2666446,35.265275,43.0027385,28.2088141,23.4946707,60.0161953,3.7730446,31.1824358,26.9637659,1.6817434,1.7996977,23.2791337,64.4933276,63.8611611,64.3222631,24.2152176,17.7453092,15.1852476,62.6258861,36.0663843,42.0102487,27.5304069,22.8334193,59.7541695,3.6087877,31.3729816,27.1384366,1.674396,1.7815734,22.3813973,64.2001301,64.2665706,64.9729473,25.0097951,18.0124514,15.7440579,63.9853509,37.0479669,41.4211741,27.1795975,22.6828072,59.0662472,3.6001039,30.6375044,26.0765807\r\n2958,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.6817434,1.7996977,23.2791337,64.4933276,63.8611611,64.3222631,24.2152176,17.7453092,15.1852476,62.6258861,36.0663843,42.0102487,27.5304069,22.8334193,59.7541695,3.6087877,31.3729816,27.1384366,1.674396,1.7815734,22.3813973,64.2001301,64.2665706,64.9729473,25.0097951,18.0124514,15.7440579,63.9853509,37.0479669,41.4211741,27.1795975,22.6828072,59.0662472,3.6001039,30.6375044,26.0765807,1.6041748,1.7124474,21.6189677,62.4966739,62.6469392,63.2381725,24.89112,16.9731198,15.2230356,64.1268922,37.5700165,40.6270775,26.6945387,22.0829608,58.643732,3.9338985,30.2920431,26.0552125\r\n2959,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.674396,1.7815734,22.3813973,64.2001301,64.2665706,64.9729473,25.0097951,18.0124514,15.7440579,63.9853509,37.0479669,41.4211741,27.1795975,22.6828072,59.0662472,3.6001039,30.6375044,26.0765807,1.6041748,1.7124474,21.6189677,62.4966739,62.6469392,63.2381725,24.89112,16.9731198,15.2230356,64.1268922,37.5700165,40.6270775,26.6945387,22.0829608,58.643732,3.9338985,30.2920431,26.0552125,1.523488,1.62985,19.4343817,61.616323,62.0508385,61.7490592,25.1451641,17.3575533,15.4117934,65.1637473,37.991726,39.4818932,25.1494414,20.3680586,57.7190443,3.7453408,29.1581753,25.6644833\r\n2960,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.6041748,1.7124474,21.6189677,62.4966739,62.6469392,63.2381725,24.89112,16.9731198,15.2230356,64.1268922,37.5700165,40.6270775,26.6945387,22.0829608,58.643732,3.9338985,30.2920431,26.0552125,1.523488,1.62985,19.4343817,61.616323,62.0508385,61.7490592,25.1451641,17.3575533,15.4117934,65.1637473,37.991726,39.4818932,25.1494414,20.3680586,57.7190443,3.7453408,29.1581753,25.6644833,1.3718341,1.4277084,19.2233139,61.4749375,62.1647961,61.2210428,25.6003307,17.0838495,17.054211,64.717313,38.735136,39.5681302,24.7042066,20.1631075,57.879682,3.725998,29.589845,24.2759815\r\n2961,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.523488,1.62985,19.4343817,61.616323,62.0508385,61.7490592,25.1451641,17.3575533,15.4117934,65.1637473,37.991726,39.4818932,25.1494414,20.3680586,57.7190443,3.7453408,29.1581753,25.6644833,1.3718341,1.4277084,19.2233139,61.4749375,62.1647961,61.2210428,25.6003307,17.0838495,17.054211,64.717313,38.735136,39.5681302,24.7042066,20.1631075,57.879682,3.725998,29.589845,24.2759815,1.2692432,1.3190019,18.9230922,60.5089354,61.5572837,61.2257439,25.8490329,16.0229317,15.7484222,65.1884294,39.1762367,38.3506353,24.164835,19.6786629,57.2124867,4.025418,29.2532469,25.2166416\r\n2962,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3718341,1.4277084,19.2233139,61.4749375,62.1647961,61.2210428,25.6003307,17.0838495,17.054211,64.717313,38.735136,39.5681302,24.7042066,20.1631075,57.879682,3.725998,29.589845,24.2759815,1.2692432,1.3190019,18.9230922,60.5089354,61.5572837,61.2257439,25.8490329,16.0229317,15.7484222,65.1884294,39.1762367,38.3506353,24.164835,19.6786629,57.2124867,4.025418,29.2532469,25.2166416,1.2212942,1.258354,18.8769646,58.0507563,60.227568,61.006603,27.380436,15.801599,15.5075248,65.2080791,40.1034386,38.2583365,23.4939846,19.35852,56.2564805,3.9054587,29.3537376,23.6448353\r\n2963,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2692432,1.3190019,18.9230922,60.5089354,61.5572837,61.2257439,25.8490329,16.0229317,15.7484222,65.1884294,39.1762367,38.3506353,24.164835,19.6786629,57.2124867,4.025418,29.2532469,25.2166416,1.2212942,1.258354,18.8769646,58.0507563,60.227568,61.006603,27.380436,15.801599,15.5075248,65.2080791,40.1034386,38.2583365,23.4939846,19.35852,56.2564805,3.9054587,29.3537376,23.6448353,1.1856572,1.2078653,18.12976,57.0304483,59.2198625,61.5851135,27.1294842,16.5462041,15.5630765,65.6575814,40.5631725,37.187285,22.8595287,18.6454874,55.0391812,4.0461345,28.3735808,22.8155152\r\n2964,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2212942,1.258354,18.8769646,58.0507563,60.227568,61.006603,27.380436,15.801599,15.5075248,65.2080791,40.1034386,38.2583365,23.4939846,19.35852,56.2564805,3.9054587,29.3537376,23.6448353,1.1856572,1.2078653,18.12976,57.0304483,59.2198625,61.5851135,27.1294842,16.5462041,15.5630765,65.6575814,40.5631725,37.187285,22.8595287,18.6454874,55.0391812,4.0461345,28.3735808,22.8155152,1.2975698,1.2879328,18.2389006,57.2421774,59.4064895,60.6603179,27.6573973,15.7414111,14.8327014,65.5512177,40.7501026,37.4320904,22.6826694,18.4201609,54.5995651,4.3865731,28.6589905,22.5838232\r\n2965,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.1856572,1.2078653,18.12976,57.0304483,59.2198625,61.5851135,27.1294842,16.5462041,15.5630765,65.6575814,40.5631725,37.187285,22.8595287,18.6454874,55.0391812,4.0461345,28.3735808,22.8155152,1.2975698,1.2879328,18.2389006,57.2421774,59.4064895,60.6603179,27.6573973,15.7414111,14.8327014,65.5512177,40.7501026,37.4320904,22.6826694,18.4201609,54.5995651,4.3865731,28.6589905,22.5838232,1.2140865,1.1976823,17.1186599,57.8167515,60.0137429,60.4003436,28.8835063,16.0812347,15.9845272,66.0593538,41.5079321,37.5650506,21.2504228,17.3016978,53.8276511,4.2800817,28.9709296,21.7708758\r\n2966,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2975698,1.2879328,18.2389006,57.2421774,59.4064895,60.6603179,27.6573973,15.7414111,14.8327014,65.5512177,40.7501026,37.4320904,22.6826694,18.4201609,54.5995651,4.3865731,28.6589905,22.5838232,1.2140865,1.1976823,17.1186599,57.8167515,60.0137429,60.4003436,28.8835063,16.0812347,15.9845272,66.0593538,41.5079321,37.5650506,21.2504228,17.3016978,53.8276511,4.2800817,28.9709296,21.7708758,1.1761091,1.1267506,16.9749741,57.7975053,59.4935371,60.9214419,28.4393607,15.6798158,15.4383036,65.7880877,41.8259635,36.748895,20.9533114,17.1751405,53.9389402,4.5373255,29.3955385,21.2788443\r\n2967,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2140865,1.1976823,17.1186599,57.8167515,60.0137429,60.4003436,28.8835063,16.0812347,15.9845272,66.0593538,41.5079321,37.5650506,21.2504228,17.3016978,53.8276511,4.2800817,28.9709296,21.7708758,1.1761091,1.1267506,16.9749741,57.7975053,59.4935371,60.9214419,28.4393607,15.6798158,15.4383036,65.7880877,41.8259635,36.748895,20.9533114,17.1751405,53.9389402,4.5373255,29.3955385,21.2788443,1.2644787,1.2315838,16.1360853,57.8513319,58.9200949,60.7706859,29.3762272,14.6592495,13.9231044,66.0265702,42.4996182,37.4781005,20.301772,16.4529422,52.6020104,4.5066135,29.4739874,21.7439745\r\n2968,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.1761091,1.1267506,16.9749741,57.7975053,59.4935371,60.9214419,28.4393607,15.6798158,15.4383036,65.7880877,41.8259635,36.748895,20.9533114,17.1751405,53.9389402,4.5373255,29.3955385,21.2788443,1.2644787,1.2315838,16.1360853,57.8513319,58.9200949,60.7706859,29.3762272,14.6592495,13.9231044,66.0265702,42.4996182,37.4781005,20.301772,16.4529422,52.6020104,4.5066135,29.4739874,21.7439745,1.2715976,1.2547285,16.2020892,57.5774761,58.7615802,60.7991049,29.8560981,14.506984,14.3198414,66.0079239,42.4529492,37.4712004,20.2318443,16.2389645,51.4251537,4.6635209,30.0906418,18.6123681\r\n2969,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2644787,1.2315838,16.1360853,57.8513319,58.9200949,60.7706859,29.3762272,14.6592495,13.9231044,66.0265702,42.4996182,37.4781005,20.301772,16.4529422,52.6020104,4.5066135,29.4739874,21.7439745,1.2715976,1.2547285,16.2020892,57.5774761,58.7615802,60.7991049,29.8560981,14.506984,14.3198414,66.0079239,42.4529492,37.4712004,20.2318443,16.2389645,51.4251537,4.6635209,30.0906418,18.6123681,1.3058925,1.2886391,15.2407222,58.5857428,58.9474074,59.9239364,29.3224191,15.2153246,14.607426,66.7390354,42.8630673,37.7140481,19.5234747,15.4113646,51.166398,4.6082495,29.6504569,17.2606151\r\n2970,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2715976,1.2547285,16.2020892,57.5774761,58.7615802,60.7991049,29.8560981,14.506984,14.3198414,66.0079239,42.4529492,37.4712004,20.2318443,16.2389645,51.4251537,4.6635209,30.0906418,18.6123681,1.3058925,1.2886391,15.2407222,58.5857428,58.9474074,59.9239364,29.3224191,15.2153246,14.607426,66.7390354,42.8630673,37.7140481,19.5234747,15.4113646,51.166398,4.6082495,29.6504569,17.2606151,1.2690292,1.2519468,14.728078,59.3879012,59.879965,58.4904727,30.2071762,13.8701459,15.8530634,67.2536083,43.604624,38.8002241,19.5489255,15.325067,51.2306256,4.4580509,30.5292694,16.5914448\r\n2971,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3058925,1.2886391,15.2407222,58.5857428,58.9474074,59.9239364,29.3224191,15.2153246,14.607426,66.7390354,42.8630673,37.7140481,19.5234747,15.4113646,51.166398,4.6082495,29.6504569,17.2606151,1.2690292,1.2519468,14.728078,59.3879012,59.879965,58.4904727,30.2071762,13.8701459,15.8530634,67.2536083,43.604624,38.8002241,19.5489255,15.325067,51.2306256,4.4580509,30.5292694,16.5914448,1.1115386,1.0943857,13.7354377,60.6001395,60.9491976,58.8581483,30.2497666,13.7434847,16.3324198,67.6896931,43.7246621,39.2793266,18.3548429,14.3764576,50.3796511,4.4408213,31.5807071,14.5047334\r\n2972,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2690292,1.2519468,14.728078,59.3879012,59.879965,58.4904727,30.2071762,13.8701459,15.8530634,67.2536083,43.604624,38.8002241,19.5489255,15.325067,51.2306256,4.4580509,30.5292694,16.5914448,1.1115386,1.0943857,13.7354377,60.6001395,60.9491976,58.8581483,30.2497666,13.7434847,16.3324198,67.6896931,43.7246621,39.2793266,18.3548429,14.3764576,50.3796511,4.4408213,31.5807071,14.5047334,1.3062162,1.3004848,14.0397732,60.4892034,61.124369,58.800155,29.5567335,13.3733369,15.9182062,67.077016,42.8874075,39.4054163,18.7526843,14.6657985,50.2850269,4.447435,30.9631781,13.7971812\r\n2973,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.1115386,1.0943857,13.7354377,60.6001395,60.9491976,58.8581483,30.2497666,13.7434847,16.3324198,67.6896931,43.7246621,39.2793266,18.3548429,14.3764576,50.3796511,4.4408213,31.5807071,14.5047334,1.3062162,1.3004848,14.0397732,60.4892034,61.124369,58.800155,29.5567335,13.3733369,15.9182062,67.077016,42.8874075,39.4054163,18.7526843,14.6657985,50.2850269,4.447435,30.9631781,13.7971812,1.3157303,1.3445858,14.5106765,61.2879561,62.5145901,60.6655398,30.5906516,12.173691,16.0117268,67.1437894,42.519107,40.0187258,18.1540391,14.3666386,48.4317802,4.4333075,30.272124,12.8915803\r\n2974,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3062162,1.3004848,14.0397732,60.4892034,61.124369,58.800155,29.5567335,13.3733369,15.9182062,67.077016,42.8874075,39.4054163,18.7526843,14.6657985,50.2850269,4.447435,30.9631781,13.7971812,1.3157303,1.3445858,14.5106765,61.2879561,62.5145901,60.6655398,30.5906516,12.173691,16.0117268,67.1437894,42.519107,40.0187258,18.1540391,14.3666386,48.4317802,4.4333075,30.272124,12.8915803,1.2802135,1.2977269,14.4967794,61.7191001,63.2659633,62.1642655,30.1382347,12.1166825,17.1846909,67.8808716,41.9088014,38.8315086,18.0472644,14.3462027,48.4957398,4.3140342,30.4513772,11.8582077\r\n2975,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3157303,1.3445858,14.5106765,61.2879561,62.5145901,60.6655398,30.5906516,12.173691,16.0117268,67.1437894,42.519107,40.0187258,18.1540391,14.3666386,48.4317802,4.4333075,30.272124,12.8915803,1.2802135,1.2977269,14.4967794,61.7191001,63.2659633,62.1642655,30.1382347,12.1166825,17.1846909,67.8808716,41.9088014,38.8315086,18.0472644,14.3462027,48.4957398,4.3140342,30.4513772,11.8582077,1.1935198,1.1935198,14.3531343,62.6181313,63.4778169,62.344357,30.0284909,13.11531,17.3604204,67.841962,43.2196311,37.9026651,17.7793652,14.219788,48.7758022,4.2035391,29.9684176,10.7513193\r\n2976,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2802135,1.2977269,14.4967794,61.7191001,63.2659633,62.1642655,30.1382347,12.1166825,17.1846909,67.8808716,41.9088014,38.8315086,18.0472644,14.3462027,48.4957398,4.3140342,30.4513772,11.8582077,1.1935198,1.1935198,14.3531343,62.6181313,63.4778169,62.344357,30.0284909,13.11531,17.3604204,67.841962,43.2196311,37.9026651,17.7793652,14.219788,48.7758022,4.2035391,29.9684176,10.7513193,1.2251761,1.2251761,14.5001848,62.7124291,63.3305355,62.0985867,30.3907323,12.8720716,17.541931,68.4950336,44.0532647,36.0811632,17.6680703,13.8860322,47.6757129,4.3203524,29.9120651,9.6561171\r\n2977,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.1935198,1.1935198,14.3531343,62.6181313,63.4778169,62.344357,30.0284909,13.11531,17.3604204,67.841962,43.2196311,37.9026651,17.7793652,14.219788,48.7758022,4.2035391,29.9684176,10.7513193,1.2251761,1.2251761,14.5001848,62.7124291,63.3305355,62.0985867,30.3907323,12.8720716,17.541931,68.4950336,44.0532647,36.0811632,17.6680703,13.8860322,47.6757129,4.3203524,29.9120651,9.6561171,1.334583,1.3805678,14.6774621,63.9465822,64.3498285,63.713653,29.4823609,13.7751351,16.4135929,68.0519464,43.5362868,35.6944578,17.850827,13.8133634,47.3313527,4.4518838,30.7605452,9.2992227\r\n2978,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2251761,1.2251761,14.5001848,62.7124291,63.3305355,62.0985867,30.3907323,12.8720716,17.541931,68.4950336,44.0532647,36.0811632,17.6680703,13.8860322,47.6757129,4.3203524,29.9120651,9.6561171,1.334583,1.3805678,14.6774621,63.9465822,64.3498285,63.713653,29.4823609,13.7751351,16.4135929,68.0519464,43.5362868,35.6944578,17.850827,13.8133634,47.3313527,4.4518838,30.7605452,9.2992227,1.3426208,1.3897862,14.968919,63.0420268,63.3915784,64.215371,29.8711744,14.3999282,16.3417759,68.0420561,44.4329338,35.2640592,18.103694,13.7358221,46.7199628,4.1633821,30.3045141,9.3243388\r\n2979,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.334583,1.3805678,14.6774621,63.9465822,64.3498285,63.713653,29.4823609,13.7751351,16.4135929,68.0519464,43.5362868,35.6944578,17.850827,13.8133634,47.3313527,4.4518838,30.7605452,9.2992227,1.3426208,1.3897862,14.968919,63.0420268,63.3915784,64.215371,29.8711744,14.3999282,16.3417759,68.0420561,44.4329338,35.2640592,18.103694,13.7358221,46.7199628,4.1633821,30.3045141,9.3243388,1.2248748,1.2792513,14.22941,61.8705767,64.4776544,63.4186377,30.1643317,14.0310429,15.6606571,67.9199476,44.8030143,34.8961487,17.5567414,13.11397,46.1621058,4.2712893,31.7310157,9.9726694\r\n2980,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3426208,1.3897862,14.968919,63.0420268,63.3915784,64.215371,29.8711744,14.3999282,16.3417759,68.0420561,44.4329338,35.2640592,18.103694,13.7358221,46.7199628,4.1633821,30.3045141,9.3243388,1.2248748,1.2792513,14.22941,61.8705767,64.4776544,63.4186377,30.1643317,14.0310429,15.6606571,67.9199476,44.8030143,34.8961487,17.5567414,13.11397,46.1621058,4.2712893,31.7310157,9.9726694,1.2625358,1.3548702,13.0514822,62.2770715,64.189401,63.2735552,29.3933084,14.6037646,15.4975304,67.9458199,44.5824496,34.615422,17.1637753,12.3775327,46.4227642,4.0795561,31.8723586,10.2816843\r\n2981,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2248748,1.2792513,14.22941,61.8705767,64.4776544,63.4186377,30.1643317,14.0310429,15.6606571,67.9199476,44.8030143,34.8961487,17.5567414,13.11397,46.1621058,4.2712893,31.7310157,9.9726694,1.2625358,1.3548702,13.0514822,62.2770715,64.189401,63.2735552,29.3933084,14.6037646,15.4975304,67.9458199,44.5824496,34.615422,17.1637753,12.3775327,46.4227642,4.0795561,31.8723586,10.2816843,1.3545756,1.452142,12.6835319,61.4823924,64.027828,62.8542417,29.6527421,14.5432563,14.4829583,67.4174746,44.7859136,34.6425938,16.6468886,11.6668748,45.2903668,4.0846752,31.6746489,11.095379\r\n2982,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2625358,1.3548702,13.0514822,62.2770715,64.189401,63.2735552,29.3933084,14.6037646,15.4975304,67.9458199,44.5824496,34.615422,17.1637753,12.3775327,46.4227642,4.0795561,31.8723586,10.2816843,1.3545756,1.452142,12.6835319,61.4823924,64.027828,62.8542417,29.6527421,14.5432563,14.4829583,67.4174746,44.7859136,34.6425938,16.6468886,11.6668748,45.2903668,4.0846752,31.6746489,11.095379,1.4535457,1.550146,12.0153616,60.6704967,62.5007962,61.7095091,31.1304728,12.984416,13.9767807,68.5266748,45.0993317,33.9015085,16.3752005,11.1621932,43.3509199,4.2762454,32.4784652,11.5163271\r\n2983,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3545756,1.452142,12.6835319,61.4823924,64.027828,62.8542417,29.6527421,14.5432563,14.4829583,67.4174746,44.7859136,34.6425938,16.6468886,11.6668748,45.2903668,4.0846752,31.6746489,11.095379,1.4535457,1.550146,12.0153616,60.6704967,62.5007962,61.7095091,31.1304728,12.984416,13.9767807,68.5266748,45.0993317,33.9015085,16.3752005,11.1621932,43.3509199,4.2762454,32.4784652,11.5163271,1.4741108,1.5712294,12.096083,60.6270227,62.8814483,62.0937278,30.1968671,11.4208325,12.8376108,67.6674396,44.1636656,34.1515139,16.3396162,11.247265,42.3968223,4.2697921,32.1271358,13.4012561\r\n2984,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.4535457,1.550146,12.0153616,60.6704967,62.5007962,61.7095091,31.1304728,12.984416,13.9767807,68.5266748,45.0993317,33.9015085,16.3752005,11.1621932,43.3509199,4.2762454,32.4784652,11.5163271,1.4741108,1.5712294,12.096083,60.6270227,62.8814483,62.0937278,30.1968671,11.4208325,12.8376108,67.6674396,44.1636656,34.1515139,16.3396162,11.247265,42.3968223,4.2697921,32.1271358,13.4012561,1.3337664,1.3919295,12.0158592,60.9725103,63.188546,61.9407219,31.4665068,10.2090611,12.8180838,67.6719354,44.6755957,34.1734509,15.8891317,11.1406495,40.5576906,4.402072,32.2312467,13.3047783\r\n2985,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.4741108,1.5712294,12.096083,60.6270227,62.8814483,62.0937278,30.1968671,11.4208325,12.8376108,67.6674396,44.1636656,34.1515139,16.3396162,11.247265,42.3968223,4.2697921,32.1271358,13.4012561,1.3337664,1.3919295,12.0158592,60.9725103,63.188546,61.9407219,31.4665068,10.2090611,12.8180838,67.6719354,44.6755957,34.1734509,15.8891317,11.1406495,40.5576906,4.402072,32.2312467,13.3047783,1.4834228,1.535023,11.6897504,60.5327586,63.9353177,61.3859563,31.6447969,8.3584846,12.2244759,67.2732954,44.1484705,33.1085378,16.0528638,11.1540069,39.7449077,4.9424267,32.7229013,14.2650139\r\n2986,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3337664,1.3919295,12.0158592,60.9725103,63.188546,61.9407219,31.4665068,10.2090611,12.8180838,67.6719354,44.6755957,34.1734509,15.8891317,11.1406495,40.5576906,4.402072,32.2312467,13.3047783,1.4834228,1.535023,11.6897504,60.5327586,63.9353177,61.3859563,31.6447969,8.3584846,12.2244759,67.2732954,44.1484705,33.1085378,16.0528638,11.1540069,39.7449077,4.9424267,32.7229013,14.2650139,1.5268234,1.5203307,11.8025972,63.1319027,64.2646492,63.8580762,32.2453263,8.0974315,12.6655637,68.0031356,44.64871,33.4327913,15.945514,11.00465,38.8988383,4.9223117,32.7998441,13.6663683\r\n2987,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.4834228,1.535023,11.6897504,60.5327586,63.9353177,61.3859563,31.6447969,8.3584846,12.2244759,67.2732954,44.1484705,33.1085378,16.0528638,11.1540069,39.7449077,4.9424267,32.7229013,14.2650139,1.5268234,1.5203307,11.8025972,63.1319027,64.2646492,63.8580762,32.2453263,8.0974315,12.6655637,68.0031356,44.64871,33.4327913,15.945514,11.00465,38.8988383,4.9223117,32.7998441,13.6663683,1.486498,1.4535465,11.8601005,60.5041607,62.7128113,61.2863766,34.0583827,7.2070252,12.1774175,68.4007333,45.5773445,31.8427372,16.1005157,11.3346034,37.1297566,5.0236175,34.9387675,13.6521107\r\n2988,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.5268234,1.5203307,11.8025972,63.1319027,64.2646492,63.8580762,32.2453263,8.0974315,12.6655637,68.0031356,44.64871,33.4327913,15.945514,11.00465,38.8988383,4.9223117,32.7998441,13.6663683,1.486498,1.4535465,11.8601005,60.5041607,62.7128113,61.2863766,34.0583827,7.2070252,12.1774175,68.4007333,45.5773445,31.8427372,16.1005157,11.3346034,37.1297566,5.0236175,34.9387675,13.6521107,1.3934525,1.410146,12.3164476,59.5267865,61.3552511,58.8201482,34.4859368,6.291436,13.5954529,69.2208583,46.2089954,30.7419678,16.757655,11.7660252,36.3777869,4.9223828,34.9866242,12.6648649\r\n2989,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.486498,1.4535465,11.8601005,60.5041607,62.7128113,61.2863766,34.0583827,7.2070252,12.1774175,68.4007333,45.5773445,31.8427372,16.1005157,11.3346034,37.1297566,5.0236175,34.9387675,13.6521107,1.3934525,1.410146,12.3164476,59.5267865,61.3552511,58.8201482,34.4859368,6.291436,13.5954529,69.2208583,46.2089954,30.7419678,16.757655,11.7660252,36.3777869,4.9223828,34.9866242,12.6648649,1.4626539,1.510764,12.3517158,59.9829392,62.4615764,59.516242,33.6586634,5.5655644,13.2761501,68.277168,45.6949221,30.7517438,16.6810963,11.8040987,35.69081,4.5844678,34.1837275,12.2954574\r\n2990,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3934525,1.410146,12.3164476,59.5267865,61.3552511,58.8201482,34.4859368,6.291436,13.5954529,69.2208583,46.2089954,30.7419678,16.757655,11.7660252,36.3777869,4.9223828,34.9866242,12.6648649,1.4626539,1.510764,12.3517158,59.9829392,62.4615764,59.516242,33.6586634,5.5655644,13.2761501,68.277168,45.6949221,30.7517438,16.6810963,11.8040987,35.69081,4.5844678,34.1837275,12.2954574,1.5137103,1.5620997,11.9572576,60.9266246,62.7302333,59.7001141,34.5213353,5.0211362,13.5080561,68.4244128,45.7460907,30.7637123,17.0061172,11.7634754,34.7573691,4.6228356,36.0168925,12.5000171\r\n2991,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.4626539,1.510764,12.3517158,59.9829392,62.4615764,59.516242,33.6586634,5.5655644,13.2761501,68.277168,45.6949221,30.7517438,16.6810963,11.8040987,35.69081,4.5844678,34.1837275,12.2954574,1.5137103,1.5620997,11.9572576,60.9266246,62.7302333,59.7001141,34.5213353,5.0211362,13.5080561,68.4244128,45.7460907,30.7637123,17.0061172,11.7634754,34.7573691,4.6228356,36.0168925,12.5000171,1.5948401,1.6334692,12.0020219,60.4605724,62.5944125,58.5386999,34.0657275,4.2885905,13.8837903,68.7073574,45.0736161,30.4894004,16.7253239,11.3187233,34.119183,4.6648117,35.6200055,11.5517427\r\n2992,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.5137103,1.5620997,11.9572576,60.9266246,62.7302333,59.7001141,34.5213353,5.0211362,13.5080561,68.4244128,45.7460907,30.7637123,17.0061172,11.7634754,34.7573691,4.6228356,36.0168925,12.5000171,1.5948401,1.6334692,12.0020219,60.4605724,62.5944125,58.5386999,34.0657275,4.2885905,13.8837903,68.7073574,45.0736161,30.4894004,16.7253239,11.3187233,34.119183,4.6648117,35.6200055,11.5517427,1.3138874,1.3765813,11.7599395,61.1046198,63.188706,59.5178323,33.8284082,3.8422706,13.6359316,68.7746881,45.4330457,30.6044212,16.3351458,11.1627194,32.6556313,4.2058473,34.652367,9.7603049\r\n2993,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.5948401,1.6334692,12.0020219,60.4605724,62.5944125,58.5386999,34.0657275,4.2885905,13.8837903,68.7073574,45.0736161,30.4894004,16.7253239,11.3187233,34.119183,4.6648117,35.6200055,11.5517427,1.3138874,1.3765813,11.7599395,61.1046198,63.188706,59.5178323,33.8284082,3.8422706,13.6359316,68.7746881,45.4330457,30.6044212,16.3351458,11.1627194,32.6556313,4.2058473,34.652367,9.7603049,1.204636,1.3161213,11.9408134,58.8101933,60.6566592,58.4419452,34.1483259,3.6134439,12.8125892,69.1985151,45.9517613,29.0951232,16.7326834,11.4116489,31.4498194,4.3305463,33.1915868,8.8926421\r\n2994,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.3138874,1.3765813,11.7599395,61.1046198,63.188706,59.5178323,33.8284082,3.8422706,13.6359316,68.7746881,45.4330457,30.6044212,16.3351458,11.1627194,32.6556313,4.2058473,34.652367,9.7603049,1.204636,1.3161213,11.9408134,58.8101933,60.6566592,58.4419452,34.1483259,3.6134439,12.8125892,69.1985151,45.9517613,29.0951232,16.7326834,11.4116489,31.4498194,4.3305463,33.1915868,8.8926421,1.1073381,1.2066383,12.166696,61.3714092,61.7634407,60.0685777,33.0996206,2.8807645,12.8880263,68.4991145,45.2173994,29.9403969,16.9883814,11.6023688,31.2257156,4.3405511,31.5198788,8.644087\r\n2995,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.204636,1.3161213,11.9408134,58.8101933,60.6566592,58.4419452,34.1483259,3.6134439,12.8125892,69.1985151,45.9517613,29.0951232,16.7326834,11.4116489,31.4498194,4.3305463,33.1915868,8.8926421,1.1073381,1.2066383,12.166696,61.3714092,61.7634407,60.0685777,33.0996206,2.8807645,12.8880263,68.4991145,45.2173994,29.9403969,16.9883814,11.6023688,31.2257156,4.3405511,31.5198788,8.644087,1.0973179,1.1540954,11.806419,64.3520099,64.3938464,62.9380341,32.9068558,2.7004085,11.0322563,67.7966749,45.1288227,32.3455791,16.5989632,11.4950629,29.9952272,4.6528742,32.0178235,9.0443593\r\n2996,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.1073381,1.2066383,12.166696,61.3714092,61.7634407,60.0685777,33.0996206,2.8807645,12.8880263,68.4991145,45.2173994,29.9403969,16.9883814,11.6023688,31.2257156,4.3405511,31.5198788,8.644087,1.0973179,1.1540954,11.806419,64.3520099,64.3938464,62.9380341,32.9068558,2.7004085,11.0322563,67.7966749,45.1288227,32.3455791,16.5989632,11.4950629,29.9952272,4.6528742,32.0178235,9.0443593,1.0888758,1.1131131,11.8523351,64.9111957,65.0043293,63.1104544,32.1082803,2.5848479,10.8042541,67.748731,43.9964745,33.7151374,16.2494912,11.3321748,29.7383708,5.1264039,32.6701598,9.2334495\r\n2997,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0973179,1.1540954,11.806419,64.3520099,64.3938464,62.9380341,32.9068558,2.7004085,11.0322563,67.7966749,45.1288227,32.3455791,16.5989632,11.4950629,29.9952272,4.6528742,32.0178235,9.0443593,1.0888758,1.1131131,11.8523351,64.9111957,65.0043293,63.1104544,32.1082803,2.5848479,10.8042541,67.748731,43.9964745,33.7151374,16.2494912,11.3321748,29.7383708,5.1264039,32.6701598,9.2334495,1.0380736,1.0626365,11.5560573,63.095032,63.365673,63.0685347,32.8103162,2.780143,10.6196076,68.0121845,44.78847,32.9514486,15.7239705,11.2443358,29.8430545,5.1732542,31.6600214,8.3038869\r\n2998,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0888758,1.1131131,11.8523351,64.9111957,65.0043293,63.1104544,32.1082803,2.5848479,10.8042541,67.748731,43.9964745,33.7151374,16.2494912,11.3321748,29.7383708,5.1264039,32.6701598,9.2334495,1.0380736,1.0626365,11.5560573,63.095032,63.365673,63.0685347,32.8103162,2.780143,10.6196076,68.0121845,44.78847,32.9514486,15.7239705,11.2443358,29.8430545,5.1732542,31.6600214,8.3038869,0.9318358,0.9565703,11.3376764,62.5683035,63.7865483,64.5529499,33.1206427,2.8814628,10.3377037,67.9574689,45.6881038,33.9541972,15.7090681,11.468305,28.9731049,5.4619886,30.5829957,9.1397784\r\n2999,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0380736,1.0626365,11.5560573,63.095032,63.365673,63.0685347,32.8103162,2.780143,10.6196076,68.0121845,44.78847,32.9514486,15.7239705,11.2443358,29.8430545,5.1732542,31.6600214,8.3038869,0.9318358,0.9565703,11.3376764,62.5683035,63.7865483,64.5529499,33.1206427,2.8814628,10.3377037,67.9574689,45.6881038,33.9541972,15.7090681,11.468305,28.9731049,5.4619886,30.5829957,9.1397784,1.0978288,1.116176,11.3295771,62.9786678,63.3196808,64.9409449,33.1719013,3.3599511,10.1603162,68.1876556,45.3600099,34.3413771,15.4394838,11.4818242,29.6396764,5.5474112,30.240717,8.5766361\r\n3000,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.9318358,0.9565703,11.3376764,62.5683035,63.7865483,64.5529499,33.1206427,2.8814628,10.3377037,67.9574689,45.6881038,33.9541972,15.7090681,11.468305,28.9731049,5.4619886,30.5829957,9.1397784,1.0978288,1.116176,11.3295771,62.9786678,63.3196808,64.9409449,33.1719013,3.3599511,10.1603162,68.1876556,45.3600099,34.3413771,15.4394838,11.4818242,29.6396764,5.5474112,30.240717,8.5766361,1.0285327,0.996219,11.2636855,63.5004243,65.4230023,64.1445476,32.7159583,2.955328,10.7729103,67.354594,44.9536396,34.7531981,15.0405244,11.3534589,29.4781983,5.8978305,31.194899,8.7813557\r\n3001,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0978288,1.116176,11.3295771,62.9786678,63.3196808,64.9409449,33.1719013,3.3599511,10.1603162,68.1876556,45.3600099,34.3413771,15.4394838,11.4818242,29.6396764,5.5474112,30.240717,8.5766361,1.0285327,0.996219,11.2636855,63.5004243,65.4230023,64.1445476,32.7159583,2.955328,10.7729103,67.354594,44.9536396,34.7531981,15.0405244,11.3534589,29.4781983,5.8978305,31.194899,8.7813557,1.0544823,1.0848839,11.5093778,63.2647475,65.6486001,63.138538,32.9247271,3.7248244,10.8975489,66.9601991,45.5942469,35.6578356,15.3019848,11.5450804,29.775994,5.7624,31.0045527,7.0261461\r\n3002,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0285327,0.996219,11.2636855,63.5004243,65.4230023,64.1445476,32.7159583,2.955328,10.7729103,67.354594,44.9536396,34.7531981,15.0405244,11.3534589,29.4781983,5.8978305,31.194899,8.7813557,1.0544823,1.0848839,11.5093778,63.2647475,65.6486001,63.138538,32.9247271,3.7248244,10.8975489,66.9601991,45.5942469,35.6578356,15.3019848,11.5450804,29.775994,5.7624,31.0045527,7.0261461,1.1454296,1.1746127,11.8257438,61.1876117,64.1709118,62.4183498,32.685998,3.5125897,11.0592508,66.7600599,46.3839481,33.4690073,15.3769916,11.6897488,29.4129984,5.9264645,30.6788385,6.549525\r\n3003,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0544823,1.0848839,11.5093778,63.2647475,65.6486001,63.138538,32.9247271,3.7248244,10.8975489,66.9601991,45.5942469,35.6578356,15.3019848,11.5450804,29.775994,5.7624,31.0045527,7.0261461,1.1454296,1.1746127,11.8257438,61.1876117,64.1709118,62.4183498,32.685998,3.5125897,11.0592508,66.7600599,46.3839481,33.4690073,15.3769916,11.6897488,29.4129984,5.9264645,30.6788385,6.549525,1.121511,1.150313,11.7721722,61.4096428,64.2814561,63.0692649,33.0486201,4.0564875,11.4607072,67.1601732,47.1872358,34.0883101,15.4201569,11.7801166,29.4129719,5.9529418,30.4106137,5.9105412\r\n3004,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.1454296,1.1746127,11.8257438,61.1876117,64.1709118,62.4183498,32.685998,3.5125897,11.0592508,66.7600599,46.3839481,33.4690073,15.3769916,11.6897488,29.4129984,5.9264645,30.6788385,6.549525,1.121511,1.150313,11.7721722,61.4096428,64.2814561,63.0692649,33.0486201,4.0564875,11.4607072,67.1601732,47.1872358,34.0883101,15.4201569,11.7801166,29.4129719,5.9529418,30.4106137,5.9105412,1.049163,1.077583,11.7646458,62.6472265,65.3216224,63.701473,32.2496639,4.1777099,11.949304,67.1721358,45.2537509,34.6770939,15.4166549,11.3897695,28.8674553,6.0650887,30.4514654,6.4873101\r\n3005,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.121511,1.150313,11.7721722,61.4096428,64.2814561,63.0692649,33.0486201,4.0564875,11.4607072,67.1601732,47.1872358,34.0883101,15.4201569,11.7801166,29.4129719,5.9529418,30.4106137,5.9105412,1.049163,1.077583,11.7646458,62.6472265,65.3216224,63.701473,32.2496639,4.1777099,11.949304,67.1721358,45.2537509,34.6770939,15.4166549,11.3897695,28.8674553,6.0650887,30.4514654,6.4873101,1.2108806,1.2390445,12.4150586,63.646865,64.7487649,64.2510051,32.2759091,4.5368443,12.5255304,66.7258562,44.9888651,33.5898797,15.7557129,11.8119057,29.4827698,6.2165029,31.196935,6.1128271\r\n3006,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.049163,1.077583,11.7646458,62.6472265,65.3216224,63.701473,32.2496639,4.1777099,11.949304,67.1721358,45.2537509,34.6770939,15.4166549,11.3897695,28.8674553,6.0650887,30.4514654,6.4873101,1.2108806,1.2390445,12.4150586,63.646865,64.7487649,64.2510051,32.2759091,4.5368443,12.5255304,66.7258562,44.9888651,33.5898797,15.7557129,11.8119057,29.4827698,6.2165029,31.196935,6.1128271,1.2572934,1.2386644,12.2700853,63.4775013,64.1451316,63.6038535,32.796014,4.4835236,13.2711815,66.9139873,45.3166722,33.0767805,15.5380732,11.4358701,28.9117819,6.1579993,31.4924054,6.1513938\r\n3007,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2108806,1.2390445,12.4150586,63.646865,64.7487649,64.2510051,32.2759091,4.5368443,12.5255304,66.7258562,44.9888651,33.5898797,15.7557129,11.8119057,29.4827698,6.2165029,31.196935,6.1128271,1.2572934,1.2386644,12.2700853,63.4775013,64.1451316,63.6038535,32.796014,4.4835236,13.2711815,66.9139873,45.3166722,33.0767805,15.5380732,11.4358701,28.9117819,6.1579993,31.4924054,6.1513938,1.6478125,1.6665112,13.5352652,60.3777789,59.8105889,64.0719381,34.4058143,3.7378553,12.1856532,68.2780561,46.7605694,32.359431,15.9807305,11.5923464,28.1517314,5.8860281,32.3381002,7.1655801\r\n3008,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.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,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2572934,1.2386644,12.2700853,63.4775013,64.1451316,63.6038535,32.796014,4.4835236,13.2711815,66.9139873,45.3166722,33.0767805,15.5380732,11.4358701,28.9117819,6.1579993,31.4924054,6.1513938,1.6478125,1.6665112,13.5352652,60.3777789,59.8105889,64.0719381,34.4058143,3.7378553,12.1856532,68.2780561,46.7605694,32.359431,15.9807305,11.5923464,28.1517314,5.8860281,32.3381002,7.1655801,1.7046954,1.6664982,13.017151,60.1215864,60.0783833,65.0065566,34.4294764,3.3465167,12.1930534,68.392842,46.6368191,31.6298273,15.7779915,11.3211634,27.7682895,6.1793232,31.8610673,10.5350871\r\n"
  },
  {
    "path": "HW02/HW02.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OYlaRwNu7ojq\"\n   },\n   \"source\": [\n    \"# **Homework 2: Phoneme Classification**\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"A7DRC5V7_8A5\"\n   },\n   \"source\": [\n    \"Objectives:\\n\",\n    \"* Solve a classification problem with deep neural networks (DNNs).\\n\",\n    \"* Understand recursive neural networks (RNNs).\\n\",\n    \"\\n\",\n    \"If you have any questions, please contact the TAs via TA hours, NTU COOL, or email to mlta-2023-spring@googlegroups.com\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KVUGfWTo7_Oj\"\n   },\n   \"source\": [\n    \"# Download Data\\n\",\n    \"Download data from google drive, then unzip it.\\n\",\n    \"\\n\",\n    \"You should have\\n\",\n    \"- `libriphone/train_split.txt`: training metadata\\n\",\n    \"- `libriphone/train_labels`: training labels\\n\",\n    \"- `libriphone/test_split.txt`: testing metadata\\n\",\n    \"- `libriphone/feat/train/*.pt`: training feature\\n\",\n    \"- `libriphone/feat/test/*.pt`:  testing feature\\n\",\n    \"\\n\",\n    \"after running the following block.\\n\",\n    \"\\n\",\n    \"> **Notes: if the google drive link is dead, you can download the data directly from [Kaggle](https://www.kaggle.com/c/ml2023spring-hw2/data) and upload it to the workspace.**\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"id\": \"OzkiMEcC3Foq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# !pip install --upgrade gdown\\n\",\n    \"\\n\",\n    \"# # Main link\\n\",\n    \"# # 如果你已经从其他地方下载了数据集，则不需要执行该代码块\\n\",\n    \"# !gdown --id '1qzCRnywKh30mTbWUEjXuNT2isOCAPdO1' --output libriphone.zip\\n\",\n    \"\\n\",\n    \"# !unzip -q libriphone.zip\\n\",\n    \"# !ls libriphone\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pADUiYODJE1O\"\n   },\n   \"source\": [\n    \"# Some Utility Functions\\n\",\n    \"**Fixes random number generator seeds for reproducibility.**\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"id\": \"BsZKgBZQJjaE\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"    random.seed(seed) \\n\",\n    \"    np.random.seed(seed)  \\n\",\n    \"    torch.manual_seed(seed)\\n\",\n    \"    if torch.cuda.is_available():\\n\",\n    \"        torch.cuda.manual_seed(seed)\\n\",\n    \"        torch.cuda.manual_seed_all(seed) \\n\",\n    \"    torch.backends.cudnn.benchmark = False\\n\",\n    \"    torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_L_4anls8Drv\"\n   },\n   \"source\": [\n    \"**Helper functions to pre-process the training data from raw MFCC features of each utterance.**\\n\",\n    \"\\n\",\n    \"A phoneme may span several frames and is dependent to past and future frames. \\\\\\n\",\n    \"Hence we concatenate neighboring phonemes for training to achieve higher accuracy. The **concat_feat** function concatenates past and future k frames (total 2k+1 = n frames), and we predict the center frame.\\n\",\n    \"\\n\",\n    \"Feel free to modify the data preprocess functions, but **do not drop any frame** (if you modify the functions, remember to check that the number of frames are the same as mentioned in the slides)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"id\": \"IJjLT8em-y9G\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import torch\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"def load_feat(path):\\n\",\n    \"    feat = torch.load(path)\\t# 导入音频文件\\n\",\n    \"    return feat\\n\",\n    \"\\n\",\n    \"def shift(x, n):\\n\",\n    \"    # 平移数据\\n\",\n    \"    if n < 0:\\n\",\n    \"        left = x[0].repeat(-n, 1)\\n\",\n    \"        right = x[:n]\\n\",\n    \"    elif n > 0:\\n\",\n    \"        right = x[-1].repeat(n, 1)\\n\",\n    \"        left = x[n:]\\n\",\n    \"    else:\\n\",\n    \"        return x\\n\",\n    \"\\n\",\n    \"    return torch.cat((left, right), dim=0)\\n\",\n    \"\\n\",\n    \"def concat_feat(x, concat_n):\\n\",\n    \"    assert concat_n % 2 == 1 # n must be odd\\n\",\n    \"    if concat_n < 2:\\n\",\n    \"        return x\\n\",\n    \"    seq_len, feature_dim = x.size(0), x.size(1)\\n\",\n    \"    x = x.repeat(1, concat_n) \\n\",\n    \"    x = x.view(seq_len, concat_n, feature_dim).permute(1, 0, 2) # concat_n, seq_len, feature_dim\\n\",\n    \"    mid = (concat_n // 2)\\n\",\n    \"    for r_idx in range(1, mid+1):\\n\",\n    \"        x[mid + r_idx, :] = shift(x[mid + r_idx], r_idx)\\n\",\n    \"        x[mid - r_idx, :] = shift(x[mid - r_idx], -r_idx)\\n\",\n    \"\\n\",\n    \"    return x.permute(1, 0, 2).view(seq_len, concat_n * feature_dim)\\n\",\n    \"\\n\",\n    \"def preprocess_data(split, feat_dir, phone_path, concat_nframes, train_ratio=0.8, random_seed=1213):\\n\",\n    \"    class_num = 41 # NOTE: pre-computed, should not need change\\n\",\n    \"\\n\",\n    \"    if split == 'train' or split == 'val':\\n\",\n    \"        mode = 'train'\\n\",\n    \"    elif split == 'test':\\n\",\n    \"        mode = 'test'\\n\",\n    \"    else:\\n\",\n    \"        raise ValueError('Invalid \\\\'split\\\\' argument for dataset: PhoneDataset!')\\n\",\n    \"\\n\",\n    \"    label_dict = {}\\n\",\n    \"    if mode == 'train':\\n\",\n    \"        for line in open(os.path.join(phone_path, f'{mode}_labels.txt')).readlines():\\n\",\n    \"            line = line.strip('\\\\n').split(' ')\\n\",\n    \"            label_dict[line[0]] = [int(p) for p in line[1:]]\\n\",\n    \"        \\n\",\n    \"        # split training and validation data\\n\",\n    \"        usage_list = open(os.path.join(phone_path, 'train_split.txt')).readlines()\\n\",\n    \"        random.seed(random_seed)\\n\",\n    \"        random.shuffle(usage_list)\\n\",\n    \"        train_len = int(len(usage_list) * train_ratio)\\n\",\n    \"        usage_list = usage_list[:train_len] if split == 'train' else usage_list[train_len:]\\n\",\n    \"\\n\",\n    \"    elif mode == 'test':\\n\",\n    \"        usage_list = open(os.path.join(phone_path, 'test_split.txt')).readlines()\\n\",\n    \"\\n\",\n    \"    usage_list = [line.strip('\\\\n') for line in usage_list]\\n\",\n    \"    print('[Dataset] - # phone classes: ' + str(class_num) + ', number of utterances for ' + split + ': ' + str(len(usage_list)))\\n\",\n    \"\\n\",\n    \"    max_len = 3000000\\n\",\n    \"    X = torch.empty(max_len, 39 * concat_nframes)\\n\",\n    \"    if mode == 'train':\\n\",\n    \"        y = torch.empty(max_len, dtype=torch.long)\\n\",\n    \"\\n\",\n    \"    idx = 0\\n\",\n    \"    for i, fname in tqdm(enumerate(usage_list)):\\n\",\n    \"        feat = load_feat(os.path.join(feat_dir, mode, f'{fname}.pt'))\\n\",\n    \"        cur_len = len(feat)\\n\",\n    \"        feat = concat_feat(feat, concat_nframes)\\n\",\n    \"        if mode == 'train':\\n\",\n    \"            label = torch.LongTensor(label_dict[fname])\\n\",\n    \"\\n\",\n    \"        X[idx: idx + cur_len, :] = feat\\n\",\n    \"        if mode == 'train':\\n\",\n    \"            y[idx: idx + cur_len] = label\\n\",\n    \"\\n\",\n    \"        idx += cur_len\\n\",\n    \"\\n\",\n    \"    X = X[:idx, :]\\n\",\n    \"    if mode == 'train':\\n\",\n    \"        y = y[:idx]\\n\",\n    \"\\n\",\n    \"    print(f'[INFO] {split} set')\\n\",\n    \"    print(X.shape)\\n\",\n    \"    if mode == 'train':\\n\",\n    \"        print(y.shape)\\n\",\n    \"        return X, y\\n\",\n    \"    else:\\n\",\n    \"        return X\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"us5XW_x6udZQ\"\n   },\n   \"source\": [\n    \"# Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"Fjf5EcmJtf4e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"from torch.utils.data import Dataset\\n\",\n    \"\\n\",\n    \"class LibriDataset(Dataset):\\n\",\n    \"    def __init__(self, X, y=None):\\n\",\n    \"        self.data = X\\n\",\n    \"        if y is not None:\\n\",\n    \"            self.label = torch.LongTensor(y)\\n\",\n    \"        else:\\n\",\n    \"            self.label = None\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        if self.label is not None:\\n\",\n    \"            return self.data[idx], self.label[idx]\\n\",\n    \"        else:\\n\",\n    \"            return self.data[idx]\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.data)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"IRqKNvNZwe3V\"\n   },\n   \"source\": [\n    \"# Model\\n\",\n    \"Feel free to modify the structure of the model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"Bg-GRd7ywdrL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch.nn as nn\\n\",\n    \"\\n\",\n    \"class BasicBlock(nn.Module):\\n\",\n    \"    def __init__(self, input_dim, output_dim):\\n\",\n    \"        super(BasicBlock, self).__init__()\\n\",\n    \"\\n\",\n    \"        # TODO: apply batch normalization and dropout for strong baseline.\\n\",\n    \"        # Reference: https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm1d.html (batch normalization)\\n\",\n    \"        #       https://pytorch.org/docs/stable/generated/torch.nn.Dropout.html (dropout)\\n\",\n    \"        self.block = nn.Sequential(\\n\",\n    \"            nn.Linear(input_dim, output_dim),\\n\",\n    \"            nn.BatchNorm1d(output_dim),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            # 在此处增加 nn.Dropout()\\n\",\n    \"            nn.Dropout(p=0.15)\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.block(x)\\n\",\n    \"        return x\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"class Classifier(nn.Module):\\n\",\n    \"    def __init__(self, input_dim, output_dim=41, hidden_layers=1, hidden_dim=256):\\n\",\n    \"        super(Classifier, self).__init__()\\n\",\n    \"\\n\",\n    \"        self.fc = nn.Sequential(\\n\",\n    \"            BasicBlock(input_dim, hidden_dim),\\n\",\n    \"            # 在函数的调用中，一个 * 表示将一个序列展开为单独的位置参数，这一行代码是列表推导，最终的表现是重复生成多个 hidden layer\\n\",\n    \"            #（原来的整段代码实际上生成了 hidden_layers+1 个隐藏层，所以我修改了一下代码，让其符合定义）\\n\",\n    \"            *[BasicBlock(hidden_dim, hidden_dim) for _ in range(hidden_layers-1)], \\n\",\n    \"            nn.Linear(hidden_dim, output_dim)\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.fc(x)\\n\",\n    \"        return x\\n\",\n    \"    \\n\",\n    \"# TODO: 做 Boss baseline 再取消注释\\n\",\n    \"# class Classifier(nn.Module):\\n\",\n    \"#     def __init__(self, input_dim, output_dim=41, hidden_layers=1, hidden_dim=256):\\n\",\n    \"#         super(Classifier, self).__init__()\\n\",\n    \"        \\n\",\n    \"#         # TODO: 此时模型超参数在这里修改\\n\",\n    \"#         # Create BiLSTM\\n\",\n    \"#         self.input_size = 39    # 这一项是RNN的\\\"input_dim\\\"，RNN需要对\\\"单\\\"个数据进行处理\\n\",\n    \"#         self.hidden_size = 512  # 这一项是RNN的\\\"hidden_dim\\\"\\n\",\n    \"#         self.num_layers = 6     # 这一项是RNN的\\\"hidden_layers\\\"\\n\",\n    \"#         self.rnn = nn.LSTM(input_size=self.input_size, hidden_size=self.hidden_size, num_layers=self.num_layers, batch_first=True, dropout=0.3, bidirectional=True)\\n\",\n    \"        \\n\",\n    \"#         # 后接全连接层\\n\",\n    \"#         self.fc = nn.Sequential(\\n\",\n    \"#             # 修改成 2 * self.hidden_size 的原因是因为LSTM()中的bidirectional设置为了True，这表示使用Bi（双向）LSTM模型，所以需要修改输入维度以匹配\\n\",\n    \"#             BasicBlock(2 * self.hidden_size, hidden_dim),\\n\",\n    \"#             # 在函数的调用中，一个 * 表示将一个序列展开为单独的位置参数，这一行代码是列表推导，最终的表现是重复生成多个 hidden layer\\n\",\n    \"#             #（原来的整段代码实际上生成了 hidden_layers+1 个隐藏层，所以我修改了一下代码，让其符合定义）\\n\",\n    \"# #             *[BasicBlock(hidden_dim, hidden_dim) for _ in range(hidden_layers-1)], \\n\",\n    \"#             nn.Linear(hidden_dim, output_dim)\\n\",\n    \"#         )\\n\",\n    \"\\n\",\n    \"#     def forward(self, x):\\n\",\n    \"#         # 通过RNN层，得到输出和最后一个隐藏状态，注意输出的shape\\n\",\n    \"#         # x.shape: (batch_size, seq_len, RNN_input_size)\\n\",\n    \"#         x, _ = self.rnn(x)  # => (batch_size, seq_len, RNN_hidden_size)\\n\",\n    \"\\n\",\n    \"#         # 取最后一个时间步的输出作为分类的输入\\n\",\n    \"#         x = x[:, -1]        # => (batch_size, RNN_hidden_size)\\n\",\n    \"\\n\",\n    \"#         # 通过线性层，得到最终的分类结果\\n\",\n    \"#         x = self.fc(x)      # => (batch_size, labels)\\n\",\n    \"\\n\",\n    \"        return x\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TlIq8JeqvvHC\"\n   },\n   \"source\": [\n    \"# Hyper-parameters\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"iIHn79Iav1ri\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Total params: 1754153\\n\",\n      \"若将隐藏层网络层数改为: 2，则维数应当改为: 962\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Data prarameters\\n\",\n    \"# TODO: change the value of \\\"concat_nframes\\\" for medium baseline\\n\",\n    \"concat_nframes = 21 #61      # the number of frames to concat with, n must be odd (total 2k+1 = n frames)\\n\",\n    \"train_ratio = 0.95           # the ratio of data used for training, the rest will be used for validation\\n\",\n    \"\\n\",\n    \"# Training parameters\\n\",\n    \"seed = 1213                  # random seed\\n\",\n    \"batch_size = 512             # batch size\\n\",\n    \"num_epoch = 15               # the number of training epoch\\n\",\n    \"learning_rate =  1e-3        # learning rate\\n\",\n    \"model_path = './model.ckpt'  # the path where the checkpoint will be saved\\n\",\n    \"\\n\",\n    \"# Model parameters\\n\",\n    \"# TODO: change the value of \\\"hidden_layers\\\" or \\\"hidden_dim\\\" for medium baseline\\n\",\n    \"input_dim = 39 * concat_nframes  # the input dim of the model, you should not change the value\\n\",\n    \"hidden_layers = 6            # the number of hidden layers\\n\",\n    \"hidden_dim = 512             # the hidden dim\\n\",\n    \"\\n\",\n    \"''' 以下是为了完成 report 所添加的代码 '''\\n\",\n    \"# TODO: 完成 report 后注释下面所有代码\\n\",\n    \"# 提前输出模型参数数量，以便调整网络架构\\n\",\n    \"total_params = (\\n\",\n    \"    (input_dim+1) * hidden_dim +\\n\",\n    \"    (hidden_dim + 1) * hidden_dim * (hidden_layers - 1) +\\n\",\n    \"    (hidden_dim + 1) * 41\\n\",\n    \")\\n\",\n    \"print(f'Total params: {total_params}')\\n\",\n    \"    \\n\",\n    \"def get_dest_dim(input_dim, output_dim, hidden_layers, dest_hidden_layers, hidden_dim):\\n\",\n    \"    '''获取目标网络隐藏层的维度（总参数量接近于原网络）'''\\n\",\n    \"    # 计算一元二次方程的系数 a,b,c\\n\",\n    \"    a = dest_hidden_layers - 1  # a = l_d - 1\\n\",\n    \"    b = input_dim + output_dim + dest_hidden_layers  #  b = i + o + l_d\\n\",\n    \"    c = - (hidden_layers - 1) * (hidden_dim ** 2) - (input_dim + output_dim + hidden_layers) * hidden_dim  # c = - (l - 1) * (d ** 2) - (i + o + l) * d\\n\",\n    \"    \\n\",\n    \"    # 计算分子中的平方根部分，即 b^2-4ac\\n\",\n    \"    sqrt_part = (b ** 2) - 4 * a * c\\n\",\n    \"    \\n\",\n    \"    # 计算两个解，一个是加号，一个是减号，即(-b±√(b^2-4ac))/(2a)\\n\",\n    \"    d_d_plus = (-b + sqrt_part**(0.5)) / (2 * a)\\n\",\n    \"    d_d_minus = (-b - sqrt_part**(0.5)) / (2 * a)\\n\",\n    \"    \\n\",\n    \"    # 返回两个解的元组\\n\",\n    \"    return (d_d_plus, d_d_minus)\\n\",\n    \"\\n\",\n    \"# 设置你想要的目标网络隐藏层数量\\n\",\n    \"dest_hidden_layers = 2\\n\",\n    \"\\n\",\n    \"# 获取对应的维数\\n\",\n    \"dest_hidden_dim, _ = get_dest_dim(input_dim, 41, hidden_layers, dest_hidden_layers, hidden_dim)\\n\",\n    \"print(f\\\"若将隐藏层网络层数改为: {dest_hidden_layers}，则维数应当改为: {round(dest_hidden_dim)}\\\",)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"IIUFRgG5yoDn\"\n   },\n   \"source\": [\n    \"# Dataloader\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"c1zI3v5jyrDn\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DEVICE: cuda\\n\",\n      \"[Dataset] - # phone classes: 41, number of utterances for train: 3257\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"3257it [00:03, 1026.81it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[INFO] train set\\n\",\n      \"torch.Size([2007632, 819])\\n\",\n      \"torch.Size([2007632])\\n\",\n      \"[Dataset] - # phone classes: 41, number of utterances for val: 172\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"172it [00:00, 991.69it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[INFO] val set\\n\",\n      \"torch.Size([109162, 819])\\n\",\n      \"torch.Size([109162])\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from torch.utils.data import DataLoader\\n\",\n    \"import gc\\n\",\n    \"\\n\",\n    \"same_seeds(seed)\\n\",\n    \"device = 'cuda' if torch.cuda.is_available() else 'cpu'\\n\",\n    \"print(f'DEVICE: {device}')\\n\",\n    \"\\n\",\n    \"# Preprocess data\\n\",\n    \"train_X, train_y = preprocess_data(split='train', feat_dir='./libriphone/feat', phone_path='./libriphone', concat_nframes=concat_nframes, train_ratio=train_ratio, random_seed=seed)\\n\",\n    \"val_X, val_y = preprocess_data(split='val', feat_dir='./libriphone/feat', phone_path='./libriphone', concat_nframes=concat_nframes, train_ratio=train_ratio, random_seed=seed)\\n\",\n    \"\\n\",\n    \"# Get dataset\\n\",\n    \"train_set = LibriDataset(train_X, train_y)\\n\",\n    \"val_set = LibriDataset(val_X, val_y)\\n\",\n    \"\\n\",\n    \"# Remove raw feature to save memory\\n\",\n    \"del train_X, train_y, val_X, val_y\\n\",\n    \"gc.collect()\\n\",\n    \"\\n\",\n    \"# Get dataloader\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True)\\n\",\n    \"val_loader = DataLoader(val_set, batch_size=batch_size, shuffle=False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pwWH1KIqzxEr\"\n   },\n   \"source\": [\n    \"# Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"CdMWsBs7zzNs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:28<00:00, 137.37it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 200.25it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[001/015] Train Acc: 0.60141 Loss: 1.29663 | Val Acc: 0.66148 loss: 1.07313\\n\",\n      \"saving model with acc 0.66148\\n\",\n      \"1 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 146.95it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 200.57it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[002/015] Train Acc: 0.65867 Loss: 1.08783 | Val Acc: 0.68738 loss: 0.98166\\n\",\n      \"saving model with acc 0.68738\\n\",\n      \"2 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 146.91it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 195.51it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[003/015] Train Acc: 0.68086 Loss: 1.01169 | Val Acc: 0.69976 loss: 0.93793\\n\",\n      \"saving model with acc 0.69976\\n\",\n      \"3 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.15it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 200.29it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[004/015] Train Acc: 0.69364 Loss: 0.96641 | Val Acc: 0.70617 loss: 0.91173\\n\",\n      \"saving model with acc 0.70617\\n\",\n      \"4 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 146.43it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 200.32it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[005/015] Train Acc: 0.70306 Loss: 0.93281 | Val Acc: 0.71353 loss: 0.88949\\n\",\n      \"saving model with acc 0.71353\\n\",\n      \"5 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.36it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 206.16it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[006/015] Train Acc: 0.71054 Loss: 0.90720 | Val Acc: 0.71871 loss: 0.87763\\n\",\n      \"saving model with acc 0.71871\\n\",\n      \"6 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.66it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 200.11it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[007/015] Train Acc: 0.71565 Loss: 0.88763 | Val Acc: 0.72075 loss: 0.86572\\n\",\n      \"saving model with acc 0.72075\\n\",\n      \"7 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.42it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 201.18it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[008/015] Train Acc: 0.72075 Loss: 0.87027 | Val Acc: 0.72478 loss: 0.85883\\n\",\n      \"saving model with acc 0.72478\\n\",\n      \"8 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.44it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 201.20it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[009/015] Train Acc: 0.72452 Loss: 0.85762 | Val Acc: 0.72654 loss: 0.85334\\n\",\n      \"saving model with acc 0.72654\\n\",\n      \"9 lr: 0.001\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.10it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 200.62it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[010/015] Train Acc: 0.73125 Loss: 0.83234 | Val Acc: 0.73024 loss: 0.84064\\n\",\n      \"saving model with acc 0.73024\\n\",\n      \"10 lr: 0.0008\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.85it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 206.59it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[011/015] Train Acc: 0.73514 Loss: 0.81942 | Val Acc: 0.73024 loss: 0.83678\\n\",\n      \"saving model with acc 0.73024\\n\",\n      \"11 lr: 0.0008\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.95it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 201.13it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[012/015] Train Acc: 0.73723 Loss: 0.81176 | Val Acc: 0.73299 loss: 0.83120\\n\",\n      \"saving model with acc 0.73299\\n\",\n      \"12 lr: 0.0008\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 148.23it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 200.75it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[013/015] Train Acc: 0.73926 Loss: 0.80464 | Val Acc: 0.73271 loss: 0.82860\\n\",\n      \"13 lr: 0.0008\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.10it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 195.51it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[014/015] Train Acc: 0.74099 Loss: 0.79797 | Val Acc: 0.73405 loss: 0.82708\\n\",\n      \"saving model with acc 0.73405\\n\",\n      \"14 lr: 0.0008\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 3922/3922 [00:26<00:00, 147.28it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████| 214/214 [00:01<00:00, 201.14it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[015/015] Train Acc: 0.74299 Loss: 0.79146 | Val Acc: 0.73589 loss: 0.82056\\n\",\n      \"saving model with acc 0.73589\\n\",\n      \"15 lr: 0.0008\\n\",\n      \"saving model with acc 0.73589\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"## For plotting learning curve\\n\",\n    \"from torch.utils.tensorboard import SummaryWriter\\n\",\n    \"\\n\",\n    \"writer = SummaryWriter() # Tensorboard 画图，结果存储在 ./runs 中\\n\",\n    \"\\n\",\n    \"RESUME = False  # 是否导入模型继续跑（在你不小心中断了内核后）\\n\",\n    \"\\n\",\n    \"# Create a model, and put it on the device specified.\\n\",\n    \"model = Classifier(input_dim=input_dim, hidden_layers=hidden_layers, hidden_dim=hidden_dim).to(device)\\n\",\n    \"\\n\",\n    \"if RESUME:\\n\",\n    \"    model.load_state_dict(torch.load(model_path, map_location='cuda'))\\n\",\n    \"\\n\",\n    \"# Define a loss function, and optimizer\\n\",\n    \"criterion = nn.CrossEntropyLoss() \\n\",\n    \"optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)\\n\",\n    \"\\n\",\n    \"# Create a learning rate scheduler\\n\",\n    \"scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.8, patience=5, threshold=0.05) # 5 轮没有优化（增长率 < threshold)就令 lr *= factor\\n\",\n    \"\\n\",\n    \"best_acc = 0.0\\n\",\n    \"for epoch in range(num_epoch):\\n\",\n    \"    train_acc = 0.0\\n\",\n    \"    train_loss = 0.0\\n\",\n    \"    val_acc = 0.0\\n\",\n    \"    val_loss = 0.0\\n\",\n    \"\\n\",\n    \"    # ---------- Training ----------\\n\",\n    \"    # Make sure the model is in train mode before training.\\n\",\n    \"    model.train()\\n\",\n    \"    \\n\",\n    \"    for i, batch in enumerate(tqdm(train_loader)):\\n\",\n    \"        \\n\",\n    \"        # A batch consists of features data and corresponding labels.\\n\",\n    \"        features, labels = batch  # feature.shape: (batch_size, seq_len * input_size)\\n\",\n    \"        \\n\",\n    \"        # Forward the data. (Make sure data and model are on the same device.)\\n\",\n    \"        features = features.to(device)\\n\",\n    \"        # TODO: RNN则取消注释下行\\n\",\n    \"        #features = features.view(-1, concat_nframes, 39).to(device) # feature.shape: (batch_size, seq_len, input_size)    \\n\",\n    \"        labels = labels.to(device)\\n\",\n    \"    \\n\",\n    \"        outputs = model(features) # (batch_size, labels)\\n\",\n    \"        \\n\",\n    \"        # Calculate the cross-entropy loss.\\n\",\n    \"        # We don't need to apply softmax before computing cross-entropy as it is done automatically.\\n\",\n    \"        loss = criterion(outputs, labels)\\n\",\n    \"        \\n\",\n    \"        # Gradients stored in the parameters in the previous step should be cleared out first.\\n\",\n    \"        optimizer.zero_grad() \\n\",\n    \"        \\n\",\n    \"        # Compute the gradients for parameters.\\n\",\n    \"        loss.backward() \\n\",\n    \"        \\n\",\n    \"        # Update the parameters with computed gradients.\\n\",\n    \"        optimizer.step() \\n\",\n    \"        \\n\",\n    \"        # Get the index of the class with the highest probability\\n\",\n    \"        _, train_pred = torch.max(outputs, 1) \\n\",\n    \"\\n\",\n    \"        # Compute the accuracy for current batch.\\n\",\n    \"        train_acc += (train_pred.detach() == labels.detach()).sum().item()\\n\",\n    \"        train_loss += loss.item()\\n\",\n    \"\\n\",\n    \"    # ---------- Validation ----------\\n\",\n    \"    # Make sure the model is in eval mode so that some modules like dropout are disabled and work normally.\\n\",\n    \"    model.eval()\\n\",\n    \"    \\n\",\n    \"    # We don't need gradient in validation.\\n\",\n    \"    # Using torch.no_grad() accelerates the forward process.    \\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, batch in enumerate(tqdm(val_loader)):\\n\",\n    \"            features, labels = batch\\n\",\n    \"            features = features.to(device)\\n\",\n    \"            # TODO: RNN则取消注释下行\\n\",\n    \"            #features = features.view(-1, concat_nframes, 39).to(device)\\n\",\n    \"            labels = labels.to(device)\\n\",\n    \"            outputs = model(features)\\n\",\n    \"\\n\",\n    \"            # We can still compute the loss (but not the gradient).\\n\",\n    \"            loss = criterion(outputs, labels) \\n\",\n    \"\\n\",\n    \"            # Get the index of the class with the highest probability\\n\",\n    \"            _, val_pred = torch.max(outputs, 1) \\n\",\n    \"            \\n\",\n    \"            # Compute the accuracy for current batch.\\n\",\n    \"            val_acc += (val_pred.cpu() == labels.cpu()).sum().item()\\n\",\n    \"            val_loss += loss.item()\\n\",\n    \"            \\n\",\n    \"    # Record the accuracy and lr.\\n\",\n    \"    writer.add_scalar('Acc/train', train_acc/len(train_set), epoch)\\n\",\n    \"    writer.add_scalar('Acc/valid', val_acc/len(val_set), epoch)\\n\",\n    \"    writer.add_scalar('lr', optimizer.state_dict()['param_groups'][0]['lr'], epoch)\\n\",\n    \"\\n\",\n    \"    # Print the information.\\n\",\n    \"    print(f'[{epoch+1:03d}/{num_epoch:03d}] Train Acc: {train_acc/len(train_set):3.5f} Loss: {train_loss/len(train_loader):3.5f} | Val Acc: {val_acc/len(val_set):3.5f} loss: {val_loss/len(val_loader):3.5f}')\\n\",\n    \"\\n\",\n    \"    # If the model improves, save a checkpoint at this epoch\\n\",\n    \"    if val_acc > best_acc:\\n\",\n    \"        best_acc = val_acc\\n\",\n    \"        torch.save(model.state_dict(), model_path)\\n\",\n    \"        print(f'saving model with acc {best_acc/len(val_set):.5f}')\\n\",\n    \"\\n\",\n    \"    print(f\\\"{epoch+1} lr: {optimizer.state_dict()['param_groups'][0]['lr']}\\\")\\n\",\n    \"    \\n\",\n    \"    # Update learning rate based on best loss\\n\",\n    \"    # Modify step() according to your scheduler\\n\",\n    \"    scheduler.step(val_acc/len(val_set))\\n\",\n    \"\\n\",\n    \"print(f'saving model with acc {best_acc/len(val_set):.5f}')\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"ERROR: Failed to launch TensorBoard (exited with 1).\\n\",\n       \"Contents of stderr:\\n\",\n       \"TensorFlow installation not found - running with reduced feature set.\\n\",\n       \"\\n\",\n       \"NOTE: Using experimental fast data loading logic. To disable, pass\\n\",\n       \"    \\\"--load_fast=false\\\" and report issues on GitHub. More details:\\n\",\n       \"    https://github.com/tensorflow/tensorboard/issues/4784\\n\",\n       \"\\n\",\n       \"Address already in use\\n\",\n       \"Port 6006 is in use by another program. Either identify and stop that program, or start the server with a different port.\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"%reload_ext tensorboard\\n\",\n    \"%tensorboard --logdir=./runs/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-07T10:18:47.085697Z\",\n     \"start_time\": \"2023-04-07T10:18:47.065320Z\"\n    },\n    \"id\": \"ab33MxosWLmG\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"25\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"del train_set, val_set\\n\",\n    \"del train_loader, val_loader\\n\",\n    \"gc.collect()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1Hi7jTn3PX-m\"\n   },\n   \"source\": [\n    \"# Testing\\n\",\n    \"Create a testing dataset, and load model from the saved checkpoint.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"VOG1Ou0PGrhc\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[Dataset] - # phone classes: 41, number of utterances for test: 857\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"857it [00:00, 1057.77it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[INFO] test set\\n\",\n      \"torch.Size([527364, 819])\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# load data\\n\",\n    \"test_X = preprocess_data(split='test', feat_dir='./libriphone/feat', phone_path='./libriphone', concat_nframes=concat_nframes)\\n\",\n    \"test_set = LibriDataset(test_X, None)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"ay0Fu8Ovkdad\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<All keys matched successfully>\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# load model\\n\",\n    \"model = Classifier(input_dim=input_dim, hidden_layers=hidden_layers, hidden_dim=hidden_dim).to(device)\\n\",\n    \"model.load_state_dict(torch.load(model_path))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zp-DV1p4r7Nz\"\n   },\n   \"source\": [\n    \"Make prediction.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"84HU5GGjPqR0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████████████████████████████████████████████████████| 1031/1031 [00:02<00:00, 378.35it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"pred = np.array([], dtype=np.int32)\\n\",\n    \"\\n\",\n    \"model.eval()\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for i, batch in enumerate(tqdm(test_loader)):\\n\",\n    \"        features = batch\\n\",\n    \"        features = features.to(device)\\n\",\n    \"#         features = features.view(-1, concat_nframes, 39).to(device)\\n\",\n    \"\\n\",\n    \"        outputs = model(features)\\n\",\n    \"\\n\",\n    \"        _, test_pred = torch.max(outputs, 1) # get the index of the class with the highest probability\\n\",\n    \"        pred = np.concatenate((pred, test_pred.cpu().numpy()), axis=0)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"wyZqy40Prz0v\"\n   },\n   \"source\": [\n    \"Write prediction to a CSV file.\\n\",\n    \"\\n\",\n    \"After finish running this block, download the file `prediction.csv` from the files section on the left-hand side and submit it to Kaggle.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"GuljYSPHcZir\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"with open('prediction.csv', 'w') as f:\\n\",\n    \"    f.write('Id,Class\\\\n')\\n\",\n    \"    for i, y in enumerate(pred):\\n\",\n    \"        f.write('{},{}\\\\n'.format(i, y))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"toc\": {\n   \"base_numbering\": 1,\n   \"nav_menu\": {},\n   \"number_sections\": true,\n   \"sideBar\": true,\n   \"skip_h1_title\": false,\n   \"title_cell\": \"Table of Contents\",\n   \"title_sidebar\": \"Contents\",\n   \"toc_cell\": false,\n   \"toc_position\": {},\n   \"toc_section_display\": true,\n   \"toc_window_display\": false\n  },\n  \"varInspector\": {\n   \"cols\": {\n    \"lenName\": 16,\n    \"lenType\": 16,\n    \"lenVar\": 40\n   },\n   \"kernels_config\": {\n    \"python\": {\n     \"delete_cmd_postfix\": \"\",\n     \"delete_cmd_prefix\": \"del \",\n     \"library\": \"var_list.py\",\n     \"varRefreshCmd\": \"print(var_dic_list())\"\n    },\n    \"r\": {\n     \"delete_cmd_postfix\": \") \",\n     \"delete_cmd_prefix\": \"rm(\",\n     \"library\": \"var_list.r\",\n     \"varRefreshCmd\": \"cat(var_dic_list()) \"\n    }\n   },\n   \"types_to_exclude\": [\n    \"module\",\n    \"function\",\n    \"builtin_function_or_method\",\n    \"instance\",\n    \"_Feature\"\n   ],\n   \"window_display\": false\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW02/HW02_Sample_Code.ipynb",
    "content": "{\n  \"cells\": [\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"OYlaRwNu7ojq\"\n      },\n      \"source\": [\n        \"# **Homework 2: Phoneme Classification**\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"Objectives:\\n\",\n        \"* Solve a classification problem with deep neural networks (DNNs).\\n\",\n        \"* Understand recursive neural networks (RNNs).\\n\",\n        \"\\n\",\n        \"If you have any questions, please contact the TAs via TA hours, NTU COOL, or email to mlta-2023-spring@googlegroups.com\"\n      ],\n      \"metadata\": {\n        \"id\": \"A7DRC5V7_8A5\"\n      }\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"KVUGfWTo7_Oj\"\n      },\n      \"source\": [\n        \"# Download Data\\n\",\n        \"Download data from google drive, then unzip it.\\n\",\n        \"\\n\",\n        \"You should have\\n\",\n        \"- `libriphone/train_split.txt`: training metadata\\n\",\n        \"- `libriphone/train_labels`: training labels\\n\",\n        \"- `libriphone/test_split.txt`: testing metadata\\n\",\n        \"- `libriphone/feat/train/*.pt`: training feature\\n\",\n        \"- `libriphone/feat/test/*.pt`:  testing feature\\n\",\n        \"\\n\",\n        \"after running the following block.\\n\",\n        \"\\n\",\n        \"> **Notes: if the google drive link is dead, you can download the data directly from [Kaggle](https://www.kaggle.com/c/ml2023spring-hw2/data) and upload it to the workspace.**\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"OzkiMEcC3Foq\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"!pip install --upgrade gdown\\n\",\n        \"\\n\",\n        \"# Main link\\n\",\n        \"# !gdown --id '1N1eVIDe9hKM5uiNRGmifBlwSDGiVXPJe' --output libriphone.zip\\n\",\n        \"!gdown --id '1qzCRnywKh30mTbWUEjXuNT2isOCAPdO1' --output libriphone.zip\\n\",\n        \"\\n\",\n        \"!unzip -q libriphone.zip\\n\",\n        \"!ls libriphone\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"# Some Utility Functions\\n\",\n        \"**Fixes random number generator seeds for reproducibility.**\"\n      ],\n      \"metadata\": {\n        \"id\": \"pADUiYODJE1O\"\n      }\n    },\n    {\n      \"cell_type\": \"code\",\n      \"source\": [\n        \"import numpy as np\\n\",\n        \"import torch\\n\",\n        \"import random\\n\",\n        \"\\n\",\n        \"def same_seeds(seed):\\n\",\n        \"    random.seed(seed)\\n\",\n        \"    np.random.seed(seed)\\n\",\n        \"    torch.manual_seed(seed)\\n\",\n        \"    if torch.cuda.is_available():\\n\",\n        \"        torch.cuda.manual_seed(seed)\\n\",\n        \"        torch.cuda.manual_seed_all(seed)\\n\",\n        \"    torch.backends.cudnn.benchmark = False\\n\",\n        \"    torch.backends.cudnn.deterministic = True\"\n      ],\n      \"metadata\": {\n        \"id\": \"BsZKgBZQJjaE\"\n      },\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"_L_4anls8Drv\"\n      },\n      \"source\": [\n        \"**Helper functions to pre-process the training data from raw MFCC features of each utterance.**\\n\",\n        \"\\n\",\n        \"A phoneme may span several frames and is dependent to past and future frames. \\\\\\n\",\n        \"Hence we concatenate neighboring phonemes for training to achieve higher accuracy. The **concat_feat** function concatenates past and future k frames (total 2k+1 = n frames), and we predict the center frame.\\n\",\n        \"\\n\",\n        \"Feel free to modify the data preprocess functions, but **do not drop any frame** (if you modify the functions, remember to check that the number of frames are the same as mentioned in the slides)\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"IJjLT8em-y9G\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import os\\n\",\n        \"import torch\\n\",\n        \"from tqdm import tqdm\\n\",\n        \"\\n\",\n        \"def load_feat(path):\\n\",\n        \"    feat = torch.load(path)\\n\",\n        \"    return feat\\n\",\n        \"\\n\",\n        \"def shift(x, n):\\n\",\n        \"    if n < 0:\\n\",\n        \"        left = x[0].repeat(-n, 1)\\n\",\n        \"        right = x[:n]\\n\",\n        \"    elif n > 0:\\n\",\n        \"        right = x[-1].repeat(n, 1)\\n\",\n        \"        left = x[n:]\\n\",\n        \"    else:\\n\",\n        \"        return x\\n\",\n        \"\\n\",\n        \"    return torch.cat((left, right), dim=0)\\n\",\n        \"\\n\",\n        \"def concat_feat(x, concat_n):\\n\",\n        \"    assert concat_n % 2 == 1 # n must be odd\\n\",\n        \"    if concat_n < 2:\\n\",\n        \"        return x\\n\",\n        \"    seq_len, feature_dim = x.size(0), x.size(1)\\n\",\n        \"    x = x.repeat(1, concat_n)\\n\",\n        \"    x = x.view(seq_len, concat_n, feature_dim).permute(1, 0, 2) # concat_n, seq_len, feature_dim\\n\",\n        \"    mid = (concat_n // 2)\\n\",\n        \"    for r_idx in range(1, mid+1):\\n\",\n        \"        x[mid + r_idx, :] = shift(x[mid + r_idx], r_idx)\\n\",\n        \"        x[mid - r_idx, :] = shift(x[mid - r_idx], -r_idx)\\n\",\n        \"\\n\",\n        \"    return x.permute(1, 0, 2).view(seq_len, concat_n * feature_dim)\\n\",\n        \"\\n\",\n        \"def preprocess_data(split, feat_dir, phone_path, concat_nframes, train_ratio=0.8, random_seed=1213):\\n\",\n        \"    class_num = 41 # NOTE: pre-computed, should not need change\\n\",\n        \"\\n\",\n        \"    if split == 'train' or split == 'val':\\n\",\n        \"        mode = 'train'\\n\",\n        \"    elif split == 'test':\\n\",\n        \"        mode = 'test'\\n\",\n        \"    else:\\n\",\n        \"        raise ValueError('Invalid \\\\'split\\\\' argument for dataset: PhoneDataset!')\\n\",\n        \"\\n\",\n        \"    label_dict = {}\\n\",\n        \"    if mode == 'train':\\n\",\n        \"        for line in open(os.path.join(phone_path, f'{mode}_labels.txt')).readlines():\\n\",\n        \"            line = line.strip('\\\\n').split(' ')\\n\",\n        \"            label_dict[line[0]] = [int(p) for p in line[1:]]\\n\",\n        \"\\n\",\n        \"        # split training and validation data\\n\",\n        \"        usage_list = open(os.path.join(phone_path, 'train_split.txt')).readlines()\\n\",\n        \"        random.seed(random_seed)\\n\",\n        \"        random.shuffle(usage_list)\\n\",\n        \"        train_len = int(len(usage_list) * train_ratio)\\n\",\n        \"        usage_list = usage_list[:train_len] if split == 'train' else usage_list[train_len:]\\n\",\n        \"\\n\",\n        \"    elif mode == 'test':\\n\",\n        \"        usage_list = open(os.path.join(phone_path, 'test_split.txt')).readlines()\\n\",\n        \"\\n\",\n        \"    usage_list = [line.strip('\\\\n') for line in usage_list]\\n\",\n        \"    print('[Dataset] - # phone classes: ' + str(class_num) + ', number of utterances for ' + split + ': ' + str(len(usage_list)))\\n\",\n        \"\\n\",\n        \"    max_len = 3000000\\n\",\n        \"    X = torch.empty(max_len, 39 * concat_nframes)\\n\",\n        \"    if mode == 'train':\\n\",\n        \"        y = torch.empty(max_len, dtype=torch.long)\\n\",\n        \"\\n\",\n        \"    idx = 0\\n\",\n        \"    for i, fname in tqdm(enumerate(usage_list)):\\n\",\n        \"        feat = load_feat(os.path.join(feat_dir, mode, f'{fname}.pt'))\\n\",\n        \"        cur_len = len(feat)\\n\",\n        \"        feat = concat_feat(feat, concat_nframes)\\n\",\n        \"        if mode == 'train':\\n\",\n        \"          label = torch.LongTensor(label_dict[fname])\\n\",\n        \"\\n\",\n        \"        X[idx: idx + cur_len, :] = feat\\n\",\n        \"        if mode == 'train':\\n\",\n        \"          y[idx: idx + cur_len] = label\\n\",\n        \"\\n\",\n        \"        idx += cur_len\\n\",\n        \"\\n\",\n        \"    X = X[:idx, :]\\n\",\n        \"    if mode == 'train':\\n\",\n        \"      y = y[:idx]\\n\",\n        \"\\n\",\n        \"    print(f'[INFO] {split} set')\\n\",\n        \"    print(X.shape)\\n\",\n        \"    if mode == 'train':\\n\",\n        \"      print(y.shape)\\n\",\n        \"      return X, y\\n\",\n        \"    else:\\n\",\n        \"      return X\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"us5XW_x6udZQ\"\n      },\n      \"source\": [\n        \"# Dataset\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"Fjf5EcmJtf4e\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import torch\\n\",\n        \"from torch.utils.data import Dataset\\n\",\n        \"\\n\",\n        \"class LibriDataset(Dataset):\\n\",\n        \"    def __init__(self, X, y=None):\\n\",\n        \"        self.data = X\\n\",\n        \"        if y is not None:\\n\",\n        \"            self.label = torch.LongTensor(y)\\n\",\n        \"        else:\\n\",\n        \"            self.label = None\\n\",\n        \"\\n\",\n        \"    def __getitem__(self, idx):\\n\",\n        \"        if self.label is not None:\\n\",\n        \"            return self.data[idx], self.label[idx]\\n\",\n        \"        else:\\n\",\n        \"            return self.data[idx]\\n\",\n        \"\\n\",\n        \"    def __len__(self):\\n\",\n        \"        return len(self.data)\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"IRqKNvNZwe3V\"\n      },\n      \"source\": [\n        \"# Model\\n\",\n        \"Feel free to modify the structure of the model.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"Bg-GRd7ywdrL\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import torch.nn as nn\\n\",\n        \"\\n\",\n        \"class BasicBlock(nn.Module):\\n\",\n        \"    def __init__(self, input_dim, output_dim):\\n\",\n        \"        super(BasicBlock, self).__init__()\\n\",\n        \"\\n\",\n        \"        # TODO: apply batch normalization and dropout for strong baseline.\\n\",\n        \"        # Reference: https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm1d.html (batch normalization)\\n\",\n        \"        #       https://pytorch.org/docs/stable/generated/torch.nn.Dropout.html (dropout)\\n\",\n        \"        self.block = nn.Sequential(\\n\",\n        \"            nn.Linear(input_dim, output_dim),\\n\",\n        \"            nn.ReLU(),\\n\",\n        \"        )\\n\",\n        \"\\n\",\n        \"    def forward(self, x):\\n\",\n        \"        x = self.block(x)\\n\",\n        \"        return x\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"class Classifier(nn.Module):\\n\",\n        \"    def __init__(self, input_dim, output_dim=41, hidden_layers=1, hidden_dim=256):\\n\",\n        \"        super(Classifier, self).__init__()\\n\",\n        \"\\n\",\n        \"        self.fc = nn.Sequential(\\n\",\n        \"            BasicBlock(input_dim, hidden_dim),\\n\",\n        \"            *[BasicBlock(hidden_dim, hidden_dim) for _ in range(hidden_layers)],\\n\",\n        \"            nn.Linear(hidden_dim, output_dim)\\n\",\n        \"        )\\n\",\n        \"\\n\",\n        \"    def forward(self, x):\\n\",\n        \"        x = self.fc(x)\\n\",\n        \"        return x\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"# Hyper-parameters\"\n      ],\n      \"metadata\": {\n        \"id\": \"TlIq8JeqvvHC\"\n      }\n    },\n    {\n      \"cell_type\": \"code\",\n      \"source\": [\n        \"# data prarameters\\n\",\n        \"# TODO: change the value of \\\"concat_nframes\\\" for medium baseline\\n\",\n        \"concat_nframes = 3   # the number of frames to concat with, n must be odd (total 2k+1 = n frames)\\n\",\n        \"train_ratio = 0.75   # the ratio of data used for training, the rest will be used for validation\\n\",\n        \"\\n\",\n        \"# training parameters\\n\",\n        \"seed = 1213          # random seed\\n\",\n        \"batch_size = 512        # batch size\\n\",\n        \"num_epoch = 10         # the number of training epoch\\n\",\n        \"learning_rate = 1e-4      # learning rate\\n\",\n        \"model_path = './model.ckpt'  # the path where the checkpoint will be saved\\n\",\n        \"\\n\",\n        \"# model parameters\\n\",\n        \"# TODO: change the value of \\\"hidden_layers\\\" or \\\"hidden_dim\\\" for medium baseline\\n\",\n        \"input_dim = 39 * concat_nframes  # the input dim of the model, you should not change the value\\n\",\n        \"hidden_layers = 2          # the number of hidden layers\\n\",\n        \"hidden_dim = 64           # the hidden dim\"\n      ],\n      \"metadata\": {\n        \"id\": \"iIHn79Iav1ri\"\n      },\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"# Dataloader\"\n      ],\n      \"metadata\": {\n        \"id\": \"IIUFRgG5yoDn\"\n      }\n    },\n    {\n      \"cell_type\": \"code\",\n      \"source\": [\n        \"from torch.utils.data import DataLoader\\n\",\n        \"import gc\\n\",\n        \"\\n\",\n        \"same_seeds(seed)\\n\",\n        \"device = 'cuda' if torch.cuda.is_available() else 'cpu'\\n\",\n        \"print(f'DEVICE: {device}')\\n\",\n        \"\\n\",\n        \"# preprocess data\\n\",\n        \"train_X, train_y = preprocess_data(split='train', feat_dir='./libriphone/feat', phone_path='./libriphone', concat_nframes=concat_nframes, train_ratio=train_ratio, random_seed=seed)\\n\",\n        \"val_X, val_y = preprocess_data(split='val', feat_dir='./libriphone/feat', phone_path='./libriphone', concat_nframes=concat_nframes, train_ratio=train_ratio, random_seed=seed)\\n\",\n        \"\\n\",\n        \"# get dataset\\n\",\n        \"train_set = LibriDataset(train_X, train_y)\\n\",\n        \"val_set = LibriDataset(val_X, val_y)\\n\",\n        \"\\n\",\n        \"# remove raw feature to save memory\\n\",\n        \"del train_X, train_y, val_X, val_y\\n\",\n        \"gc.collect()\\n\",\n        \"\\n\",\n        \"# get dataloader\\n\",\n        \"train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True)\\n\",\n        \"val_loader = DataLoader(val_set, batch_size=batch_size, shuffle=False)\"\n      ],\n      \"metadata\": {\n        \"id\": \"c1zI3v5jyrDn\"\n      },\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"# Training\"\n      ],\n      \"metadata\": {\n        \"id\": \"pwWH1KIqzxEr\"\n      }\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"CdMWsBs7zzNs\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# create model, define a loss function, and optimizer\\n\",\n        \"model = Classifier(input_dim=input_dim, hidden_layers=hidden_layers, hidden_dim=hidden_dim).to(device)\\n\",\n        \"criterion = nn.CrossEntropyLoss()\\n\",\n        \"optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)\\n\",\n        \"\\n\",\n        \"best_acc = 0.0\\n\",\n        \"for epoch in range(num_epoch):\\n\",\n        \"    train_acc = 0.0\\n\",\n        \"    train_loss = 0.0\\n\",\n        \"    val_acc = 0.0\\n\",\n        \"    val_loss = 0.0\\n\",\n        \"\\n\",\n        \"    # training\\n\",\n        \"    model.train() # set the model to training mode\\n\",\n        \"    for i, batch in enumerate(tqdm(train_loader)):\\n\",\n        \"        features, labels = batch\\n\",\n        \"        features = features.to(device)\\n\",\n        \"        labels = labels.to(device)\\n\",\n        \"\\n\",\n        \"        optimizer.zero_grad()\\n\",\n        \"        outputs = model(features)\\n\",\n        \"\\n\",\n        \"        loss = criterion(outputs, labels)\\n\",\n        \"        loss.backward()\\n\",\n        \"        optimizer.step()\\n\",\n        \"\\n\",\n        \"        _, train_pred = torch.max(outputs, 1) # get the index of the class with the highest probability\\n\",\n        \"        train_acc += (train_pred.detach() == labels.detach()).sum().item()\\n\",\n        \"        train_loss += loss.item()\\n\",\n        \"\\n\",\n        \"    # validation\\n\",\n        \"    model.eval() # set the model to evaluation mode\\n\",\n        \"    with torch.no_grad():\\n\",\n        \"        for i, batch in enumerate(tqdm(val_loader)):\\n\",\n        \"            features, labels = batch\\n\",\n        \"            features = features.to(device)\\n\",\n        \"            labels = labels.to(device)\\n\",\n        \"            outputs = model(features)\\n\",\n        \"\\n\",\n        \"            loss = criterion(outputs, labels)\\n\",\n        \"\\n\",\n        \"            _, val_pred = torch.max(outputs, 1)\\n\",\n        \"            val_acc += (val_pred.cpu() == labels.cpu()).sum().item() # get the index of the class with the highest probability\\n\",\n        \"            val_loss += loss.item()\\n\",\n        \"\\n\",\n        \"    print(f'[{epoch+1:03d}/{num_epoch:03d}] Train Acc: {train_acc/len(train_set):3.5f} Loss: {train_loss/len(train_loader):3.5f} | Val Acc: {val_acc/len(val_set):3.5f} loss: {val_loss/len(val_loader):3.5f}')\\n\",\n        \"\\n\",\n        \"    # if the model improves, save a checkpoint at this epoch\\n\",\n        \"    if val_acc > best_acc:\\n\",\n        \"        best_acc = val_acc\\n\",\n        \"        torch.save(model.state_dict(), model_path)\\n\",\n        \"        print(f'saving model with acc {best_acc/len(val_set):.5f}')\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"ab33MxosWLmG\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"del train_set, val_set\\n\",\n        \"del train_loader, val_loader\\n\",\n        \"gc.collect()\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"1Hi7jTn3PX-m\"\n      },\n      \"source\": [\n        \"# Testing\\n\",\n        \"Create a testing dataset, and load model from the saved checkpoint.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"VOG1Ou0PGrhc\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# load data\\n\",\n        \"test_X = preprocess_data(split='test', feat_dir='./libriphone/feat', phone_path='./libriphone', concat_nframes=concat_nframes)\\n\",\n        \"test_set = LibriDataset(test_X, None)\\n\",\n        \"test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False)\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"ay0Fu8Ovkdad\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# load model\\n\",\n        \"model = Classifier(input_dim=input_dim, hidden_layers=hidden_layers, hidden_dim=hidden_dim).to(device)\\n\",\n        \"model.load_state_dict(torch.load(model_path))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"zp-DV1p4r7Nz\"\n      },\n      \"source\": [\n        \"Make prediction.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"84HU5GGjPqR0\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"pred = np.array([], dtype=np.int32)\\n\",\n        \"\\n\",\n        \"model.eval()\\n\",\n        \"with torch.no_grad():\\n\",\n        \"    for i, batch in enumerate(tqdm(test_loader)):\\n\",\n        \"        features = batch\\n\",\n        \"        features = features.to(device)\\n\",\n        \"\\n\",\n        \"        outputs = model(features)\\n\",\n        \"\\n\",\n        \"        _, test_pred = torch.max(outputs, 1) # get the index of the class with the highest probability\\n\",\n        \"        pred = np.concatenate((pred, test_pred.cpu().numpy()), axis=0)\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"wyZqy40Prz0v\"\n      },\n      \"source\": [\n        \"Write prediction to a CSV file.\\n\",\n        \"\\n\",\n        \"After finish running this block, download the file `prediction.csv` from the files section on the left-hand side and submit it to Kaggle.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"GuljYSPHcZir\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"with open('prediction.csv', 'w') as f:\\n\",\n        \"    f.write('Id,Class\\\\n')\\n\",\n        \"    for i, y in enumerate(pred):\\n\",\n        \"        f.write('{},{}\\\\n'.format(i, y))\"\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"accelerator\": \"GPU\",\n    \"colab\": {\n      \"provenance\": []\n    },\n    \"kernelspec\": {\n      \"display_name\": \"Python 3\",\n      \"name\": \"python3\"\n    }\n  },\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0\n}"
  },
  {
    "path": "HW02/README.md",
    "content": ">  ML2023Spring - HW2 相关信息：\n>\n>  [课程主页](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php)\n>\n>  [课程视频](https://www.bilibili.com/video/BV1TD4y137mP/?spm_id_from=333.337.search-card.all.click&vd_source=436107f586d66ab4fcf756c76eb96c35)\n>\n>  [Kaggle link](https://www.kaggle.com/t/03ac116596a247219b5a8d7a8e2b800e)\n>\n>  [Sample code](https://colab.research.google.com/drive/1wzeiVy2g7HpSjlidUr0Gi50NnHBWTkvN#scrollTo=KVUGfWTo7_Oj)\n>\n>  [HW02 视频](https://www.bilibili.com/video/BV1TD4y137mP/?p=26&share_source=copy_web&vd_source=e46571d631061853c8f9eead71bdb390)\n>\n>  [HW02 PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW02+聽測.pdf)\n>\n>  P.S. 即便 kaggle 上的时间已经截止，你仍然可以在上面提交和查看分数。但需要注意的是：在 kaggle 截止日期前你应该选择两个结果进行最后的Private评分。\n>  每年的数据集size和feature并不完全相同，但基本一致，过去的代码仍可用于新一年的 Homework。\n\n# 目录\n* [任务目标（分类）](#任务目标分类)\n* [Metric](#metric)\n* [数据解析](#数据解析)\n   * [数据下载](#数据下载)\n* [Report](#report)\n   * [1](#1)\n      * [计算神经网络的参数量](#计算神经网络的参数量)\n      * [构建总参数量接近的神经网络](#构建总参数量接近的神经网络)\n   * [2](#2)\n* [Sample code 部分解析](#sample-code-部分解析)\n   * [Model](#model)\n   * [Hyper-parameters](#hyper-parameters)\n* [Baselines](#baselines)\n   * [Simple Baseline (0.49798)](#simple-baseline-049798)\n   * [Medium Baseline (0.66440)](#medium-baseline-066440)\n   * [Strong Baseline (0.74944)](#strong-baseline-074944)\n\t\t* [开始实验](#开始实验)\n\t\t   * [<strong>ReduceLROnPlateau()</strong>](#reducelronplateau)\n\t\t      * [学习率变化曲线](#学习率变化曲线)\n\t\t      * [实验数据](#实验数据)\n\t\t      * [<strong>Kaggle 分数: 0.74427</strong>](#kaggle-分数-074427)\n\t\t   * [<strong>CosineAnnealingLR()</strong>](#cosineannealinglr)\n\t\t      * [学习率变化曲线](#学习率变化曲线-1)\n\t\t      * [实验数据](#实验数据-1)\n\t\t      * [<strong>Kaggle 分数: 0.74391（没有提升）</strong>](#kaggle-分数-074391没有提升)\n\t\t   * [<strong>CosineAnnealingWarmRestarts()</strong>](#cosineannealingwarmrestarts)\n\t\t      * [学习率变化曲线](#学习率变化曲线-2)\n\t\t      * [实验结果](#实验结果)\n\t\t      * [<strong>Kaggle 分数: 0.74328（没有提升）</strong>](#kaggle-分数-074328没有提升)\n\t\t      * [T_0 *= 2](#t_0--2)\n\t\t\t * [学习率变化曲线](#学习率变化曲线-3)\n\t\t\t * [实验结果](#实验结果-1)\n\t\t\t * [<strong>Kaggle 分数: 0.74403（没有提升）</strong>](#kaggle-分数-074403没有提升)\n\t\t   * [<strong>no scheduler</strong>](#no-scheduler)\n\t\t      * [学习率变化曲线](#学习率变化曲线-4)\n\t\t      * [实验结果](#实验结果-2)\n\t\t      * [<strong>Kaggle 分数: 0.74408</strong>](#kaggle-分数-074408)\n\t\t   * [<strong>实验结果对比</strong>](#实验结果对比)\n\t\t* [修改 lr=2.5e-4，重新实验](#修改-lr25e-4重新实验)\n\t\t   * [<strong>实验结果对比</strong>](#实验结果对比-1)\n\t\t* [总结](#总结)\n   * [Boss Baseline (0.83017)](#boss-baseline-083017)\n* [参考链接](#参考链接)\n\n\n# 任务目标（分类）\n\n- Phoneme Classification 音素分类（识别）\n  ![源自 HW02 PDF](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230313162349.png)\n- 训练/测试数据大小：3429/857（2116794/527364 frames）每个 frames 25ms，相邻 frames 间隔 10ms，1s 可以划分出 100 个frames，单个 frames 最后被处理为 39 维的 MFCC (**Mel Frequency Cepstral Coefficients**)\n  ![源自 HW02 PDF](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230313163334.png)\n- Label：41，对应 phoneme\n\n# Metric\n\n 分类精度\n\n# 数据解析\n\n- train_split.txt: 其中每一行对应一个训练数据，其所对应的文件在feat/train/中\n  <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230314115316.png\" alt=\"image-20230314115316158\" style=\"zoom:50%;\" />\n- train_labels.txt: 由训练数据和labels组成，格式为: filename labels。其中，label 为 frame 对应的 phoneme\n  <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230314115336.png\" alt=\"image-20230314115336131\" style=\"zoom:50%;\" />\n- test_split.txt: 其中每一行对应一个训练数据，其所对应的文件在feat/test/中\n- feat/train/{id}.pt 和 feat/test/{id}.pt: 音频对应的 MFCC w/ CMVN，维度为39，这些文件可以通过torch.load()直接导入，导入后的shape为(T, 39)。\n  <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230314115729.png\" alt=\"image-20230314115729703\" style=\"zoom:50%;\" />\n\n数据来源于 [LibriSpeech ASR corpus (subset of train-clean-100)](https://www.openslr.org/12/): 100小时 \"clean\" 的演讲训练数据集子集（[数据源对应的论文](http://www.danielpovey.com/files/2015_icassp_librispeech.pdf)）\n\n## 数据下载\n\n> To use the Kaggle API, sign up for a Kaggle account at [https://www.kaggle.com](https://www.kaggle.com/). Then go to the 'Account' tab of your user profile (`https://www.kaggle.com/<username>/account`) and select 'Create API Token'. This will trigger the download of `kaggle.json`, a file containing your API credentials. Place this file in the location `~/.kaggle/kaggle.json` (on Windows in the location `C:\\Users\\<Windows-username>\\.kaggle\\kaggle.json` - you can check the exact location, sans drive, with `echo %HOMEPATH%`). You can define a shell environment variable `KAGGLE_CONFIG_DIR` to change this location to `$KAGGLE_CONFIG_DIR/kaggle.json` (on Windows it will be `%KAGGLE_CONFIG_DIR%\\kaggle.json`).\n>\n> -\\- [Official Kaggle API](https://github.com/Kaggle/kaggle-api)\n\n`gdown` 的链接总是挂，可以考虑使用 `kaggle` 的 `api`，流程非常简单，替换<username>为你自己的用户名，`https://www.kaggle.com/<username>/account`，然后点击 `Create New API Token`，将下载下来的文件放去应该放的位置：\n\n- Mac 和 Linux 放在 `~/.kaggle`\n- Windows 放在 `C:\\Users\\<Windows-username>\\.kaggle`\n\n```bash\npip install kaggle\n# 你需要先在 Kaggle -> Account -> Create New API Token 中下载 kaggle.json\n# mv kaggle.json ~/.kaggle/kaggle.json\nkaggle competitions download -c ml2023spring-hw2\nunzip ml2023spring-hw2\n```\n\n# Report\n\n> 注意到 HW02 有写报告的要求：\n>\n> 1. 实现两个参数量大致相同的模型，(A) 一个深窄的（例如，隐藏层数=6，隐藏维度=1024），(B) 一个浅宽的（例如，隐藏层数=2，隐藏维度=1750）。报告两个模型的训练/验证准确率。\n> 2. 添加dropout层，并分别报告dropout率为(A) 0.25/(B) 0.5/(C) 0.75时的训练/验证准确率。\n\n## 1\n\n这个视频片段能够让你更好的了解 Deep Network 和 Shallow network 的差异：[Why Deep Learning?]( https://www.bilibili.com/video/BV1Wv411h7kN/?p=33&share_source=copy_web&vd_source=e46571d631061853c8f9eead71bdb390&t=1560)\n\n### 计算神经网络的参数量\n\n先看看如何计算参数。\n\n对于全连接层来说，其单层的参数量为 `(输入维度 + 1) * 该层神经元个数`。这是因为全连接层的每个神经元都需要一个 `权重向量` 和一个 `偏置值` 来计算其输出，`权重向量` 的长度就是 `输入维度`，`偏置值` 是一个标量。\n\n若当前 `network` 有 `hidden_layers` 层 `hidden layer`，其中每层 `hidden_layer` 有 `hidden_dim` 维，则有：\n\n$Total\\_params = (input\\_dim + 1) * hidden\\_dim + (hidden\\_dim + 1)  * hidden\\_dim * (hidden\\_layers - 1) + (hidden\\_dim + 1) * output\\_dim$\n\n对于一个神经网络来说，其总参数量就是所有全连接层的参数量之和。例如，如果我们有一个神经网络，它有一个输入层（输入维度为 4），一个隐藏层（隐藏层神经元个数为 5），和一个输出层（输出维度为 3），那么它的总参数量就是：\n\n输入层到隐藏层的全连接层：$(4 + 1) * 5 = 25$\n隐藏层到输出层的全连接层：$(5 + 1) * 3 = 18$\n总参数量：$25 + 18 = 43$\n\n如下图所示：\n\n![图源自《动手学深度学习》](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230316155657.png)\n\n这里再举个例子说明：\n\n```python\nimport torch.nn as nn\n\ninput_dim = 8\nhidden_dim = 16\nhidden_layers = 2\noutput_dim = 8\n\n# 为了简洁，舍去了 Relu()\nnetwork = nn.Sequential(\n            nn.Linear(input_dim, hidden_dim),\n            # 在函数的调用中，一个 * 表示将一个序列展开为单独的位置参数，这一行代码是列表推导，最终的表现是重复生成多个 hidden layer\n            *[nn.Linear(hidden_dim, hidden_dim) for _ in range(hidden_layers-1)], \n            nn.Linear(hidden_dim, output_dim)\n        )\n# 打印总参数量\ntotal_params = (\n    (input_dim+1) * hidden_dim +\n    (hidden_dim + 1) * hidden_dim * (hidden_layers - 1) +\n    (hidden_dim + 1) * output_dim\n)\nprint(f'Total params: {total_params}')\n```\n```python\n>> Total params: 552\n```\n\n当然，实际上你可以直接使用 pytorch 中的函数进行打印\n```python\ntotal_params = sum(param.numel() for param in network.parameters())\nprint(f'Total params: {total_params}')\n```\n\n```python\n>> Total params: 552\n```\n进一步的，如果你想查看各层分别的参数量，你可以使用以下代码\n```python\nfor name, param in network.named_parameters():\n    print(name, param.numel())\n```\n   ```python\n0.weight 128\n0.bias 16\n1.weight 256\n1.bias 16\n2.weight 128\n2.bias 8\n   ```\n其中 `weight` 对应的是权重，`bias`是偏差。\n\n若`concat_nframes = 3`, `input_dim = 39 * concat_nframe = 117`,  `hidden_layers = 6`,  `hidden_dim = 64`, `output_dim = 41`，则总参数量为31017。\n\n`hidden_layers = 2` 的情况下，最接近的总参数量为：30890，对应的`hidden_dim`为113。\n\n但你需要注意的是，`concat_nframes` 是一个 `hyper-parameter`，需要根据实际情况调整，所以你也需要相应的对整个网络架构进行改变。\n\n### 构建总参数量接近的神经网络\n已知神经网络的总参数量由下式给出：\n$$Total\\_params = (input\\_dim + 1) * hidden\\_dim + (hidden\\_dim + 1)  * hidden\\_dim * (hidden\\_layers - 1) + (hidden\\_dim + 1) * output\\_dim$$\n\n为了符号简便，做以下简写：\n- $i = input\\_dim$\n- $o = output\\_dim$\n- $l = hidden\\_layers$\n- $d = hidden\\_dim$\n\n有：\n$$\nTotal\\_params = (i + 1) * d + (d + 1) * d * (l - 1) + (d + 1) * o\n$$\n进一步的，将其化成一元二次方程的形式，其中 $d$ 为自变量：\n$$\nTotal\\_params = (l - 1) * d^2 + (i + o + l) * d + o\n$$\n\n假设 $i, o, l, d$ 均为已知量，现在需要求：在输入输出维度不变的情况下，当 $dest\\_hidden\\_layers$ 给定时，隐藏层的维数等于多少才能让两个网络的总参数量接近？（$dest$ 代指我们要计算的目标网络）\n\n同样的，做以下简写：\n- $l_d = dest\\_hidden\\_layers$\n- $d_d = dest\\_hidden\\_dim$\n\n则有：\n$$\ndest\\_Total\\_params = (l_d - 1) * d_d^2 + (i + o + l_d) * d_d + o\n$$\n\n令 $dest\\_Total\\_params = Total\\_params$：\n$$\n(l_d - 1) * d_d^2 + (i + o + l_d) * d_d + o = (l - 1) * d^2 + (i + o + l) * d + o\\\\\\Downarrow\\\\\n(l_d - 1) * d_d^2 + (i + o + l_d) * d_d - (l - 1) * d^2 - (i + o + l) * d  = 0\n$$\n\n这实际上是一个一元二次方程，其中 $d_d$ 为自变量，其余均已知，可当作常数看待。令\n$$\na = l_d - 1，\\\\\nb = i + o + l_d，\\\\\nc = - (l - 1) * d^2 - (i + o + l) * d\n$$\n则上式可化成 \n$$\na * d_d^2 + b *d_d + c = 0\n$$\n由一元二次方程的求根公式\n$$\ny = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}\n$$\n有\n$$\nd_d = \\frac{-(i+o+l_d) \\pm \\sqrt{(i+o+l_d)^2 - 4(l_d-l)(-((l - 1) * d^2 - (i + o + l) * d))}}{2(l_d-l)}\n$$\n\n你可以通过调用下方代码中的 `get_dest_dim()`  获取目标网络隐藏层应该设置的维度。\n```python\ndef get_dest_dim(input_dim, output_dim, hidden_layers, dest_hidden_layers, hidden_dim):\n\t'''获取目标网络隐藏层的维度（总参数量接近于原网络）'''\n    # 计算一元二次方程的系数 a,b,c\n    a = dest_hidden_layers - 1  # a = l_d - 1\n    b = input_dim + output_dim + dest_hidden_layers  #  b = i + o + l_d\n    c = - (hidden_layers - 1) * (hidden_dim ** 2) - (input_dim + output_dim + hidden_layers) * hidden_dim  # c = - (l - 1) * (d ** 2) - (i + o + l) * d\n    \n    # 计算分子中的平方根部分，即 b^2-4ac\n    sqrt_part = (b ** 2) - 4 * a * c\n    \n    # 计算两个解，一个是加号，一个是减号，即(-b±√(b^2-4ac))/(2a)\n    d_d_plus = (-b + sqrt_part**(0.5)) / (2 * a)\n    d_d_minus = (-b - sqrt_part**(0.5)) / (2 * a)\n    \n    # 返回两个解的元组\n    return (d_d_plus, d_d_minus)\n\n# 设置你想要的目标网络隐藏层数量\ndest_hidden_layers = 2\n\n# 获取对应的维数\ndest_hidden_dim, _ = get_dest_dim(input_dim, output_dim, hidden_layers, dest_hidden_layers, hidden_dim)\nprint(f\"若将隐藏层网络层数改为: {dest_hidden_layers}，则维数应当改为: {round(dest_hidden_dim)}\",)\n```\n\n## 2\n\n`nn.Dropout(p=)` 在激活函数前/后增加都可以。\n\n# Sample code 部分解析\n\n## Model\n\n这里你可以随意的修改 `model` 的架构以达到 `strong baseline`。（原代码中有bug，我进行了修正）\n\n```python\nimport torch.nn as nn\n\nclass BasicBlock(nn.Module):\n    def __init__(self, input_dim, output_dim):\n        super(BasicBlock, self).__init__()\n\n        # TODO: apply batch normalization and dropout for strong baseline.\n        # Reference: https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm1d.html (batch normalization)\n        #       https://pytorch.org/docs/stable/generated/torch.nn.Dropout.html (dropout)\n        self.block = nn.Sequential(\n            nn.Linear(input_dim, output_dim),\n            # nn.BatchNorm1d()\n            nn.ReLU(),\n            # nn.Dropout()\n        )\n\n    def forward(self, x):\n        x = self.block(x)\n        return x\n\n\nclass Classifier(nn.Module):\n    def __init__(self, input_dim, output_dim=41, hidden_layers=1, hidden_dim=256):\n        super(Classifier, self).__init__()\n\n        self.fc = nn.Sequential(\n            BasicBlock(input_dim, hidden_dim),\n            # 在函数的调用中，一个 * 表示将一个序列展开为单独的位置参数，这一行代码是列表推导，最终的表现是重复生成多个 hidden layer\n            #（原来的整段代码实际上生成了 hidden_layers+1 个隐藏层，所以我修改了一下代码，让其符合定义）\n            *[BasicBlock(hidden_dim, hidden_dim) for _ in range(hidden_layers-1)], \n            nn.Linear(hidden_dim, output_dim)\n        )\n\n    def forward(self, x):\n        x = self.fc(x)\n        return x\n```\n\n\n\n## Hyper-parameters\n\n在这个模块中修改超参数，完成 `medium baseline`。\n\n```python\n# data prarameters\n# TODO: change the value of \"concat_nframes\" for medium baseline\nconcat_nframes = 3   # 拼接的总数量，应当为奇数，左右各拼接 concat_nframes/2 个 frames（非常重要的参数）\ntrain_ratio = 0.75   # 训练集的比例，\n\n# training parameters\nseed = 1213          # random seed\nbatch_size = 512        # batch size\nnum_epoch = 10         # the number of training epoch\nlearning_rate = 1e-4      # learning rate\nmodel_path = './model.ckpt'  # the path where the checkpoint will be saved\n\n# model parameters\n# TODO: change the value of \"hidden_layers\" or \"hidden_dim\" for medium baseline\ninput_dim = 39 * concat_nframes  # the input dim of the model, you should not change the value\nhidden_layers = 2          # the number of hidden layers\nhidden_dim = 64           # the hidden dim\n\n''' 以下是为了完成 report 所添加的代码 '''\n\n# 提前输出模型参数数量，以便调整网络架构\ntotal_params = (\n    (input_dim+1) * hidden_dim +\n    (hidden_dim + 1) * hidden_dim * (hidden_layers - 1) +\n    (hidden_dim + 1) * 41\n)\nprint(f'Total params: {total_params}')\n    \ndef get_dest_dim(input_dim, output_dim, hidden_layers, dest_hidden_layers, hidden_dim):\n    '''获取目标网络隐藏层的维度（总参数量接近于原网络）'''\n    # 计算一元二次方程的系数 a,b,c\n    a = dest_hidden_layers - 1  # a = l_d - 1\n    b = input_dim + output_dim + dest_hidden_layers  #  b = i + o + l_d\n    c = - (hidden_layers - 1) * (hidden_dim ** 2) - (input_dim + output_dim + hidden_layers) * hidden_dim  # c = - (l - 1) * (d ** 2) - (i + o + l) * d\n    \n    # 计算分子中的平方根部分，即 b^2-4ac\n    sqrt_part = (b ** 2) - 4 * a * c\n    \n    # 计算两个解，一个是加号，一个是减号，即(-b±√(b^2-4ac))/(2a)\n    d_d_plus = (-b + sqrt_part**(0.5)) / (2 * a)\n    d_d_minus = (-b - sqrt_part**(0.5)) / (2 * a)\n    \n    # 返回两个解的元组\n    return (d_d_plus, d_d_minus)\n\n# 设置你想要的目标网络隐藏层数量\ndest_hidden_layers = 9\n\n# 获取对应的维数\ndest_hidden_dim, _ = get_dest_dim(input_dim, 41, hidden_layers, dest_hidden_layers, hidden_dim)\nprint(f\"若将隐藏层网络层数改为: {dest_hidden_layers}，则维数应当改为: {round(dest_hidden_dim)}\",)\n```\n\n\n\n# Baselines\n\n根据作业 PDF 中的提示：\n\n## Simple Baseline (0.49798)\n\n- 运行所给的 sample code。\n\n## Medium Baseline (0.66440) \n\n- 连接 n 个frames。\n具体选择多少个 frames 呢？[HW02 PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW02+聽測.pdf) 中给出的样例是 11 个，查询[相关专业知识](https://www.phon.ucl.ac.uk/courses/spsci/spc/lab8.html)后有下表：\n![the phone names are in SAMPA format](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230318201347.png)\n![Table of Phoneme Durations in milliseconds](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230318200428.png)\n注意到英文中 phoneme 的持续时间都小于 11 个frames（11*25=275ms)。你可以根据专业知识自行选择，比如说你想再联系前后两个 phoneme 的信息来做预测，那设置成 15 也可以，这些由你自己去确定，从实验中获得更好的选择。\n- 增加网络的隐藏层。\n下图是我一开始记录的一些实验结果，仅简单的增加了层数和神经元个数便达到了 Medium Baseline（最终记录的是 Kaggle 上的分数），你可以根据自己的情况更进一步的优化它。\n![image-20230318212951814](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230318212951.png)\n\n\n## Strong Baseline (0.74944)\n\n- 在 BasicBlock() 中增加 batchnorm 和 dropout 层。\n\n- 增大 concat_nframes。\n\n\n  > [scheduler 的使用实验对比和总结（PyTorch）](https://blog.csdn.net/weixin_42426841/article/details/129716343)\n  >\n  > > 这是关于各 scheduler（**ReduceLROnPlateau()**，**CosineAnnealingLR()**，**CosineAnnealingWarmRestarts()**）使用的对比实验。\n  > >\n  > > 起因是为了在 Kaggle 上跑出更高的成绩，但结果确出乎我的意料，为了工作不白费，我决定将它们的结果重新可视化分享给你们。我一开始没有过多的修改初始配置，这篇文章的目的仅仅是为了给你展现不同 scheduler 下的学习率变化以及对实验结果的影响（片面的）。\n  > >\n  > > 时间原因我仅在这个[数据集](https://www.kaggle.com/competitions/ml2023spring-hw2/data)上跑了对比实验。\n  > >\n  > > 原本是想贴个链接的，想了想还是放在这方便查看。\n  >\n  > \n  >\n  > # 开始实验\n  >\n  > > 为了对比，每个 scheduler 都跑了 300 个epoch，可能不多，但也能看出些端倪。\n  > >\n  > > 这里贴一下我的其他参数，如果不需要做这个 HW，可以跳过这段往下看，并不影响。\n  > >\n  > > 跑 300 个 epoch 是因为在这个参数的设置（请勿模仿）下，大概到 300 就没有什么波动了。\n  > >\n  > > ```python\n  > > \"\"\"dropout(p=0.25)\"\"\"\n  > > \n  > > concat_nframes = 15   # the number of frames to concat with, n must be odd (total 2k+1 = n frames)\n  > > train_ratio = 0.95   # the ratio of data used for training, the rest will be used for validation\n  > > \n  > > # training parameters\n  > > seed = 1213          # random seed\n  > > batch_size = 512        # batch size\n  > > num_epoch = 300         # the number of training epoch\n  > > learning_rate =  5e-4     # learning rate\n  > > \n  > > hidden_layers = 6          # the number of hidden layers\n  > > hidden_dim = 512         # the hidden dim\n  > > ```\n  >\n  > 最初，我增加了一个自动调整 `learning_rate` 的 `scheduler`，选择的是 `torch.optim.lr_scheduler` 中的 `ReduceLROnPlateau()`。\n  >\n  > ## **ReduceLROnPlateau()**\n  >\n  > 先介绍一下参数方便理解：\n  >\n  > > `torch.optim.lr_scheduler.ReduceLROnPlateau`(*optimizer*, *mode='min'*, *factor=0.1*, *patience=10*, *threshold=0.0001*, *threshold_mode='rel'*, *cooldown=0*, *min_lr=0*, *eps=1e-08*, *verbose=False*)\n  > >\n  > > - `optimizer (Optimizer)` ：指定需要对哪个优化器对象进行学习率调整。\n  > > - `mode (str)`：指标的模式。可以是“min”或“max”。如果是“min”，那么当指标停止降低时将调整学习率；如果是“max”，那么当指标停止升高时将调整学习率。\n  > > - `factor (float)`：学习率缩小的因子。新学习率=旧学习率 * factor。注意，factor 不能大于1。\n  > > - `patience (int)`：如果指标没有改善，则等待多少个epoch来调整学习率。\n  > > - `threshold (float)`：指标的变化量阈值，如果小于此值，则将其视为没有改进。\n  > > - `threshold_mode (str)`：判断阈值的模式。可以是“rel”或“abs”。如果是“rel”，动态阈值等于最优值乘以(1+threshold)（在’max’模式下）或最优值乘以(1-threshold)（在’min’模式下）。在’abs’模式下，动态阈值等于最优值加上threshold（在’max’模式下）或最优值减去threshold（在’min’模式下）。\n  > > - `cooldown (int)`：表示在减小学习率之后等待几个epoch才能再次减小学习率。\n  > > - `min_lr (float or list)`：学习率的下限。\n  > > - `eps (float)`：表示应用于学习率的最小衰减量。如果新旧学习率之间的差异小于eps，则更新会被忽略。\n  > > - `verbose (bool)`：如果为True，则在调整学习率时打印更新的消息。\n  >\n  > ```python\n  > optimizer = torch.optim.Adam(model.parameters(), lr=5e-4)\t# 假设初始学习率为 5e-4\n  > scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.8, patience=10, threshold=0.001)  # 如果 10 个 epoch 后都没有提升，lr *= factor\n  > \n  > for epoch in range(num_epoch):\n  >     train(...)\t\t\t\t# 训练模型\n  >     validate(...)\t\t\t# 验证模型\n  >     scheduler.step(metric)\t# 根据 metric 更新学习率\n  > ```\n  >\n  > ### 学习率变化曲线\n  >\n  > <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322160525.png\" alt=\"learning rate\" style=\"zoom:50%;\" />\n  >\n  >\n  > ### 实验数据\n  >\n  > ![ReduceLROnPlateau](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322160417.png)\n  >\n  > ### **Kaggle 分数: 0.74427**\n  >\n  > 最初选择 `ReduceLROnPlateau()` 的原因是基于一个设想的较乐观的情况：只要慢慢减少学习率一定会收敛到优秀的解。\n  >\n  > 当时发现了好几种scheduler，但看到根据 epoch 变化 `learing rate` 的 `scheduler`（比如 `StepLR`，`ExponentialLR`），觉得完全不如根据实验结果动态变化的 `ReduceLROnPlateau` 便没有进行选择。\n  >\n  > 看到这里你应该仅仅对 ReduceLROnPlateau() 有了简单的认识，不妨继续往下看，看看实验对比。\n  >\n  > 在 `acc` 卡住后，我试图去寻找其他的 `scheduler`，看能不能让 `learning rate` 在中途变大跳出一些区域后再变小，然后发现还有周期性变化的 `scheduler`（比如 `CosineAnnealingLR`，`CyclicLR`），于是，我尝试修改成 `CosineAnnealingLR()`。\n  >\n  > ## **CosineAnnealingLR()**\n  >\n  > > `torch.optim.lr_scheduler.CosineAnnealingLR`(*optimizer*, *T_max*, *eta_min=0*, *last_epoch=- 1*, *verbose=False*)\n  > >\n  > > - `optimizer (Optimizer)` ：指定需要对哪个优化器对象进行学习率调整。\n  > > - `T_max (int)`: 表示半个周期的长度。例如，如果T_max=10，则学习率在第0个epoch时为最大值，在第0到第10个epoch之间以余弦函数形式逐渐减小，在第10个epoch时达到最小值，在第11到第20个epoch之间以余弦函数形式逐渐增大，在第20个epoch时回到最大值。\n  > > - `eta_min (float)`: 表示学习率的最小值，在学习率下降到这个值之后，就不再下降了。默认为0。\n  > > - `last_epoch (int)`: 表示上一次更新学习率的epoch索引。默认为-1，表示还没有开始训练。这个参数用于恢复训练时使用，可以将其设置为已经训练的epoch数减 1。\n  > > - `verbose (bool)`：如果为True，则在调整学习率时打印更新的消息。\n  >\n  > ```python\n  > optimizer = torch.optim.Adam(model.parameters(), lr=5e-4)\t# 假设初始学习率为 5e-4\n  > scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=10, eta_min=1e-7)\n  > \n  > for epoch in range(num_epoch):\n  >     train(...)\t\t\t\t# 训练模型\n  >     validate(...)\t\t\t# 验证模型\n  >     scheduler.step()\t\t# 更新学习率\n  > ```\n  >\n  > ### 学习率变化曲线\n  >\n  > <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322160614.png\" alt=\"learning rate\" style=\"zoom:50%;\" />\n  >\n  > ### 实验数据\n  >\n  > ![CosineAnnealingLR](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322160619.png)\n  >\n  > ### **Kaggle 分数: 0.74391（没有提升）**\n  >\n  > 这个 scheduler 中的 learning rate 变化曲线与余弦函数一致，但观察发现，CosineAnnealLR 的周期性变化似乎让收敛的过程变得曲折（多次实验效果都类似）。\n  >\n  > 观察 acc 和 lr 的变化：每一次 lr 逐步上升都会让 acc 下降。于是我想着有没有一种 scheduler，让 lr 跳过逐步上升的过程，于是找到了 CosineAnnealingWarmRestarts，这个 scheduler 会让 learning rate 在周期的最后瞬间上升 ，这个概念在李宏毅老师过去的视频中也有说到，即：warm restart。\n  >\n  > ## **CosineAnnealingWarmRestarts()**\n  >\n  > >`torch.optim.lr_scheduler.``CosineAnnealingWarmRestarts`(*optimizer*, *T_0*, *T_mult=1*, *eta_min=0*, *last_epoch=- 1*, *verbose=False*)\n  > >\n  > >- `optimizer (Optimizer)` ：指定需要对哪个优化器对象进行学习率调整。\n  > >- `T_0 (int)`: 表示第一次restart的epoch，即在T_0个epoch后，学习率将回到最高点，重新开始下降。默认值为10。\n  > >- `T_mult (float)`: 表示每次restart之后T_0的值将乘以T_mult。默认值为1。\n  > >- `eta_min (float)`: 表示学习率的最小值，在学习率下降到这个值之后，就不再下降了。默认为0。\n  > >- `last_epoch (int)`: 表示上一次更新学习率的epoch索引。默认为-1，表示还没有开始训练。这个参数用于恢复训练时使用，可以将其设置为已经训练的epoch数减 1。\n  > >- `verbose (bool)`：如果为True，则在调整学习率时打印更新的消息\n  >\n  > ```python\n  > optimizer = torch.optim.Adam(model.parameters(), lr=5e-4)\t# 假设初始学习率为 5e-4\n  > scheduler = torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0=10, T_mult=1, eta_min=1e-7)\n  > \n  > for epoch in range(num_epoch):\n  >     train(...)\t\t\t\t# 训练模型\n  >     validate(...)\t\t\t# 验证模型\n  >     scheduler.step()\t\t# 更新学习率\n  > ```\n  >\n  > \n  >\n  > ### 学习率变化曲线\n  >\n  > <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322161024.png\" alt=\"learning rate\" style=\"zoom:50%;\" />\n  >\n  > ### 实验结果\n  >\n  > ![CosineAnnealingWarmRestarts](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322160948.png)\n  >\n  > ### **Kaggle 分数: 0.74328（没有提升）**\n  >\n  > 我以为实验结果会变得更好，发现并没有，无论哪种 scheduler，最终的结果都差不多（epoch = 300），这可能是我初始lr设置的太大（5e-4）的原因？\n  >\n  > 虽然我产生了修改学习率的想法，但我还想尝试一下另一种修改方式，因为我发现 CosineAnnealLR 参数中 T_max 指代的是半个周期的长度，而 CosineAnnealingWarmRestarts 参数中的 T_0 指代的是一个周期长度，我将二者都设置成了 10，这使得 CosineAnnealingWarmRestarts 在300个epoch中有30个周期，是 CosineAnnealLR 的两倍，我或许应该将 T_0 设置为 2*T_max 来进行最终的对比实验。\n  >\n  > <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322162317.png\" alt=\"学习率变化对比\" style=\"zoom:50%;\" />\n  >\n  > ### T_0 *= 2\n  >\n  > #### 学习率变化曲线\n  >\n  > <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322162619.png\" alt=\"learning rate\" style=\"zoom:50%;\" />\n  >\n  > #### 实验结果\n  >\n  > ![T_0*=2](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322162649.png)\n  >\n  > #### **Kaggle 分数: 0.74403（没有提升）**\n  >\n  > 看起来，各个 scheduler 最终的表现似乎没有区别？我决定跑一个没有scheduler的版本（是的，我一开始默认的觉得加上scheduler一定会让实验变得更好，但发现似乎并不是这样，最起码在当前的配置下不是（有可能是batchnorm的原因？））。\n  >\n  > ## **no scheduler**\n  >\n  > ### 学习率变化曲线\n  >\n  > <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322163143.png\" alt=\"learning rate\" style=\"zoom:50%;\" />\n  >\n  > ### 实验结果\n  >\n  > ![no scheduler](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322163210.png)\n  >\n  > ### **Kaggle 分数: 0.74408**\n  >\n  > ## **实验结果对比**\n  >\n  > ![实验结果对比](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322163835.png)\n  >\n  > 评价是：**花里胡哨，没有区别（HW02 下）。真要用的话， ReduceLROnPlateau() 就够了，有时可以减少训练时间**。\n  >\n  > 现在，我决定根据一个现象去改变 lr 的初始值：从输出中，观察到在所有周期中，每次 lr=2.5e-4 和 1.72e-4 的时候上升幅度最大，于是我将 lr 设置成 2.5e-4 重新跑了所有的实验。\n  >\n  > # 修改 lr=2.5e-4，重新实验\n  >\n  > ## **实验结果对比**\n  >\n  > ![实验结果对比](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322163803.png)\n  >\n  > 可以看到，**Kaggle 分数**没有提升。\n  >\n  > 下图是 lr = 5e-4 和 lr=2.5e-4 的 CosineAnnealingWarmRestarts 对比结果：\n  >\n  > ![image-20230322163954786](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322163954.png)\n  >\n  > 原以为会有很大的变化，比如在 lr 的最高点处 acc 不会降低这么多，发现并没有，甚至可以说是一模一样，这其中一定有什么我还不了解的东西在发挥作用。\n  >\n  > # 总结\n  >\n  > scheduler 真的没有作用吗？不尽然，这很大程度上取决于你现在的损失函数面和参数配置，使用 scheduler 往往可以更快的收敛。下图是对比：\n  >\n  > ![是否使用 scheduler 的对比](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322201432.png)\n  >\n  > 而且，如果你经常性的重新导入模型，那么使用带 last_epoch 参数的 scheduler 会更方便。\n  >\n  > 同样的，如果你的模型花费时间很长，也可以通过像 StepLR() 这类的 scheduler 让 lr 在每一轮次变化。\n  >\n  > 但相对于盲目的使用一些可能提高 metric 的函数，你更应该在预处理数据上下功夫：\n  >\n  > - 跑完这个对比实验后，我增加了输入的维度，让数据在一开始拥有更多的信息（对应到 HW02 就是：将 concat_nframes 从 15 增加到了 21，使得在网络可以更多的考虑到相邻的音素），仅仅改变这一条，Kaggle 的分数便超过了 strong baseline，达到了 0.75623。\n  >   ![image-20230322165030184](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322165030.png)\n  > - 进一步的，dropout 其实不应设置成 25，通过观察可以发现：没有 dropout 的时候，训练集很容易便能达到 90+ 的准确率，当然，这是过拟合了。但 p=25 时，acc 一直上不去又何尝不是欠拟合呢？基于这个想法，我在 p=25/15 下做了对比，下图是大致的实验结果（使用了 ReduceLROnPlateau()）：\n  >   ![对比](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230322170707.png)\n  >   发现这使得 acc 比之前更快的抵达了 strong baseline，至于刚刚所想的欠拟合，好像没有体现出来 :)\n  >\n  > P.S. epoch 设置成 300 完全是为了跑对比实验，做 HW 的时候不要设这么大，浪费时间。\n  > 实验局限在一个可能不好的参数配置，也局限在单独的 optimizer 之下，仅向大家展示片面的的结果 :)\n  >\n  > 好了，以上就是关于一些 scheduler 使用的实验对比和总结，希望对你有所帮助～\n\n## Boss Baseline (0.83017)\n\n- 使用 RNN。\n\n> [为什么我的模型能跑，但效果很差：错误处理了dataloader返回的数据](https://blog.csdn.net/weixin_42426841/article/details/129742067?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129742067%22%2C%22source%22%3A%22weixin_42426841%22%7D)\n>\n> PyTorch中 rnn() 有一个参数是batch_first，这个参数如果设置成 True，那么意味着 input 的 shape 从 (seq_len, batch_size, input_size) => (batch_size, seq_len, input_size)，同样的，此时如果要取最后一个状态，代码从 x[-1] 改成 x[:, -1]。\n>\n> dataloader 返回的数据 shape 是 (batch_size, input_dim)，所以，features = features.to(device) 应该修改成 features = features.view(-1, concat_nframes, 39).to(device)，如果你和我一开始一样：因为知道 rnn 的 input.shape=(seq_len, batch_size, input_size)，所以不使用 batch_first=True，但不熟悉 dataloader 返回的 shape格式。那么，你很有可能会使用 features = features.shape(concat_nframes, -1, 39).to(device)，这样可以训练，但效果奇差，而且:) 不会报错。\n>\n> 你需要格外注意上面这点，必须正确处理 feature 的维度，可以不用设置 batch_first=True，因为这样顶多就是把 self.rnn(x) 改成 self.rnn(x.permute(1, 0, 2))。\n\n![最终结果](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230325111254.png)\n\n\n# 参考链接\n\n\n1. [What's the difference between reshape and view in pytorch?](https://stackoverflow.com/questions/49643225/whats-the-difference-between-reshape-and-view-in-pytorch)\n"
  },
  {
    "path": "HW03/HW03_0.85333.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"jRDuJsGCgxCO\"\n   },\n   \"source\": [\n    \"# HW3 Image Classification\\n\",\n    \"## We strongly recommend that you run with [Kaggle](https://www.kaggle.com/t/86ca241732c04da99aca6490080bae73) for this homework\\n\",\n    \"\\n\",\n    \"If you have any questions, please contact the TAs via TA hours, NTU COOL, or email to mlta-2023-spring@googlegroups.com\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"K9Vxu1iQwdIE\"\n   },\n   \"source\": [\n    \"# Check GPU Type\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:24.007342Z\",\n     \"start_time\": \"2023-04-19T03:33:23.862896Z\"\n    },\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"KKjf6sZcwb_A\",\n    \"outputId\": \"605652be-d5bf-48a2-8218-57b33b6f7790\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Mon Jun  5 18:34:55 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   45C    P8    23W / 170W |    291MiB / 12288MiB |      0%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1170      G   /usr/lib/xorg/Xorg                229MiB |\\n\",\n      \"|    0   N/A  N/A      1474      G   /usr/bin/gnome-shell               31MiB |\\n\",\n      \"|    0   N/A  N/A      1722      G   ...nlogin/bin/sunloginclient        8MiB |\\n\",\n      \"|    0   N/A  N/A      8998      G   ...2gtk-4.0/WebKitWebProcess       19MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"EVgrPb3HhJUT\"\n   },\n   \"source\": [\n    \"# Get Data\\n\",\n    \"Notes: if the links are dead, you can download the data directly from Kaggle and upload it to the workspace, or you can use the Kaggle API to directly download the data into colab.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:24.019981Z\",\n     \"start_time\": \"2023-04-19T03:33:24.013438Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"EAO6dg9eVaU_\",\n    \"outputId\": \"5a20fe0a-ab0f-40e8-82d7-5cb1dea91d92\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Download Link\\n\",\n    \"# Link 1 (Dropbox): https://www.dropbox.com/s/up5q1gthsz3v0dq/food-11.zip?dl=0\\n\",\n    \"# Link 2 (Google Drive): https://drive.google.com/file/d/1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9/view?usp=share_link\\n\",\n    \"# Link 3: Kaggle Competition.\\n\",\n    \"\\n\",\n    \"# (1) dropbox link\\n\",\n    \"# !wget -O food11.zip https://www.dropbox.com/s/up5q1gthsz3v0dq/food-11.zip?dl=0\\n\",\n    \"\\n\",\n    \"# (2) google drive link\\n\",\n    \"# !pip install gdown --upgrade\\n\",\n    \"# !gdown --id '1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9' --output food11.zip\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:24.030787Z\",\n     \"start_time\": \"2023-04-19T03:33:24.024666Z\"\n    },\n    \"colab\": {\n     \"background_save\": true,\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"HEsBm1lkhGmk\",\n    \"outputId\": \"9612ed4d-d67d-46d3-f992-b1fd623c1090\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# ! unzip food11.zip\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n5ceUnRihL-f\"\n   },\n   \"source\": [\n    \"# Import Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:24.035214Z\",\n     \"start_time\": \"2023-04-19T03:33:24.032691Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"ay3WkYnHVaVE\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Define your log filename\\n\",\n    \"_exp_name = \\\"sample\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:25.302404Z\",\n     \"start_time\": \"2023-04-19T03:33:24.036426Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"CwOGtRWHVaVF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Import necessary packages.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import torch\\n\",\n    \"import os\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torchvision.transforms as transforms\\n\",\n    \"from PIL import Image\\n\",\n    \"# \\\"ConcatDataset\\\" and \\\"Subset\\\" are possibly useful when doing semi-supervised learning.\\n\",\n    \"from torch.utils.data import ConcatDataset, DataLoader, Subset, Dataset\\n\",\n    \"from torchvision.datasets import DatasetFolder, VisionDataset\\n\",\n    \"# Pretrained model\\n\",\n    \"from torchvision.models import resnet18, resnet50, vgg16, densenet121, alexnet, squeezenet1_0, efficientnet\\n\",\n    \"# This is for the progress bar.\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"import random\\n\",\n    \"# For plotting learning curve\\n\",\n    \"from torch.utils.tensorboard import SummaryWriter\\n\",\n    \"# K-fold cross validation and boosting\\n\",\n    \"from sklearn.model_selection import KFold\\n\",\n    \"from sklearn.ensemble import AdaBoostClassifier\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:25.341792Z\",\n     \"start_time\": \"2023-04-19T03:33:25.303266Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"8kJm9GekVaVH\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"myseed = 3407  # set a random seed for reproducibility\\n\",\n    \"torch.backends.cudnn.deterministic = True\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"np.random.seed(myseed)\\n\",\n    \"torch.manual_seed(myseed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed_all(myseed)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"d9MVtgbSVaVH\"\n   },\n   \"source\": [\n    \"# Transforms\\n\",\n    \"Torchvision provides lots of useful utilities for image preprocessing, data *wrapping* as well as data augmentation.\\n\",\n    \"\\n\",\n    \"Please refer to PyTorch official website for details about different transforms.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:25.345224Z\",\n     \"start_time\": \"2023-04-19T03:33:25.342722Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"hidden\": true,\n    \"id\": \"jvI3Xmq4VaVJ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Normally, We don't need augmentations in testing and validation.\\n\",\n    \"# All we need here is to resize the PIL image and transform it into Tensor.\\n\",\n    \"test_tfm = transforms.Compose([\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\\n\",\n    \"\\n\",\n    \"# However, it is also possible to use augmentation in the testing phase.\\n\",\n    \"# You may use train_tfm to produce a variety of images and then test using ensemble methods\\n\",\n    \"\\n\",\n    \"train_tfm = transforms.Compose([\\n\",\n    \"    # Resize the image into a fixed shape (height = width = 128)\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    # You may add some transforms here.\\n\",\n    \"    \\n\",\n    \"    transforms.RandomChoice(transforms=[\\n\",\n    \"        # Apply TrivialAugmentWide data augmentation method\\n\",\n    \"        transforms.TrivialAugmentWide(),\\n\",\n    \"\\n\",\n    \"        # Return original image\\n\",\n    \"        transforms.Lambda(lambda x: x),\\n\",\n    \"    ],\\n\",\n    \"                            p=[0.95, 0.05]),\\n\",\n    \"\\n\",\n    \"    # ToTensor() should be the last one of the transfo·rms.\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Q1. Augmentation Implementation Visualization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:25.761138Z\",\n     \"start_time\": \"2023-04-19T03:33:25.346461Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 6 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# I want to show you an example code of Q1. Augmentation Implementation that visualizes the effects of different image transformations.\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"plt.rcParams[\\\"savefig.bbox\\\"] = 'tight'\\n\",\n    \"\\n\",\n    \"# You can change the file path to match your image\\n\",\n    \"orig_img = Image.open('Q1/assets/astronaut.jpg')\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def plot(imgs, with_orig=True, row_title=None, **imshow_kwargs):\\n\",\n    \"    if not isinstance(imgs[0], list):\\n\",\n    \"        # Make a 2d grid even if there's just 1 row\\n\",\n    \"        imgs = [imgs]\\n\",\n    \"\\n\",\n    \"    num_rows = len(imgs)\\n\",\n    \"    num_cols = len(imgs[0]) + with_orig\\n\",\n    \"    fig, axs = plt.subplots(nrows=num_rows, ncols=num_cols, squeeze=False)\\n\",\n    \"    for row_idx, row in enumerate(imgs):\\n\",\n    \"        row = [orig_img] + row if with_orig else row\\n\",\n    \"        for col_idx, img in enumerate(row):\\n\",\n    \"            ax = axs[row_idx, col_idx]\\n\",\n    \"            ax.imshow(np.asarray(img), **imshow_kwargs)\\n\",\n    \"            ax.set(xticklabels=[], yticklabels=[], xticks=[], yticks=[])\\n\",\n    \"\\n\",\n    \"    if with_orig:\\n\",\n    \"        axs[0, 0].set(title='Original image')\\n\",\n    \"        axs[0, 0].title.set_size(8)\\n\",\n    \"    if row_title is not None:\\n\",\n    \"        for row_idx in range(num_rows):\\n\",\n    \"            axs[row_idx, 0].set(ylabel=row_title[row_idx])\\n\",\n    \"\\n\",\n    \"    plt.tight_layout()\\n\",\n    \"\\n\",\n    \"# Create a list of five transformed images from the original image using the train_tfm function\\n\",\n    \"demo = [train_tfm(orig_img) for i in range(5)]\\n\",\n    \"\\n\",\n    \"# Convert the transformed images from tensors to PIL images\\n\",\n    \"pil_img_demo = [Image.fromarray(np.moveaxis(img.numpy()*255, 0, -1).astype(np.uint8)) for img in demo]\\n\",\n    \"\\n\",\n    \"# Plot the transformed images using the plot function\\n\",\n    \"plot(pil_img_demo) \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"D0ivMf-jVaVK\"\n   },\n   \"source\": [\n    \"# Datasets\\n\",\n    \"The data is labelled by the name, so we load images and label while calling '__getitem__'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:25.764842Z\",\n     \"start_time\": \"2023-04-19T03:33:25.761898Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"hidden\": true,\n    \"id\": \"xBdtPhKwVaVL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class FoodDataset(Dataset):\\n\",\n    \"\\n\",\n    \"    def __init__(self,path,tfm=test_tfm,files = None):\\n\",\n    \"        super(FoodDataset).__init__()\\n\",\n    \"        self.path = path\\n\",\n    \"        self.files = sorted([os.path.join(path,x) for x in os.listdir(path) if x.endswith(\\\".jpg\\\")])\\n\",\n    \"        if files != None:\\n\",\n    \"            self.files = files\\n\",\n    \"            \\n\",\n    \"        self.transform = tfm\\n\",\n    \"  \\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.files)\\n\",\n    \"  \\n\",\n    \"    def __getitem__(self,idx):\\n\",\n    \"        fname = self.files[idx]\\n\",\n    \"        im = Image.open(fname)\\n\",\n    \"        im = self.transform(im)\\n\",\n    \"        \\n\",\n    \"        try:\\n\",\n    \"            label = int(fname.split(\\\"/\\\")[-1].split(\\\"_\\\")[0])\\n\",\n    \"        except:\\n\",\n    \"            label = -1 # test has no label\\n\",\n    \"            \\n\",\n    \"        return im,label\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class MySubset(Subset):\\n\",\n    \"    def __init__(self, dataset, indices, tfm=test_tfm):\\n\",\n    \"        super().__init__(dataset, indices)\\n\",\n    \"        self.transform = tfm\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        if isinstance(idx, list):\\n\",\n    \"            return self.dataset[[self.indices[i] for i in idx]]\\n\",\n    \"        self.dataset.transform = self.transform\\n\",\n    \"        return self.dataset[self.indices[idx]]\\n\",\n    \"        # do something with self.dataset[self.indices[idx]]\\n\",\n    \"        # return a modified item\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZPFkDwug61PZ\"\n   },\n   \"source\": [\n    \"# Model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:25.773696Z\",\n     \"start_time\": \"2023-04-19T03:33:25.765584Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"b_kDECOJVaVL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Classifier(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(Classifier, self).__init__()\\n\",\n    \"        # torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)\\n\",\n    \"        # torch.nn.MaxPool2d(kernel_size, stride, padding)\\n\",\n    \"        # input 維度 [3, 128, 128]\\n\",\n    \"        self.cnn = nn.Sequential(\\n\",\n    \"            nn.Conv2d(3, 64, 3, 1, 1),  # [64, 128, 128]\\n\",\n    \"            nn.BatchNorm2d(64),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [64, 64, 64]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(64, 128, 3, 1, 1), # [128, 64, 64]\\n\",\n    \"            nn.BatchNorm2d(128),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [128, 32, 32]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(128, 256, 3, 1, 1), # [256, 32, 32]\\n\",\n    \"            nn.BatchNorm2d(256),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [256, 16, 16]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(256, 512, 3, 1, 1), # [512, 16, 16]\\n\",\n    \"            nn.BatchNorm2d(512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),       # [512, 8, 8]\\n\",\n    \"            \\n\",\n    \"            nn.Conv2d(512, 512, 3, 1, 1), # [512, 8, 8]\\n\",\n    \"            nn.BatchNorm2d(512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),       # [512, 4, 4]\\n\",\n    \"        )\\n\",\n    \"        self.fc = nn.Sequential(\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(512*4*4, 1024),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(1024, 512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(512, 11)\\n\",\n    \"        )\\n\",\n    \"        \\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        out = self.cnn(x)\\n\",\n    \"        out = out.view(out.size()[0], -1)\\n\",\n    \"        return self.fc(out)\\n\",\n    \"\\n\",\n    \"    \\n\",\n    \"class ResNet50(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(ResNet50, self).__init__()\\n\",\n    \"        self.cnn = nn.Sequential(*list(resnet50(weights=None).children())[:-1])\\n\",\n    \"        num_features = resnet50(weights=None).fc.in_features\\n\",\n    \"        self.fc = nn.Sequential(\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(num_features, 1024),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(1024, 512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(512, 11)\\n\",\n    \"        )\\n\",\n    \"        \\n\",\n    \"    \\n\",\n    \"    def forward(self, x):\\n\",\n    \"        out = self.cnn(x)\\n\",\n    \"        out = out.view(out.size()[0], -1)\\n\",\n    \"        return self.fc(out)\\n\",\n    \"\\n\",\n    \"    \\n\",\n    \"# class VGG16(nn.Module):\\n\",\n    \"#     def __init__(self):\\n\",\n    \"#         super(VGG16, self).__init__()\\n\",\n    \"#         self.model = vgg16(weights=None)\\n\",\n    \"#         num_features = self.model.classifier[6].in_features\\n\",\n    \"#         self.model.classifier[6] = nn.Sequential(\\n\",\n    \"#             nn.Dropout(p=0.5),\\n\",\n    \"#             nn.Linear(num_features, 1024),\\n\",\n    \"#             nn.ReLU(),\\n\",\n    \"#             nn.Dropout(p=0.5),\\n\",\n    \"#             nn.Linear(1024, 512),\\n\",\n    \"#             nn.ReLU(),\\n\",\n    \"#             nn.Dropout(p=0.5),\\n\",\n    \"#             nn.Linear(512, 11)\\n\",\n    \"#         )\\n\",\n    \"\\n\",\n    \"#     def forward(self, x):\\n\",\n    \"#         return self.model(x)\\n\",\n    \"    \\n\",\n    \"class VGG16(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(VGG16, self).__init__()\\n\",\n    \"        self.model = vgg16(weights=None)\\n\",\n    \"        num_features = self.model.classifier[6].in_features\\n\",\n    \"        self.model.classifier[6] = nn.Linear(num_features, 11)\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        return self.model(x)\\n\",\n    \"    \\n\",\n    \"class DenseNet121(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(DenseNet121, self).__init__()\\n\",\n    \"        self.model = densenet121(weights=None)\\n\",\n    \"        num_features = self.model.classifier.in_features\\n\",\n    \"        self.model.classifier = nn.Sequential(\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(num_features, 1024),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(1024, 512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(512, 11)\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.model(x)\\n\",\n    \"        return x\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"class EfficientNet(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(EfficientNet, self).__init__()\\n\",\n    \"        self.model = efficientnet.efficientnet_b6(weights=None)\\n\",\n    \"        num_features = self.model.classifier[1].in_features\\n\",\n    \"        self.model.classifier[1] = nn.Sequential(\\n\",\n    \"            nn.Linear(num_features, 1024),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(1024, 512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(512, 11)\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.model(x)\\n\",\n    \"        return x\\n\",\n    \"\\n\",\n    \"class AlexNet(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(AlexNet, self).__init__()\\n\",\n    \"        self.model = alexnet(weights=None)\\n\",\n    \"        num_features = self.model.classifier[6].in_features\\n\",\n    \"        self.model.classifier[6] = nn.Linear(num_features, 11)\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.model(x)\\n\",\n    \"        return x\\n\",\n    \"    \\n\",\n    \"    \\n\",\n    \"class SqueezeNet(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(SqueezeNet, self).__init__()\\n\",\n    \"        self.model = squeezenet1_0(weights=None)\\n\",\n    \"        # (1): Conv2d(512, 1000, kernel_size=(1, 1), stride=(1, 1))\\n\",\n    \"        num_features = self.model.classifier[1].in_channels\\n\",\n    \"        self.model.classifier[1] = nn.Conv2d(num_features, 11, kernel_size=(1,1), stride=(1,1))\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"        \\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.model(x)\\n\",\n    \"        return x\\n\",\n    \"\\n\",\n    \"    \\n\",\n    \"class EnsembleModel(nn.Module):\\n\",\n    \"    def __init__(self, base_models):\\n\",\n    \"        super(EnsembleModel, self).__init__()\\n\",\n    \"        self.base_models = nn.ModuleList(base_models)\\n\",\n    \"        # self.classifier = nn.Linear(len(base_models) * 11, 11)\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        outputs = [model(x) for model in self.base_models]\\n\",\n    \"        # outputs = torch.cat(outputs, dim=1)\\n\",\n    \"        # outputs = self.classifier(outputs)     \\n\",\n    \"        outputs = torch.stack(outputs)\\n\",\n    \"        outputs = torch.mean(outputs, dim=0)\\n\",\n    \"        return outputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xgnIOaID687b\"\n   },\n   \"source\": [\n    \"# Configurations\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:26.744593Z\",\n     \"start_time\": \"2023-04-19T03:33:25.774984Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"2_OeWtstVaVO\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# \\\"cuda\\\" only when GPUs are available.\\n\",\n    \"# If you use apple chip (mac), you can change \\\"cpu\\\" to \\\"mps\\\"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# Initialize a model, and put it on the device specified.\\n\",\n    \"\\n\",\n    \"model = Classifier().to(device)\\n\",\n    \"\\n\",\n    \"Resume = False\\n\",\n    \"if Resume:\\n\",\n    \"    model.load_state_dict(torch.load(f\\\"{_exp_name}_best.ckpt\\\", map_location='cuda'))\\n\",\n    \"\\n\",\n    \"# The number of batch size.\\n\",\n    \"batch_size = 64\\n\",\n    \"\\n\",\n    \"# The number of training epochs.\\n\",\n    \"n_epochs = 200\\n\",\n    \"\\n\",\n    \"# If no improvement in 'patience' epochs, early stop.\\n\",\n    \"patience = 20\\n\",\n    \"\\n\",\n    \"# For the classification task, we use cross-entropy as the measurement of performance.\\n\",\n    \"# criterion = nn.CrossEntropyLoss()\\n\",\n    \"# Label Smoothing Cross Entropy Loss\\n\",\n    \"criterion = nn.CrossEntropyLoss(label_smoothing=0.1)\\n\",\n    \"\\n\",\n    \"# Initialize optimizer, you may fine-tune some hyperparameters such as learning rate on your own.\\n\",\n    \"optimizer = torch.optim.Adam(model.parameters(), lr=3e-4, weight_decay=1e-5) # 3e-4\\n\",\n    \"\\n\",\n    \"# Create a learning rate scheduler that reduces the learning rate when the metric stops improving\\n\",\n    \"scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.8, patience=patience/2, threshold=0.05)\\n\",\n    \"#scheduler = torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0=10, T_mult=2, eta_min=1e-8)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zPGwvvPK7F7u\"\n   },\n   \"source\": [\n    \"# Dataloader\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # Construct train and valid datasets.\\n\",\n    \"# # The argument \\\"loader\\\" tells how torchvision reads the data.\\n\",\n    \"train_set = FoodDataset(\\\"./train\\\", tfm=train_tfm)\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)\\n\",\n    \"valid_set = FoodDataset(\\\"./valid\\\", tfm=test_tfm)\\n\",\n    \"valid_loader = DataLoader(valid_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UPQ0j1c17BG1\"\n   },\n   \"source\": [\n    \"# Start Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Cross validation\\n\",\n    \"You can implement cross validation entirely using the cross_val_score in sklearn.model_selection, but I'll show you another way to implement it here.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import shutil\\n\",\n    \"\\n\",\n    \"# Check if the merge folder exists, if not, create it\\n\",\n    \"merge_dir = \\\"merge\\\"\\n\",\n    \"if not os.path.isdir(merge_dir):\\n\",\n    \"    os.mkdir(merge_dir)\\n\",\n    \"\\n\",\n    \"    #  Get all the file names in the train and valid folders\\n\",\n    \"    train_files = os.listdir(\\\"train\\\")\\n\",\n    \"    valid_files = os.listdir(\\\"valid\\\")\\n\",\n    \"\\n\",\n    \"    # Copy all the files in the train and valid folders to the merge folder\\n\",\n    \"    for file in train_files:\\n\",\n    \"        shutil.copy(os.path.join(\\\"train\\\", file), merge_dir)\\n\",\n    \"    for file in valid_files:\\n\",\n    \"        shutil.copy(os.path.join(\\\"valid\\\", file), merge_dir)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:28.568459Z\",\n     \"start_time\": \"2023-04-19T03:33:28.568453Z\"\n    },\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def stack(dataset, test_set, n_splits=5, models=[], tb=False):\\n\",\n    \"    '''This function is a stacking function. Maybe not so standard :)\\n\",\n    \"\\n\",\n    \"    Parameters:\\n\",\n    \"        dataset: a torch.utils.data.Dataset object.\\n\",\n    \"        test_set: a torch.utils.data.Dataset object for testing.\\n\",\n    \"        n_splits (int): an integer that specifies the number of folds for cross-validation.\\n\",\n    \"        models (list): a list of model classes to use for stacking. If empty, raise ValueError. \\n\",\n    \"                       If only one model, perform simple cross-validation and return avg_val_acc.\\n\",\n    \"        tb (bool): a boolean that indicates whether to use tensorboard to log data.\\n\",\n    \"    '''\\n\",\n    \"    # Check if model is a list \\n\",\n    \"    if not isinstance(models, list):\\n\",\n    \"        models = [models]\\n\",\n    \"    # Check if models is empty\\n\",\n    \"    elif not len(models):\\n\",\n    \"        raise ValueError(\\\"models cannot be empty, you must specify a model.\\\")\\n\",\n    \"    \\n\",\n    \"    \\n\",\n    \"    ntrain = len(dataset)\\n\",\n    \"    ntest = len(test_set)\\n\",\n    \"    \\n\",\n    \"    # Create a generator object G with a fixed seed myseed, which is used for train_loader\\n\",\n    \"    G = torch.Generator()\\n\",\n    \"    G.manual_seed(myseed)\\n\",\n    \"    \\n\",\n    \"    # Record out-of-flod prediction for models\\n\",\n    \"    oof_dict = {}\\n\",\n    \"    # Record CV scores for models\\n\",\n    \"    val_acc_dict = {}\\n\",\n    \"    \\n\",\n    \"    for i in range(len(models)):\\n\",\n    \"        # Initialize an array to store the out-of-fold predictions for train set and test set\\n\",\n    \"        oof_train = np.zeros((ntrain,))\\n\",\n    \"        oof_test = np.zeros((ntest,))\\n\",\n    \"        # Initialize an array to store the out-of-fold predictions for each fold\\n\",\n    \"        oof_test_skf = np.empty((NSPLITS, ntest))\\n\",\n    \"        \\n\",\n    \"        # Create a KFold object to split the dataset into k subsets\\n\",\n    \"        kf = KFold(n_splits=NSPLITS, shuffle=True, random_state=myseed) # shuffle: default=False\\n\",\n    \"        for fold, (train_idx, valid_idx) in enumerate(kf.split(dataset)):\\n\",\n    \"            if fold != 4:\\n\",\n    \"                continue\\n\",\n    \"            model = models[i]().to(device)\\n\",\n    \"            \\n\",\n    \"            # Print the current fold number\\n\",\n    \"            print(f\\\"Model: {models[i].__name__}, fold: {fold+1}\\\")\\n\",\n    \"\\n\",\n    \"            # Print the indices of the train and valid subsets\\n\",\n    \"            print(f\\\"Train Index (len: {len(train_idx)}): {train_idx}\\\")\\n\",\n    \"            print(f\\\"Valid Index (len: {len(valid_idx)}): {valid_idx}\\\")\\n\",\n    \"\\n\",\n    \"            optimizer = torch.optim.Adam(model.parameters(), lr=3e-4, weight_decay=1e-5)\\n\",\n    \"            scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.8, patience=patience/2, threshold=0.05)\\n\",\n    \"\\n\",\n    \"            # Create a subset of the dataset based on the train indices\\n\",\n    \"            train_set = MySubset(dataset, train_idx, train_tfm)\\n\",\n    \"            train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True, generator=G)\\n\",\n    \"            # Create a subset of the dataset based on the valid indices\\n\",\n    \"            valid_set = MySubset(dataset, valid_idx, test_tfm)\\n\",\n    \"            valid_loader = DataLoader(valid_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)    \\n\",\n    \"            \\n\",\n    \"            # Initialize a list to store the validation accuracies of each fold\\n\",\n    \"            val_accs = []\\n\",\n    \"\\n\",\n    \"            # ---------- Use the same training loop as in the previous section ----------\\n\",\n    \"            if tb:\\n\",\n    \"                # Create a SummaryWriter object to write data to TensorBoard and the results are stored in ./runs folder\\n\",\n    \"                writer = SummaryWriter()\\n\",\n    \"\\n\",\n    \"            # Initialize trackers, these are not parameters and should not be changed\\n\",\n    \"            stale = 0\\n\",\n    \"            best_acc = 0\\n\",\n    \"\\n\",\n    \"            for epoch in range(n_epochs):\\n\",\n    \"                \\n\",\n    \"                # ---------- Training ----------\\n\",\n    \"                # Make sure the model is in train mode before training.\\n\",\n    \"                model.train()\\n\",\n    \"\\n\",\n    \"                # These are used to record information in training.\\n\",\n    \"                train_loss = []\\n\",\n    \"                train_accs = []\\n\",\n    \"\\n\",\n    \"                for batch in tqdm(train_loader):\\n\",\n    \"                    \\n\",\n    \"                    # A batch consists of image data and corresponding labels.\\n\",\n    \"                    imgs, labels = batch\\n\",\n    \"                    #imgs = imgs.half()  # image.dtype: torch.float32 => torch.float16\\n\",\n    \"                    #print(imgs.dtype)\\n\",\n    \"                    #print(imgs.shape,labels.shape)\\n\",\n    \"\\n\",\n    \"                    # Forward the data. (Make sure data and model are on the same device.)\\n\",\n    \"                    logits = model(imgs.to(device))\\n\",\n    \"\\n\",\n    \"                    # Calculate the cross-entropy loss.\\n\",\n    \"                    # We don't need to apply softmax before computing cross-entropy as it is done automatically.\\n\",\n    \"                    loss = criterion(logits, labels.to(device))\\n\",\n    \"\\n\",\n    \"                    # Gradients stored in the parameters in the previous step should be cleared out first.\\n\",\n    \"                    optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"                    # Compute the gradients for parameters.\\n\",\n    \"                    loss.backward()\\n\",\n    \"\\n\",\n    \"                    # Clip the gradient norms for stable training.\\n\",\n    \"                    grad_norm = nn.utils.clip_grad_norm_(model.parameters(), max_norm=10)\\n\",\n    \"\\n\",\n    \"                    # Update the parameters with computed gradients.\\n\",\n    \"                    optimizer.step()\\n\",\n    \"\\n\",\n    \"                    # Compute the accuracy for current batch.\\n\",\n    \"                    acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n    \"\\n\",\n    \"                    # Record the loss and accuracy.\\n\",\n    \"                    train_loss.append(loss.item())\\n\",\n    \"                    train_accs.append(acc)\\n\",\n    \"\\n\",\n    \"                train_loss = sum(train_loss) / len(train_loss)\\n\",\n    \"                train_acc = sum(train_accs) / len(train_accs)\\n\",\n    \"\\n\",\n    \"                # Print the information.\\n\",\n    \"                # print(f\\\"Fold {fold+1}: [ Train | {epoch + 1:03d}/{n_epochs:03d} ]{avg_test_predictionin_loss:.5f}, acc = {train_acc:.5f}\\\")\\n\",\n    \"                print(f\\\"Fold {fold+1}: [ Train | {epoch + 1:03d}/{n_epochs:03d} ] loss = {train_loss:.5f}, acc = {train_acc:.5f}\\\")\\n\",\n    \"\\n\",\n    \"                # ---------- Validation ----------\\n\",\n    \"                # Make sure the model is in eval mode so that some modules like dropout are disabled and work normally.\\n\",\n    \"                model.eval()\\n\",\n    \"\\n\",\n    \"                # These are used to record information in validation.\\n\",\n    \"                valid_loss = []\\n\",\n    \"                valid_accs = []\\n\",\n    \"\\n\",\n    \"                # Iterate the validation set by batches.\\n\",\n    \"                for batch in tqdm(valid_loader):\\n\",\n    \"\\n\",\n    \"                    # A batch consists of image data and corresponding labels.\\n\",\n    \"                    imgs, labels = batch\\n\",\n    \"                    #imgs = imgs.half()\\n\",\n    \"\\n\",\n    \"                    # We don't need gradient in validation.\\n\",\n    \"                    # Using torch.no_grad() accelerates the forward process.\\n\",\n    \"                    with torch.no_grad():\\n\",\n    \"                        logits = model(imgs.to(device))\\n\",\n    \"\\n\",\n    \"                    # We can still compute the loss (but not the gradient).\\n\",\n    \"                    loss = criterion(logits, labels.to(device))\\n\",\n    \"\\n\",\n    \"                    # Compute the accuracy for current batch.\\n\",\n    \"                    acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n    \"\\n\",\n    \"                    # Record the loss and accuracy.\\n\",\n    \"                    valid_loss.append(loss.item())\\n\",\n    \"                    valid_accs.append(acc)\\n\",\n    \"                    #break\\n\",\n    \"\\n\",\n    \"                # The average loss and accuracy for entire validation set is the average of the recorded values.\\n\",\n    \"                valid_loss = sum(valid_loss) / len(valid_loss)\\n\",\n    \"                valid_acc = sum(valid_accs) / len(valid_accs)\\n\",\n    \"\\n\",\n    \"                # Print the information.\\n\",\n    \"                #print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f}\\\")\\n\",\n    \"                if tb:\\n\",\n    \"                    writer.add_scalar('Acc/train', train_acc, epoch)\\n\",\n    \"                    writer.add_scalar('Acc/valid', valid_acc, epoch)\\n\",\n    \"                    writer.add_scalar('lr', optimizer.state_dict()['param_groups'][0]['lr'], epoch)\\n\",\n    \"\\n\",\n    \"                # Update logs\\n\",\n    \"                if valid_acc > best_acc:\\n\",\n    \"                    with open(f\\\"./{_exp_name}_log.txt\\\",\\\"a\\\"):\\n\",\n    \"                        print(f\\\"Fold {fold+1}: [ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f} -> best\\\")\\n\",\n    \"                else:\\n\",\n    \"                    with open(f\\\"./{_exp_name}_log.txt\\\",\\\"a\\\"):\\n\",\n    \"                        print(f\\\"Fold {fold+1}: [ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f}\\\")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"                # Save models\\n\",\n    \"                if valid_acc > best_acc:\\n\",\n    \"                    print(f\\\"Best model found at epoch {epoch}, saving model\\\")\\n\",\n    \"                    torch.save(model.state_dict(), f\\\"models/{_exp_name}_{models[i].__name__}_fold{fold+1}_best.ckpt\\\") # only save best to prevent output memory exceed error\\n\",\n    \"                    best_acc = valid_acc\\n\",\n    \"                    stale = 0\\n\",\n    \"                else:\\n\",\n    \"                    stale += 1\\n\",\n    \"                    if stale > patience:\\n\",\n    \"                        print(f\\\"No improvment {patience} consecutive epochs, early stopping\\\")\\n\",\n    \"                        break\\n\",\n    \"\\n\",\n    \"                # Update learning rate based on the best_acc so far\\n\",\n    \"                scheduler.step(best_acc)\\n\",\n    \"            # ---------- Use the same training loop as in the previous section ----------        \\n\",\n    \"\\n\",\n    \"            # Append the best accuracy to the list\\n\",\n    \"            val_accs.append(best_acc)\\n\",\n    \"\\n\",\n    \"            # Out-of-Fold Predictions\\n\",\n    \"            model_best = model\\n\",\n    \"            print(f\\\"{_exp_name}_{models[i].__name__}_fold{fold+1}_best.ckpt\\\")\\n\",\n    \"            model_best.load_state_dict(torch.load(f\\\"models/{_exp_name}_{models[i].__name__}_fold{fold+1}_best.ckpt\\\"))\\n\",\n    \"            model_best.eval()\\n\",\n    \"\\n\",\n    \"            val_prediction, test_prediction = [], []\\n\",\n    \"            with torch.no_grad():\\n\",\n    \"                for data,_ in tqdm(valid_loader):\\n\",\n    \"                    val_pred = np.argmax(model_best(data.to(device)).cpu().data.numpy(), axis=1)\\n\",\n    \"                    val_prediction += val_pred.squeeze().tolist()\\n\",\n    \"                oof_train[valid_idx] = val_prediction\\n\",\n    \"\\n\",\n    \"                for data,_ in tqdm(test_loader):\\n\",\n    \"                    test_pred = np.argmax(model_best(data.to(device)).cpu().data.numpy(), axis=1)\\n\",\n    \"                    test_prediction += test_pred.squeeze().tolist()\\n\",\n    \"                oof_test_skf[fold, :] = test_prediction\\n\",\n    \"\\n\",\n    \"        oof_test[:] = oof_test_skf.mean(axis=0)\\n\",\n    \"        oof_dict[f\\\"{models[i].__name__}_oof_train\\\"] = oof_train.reshape(-1, 1)\\n\",\n    \"        oof_dict[f\\\"{models[i].__name__}_oof_test\\\"] = oof_test.reshape(-1, 1)\\n\",\n    \"        \\n\",\n    \"        # Compute the average validation accuracy across all folds\\n\",\n    \"        avg_val_acc = sum(val_accs) / len(val_accs)\\n\",\n    \"        val_acc_dict[f\\\"{models[i].__name__}_val_accs\\\"] = val_accs\\n\",\n    \"        val_acc_dict[f\\\"{models[i].__name__}_avg_val_acc\\\"] = avg_val_acc\\n\",\n    \"        \\n\",\n    \"        # Print the average validation accuracy\\n\",\n    \"        print(f\\\"Average validation accuracy: {avg_val_acc:.4f}\\\")\\n\",\n    \"        \\n\",\n    \"    return oof_dict, val_acc_dict\\n\",\n    \"\\n\",\n    \"# If the pre-trained model is pulled, TRAIN=False\\n\",\n    \"if os.path.isdir (\\\"models\\\"):\\n\",\n    \"    TRAIN = False\\n\",\n    \"else:\\n\",\n    \"    os.makedirs(\\\"models\\\")\\n\",\n    \"    TRAIN = True\\n\",\n    \"\\n\",\n    \"# Yes, the above judgment statement is not refined, you should uncomment the following and manually decide whether to train or not\\n\",\n    \"# TRAIN = True\\n\",\n    \"\\n\",\n    \"if TRAIN:\\n\",\n    \"    # Concatenate the train and valid sets into one dataset\\n\",\n    \"    #dataset = ConcatDataset([train_set, valid_set])\\n\",\n    \"    dataset = FoodDataset(\\\"./merge\\\", tfm=test_tfm)\\n\",\n    \"    \\n\",\n    \"    # Create a data loader that loads the test set with the specified batch size, whether to shuffle, number of workers and memory management mode\\n\",\n    \"    test_set = FoodDataset(\\\"./test\\\", tfm=test_tfm)\\n\",\n    \"    test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n    \"\\n\",\n    \"    # Set the number of folds for cross-validation\\n\",\n    \"    NSPLITS = 5\\n\",\n    \"\\n\",\n    \"    # Define a list of models to use, including a custom classifier, ResNet50 and DenseNet121\\n\",\n    \"    models = [Classifier, ResNet50, DenseNet121]\\n\",\n    \"\\n\",\n    \"    # Call the stack function to perform model fusion with the specified dataset, test set, number of folds and models, \\n\",\n    \"    # and return the prediction results and validation accuracy, while logging them to tensorboard\\n\",\n    \"    oof_dict, val_acc_dict = stack(dataset, test_set, n_splits=NSPLITS, models=models, tb=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def create_tta_loaders():\\n\",\n    \"    # Initialize an empty list to store the TTA test loaders\\n\",\n    \"    tta_test_loaders = []\\n\",\n    \"    for i in range(num_tta):\\n\",\n    \"        # Create a FoodDataset instance with the test folder and the train transformation\\n\",\n    \"        test_set_i = FoodDataset(\\\"./test\\\", tfm = train_tfm)\\n\",\n    \"        tta_test_loader = DataLoader(test_set_i, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n    \"        tta_test_loaders.append(test_loader)\\n\",\n    \"    return tta_test_loaders\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"def tta(num_folds=5, model=None, ):\\n\",\n    \"    # Create an empty list to store the best model for each fold\\n\",\n    \"    base_models = []\\n\",\n    \"\\n\",\n    \"    # Load the best model for each fold\\n\",\n    \"    for fold in range(num_folds):\\n\",\n    \"        # Create a model instance and move it to the device (GPU or CPU)\\n\",\n    \"        model_best_i = model().to(device)\\n\",\n    \"        # Load the state dictionary of the best model for this fold from a checkpoint file\\n\",\n    \"        model_best_i.load_state_dict(torch.load(f\\\"models/{_exp_name}_{model_best_i.__class__.__name__}_fold{fold+1}_best.ckpt\\\"))\\n\",\n    \"        # Append the model to the base_models list\\n\",\n    \"        base_models.append(model_best_i)\\n\",\n    \"    # Create an ensemble model that combines the base models and move it to the device\\n\",\n    \"    model_best = EnsembleModel(base_models=base_models).to(device)\\n\",\n    \"\\n\",\n    \"    # Set the model to evaluation mode\\n\",\n    \"    model_best.eval()\\n\",\n    \"\\n\",\n    \"    # Initialize an empty list to store the prediction without test-time augmentation (TTA)\\n\",\n    \"    prediction = []\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for data,_ in tqdm(test_loader):\\n\",\n    \"            # Get the model output on the data and move it to CPU\\n\",\n    \"            test_pred = model_best(data.to(device)).cpu().data.numpy()\\n\",\n    \"            # Add the output to the prediction list\\n\",\n    \"            prediction += test_pred.squeeze().tolist()\\n\",\n    \"    # Convert the prediction list to a numpy array\\n\",\n    \"    prediction = np.array(prediction)\\n\",\n    \"\\n\",\n    \"    # Initialize an empty list to store the predictions with TTA\\n\",\n    \"    tta_predictions = []\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i in range(num_tta):\\n\",\n    \"            # Initialize an empty list to store the prediction for this iteration\\n\",\n    \"            tta_prediction = []\\n\",\n    \"            for data,_ in tqdm(tta_test_loaders[i]):\\n\",\n    \"                # Get the model output on the data and move it to CPU\\n\",\n    \"                test_pred = model_best(data.to(device)).cpu().data.numpy()\\n\",\n    \"                # Add the output to the tta_prediction list\\n\",\n    \"                tta_prediction += test_pred.squeeze().tolist()\\n\",\n    \"            # Append the tta_prediction list to the tta_predictions list\\n\",\n    \"            tta_predictions.append(tta_prediction)\\n\",\n    \"\\n\",\n    \"    # Initialize a zero array with the same shape as prediction to store the total TTA predictions\\n\",\n    \"    total_tta_predictions = np.zeros_like(prediction)\\n\",\n    \"    for i in range(num_tta):\\n\",\n    \"        total_tta_predictions += tta_predictions[i]\\n\",\n    \"    # Divide the total TTA predictions by t to get the average TTA predictions\\n\",\n    \"    avg_tta_predictions = np.divide(total_tta_predictions, num_tta)\\n\",\n    \"\\n\",\n    \"    # Get the weighted average of prediction and TTA prediction\\n\",\n    \"    prediction = [0.8 * prediction[i] + 0.2 * avg_tta_predictions[i] for i in range(len(prediction))]\\n\",\n    \"    # Get the predicted labels\\n\",\n    \"    prediction = np.argmax(np.array(prediction), axis=1)\\n\",\n    \"    return prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: Classifier, fold: 1\\n\",\n      \"Train Index (len: 10615): [    1     2     3 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2654): [    0     5     7 ... 13245 13250 13261]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6cff8778e76b4715b3517a50bd430345\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"86e82b6b075641d1936423fccbb3dbe7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: Classifier, fold: 2\\n\",\n      \"Train Index (len: 10615): [    0     1     5 ... 13264 13266 13267]\\n\",\n      \"Valid Index (len: 2654): [    2     3     4 ... 13248 13265 13268]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"da1b746239594d7eb37fadcf8eda46d7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"37ca1000a275415fb4a08cdea1735632\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: Classifier, fold: 3\\n\",\n      \"Train Index (len: 10615): [    0     2     3 ... 13264 13265 13268]\\n\",\n      \"Valid Index (len: 2654): [    1    14    16 ... 13260 13266 13267]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"984cb7dbaa264093ba81b3de81ace6e3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"54044419d31949ddada04b456130c4b0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: Classifier, fold: 4\\n\",\n      \"Train Index (len: 10615): [    0     1     2 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2654): [    6     8     9 ... 13262 13263 13264]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"eb6d12e3e6af418bbf4e331946ab19c6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3c8a4c2a0d2544a1b356382a6251e24f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: Classifier, fold: 5\\n\",\n      \"Train Index (len: 10616): [    0     1     2 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2653): [   20    28    30 ... 13253 13256 13259]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d7af948549f84d55b6b74b546d91c9a3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5becb5597ab544be9fb0f4f75099bc77\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"58ef257c28b24ed48fffaeb31e16a244\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"642a7133ee8a42bcb2a00563e4efbec6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"258eb0fd554540d7b702636a4dd3a4bc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b11c91f5fff845da98c8cb0279f9ce7b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3799ef2e10cb4c69866677c34175221f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7954fc87a9dc456da53ce9311bc485c6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Average validation accuracy: 0.8126\\n\",\n      \"Model: ResNet50, fold: 1\\n\",\n      \"Train Index (len: 10615): [    1     2     3 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2654): [    0     5     7 ... 13245 13250 13261]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4fcfc493a065430a8f5a756f4a5e5813\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"67ee17de2a634973bf4413c8716c1d19\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: ResNet50, fold: 2\\n\",\n      \"Train Index (len: 10615): [    0     1     5 ... 13264 13266 13267]\\n\",\n      \"Valid Index (len: 2654): [    2     3     4 ... 13248 13265 13268]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c772535acaa4457ca81241862ad7536a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c881e6e8752f4474a595b41bb2dc9f90\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: ResNet50, fold: 3\\n\",\n      \"Train Index (len: 10615): [    0     2     3 ... 13264 13265 13268]\\n\",\n      \"Valid Index (len: 2654): [    1    14    16 ... 13260 13266 13267]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e58f21e6db944e76b16002e5b8fdedce\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3a1cb8914cdc46d9985792aec17f1529\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: ResNet50, fold: 4\\n\",\n      \"Train Index (len: 10615): [    0     1     2 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2654): [    6     8     9 ... 13262 13263 13264]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"82247f59006c41bf9ef9c478e2b8af37\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"145e38a39e1a4af280816a52e4909313\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: ResNet50, fold: 5\\n\",\n      \"Train Index (len: 10616): [    0     1     2 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2653): [   20    28    30 ... 13253 13256 13259]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cf3ec4999d394382b05b9d2fb4d28db2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"98a0df60f07b4456a2c83074bd3cdbb4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c9050e244c504ae686234585223ebcaf\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5987a514bf0b452097cbf5d1bce2e807\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b9ec6315c1e54afbb50ed664b80294e7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"580c1a87794f4aa5834df0ef17d2cbbb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c92a926f9d58485a815275eede9d372a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bde21294d89a4fe78faf3cf1dba350a2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Average validation accuracy: 0.7718\\n\",\n      \"Model: DenseNet121, fold: 1\\n\",\n      \"Train Index (len: 10615): [    1     2     3 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2654): [    0     5     7 ... 13245 13250 13261]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4f2e8acebb6a42f68282033153def0f7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1783a619dc5346a0a4531bc8b8a3a0ba\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: DenseNet121, fold: 2\\n\",\n      \"Train Index (len: 10615): [    0     1     5 ... 13264 13266 13267]\\n\",\n      \"Valid Index (len: 2654): [    2     3     4 ... 13248 13265 13268]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bae7b42e65d642048ba05c7647610227\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"24e8e5e4d37f40a98d0169b080c0d6e4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: DenseNet121, fold: 3\\n\",\n      \"Train Index (len: 10615): [    0     2     3 ... 13264 13265 13268]\\n\",\n      \"Valid Index (len: 2654): [    1    14    16 ... 13260 13266 13267]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"06d363a85c15444ea7414d8688916454\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"68e341cbe9204f19ac5f88972565e8c8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: DenseNet121, fold: 4\\n\",\n      \"Train Index (len: 10615): [    0     1     2 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2654): [    6     8     9 ... 13262 13263 13264]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"02dcf3ea86f74169a6ff1a8482c93044\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5707dd3b4da14fe6b53e09c6752d5d03\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Model: DenseNet121, fold: 5\\n\",\n      \"Train Index (len: 10616): [    0     1     2 ... 13266 13267 13268]\\n\",\n      \"Valid Index (len: 2653): [   20    28    30 ... 13253 13256 13259]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6d2087e6afcf45c986d571f57eff68a4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d40891e2256e4db0b3a24a6c097b76ab\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/42 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"345735049005498590ca3e33631ec852\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6b185a45246b4d7187f1146aea0c6d03\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c88f67e9f0c248de90a9c7cc6a3ca17e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"816013cc12cb4e98a21bce65d9baaac0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1c4c13a39e6f431b974facabebd2c4c9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2f2f860adf3543eaa0b52382afdcf61b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Average validation accuracy: 0.7768\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"def stack_pretrained_models(dataset, test_set, n_splits=5, models=[]):\\n\",\n    \"    '''This function is a stacking function that skips the train part and directly imports the previous models\\n\",\n    \"       to reproduce the best results and save time. It also deletes unnecessary content.\\n\",\n    \"    \\n\",\n    \"    Parameters:\\n\",\n    \"        dataset: a torch.utils.data.Dataset object.\\n\",\n    \"        test_set: a torch.utils.data.Dataset object for testing.\\n\",\n    \"        n_splits (int): an integer that specifies the number of folds for cross-validation.\\n\",\n    \"        models (list): a list of model classes to use for stacking. If empty, raise ValueError. \\n\",\n    \"                       If only one model, perform simple cross-validation and return avg_val_acc.\\n\",\n    \"    '''\\n\",\n    \"    # Check if model is a list \\n\",\n    \"    if not isinstance(models, list):\\n\",\n    \"        models = [models]\\n\",\n    \"    # Check if models is empty\\n\",\n    \"    elif not len(models):\\n\",\n    \"        raise ValueError(\\\"models cannot be empty, you must specify a model.\\\")\\n\",\n    \"    \\n\",\n    \"    # Get the number of samples in the dataset and testset\\n\",\n    \"    ntrain = len(dataset)\\n\",\n    \"    ntest = len(test_set)\\n\",\n    \"    \\n\",\n    \"    # Create a generator object G with a fixed seed myseed, which is used for train_loader\\n\",\n    \"    G = torch.Generator()\\n\",\n    \"    G.manual_seed(myseed)\\n\",\n    \"    \\n\",\n    \"    # Record out-of-flod prediction for models\\n\",\n    \"    oof_dict = {}\\n\",\n    \"    # Record CV scores for models\\n\",\n    \"    val_acc_dict = {}\\n\",\n    \"    \\n\",\n    \"    for i in range(len(models)):\\n\",\n    \"\\n\",\n    \"        # Initialize an array to store the out-of-fold predictions for train set and test set\\n\",\n    \"        oof_train = np.zeros((ntrain,))\\n\",\n    \"        oof_test = np.zeros((ntest,))\\n\",\n    \"        # Initialize an array to store the out-of-fold predictions for each fold\\n\",\n    \"        oof_test_skf = np.empty((NSPLITS, ntest))\\n\",\n    \"        \\n\",\n    \"        # Create a KFold object to split the dataset into k subsets\\n\",\n    \"        kf = KFold(n_splits=NSPLITS, shuffle=True, random_state=myseed) # shuffle: default=False\\n\",\n    \"        \\n\",\n    \"        # Initialize a list to store the test predictions for each fold\\n\",\n    \"        test_predictions=[]\\n\",\n    \"        \\n\",\n    \"        # Initialize a list to store the validation accuracies for each fold\\n\",\n    \"        val_accs=[]\\n\",\n    \"        \\n\",\n    \"        for fold, (train_idx, valid_idx) in enumerate(kf.split(dataset)):\\n\",\n    \"            # Instantiate the current model\\n\",\n    \"            model = models[i]().to(device)\\n\",\n    \"            \\n\",\n    \"            # Print the current fold number\\n\",\n    \"            print(f\\\"Model: {models[i].__name__}, fold: {fold+1}\\\")\\n\",\n    \"\\n\",\n    \"            # Print the indices of the train and valid subsets\\n\",\n    \"            print(f\\\"Train Index (len: {len(train_idx)}): {train_idx}\\\")\\n\",\n    \"            print(f\\\"Valid Index (len: {len(valid_idx)}): {valid_idx}\\\")\\n\",\n    \"\\n\",\n    \"            optimizer = torch.optim.Adam(model.parameters(), lr=3e-4, weight_decay=1e-5)\\n\",\n    \"            scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.8, patience=patience/2, threshold=0.05)\\n\",\n    \"\\n\",\n    \"            # Create a subset of the dataset based on the train indices\\n\",\n    \"            train_set = MySubset(dataset, train_idx, train_tfm)\\n\",\n    \"            train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True, generator=G)\\n\",\n    \"            # Create a subset of the dataset based on the valid indices\\n\",\n    \"            valid_set = MySubset(dataset, valid_idx, test_tfm)\\n\",\n    \"            valid_loader = DataLoader(valid_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)    \\n\",\n    \"\\n\",\n    \"            # Out-of-Fold Predictions\\n\",\n    \"            model_best = model\\n\",\n    \"            # Load the saved state dict of the best model from previous training\\n\",\n    \"            model_best.load_state_dict(torch.load(f\\\"models/{_exp_name}_{models[i].__name__}_fold{fold+1}_best.ckpt\\\"))\\n\",\n    \"            model_best.eval()\\n\",\n    \"            val_prediction, test_prediction = [], []\\n\",\n    \"            with torch.no_grad():\\n\",\n    \"                valid_accs=[]\\n\",\n    \"                for batch in tqdm(valid_loader):\\n\",\n    \"\\n\",\n    \"                    # A batch consists of image data and corresponding labels.\\n\",\n    \"                    imgs, labels = batch\\n\",\n    \"\\n\",\n    \"                    with torch.no_grad():\\n\",\n    \"                        logits = model(imgs.to(device))\\n\",\n    \"\\n\",\n    \"                    # We can still compute the loss (but not the gradient).\\n\",\n    \"                    loss = criterion(logits, labels.to(device))\\n\",\n    \"\\n\",\n    \"                    # Compute the accuracy for current batch.\\n\",\n    \"                    acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n    \"\\n\",\n    \"                    # Record the accuracy.\\n\",\n    \"                    valid_accs.append(acc)\\n\",\n    \"                    \\n\",\n    \"                # Compute the average accuracy across all batches\\n\",\n    \"                best_acc = sum(valid_accs) / len(valid_accs)\\n\",\n    \"                \\n\",\n    \"                valid_loader = DataLoader(valid_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n    \"                for data,_ in tqdm(valid_loader):\\n\",\n    \"                    val_pred = np.argmax(model_best(data.to(device)).cpu().data.numpy(), axis=1)\\n\",\n    \"                    val_prediction += val_pred.squeeze().tolist()\\n\",\n    \"                oof_train[valid_idx] = val_prediction\\n\",\n    \"                \\n\",\n    \"                # The following code comment is another way of calculating and can be ignored\\n\",\n    \"                # for data,_ in tqdm(test_loader):\\n\",\n    \"                #     test_pred = model_best(data.to(device)).cpu().data.numpy()\\n\",\n    \"                #     test_prediction += test_pred.squeeze().tolist()\\n\",\n    \"                # test_predictions.append(test_prediction)\\n\",\n    \"                \\n\",\n    \"            val_accs.append(best_acc)\\n\",\n    \"            \\n\",\n    \"        # total_test_prediction = np.zeros_like(test_prediction)\\n\",\n    \"        # for j in range(5):\\n\",\n    \"        #     total_test_prediction += test_predictions[j]\\n\",\n    \"        # avg_test_prediction = np.argmax(np.divide(total_test_prediction, 5), axis=1)\\n\",\n    \"        \\n\",\n    \"        test_prediction = tta(num_folds=NSPLITS, model = models[i])\\n\",\n    \"        \\n\",\n    \"        oof_test[:] = test_prediction #avg_test_prediction\\n\",\n    \"        oof_dict[f\\\"{models[i].__name__}_oof_train\\\"] = oof_train.reshape(-1, 1)\\n\",\n    \"        oof_dict[f\\\"{models[i].__name__}_oof_test\\\"] = oof_test.reshape(-1, 1)\\n\",\n    \"        \\n\",\n    \"        # Compute the average validation accuracy across all folds\\n\",\n    \"        avg_val_acc = sum(val_accs) / len(val_accs)\\n\",\n    \"        val_acc_dict[f\\\"{models[i].__name__}_val_accs\\\"] = val_accs\\n\",\n    \"        val_acc_dict[f\\\"{models[i].__name__}_avg_val_acc\\\"] = avg_val_acc\\n\",\n    \"        \\n\",\n    \"        # Print the average validation accuracy\\n\",\n    \"        print(f\\\"Average validation accuracy: {avg_val_acc:.4f}\\\")\\n\",\n    \"        \\n\",\n    \"    return oof_dict, val_acc_dict\\n\",\n    \"\\n\",\n    \"    \\n\",\n    \"# Concatenate the train and valid sets into one dataset\\n\",\n    \"#dataset = ConcatDataset([train_set, valid_set])\\n\",\n    \"dataset = FoodDataset(\\\"./merge\\\", tfm=test_tfm)\\n\",\n    \"\\n\",\n    \"# Create a data loader that loads the test set with the specified batch size, whether to shuffle, number of workers and memory management mode\\n\",\n    \"test_set = FoodDataset(\\\"./test\\\", tfm=test_tfm)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n    \"\\n\",\n    \"# Set the number of folds for cross-validation\\n\",\n    \"NSPLITS = 5\\n\",\n    \"\\n\",\n    \"# The number of test time augmentation to apply\\n\",\n    \"num_tta = 5\\n\",\n    \"\\n\",\n    \"# Create tta loaders\\n\",\n    \"tta_test_loaders = create_tta_loaders()\\n\",\n    \"\\n\",\n    \"# Create a data loader that loads the test set with the specified batch size, whether to shuffle, number of workers and memory management mode\\n\",\n    \"models = [Classifier, ResNet50, DenseNet121]\\n\",\n    \"\\n\",\n    \"# Call the stack function to perform model fusion with the specified dataset, test set, number of folds and models, \\n\",\n    \"# and return the prediction results and validation accuracy, while logging them to tensorboard\\n\",\n    \"oof_dict, val_acc_dict = stack_pretrained_models(dataset, test_set, n_splits=NSPLITS, models=models)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'Classifier_val_accs': [tensor(0.8234, device='cuda:0'),\\n\",\n       \"  tensor(0.8126, device='cuda:0'),\\n\",\n       \"  tensor(0.8108, device='cuda:0'),\\n\",\n       \"  tensor(0.8066, device='cuda:0'),\\n\",\n       \"  tensor(0.8096, device='cuda:0')],\\n\",\n       \" 'Classifier_avg_val_acc': tensor(0.8126, device='cuda:0'),\\n\",\n       \" 'ResNet50_val_accs': [tensor(0.7702, device='cuda:0'),\\n\",\n       \"  tensor(0.7617, device='cuda:0'),\\n\",\n       \"  tensor(0.7787, device='cuda:0'),\\n\",\n       \"  tensor(0.7720, device='cuda:0'),\\n\",\n       \"  tensor(0.7761, device='cuda:0')],\\n\",\n       \" 'ResNet50_avg_val_acc': tensor(0.7718, device='cuda:0'),\\n\",\n       \" 'DenseNet121_val_accs': [tensor(0.7792, device='cuda:0'),\\n\",\n       \"  tensor(0.7740, device='cuda:0'),\\n\",\n       \"  tensor(0.7687, device='cuda:0'),\\n\",\n       \"  tensor(0.7765, device='cuda:0'),\\n\",\n       \"  tensor(0.7858, device='cuda:0')],\\n\",\n       \" 'DenseNet121_avg_val_acc': tensor(0.7768, device='cuda:0')}\"\n      ]\n     },\n     \"execution_count\": 17,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"val_acc_dict\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"dict_keys(['Classifier_oof_train', 'Classifier_oof_test', 'ResNet50_oof_train', 'ResNet50_oof_test', 'DenseNet121_oof_train', 'DenseNet121_oof_test'])\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"oof_dict.keys()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Classifier</th>\\n\",\n       \"      <th>ResNet50</th>\\n\",\n       \"      <th>DenseNet121</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>7.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>9.0</td>\\n\",\n       \"      <td>3.0</td>\\n\",\n       \"      <td>9.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   Classifier  ResNet50  DenseNet121\\n\",\n       \"0         0.0       7.0          0.0\\n\",\n       \"1         0.0       0.0          0.0\\n\",\n       \"2         9.0       3.0          9.0\\n\",\n       \"3         0.0       0.0          0.0\\n\",\n       \"4         0.0       0.0          0.0\"\n      ]\n     },\n     \"execution_count\": 19,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"base_predictions_train = pd.DataFrame( {'Classifier': oof_dict['Classifier_oof_train'].ravel(),\\n\",\n    \"     'ResNet50': oof_dict['ResNet50_oof_train'].ravel(),\\n\",\n    \"     'DenseNet121': oof_dict['DenseNet121_oof_train'].ravel(),\\n\",\n    \"    })\\n\",\n    \"base_predictions_train.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Classifier</th>\\n\",\n       \"      <th>ResNet50</th>\\n\",\n       \"      <th>DenseNet121</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>5.0</td>\\n\",\n       \"      <td>5.0</td>\\n\",\n       \"      <td>5.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>1.0</td>\\n\",\n       \"      <td>1.0</td>\\n\",\n       \"      <td>1.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"      <td>0.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>3.0</td>\\n\",\n       \"      <td>3.0</td>\\n\",\n       \"      <td>3.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>9.0</td>\\n\",\n       \"      <td>9.0</td>\\n\",\n       \"      <td>9.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   Classifier  ResNet50  DenseNet121\\n\",\n       \"0         5.0       5.0          5.0\\n\",\n       \"1         1.0       1.0          1.0\\n\",\n       \"2         0.0       0.0          0.0\\n\",\n       \"3         3.0       3.0          3.0\\n\",\n       \"4         9.0       9.0          9.0\"\n      ]\n     },\n     \"execution_count\": 20,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"base_predictions_test = pd.DataFrame( {'Classifier': oof_dict['Classifier_oof_test'].ravel(),\\n\",\n    \"     'ResNet50': oof_dict['ResNet50_oof_test'].ravel(),\\n\",\n    \"     'DenseNet121': oof_dict['DenseNet121_oof_test'].ravel(),\\n\",\n    \"    })\\n\",\n    \"base_predictions_test.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"        <script type=\\\"text/javascript\\\">\\n\",\n       \"        window.PlotlyConfig = {MathJaxConfig: 'local'};\\n\",\n       \"        if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \\\"STIX-Web\\\"}});}\\n\",\n       \"        if (typeof require !== 'undefined') {\\n\",\n       \"        require.undef(\\\"plotly\\\");\\n\",\n       \"        define('plotly', function(require, exports, module) {\\n\",\n       \"            /**\\n\",\n       \"* plotly.js v2.20.0\\n\",\n       \"* Copyright 2012-2023, Plotly, Inc.\\n\",\n       \"* All rights reserved.\\n\",\n       \"* Licensed under the MIT license\\n\",\n       \"*/\\n\",\n       \"/*! For license information please see plotly.min.js.LICENSE.txt */\\n\",\n       \"!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,labelalias:n.labelalias,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,labelalias:e.labelalias,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,f=t._context.staticPlot;e.each((function(e){var h,p=e[0].trace,d=p.error_x||{},v=p.error_y||{};p.ids&&(h=function(t){return t.id});var g=o.hasMarkers(p)&&p.marker.maxdisplayed>0;v.visible||d.visible||(e=[]);var y=n.select(this).selectAll(\\\"g.errorbar\\\").data(e,h);if(y.exit().remove(),e.length){d.visible||y.selectAll(\\\"path.xerror\\\").remove(),v.visible||y.selectAll(\\\"path.yerror\\\").remove(),y.style(\\\"opacity\\\",1);var m=y.enter().append(\\\"g\\\").classed(\\\"errorbar\\\",!0);c&&m.style(\\\"opacity\\\",0).transition().duration(s.duration).style(\\\"opacity\\\",1),a.setClipUrl(y,r.layerClipId,t),y.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(!g||t.vis){var a,o=e.select(\\\"path.yerror\\\");if(v.visible&&i(r.x)&&i(r.yh)&&i(r.ys)){var h=v.width;a=\\\"M\\\"+(r.x-h)+\\\",\\\"+r.yh+\\\"h\\\"+2*h+\\\"m-\\\"+h+\\\",0V\\\"+r.ys,r.noYS||(a+=\\\"m-\\\"+h+\\\",0h\\\"+2*h),o.size()?c&&(o=o.transition().duration(s.duration).ease(s.easing)):o=e.append(\\\"path\\\").style(\\\"vector-effect\\\",f?\\\"none\\\":\\\"non-scaling-stroke\\\").classed(\\\"yerror\\\",!0),o.attr(\\\"d\\\",a)}else o.remove();var p=e.select(\\\"path.xerror\\\");if(d.visible&&i(r.y)&&i(r.xh)&&i(r.xs)){var y=(d.copy_ystyle?v:d).width;a=\\\"M\\\"+r.xh+\\\",\\\"+(r.y-y)+\\\"v\\\"+2*y+\\\"m0,-\\\"+y+\\\"H\\\"+r.xs,r.noXS||(a+=\\\"m0,-\\\"+y+\\\"v\\\"+2*y),p.size()?c&&(p=p.transition().duration(s.duration).ease(s.easing)):p=e.append(\\\"path\\\").style(\\\"vector-effect\\\",f?\\\"none\\\":\\\"non-scaling-stroke\\\").classed(\\\"xerror\\\",!0),p.attr(\\\"d\\\",a)}else p.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 S=l[A];if(h[S])k=!0,_[A]=h[S].xaxis,w[A]=h[S].yaxis;else{if(!c[S]||!c[S]._subplot)return void o.warn(\\\"Unrecognized subplot: \\\"+S);var P=c[S]._subplot;_[A]=P.xaxis,w[A]=P.yaxis}}var I=e.hovermode||c.hovermode;if(I&&!k&&(I=\\\"closest\\\"),-1===[\\\"x\\\",\\\"y\\\",\\\"closest\\\",\\\"x unified\\\",\\\"y unified\\\"].indexOf(I)||!t.calcdata||t.querySelector(\\\".zoombox\\\")||t._dragging)return d.unhoverRaw(t,e);var N=c.hoverdistance;-1===N&&(N=1/0);var H=c.spikedistance;-1===H&&(H=1/0);var q,G,Z,Y,W,X,J,K,$,Q,tt,et,rt,nt=[],it=[],at={hLinePoint:null,vLinePoint:null},ot=!1;if(Array.isArray(e))for(I=\\\"array\\\",Z=0;Z<e.length;Z++)(W=t.calcdata[e[Z].curveNumber||0])&&(X=W[0].trace,\\\"skip\\\"!==W[0].trace.hoverinfo&&(it.push(W),\\\"h\\\"===X.orientation&&(ot=!0)));else{for(Y=0;Y<t.calcdata.length;Y++)W=t.calcdata[Y],\\\"skip\\\"!==(X=W[0].trace).hoverinfo&&y.isTraceInSubplots(X,l)&&(it.push(W),\\\"h\\\"===X.orientation&&(ot=!0));var st,lt;if(s){if(!1===u.triggerHandler(t,\\\"plotly_beforehover\\\",e))return;var ut=s.getBoundingClientRect();st=e.clientX-ut.left,lt=e.clientY-ut.top,c._calcInverseTransform(t);var ct=o.apply3DTransform(c._invTransform)(st,lt);if(st=ct[0],lt=ct[1],st<0||st>_[0]._length||lt<0||lt>w[0]._length)return d.unhoverRaw(t,e)}else st=\\\"xpx\\\"in e?e.xpx:_[0]._length/2,lt=\\\"ypx\\\"in e?e.ypx:w[0]._length/2;if(e.pointerX=st+_[0]._offset,e.pointerY=lt+w[0]._offset,q=\\\"xval\\\"in e?y.flat(l,e.xval):y.p2c(_,st),G=\\\"yval\\\"in e?y.flat(l,e.yval):y.p2c(w,lt),!i(q[0])||!i(G[0]))return o.warn(\\\"Fx.hover failed\\\",e,t),d.unhoverRaw(t,e)}var ft=1/0;function ht(t,r){for(Y=0;Y<it.length;Y++)if((W=it[Y])&&W[0]&&W[0].trace&&!0===(X=W[0].trace).visible&&0!==X._length&&-1===[\\\"carpet\\\",\\\"contourcarpet\\\"].indexOf(X._module.name)){if(\\\"splom\\\"===X.type?J=l[K=0]:(J=y.getSubplot(X),K=l.indexOf(J)),$=I,y.isUnifiedHover($)&&($=$.charAt(0)),et={cd:W,trace:X,xa:_[K],ya:w[K],maxHoverDistance:N,maxSpikeDistance:H,index:!1,distance:Math.min(ft,N),spikeDistance:1/0,xSpike:void 0,ySpike:void 0,color:p.defaultLine,name:X.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[J]&&(et.subplot=c[J]._subplot),c._splomScenes&&c._splomScenes[X.uid]&&(et.scene=c._splomScenes[X.uid]),rt=nt.length,\\\"array\\\"===$){var n=e[Y];\\\"pointNumber\\\"in n?(et.index=n.pointNumber,$=\\\"closest\\\"):($=\\\"\\\",\\\"xval\\\"in n&&(Q=n.xval,$=\\\"x\\\"),\\\"yval\\\"in n&&(tt=n.yval,$=$?\\\"closest\\\":\\\"y\\\"))}else void 0!==t&&void 0!==r?(Q=t,tt=r):(Q=q[K],tt=G[K]);if(0!==N)if(X._module&&X._module.hoverPoints){var a=X._module.hoverPoints(et,Q,tt,$,{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)&&nt.push(R(s,I))}else o.log(\\\"Unrecognized trace type in hover:\\\",X);if(\\\"closest\\\"===I&&nt.length>rt&&(nt.splice(0,rt),ft=nt[0].distance),m&&0!==H&&0===nt.length){et.distance=H,et.index=!1;var f=X._module.hoverPoints(et,Q,tt,\\\"closest\\\",{hoverLayer:c._hoverlayer});if(f&&(f=f.filter((function(t){return t.spikeDistance<=H}))),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=dt(v),(!at.vLinePoint||at.vLinePoint.spikeDistance>h.spikeDistance)&&(at.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=dt(x),(!at.hLinePoint||at.hLinePoint.spikeDistance>h.spikeDistance)&&(at.hLinePoint=h))}}}}}function pt(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 dt(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}ht();var vt={fullLayout:c,container:c._hoverlayer,event:e},gt=t._spikepoints,yt={vLinePoint:at.vLinePoint,hLinePoint:at.hLinePoint};t._spikepoints=yt;var mt=function(){nt.sort((function(t,e){return t.distance-e.distance})),nt=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)}(nt,I)};mt();var xt=I.charAt(0),bt=(\\\"x\\\"===xt||\\\"y\\\"===xt)&&nt[0]&&L[nt[0].trace.type];if(m&&0!==H&&0!==nt.length){var _t=pt(nt.filter((function(t){return t.ya.showspikes})),H,bt);at.hLinePoint=dt(_t);var wt=pt(nt.filter((function(t){return t.xa.showspikes})),H,bt);at.vLinePoint=dt(wt)}if(0===nt.length){var Tt=d.unhoverRaw(t,e);return!m||null===at.hLinePoint&&null===at.vLinePoint||B(gt)&&F(t,at,vt),Tt}if(m&&B(gt)&&F(t,at,vt),y.isXYhover($)&&0!==nt[0].length&&\\\"splom\\\"!==nt[0].trace.type){var kt=nt[0],At=(nt=E[kt.trace.type]?nt.filter((function(t){return t.trace.index===kt.trace.index})):[kt]).length;ht(j(\\\"x\\\",kt,c),j(\\\"y\\\",kt,c));var Mt,St=[],Et={},Lt=0,Ct=function(t){var e=E[t.trace.type]?C(t):t.trace.index;if(Et[e]){var r=Et[e]-1,n=St[r];r>0&&Math.abs(t.distance)<Math.abs(n.distance)&&(St[r]=t)}else Lt++,Et[e]=Lt,St.push(t)};for(Mt=0;Mt<At;Mt++)Ct(nt[Mt]);for(Mt=nt.length-1;Mt>At-1;Mt--)Ct(nt[Mt]);nt=St,mt()}var Pt=t._hoverdata,Ot=[],It=U(t),Dt=V(t);for(Z=0;Z<nt.length;Z++){var zt=nt[Z],Rt=y.makeEventData(zt,zt.trace,zt.cd);if(!1!==zt.hovertemplate){var Ft=!1;zt.cd[zt.index]&&zt.cd[zt.index].ht&&(Ft=zt.cd[zt.index].ht),zt.hovertemplate=Ft||zt.trace.hovertemplate||!1}if(zt.xa&&zt.ya){var Bt=zt.x0+zt.xa._offset,Nt=zt.x1+zt.xa._offset,jt=zt.y0+zt.ya._offset,Ut=zt.y1+zt.ya._offset,Vt=Math.min(Bt,Nt),Ht=Math.max(Bt,Nt),qt=Math.min(jt,Ut),Gt=Math.max(jt,Ut);Rt.bbox={x0:Vt+Dt,x1:Ht+Dt,y0:qt+It,y1:Gt+It}}zt.eventData=[Rt],Ot.push(Rt)}t._hoverdata=Ot;var Zt=\\\"y\\\"===I&&(it.length>1||nt.length>1)||\\\"closest\\\"===I&&ot&&nt.length>1,Yt=p.combine(c.plot_bgcolor||p.background,c.paper_bgcolor),Wt=O(nt,{gd:t,hovermode:I,rotateLabels:Zt,bgColor:Yt,container:c._hoverlayer,outerContainer:c._paper.node(),commonLabelOpts:c.hoverlabel,hoverdistance:c.hoverdistance}),Xt=Wt.hoverLabels;if(y.isUnifiedHover(I)||(function(t,e,r,n){var i,a,o,s,l,u,c,f=e?\\\"xa\\\":\\\"ya\\\",h=e?\\\"ya\\\":\\\"xa\\\",p=0,d=1,v=t.size(),g=new Array(v),y=0,m=n.minX,x=n.maxX,b=n.minY,_=n.maxY,w=function(t){return t*r._invScaleX},k=function(t){return t*r._invScaleY};function A(t){var e=t[0],r=t[t.length-1];if(a=e.pmin-e.pos-e.dp+e.size,o=r.pos+r.dp+r.size-e.pmax,a>.01){for(l=t.length-1;l>=0;l--)t[l].dp+=a;i=!1}if(!(o<.01)){if(a<-.01){for(l=t.length-1;l>=0;l--)t[l].dp-=o;i=!1}if(i){var n=0;for(s=0;s<t.length;s++)(u=t[s]).pos+u.dp+u.size>e.pmax&&n++;for(s=t.length-1;s>=0&&!(n<=0);s--)(u=t[s]).pos>e.pmax-1&&(u.del=!0,n--);for(s=0;s<t.length&&!(n<=0);s++)if((u=t[s]).pos<e.pmin+1)for(u.del=!0,n--,o=2*u.size,l=t.length-1;l>=0;l--)t[l].dp-=o;for(s=t.length-1;s>=0&&!(n<=0);s--)(u=t[s]).pos+u.dp+u.size>e.pmax&&(u.del=!0,n--)}}}for(t.each((function(t){var n=t[f],i=t[h],a=\\\"x\\\"===n._id.charAt(0),o=n.range;0===y&&o&&o[0]>o[1]!==a&&(d=-1);var s=0,l=a?r.width:r.height;if(\\\"x\\\"===r.hovermode||\\\"y\\\"===r.hovermode){var u,c,p=D(t,e),v=t.anchor,A=\\\"end\\\"===v?-1:1;if(\\\"middle\\\"===v)c=(u=t.crossPos+(a?k(p.y-t.by/2):w(t.bx/2+t.tx2width/2)))+(a?k(t.by):w(t.bx));else if(a)c=(u=t.crossPos+k(M+p.y)-k(t.by/2-M))+k(t.by);else{var S=w(A*M+p.x),E=S+w(A*t.bx);u=t.crossPos+Math.min(S,E),c=t.crossPos+Math.max(S,E)}a?void 0!==b&&void 0!==_&&Math.min(c,_)-Math.max(u,b)>1&&(\\\"left\\\"===i.side?(s=i._mainLinePosition,l=r.width):l=i._mainLinePosition):void 0!==m&&void 0!==x&&Math.min(c,x)-Math.max(u,m)>1&&(\\\"top\\\"===i.side?(s=i._mainLinePosition,l=r.height):l=i._mainLinePosition)}g[y++]=[{datum:t,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(a?T:1)/2,pmin:s,pmax:l}]})),g.sort((function(t,e){return t[0].posref-e[0].posref||d*(e[0].traceIndex-t[0].traceIndex)}));!i&&p<=v;){for(p++,i=!0,s=0;s<g.length-1;){var S=g[s],E=g[s+1],L=S[S.length-1],C=E[0];if((a=L.pos+L.dp+L.size-C.pos-C.dp+C.size)>.01&&L.pmin===C.pmin&&L.pmax===C.pmax){for(l=E.length-1;l>=0;l--)E[l].dp+=a;for(S.push.apply(S,E),g.splice(s+1,1),c=0,l=S.length-1;l>=0;l--)c+=S[l].dp;for(o=c/S.length,l=S.length-1;l>=0;l--)S[l].dp-=o;i=!1}else s++}g.forEach(A)}for(s=g.length-1;s>=0;s--){var P=g[s];for(l=P.length-1;l>=0;l--){var O=P[l],I=O.datum;I.offset=O.dp,I.del=O.del}}}(Xt,Zt,c,Wt.commonLabelBoundingBox),z(Xt,Zt,c._invScaleX,c._invScaleY)),s&&s.tagName){var Jt=g.getComponentMethod(\\\"annotations\\\",\\\"hasClickToShow\\\")(t,Ot);f(n.select(s),Jt?\\\"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,Pt)&&(Pt&&t.emit(\\\"plotly_unhover\\\",{event:e,points:Pt}),t.emit(\\\"plotly_hover\\\",{event:e,points:t._hoverdata,xaxes:_,yaxes:w,xvals:q,yvals:G}))}(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=U(i),o=V(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}).hoverLabels,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})),z(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=H(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,V,q=!0;for(U=0;U<t.length;U++)if(q&&void 0===t[U].zLabel&&(q=!1),V=t[U].hoverinfo||t[U].trace.hoverinfo){var G=Array.isArray(V)?V:V.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]:[]);Z.enter().append(\\\"g\\\").classed(\\\"axistext\\\",!0),Z.exit().remove();var Y={minX:0,maxX:0,minY:0,maxY:0};if(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=H(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\\\"+b+\\\"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\\\"+b+\\\"v\\\"+x+(2*S+m.height)+\\\"H-\\\"+b+\\\"V\\\"+x+M+\\\"H-\\\"+M+\\\"Z\\\"),Y.minX=g-b,Y.maxX=g+b,\\\"top\\\"===E.side?(Y.minY=y-(2*S+m.height),Y.maxY=y-S):(Y.minY=y+S,Y.maxY=y+(2*S+m.height))}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\\\"),Y.minY=y-(S+m.height/2),Y.maxY=y+(S+m.height/2),\\\"right\\\"===L.side?(Y.minX=g+M,Y.maxX=g+M+(2*S+m.width)):(Y.minX=g-M-(2*S+m.width),Y.maxX=g-M);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=H(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 W=t.filter((function(t){return\\\"none\\\"!==t.hoverinfo}));if(0===W.length)return;var X=i.hoverlabel,J=X.font,K={showlegend:!0,legend:{title:{text:D,font:J},font:J,bgcolor:X.bgcolor,bordercolor:X.bordercolor,borderwidth:1,tracegroupgap:7,traceorder:i.legend?i.legend.traceorder:void 0,orientation:\\\"v\\\"}},$={font:J};x(K,$,r._fullData);var Q=$.legend;Q.entries=[];for(var tt=0;tt<W.length;tt++){var et=W[tt];if(\\\"none\\\"!==et.hoverinfo){var rt=I(et,!0,a,i,D),nt=rt[0],it=rt[1];et.name=it,et.text=\\\"\\\"!==it?it+\\\" : \\\"+nt:nt;var at=et.cd[et.index];at&&(at.mc&&(et.mc=at.mc),at.mcc&&(et.mc=at.mcc),at.mlc&&(et.mlc=at.mlc),at.mlcc&&(et.mlc=at.mlcc),at.mlw&&(et.mlw=at.mlw),at.mrc&&(et.mrc=at.mrc),at.dir&&(et.dir=at.dir)),et._distinct=!0,Q.entries.push([et])}}Q.entries.sort((function(t,e){return t[0].trace.index-e[0].trace.index})),Q.layer=d,Q._inHover=!0,Q._groupTitleFont=X.grouptitlefont,b(r,Q);var ot,st,lt,ut,ct=d.select(\\\"g.legend\\\"),ft=H(r,ct.node()),ht=ft.width+2*S,pt=ft.height+2*S,dt=W[0],vt=(dt.x0+dt.x1)/2,gt=(dt.y0+dt.y1)/2,yt=!(g.traceIs(dt.trace,\\\"bar-like\\\")||g.traceIs(dt.trace,\\\"box-violin\\\"));\\\"y\\\"===P?yt?(st=gt-S,ot=gt+S):(st=Math.min.apply(null,W.map((function(t){return Math.min(t.y0,t.y1)}))),ot=Math.max.apply(null,W.map((function(t){return Math.max(t.y0,t.y1)})))):st=ot=o.mean(W.map((function(t){return(t.y0+t.y1)/2})))-pt/2,\\\"x\\\"===P?yt?(lt=vt+S,ut=vt-S):(lt=Math.max.apply(null,W.map((function(t){return Math.max(t.x0,t.x1)}))),ut=Math.min.apply(null,W.map((function(t){return Math.min(t.x0,t.x1)})))):lt=ut=o.mean(W.map((function(t){return(t.x0+t.x1)/2})))-ht/2;var mt,xt,bt=E._offset,_t=L._offset;return ut+=bt-ht,st+=_t-pt,mt=(lt+=bt)+ht<B&&lt>=0?lt:ut+ht<B&&ut>=0?ut:bt+ht<B?bt:lt-vt<vt-ut+ht?B-ht:0,mt+=S,xt=(ot+=_t)+pt<N&&ot>=0?ot:st+pt<N&&st>=0?st:_t+pt<N?_t:ot-gt<gt-st+pt?N-pt:0,xt+=S,ct.attr(\\\"transform\\\",s(mt-1,xt-1)),ct}var wt=d.selectAll(\\\"g.hovertext\\\").data(t,(function(t){return C(t)}));return wt.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)})),wt.exit().remove(),wt.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=H(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=H(r,w.node()),V=U.width/i._invScaleX,q=U.height/i._invScaleY;t.ty0=(F-U.top)/i._invScaleY,t.bx=V+2*S,t.by=Math.max(q+2*S,L),t.anchor=\\\"start\\\",t.txwidth=V,t.tx2width=E,t.offset=0;var G,Z,Y=(V+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\\\"),t.crossPos=O;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\\\";t.crossPos=P}w.attr(\\\"text-anchor\\\",t.anchor),E&&A.attr(\\\"text-anchor\\\",t.anchor),e.attr(\\\"transform\\\",s(P,O)+(u?l(_):\\\"\\\"))})),{hoverLabels:wt,commonLabelBoundingBox:Y}}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=N(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=N(r,t.nameLength),\\\"\\\"}))}return[l,s]}function D(t,e){var r=0,n=t.offset;return e&&(n*=-A,r=t.offset*k),{x:r,y:n}}function z(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,s,l,u,f=r.select(\\\"text.nums\\\"),p=t.anchor,d=\\\"end\\\"===p?-1:1,v=(u=(l=(s={start:1,end:-1,middle:0}[(i=t).anchor])*(M+S))+s*(i.txwidth+S),\\\"middle\\\"===i.anchor&&(l-=i.tx2width/2,u+=i.txwidth/2+S),{alignShift:s,textShiftX:l,text2ShiftX:u}),g=D(t,e),y=g.x,m=g.y,x=\\\"middle\\\"===p;r.select(\\\"path\\\").attr(\\\"d\\\",x?\\\"M-\\\"+a(t.bx/2+t.tx2width/2)+\\\",\\\"+o(m-t.by/2)+\\\"h\\\"+a(t.bx)+\\\"v\\\"+o(t.by)+\\\"h-\\\"+a(t.bx)+\\\"Z\\\":\\\"M0,0L\\\"+a(d*M+y)+\\\",\\\"+o(M+m)+\\\"v\\\"+o(t.by/2-M)+\\\"h\\\"+a(d*t.bx)+\\\"v-\\\"+o(t.by)+\\\"H\\\"+a(d*M+y)+\\\"V\\\"+o(m-M)+\\\"Z\\\");var b=y+v.textShiftX,_=m+t.ty0-t.by/2+S,w=t.textAlign||\\\"auto\\\";\\\"auto\\\"!==w&&(\\\"left\\\"===w&&\\\"start\\\"!==p?(f.attr(\\\"text-anchor\\\",\\\"start\\\"),b=x?-t.bx/2-t.tx2width/2+S:-t.bx-S):\\\"right\\\"===w&&\\\"end\\\"!==p&&(f.attr(\\\"text-anchor\\\",\\\"end\\\"),b=x?t.bx/2-t.tx2width/2-S:t.bx+S)),f.call(c.positionText,a(b),o(_)),t.tx2width&&(r.select(\\\"text.name\\\").call(c.positionText,a(v.text2ShiftX+v.alignShift*S+y),o(m+t.ty0-t.by/2+S)),r.select(\\\"rect\\\").call(h.setRect,a(v.text2ShiftX+(v.alignShift-1)*t.tx2width/2+y),o(m-t.by/2-1),a(t.tx2width),o(t.by+2)))}))}function R(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 F(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 B(t,e){return!e||e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint}function N(t,e){return c.plainText(t||\\\"\\\",{len:e,allowedTags:[\\\"br\\\",\\\"sub\\\",\\\"sup\\\",\\\"b\\\",\\\"i\\\",\\\"em\\\"]})}function j(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 U(t){return t.offsetTop+t.clientTop}function V(t){return t.offsetLeft+t.clientLeft}function H(t,e){var r=t._fullLayout,n=e.getBoundingClientRect(),i=n.left,a=n.top,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:if(x=\\\"ew-resize\\\",g+b>r._length||y+b<0)return;c=g+b,p=y+b;break;case l:if(x=\\\"col-resize\\\",g+b>r._length)return;c=g+b,p=y;break;case u:if(x=\\\"col-resize\\\",y+b<0)return;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(41940),a=r(82196).line,o=r(79952).P,s=r(1426).extendFlat,l=r(44467).templatedArray;r(24695),t.exports=l(\\\"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:s({},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:s({},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:s({},a.color,{editType:\\\"arraydraw\\\"}),width:s({},a.width,{editType:\\\"calc+arraydraw\\\"}),dash:s({},o,{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\\\"},label:{text:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"arraydraw\\\"},font:i({editType:\\\"calc+arraydraw\\\",colorEditType:\\\"arraydraw\\\"}),textposition:{valType:\\\"enumerated\\\",values:[\\\"top left\\\",\\\"top center\\\",\\\"top right\\\",\\\"middle left\\\",\\\"middle center\\\",\\\"middle right\\\",\\\"bottom left\\\",\\\"bottom center\\\",\\\"bottom right\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"],editType:\\\"arraydraw\\\"},textangle:{valType:\\\"angle\\\",dflt:\\\"auto\\\",editType:\\\"calc+arraydraw\\\"},xanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"auto\\\",editType:\\\"calc+arraydraw\\\"},yanchor:{valType:\\\"enumerated\\\",values:[\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],editType:\\\"calc+arraydraw\\\"},padding:{valType:\\\"number\\\",dflt:3,min:0,editType:\\\"arraydraw\\\"},editType:\\\"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=a(\\\"type\\\",l?\\\"path\\\":\\\"rect\\\"),c=\\\"path\\\"!==u;c&&delete e.path,a(\\\"editable\\\"),a(\\\"layer\\\"),a(\\\"opacity\\\"),a(\\\"fillcolor\\\"),a(\\\"fillrule\\\"),a(\\\"line.width\\\")&&(a(\\\"line.color\\\"),a(\\\"line.dash\\\"));for(var f=a(\\\"xsizemode\\\"),h=a(\\\"ysizemode\\\"),p=[\\\"x\\\",\\\"y\\\"],d=0;d<2;d++){var v,g,y,m=p[d],x=m+\\\"anchor\\\",b=\\\"x\\\"===m?f:h,_={_fullLayout:r},w=i.coerceRef(t,e,_,m,void 0,\\\"paper\\\");if(\\\"range\\\"===i.getRefType(w)?((v=i.getFromId(_,w))._shapeIndices.push(e._index),y=s.rangeToShapePosition(v),g=s.shapePositionToRange(v)):g=y=n.identity,c){var T=m+\\\"0\\\",k=m+\\\"1\\\",A=t[T],M=t[k];t[T]=g(t[T],!0),t[k]=g(t[k],!0),\\\"pixel\\\"===b?(a(T,0),a(k,10)):(i.coercePosition(e,_,a,w,T,.25),i.coercePosition(e,_,a,w,k,.75)),e[T]=y(e[T]),e[k]=y(e[k]),t[T]=A,t[k]=M}if(\\\"pixel\\\"===b){var S=t[x];t[x]=g(t[x],!0),i.coercePosition(e,_,a,w,x,.25),e[x]=y(e[x]),t[x]=S}}c&&n.noneOrAll(t,e,[\\\"x0\\\",\\\"x1\\\",\\\"y0\\\",\\\"y1\\\"]);var E=\\\"line\\\"===u;if(a(\\\"label.text\\\")){a(\\\"label.textangle\\\");var L=a(\\\"label.textposition\\\",E?\\\"middle\\\":\\\"middle center\\\");a(\\\"label.xanchor\\\"),a(\\\"label.yanchor\\\",function(t,e){return t?\\\"bottom\\\":-1!==e.indexOf(\\\"top\\\")?\\\"top\\\":-1!==e.indexOf(\\\"bottom\\\")?\\\"bottom\\\":\\\"middle\\\"}(E,L)),a(\\\"label.padding\\\"),n.coerceFont(a,\\\"label.font\\\",r.font)}}}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])||a.hasText)&&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(39898),i=r(73972),a=r(71828),o=r(89298),s=r(60165).readPaths,l=r(42359),u=r(51873).clearOutlineControllers,c=r(7901),f=r(91424),h=r(44467).arrayEditor,p=r(28569),d=r(6964),v=r(63893),g=r(21459),y=r(30477),m=y.getPathString,x=r(18783).FROM_TL;function b(t){var e=t._fullLayout;for(var r in e._shapeUpperLayer.selectAll(\\\"path\\\").remove(),e._shapeLowerLayer.selectAll(\\\"path\\\").remove(),e._shapeUpperLayer.selectAll(\\\"text\\\").remove(),e._shapeLowerLayer.selectAll(\\\"text\\\").remove(),e._plots){var n=e._plots[r].shapelayer;n&&(n.selectAll(\\\"path\\\").remove(),n.selectAll(\\\"text\\\").remove())}for(var i=0;i<e.shapes.length;i++)e.shapes[i].visible&&T(t,i)}function _(t){return!!t._fullLayout._outlining}function w(t){return!t._context.edits.shapePosition}function T(t,e){t._fullLayout._paperdiv.selectAll('.shapelayer [data-index=\\\"'+e+'\\\"]').remove();var r=y.makeShapesOptionsAndPlotinfo(t,e),u=r.options,v=r.plotinfo;function x(r){var x=m(t,u),T={\\\"data-index\\\":e,\\\"fill-rule\\\":u.fillrule,d:x},E=u.opacity,L=u.fillcolor,C=u.line.width?u.line.color:\\\"rgba(0,0,0,0)\\\",P=u.line.width,O=u.line.dash;P||!0!==u.editable||(P=5,O=\\\"solid\\\");var I=\\\"Z\\\"!==x[x.length-1],D=w(t)&&u.editable&&t._fullLayout._activeShapeIndex===e;D&&(L=I?\\\"rgba(0,0,0,0)\\\":t._fullLayout.activeshape.fillcolor,E=t._fullLayout.activeshape.opacity);var z,R=r.append(\\\"g\\\").classed(\\\"shape-group\\\",!0).attr({\\\"data-index\\\":e}),F=R.append(\\\"path\\\").attr(T).style(\\\"opacity\\\",E).call(c.stroke,C).call(c.fill,L).call(f.dashLine,O,P);if(k(R,t,u),A(t,e,u,R),(D||t._context.edits.shapePosition)&&(z=h(t.layout,\\\"shapes\\\",u)),D){F.style({cursor:\\\"move\\\"});var B={element:F.node(),plotinfo:v,gd:t,editHelpers:z,hasText:u.label.text,isActiveShape:!0},N=s(x,t);l(N,F,B)}else t._context.edits.shapePosition?function(t,e,r,s,l,u){var c,h,v,x,b,w,T,S,E,L,C,P,O,I,D,z,R=\\\"pixel\\\"===r.xsizemode,F=\\\"pixel\\\"===r.ysizemode,B=\\\"line\\\"===r.type,N=\\\"path\\\"===r.type,j=u.modifyItem,U=n.select(e.node().parentNode),V=o.getFromId(t,r.xref),H=o.getRefType(r.xref),q=o.getFromId(t,r.yref),G=o.getRefType(r.yref),Z=y.getDataToPixel(t,V,!1,H),Y=y.getDataToPixel(t,q,!0,G),W=y.getPixelToData(t,V,!1,H),X=y.getPixelToData(t,q,!0,G),J=B?function(){var t=10,n=Math.max(r.line.width,t),i=l.append(\\\"g\\\").attr(\\\"data-index\\\",s).attr(\\\"drag-helper\\\",!0);i.append(\\\"path\\\").attr(\\\"d\\\",e.attr(\\\"d\\\")).style({cursor:\\\"move\\\",\\\"stroke-width\\\":n,\\\"stroke-opacity\\\":\\\"0\\\"});var a={\\\"fill-opacity\\\":\\\"0\\\"},o=Math.max(n/2,t);return i.append(\\\"circle\\\").attr({\\\"data-line-point\\\":\\\"start-point\\\",cx:R?Z(r.xanchor)+r.x0:Z(r.x0),cy:F?Y(r.yanchor)-r.y0:Y(r.y0),r:o}).style(a).classed(\\\"cursor-grab\\\",!0),i.append(\\\"circle\\\").attr({\\\"data-line-point\\\":\\\"end-point\\\",cx:R?Z(r.xanchor)+r.x1:Z(r.x1),cy:F?Y(r.yanchor)-r.y1:Y(r.y1),r:o}).style(a).classed(\\\"cursor-grab\\\",!0),i}():e,K={element:J.node(),gd:t,prepFn:function(n){_(t)||(R&&(b=Z(r.xanchor)),F&&(w=Y(r.yanchor)),\\\"path\\\"===r.type?D=r.path:(c=R?r.x0:Z(r.x0),h=F?r.y0:Y(r.y0),v=R?r.x1:Z(r.x1),x=F?r.y1:Y(r.y1)),c<v?(E=c,O=\\\"x0\\\",L=v,I=\\\"x1\\\"):(E=v,O=\\\"x1\\\",L=c,I=\\\"x0\\\"),!F&&h<x||F&&h>x?(T=h,C=\\\"y0\\\",S=x,P=\\\"y1\\\"):(T=x,C=\\\"y1\\\",S=h,P=\\\"y0\\\"),$(n),et(l,r),function(t,e,r){var n=e.xref,i=e.yref,a=o.getFromId(r,n),s=o.getFromId(r,i),l=\\\"\\\";\\\"paper\\\"===n||a.autorange||(l+=n),\\\"paper\\\"===i||s.autorange||(l+=i),f.setClipUrl(t,l?\\\"clip\\\"+r._fullLayout._uid+l:null,r)}(e,r,t),K.moveFn=\\\"move\\\"===z?Q:tt,K.altKey=n.altKey)},doneFn:function(){_(t)||(d(e),rt(l),k(e,t,r),i.call(\\\"_guiRelayout\\\",t,u.getUpdateObj()))},clickFn:function(){_(t)||rt(l)}};function $(r){if(_(t))z=null;else if(B)z=\\\"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=K.element.getBoundingClientRect(),i=n.right-n.left,a=n.bottom-n.top,o=r.clientX-n.left,s=r.clientY-n.top,l=!N&&i>10&&a>10&&!r.shiftKey?p.getCursor(o/i,1-s/a):\\\"move\\\";d(e,l),z=l.split(\\\"-\\\")[0]}}function Q(n,i){if(\\\"path\\\"===r.type){var a=function(t){return t},o=a,u=a;R?j(\\\"xanchor\\\",r.xanchor=W(b+n)):(o=function(t){return W(Z(t)+n)},V&&\\\"date\\\"===V.type&&(o=y.encodeDate(o))),F?j(\\\"yanchor\\\",r.yanchor=X(w+i)):(u=function(t){return X(Y(t)+i)},q&&\\\"date\\\"===q.type&&(u=y.encodeDate(u))),j(\\\"path\\\",r.path=M(D,o,u))}else R?j(\\\"xanchor\\\",r.xanchor=W(b+n)):(j(\\\"x0\\\",r.x0=W(c+n)),j(\\\"x1\\\",r.x1=W(v+n))),F?j(\\\"yanchor\\\",r.yanchor=X(w+i)):(j(\\\"y0\\\",r.y0=X(h+i)),j(\\\"y1\\\",r.y1=X(x+i)));e.attr(\\\"d\\\",m(t,r)),et(l,r),A(t,s,r,U)}function tt(n,i){if(N){var a=function(t){return t},o=a,u=a;R?j(\\\"xanchor\\\",r.xanchor=W(b+n)):(o=function(t){return W(Z(t)+n)},V&&\\\"date\\\"===V.type&&(o=y.encodeDate(o))),F?j(\\\"yanchor\\\",r.yanchor=X(w+i)):(u=function(t){return X(Y(t)+i)},q&&\\\"date\\\"===q.type&&(u=y.encodeDate(u))),j(\\\"path\\\",r.path=M(D,o,u))}else if(B){if(\\\"resize-over-start-point\\\"===z){var f=c+n,p=F?h-i:h+i;j(\\\"x0\\\",r.x0=R?f:W(f)),j(\\\"y0\\\",r.y0=F?p:X(p))}else if(\\\"resize-over-end-point\\\"===z){var d=v+n,g=F?x-i:x+i;j(\\\"x1\\\",r.x1=R?d:W(d)),j(\\\"y1\\\",r.y1=F?g:X(g))}}else{var _=function(t){return-1!==z.indexOf(t)},k=_(\\\"n\\\"),H=_(\\\"s\\\"),G=_(\\\"w\\\"),J=_(\\\"e\\\"),K=k?T+i:T,$=H?S+i:S,Q=G?E+n:E,tt=J?L+n:L;F&&(k&&(K=T-i),H&&($=S-i)),(!F&&$-K>10||F&&K-$>10)&&(j(C,r[C]=F?K:X(K)),j(P,r[P]=F?$:X($))),tt-Q>10&&(j(O,r[O]=R?Q:W(Q)),j(I,r[I]=R?tt:W(tt)))}e.attr(\\\"d\\\",m(t,r)),et(l,r),A(t,s,r,U)}function et(t,e){(R||F)&&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 i=Z(R?e.xanchor:a.midRange(r?[e.x0,e.x1]:y.extractPathCoords(e.path,g.paramIsX))),o=Y(F?e.yanchor:a.midRange(r?[e.y0,e.y1]:y.extractPathCoords(e.path,g.paramIsY)));if(i=y.roundPositionForSharpStrokeRendering(i,1),o=y.roundPositionForSharpStrokeRendering(o,1),R&&F){var s=\\\"M\\\"+(i-1-1)+\\\",\\\"+(o-1-1)+\\\"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z\\\";n.attr(\\\"d\\\",s)}else if(R){var l=\\\"M\\\"+(i-1-1)+\\\",\\\"+(o-9-1)+\\\"v18 h2 v-18 Z\\\";n.attr(\\\"d\\\",l)}else{var u=\\\"M\\\"+(i-9-1)+\\\",\\\"+(o-1-1)+\\\"h18 v2 h-18 Z\\\";n.attr(\\\"d\\\",u)}}()}function rt(t){t.selectAll(\\\".visual-cue\\\").remove()}p.init(K),J.node().onmousemove=$}(t,F,u,e,r,z):!0===u.editable&&F.style(\\\"pointer-events\\\",I||c.opacity(L)*E<=.5?\\\"stroke\\\":\\\"all\\\");F.node().addEventListener(\\\"click\\\",(function(){return function(t,e){if(w(t)){var r=+e.node().getAttribute(\\\"data-index\\\");if(r>=0){if(r===t._fullLayout._activeShapeIndex)return void S(t);t._fullLayout._activeShapeIndex=r,t._fullLayout._deactivateShape=S,b(t)}}}(t,F)}))}u._input&&!1!==u.visible&&(\\\"below\\\"!==u.layer?x(t._fullLayout._shapeUpperLayer):\\\"paper\\\"===u.xref||\\\"paper\\\"===u.yref?x(t._fullLayout._shapeLowerLayer):v._hadPlotinfo?x((v.mainplotinfo||v).shapelayer):x(t._fullLayout._shapeLowerLayer))}function k(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,\\\"\\\").replace(/[xyz][1-9]* *domain/g,\\\"\\\");f.setClipUrl(t,n?\\\"clip\\\"+e._fullLayout._uid+n:null,e)}function A(t,e,r,n){if(n.selectAll(\\\".shape-label\\\").remove(),r.label.text){var i,a,l,u,c={\\\"data-index\\\":e},h=r.label.text,p=r.label.font,d=n.append(\\\"g\\\").attr(c).classed(\\\"shape-label\\\",!0).append(\\\"text\\\").attr({\\\"data-notex\\\":1}).classed(\\\"shape-label-text\\\",!0).text(h);if(r.path){var g=m(t,r),b=s(g,t);i=1/0,l=1/0,a=-1/0,u=-1/0;for(var _=0;_<b.length;_++)for(var w=0;w<b[_].length;w++)for(var T=b[_][w],k=1;k<T.length;k+=2){var A=T[k],M=T[k+1];i=Math.min(i,A),a=Math.max(a,A),l=Math.min(l,M),u=Math.max(u,M)}}else{var S=o.getFromId(t,r.xref),E=o.getRefType(r.xref),L=o.getFromId(t,r.yref),C=o.getRefType(r.yref),P=y.getDataToPixel(t,S,!1,E),O=y.getDataToPixel(t,L,!0,C);i=P(r.x0),a=P(r.x1),l=O(r.y0),u=O(r.y1)}var I=r.label.textangle;\\\"auto\\\"===I&&(I=\\\"line\\\"===r.type?function(t,e,r,n){var i,a;return a=Math.abs(r-t),i=r>=t?e-n:n-e,-180/Math.PI*Math.atan2(i,a)}(i,l,a,u):0),d.call((function(e){return e.call(f.font,p).attr({}),v.convertToTspans(e,t),e}));var D=function(t,e,r,n,i,a,o){var s,l,u,c,f=i.label.textposition,h=i.label.textangle,p=i.label.padding,d=i.type,v=Math.PI/180*a,g=Math.sin(v),y=Math.cos(v),m=i.label.xanchor,b=i.label.yanchor;if(\\\"line\\\"===d){\\\"start\\\"===f?(s=t,l=e):\\\"end\\\"===f?(s=r,l=n):(s=(t+r)/2,l=(e+n)/2),\\\"auto\\\"===m&&(m=\\\"start\\\"===f?\\\"auto\\\"===h?r>t?\\\"left\\\":r<t?\\\"right\\\":\\\"center\\\":r>t?\\\"right\\\":r<t?\\\"left\\\":\\\"center\\\":\\\"end\\\"===f?\\\"auto\\\"===h?r>t?\\\"right\\\":r<t?\\\"left\\\":\\\"center\\\":r>t?\\\"left\\\":r<t?\\\"right\\\":\\\"center\\\":\\\"center\\\");var _={bottom:-1,middle:0,top:1};if(\\\"auto\\\"===h){var w=_[b];u=-p*g*w,c=p*y*w}else u=p*{left:1,center:0,right:-1}[m],c=p*_[b];s+=u,l+=c}else u=p+3,-1!==f.indexOf(\\\"right\\\")?(s=Math.max(t,r)-u,\\\"auto\\\"===m&&(m=\\\"right\\\")):-1!==f.indexOf(\\\"left\\\")?(s=Math.min(t,r)+u,\\\"auto\\\"===m&&(m=\\\"left\\\")):(s=(t+r)/2,\\\"auto\\\"===m&&(m=\\\"center\\\")),l=-1!==f.indexOf(\\\"top\\\")?Math.min(e,n):-1!==f.indexOf(\\\"bottom\\\")?Math.max(e,n):(e+n)/2,c=p,\\\"bottom\\\"===b?l-=c:\\\"top\\\"===b&&(l+=c);var T=x[b],k=i.label.font.size,A=o.height;return{textx:s+(A*T-k)*g,texty:l+-(A*T-k)*y,xanchor:m}}(i,l,a,u,r,I,f.bBox(d.node())),z=D.textx,R=D.texty,F=D.xanchor;d.attr({\\\"text-anchor\\\":{left:\\\"start\\\",center:\\\"middle\\\",right:\\\"end\\\"}[F],y:R,x:z,transform:\\\"rotate(\\\"+I+\\\",\\\"+z+\\\",\\\"+R+\\\")\\\"}).call(v.positionText,z,R)}}function M(t,e,r){return t.replace(g.segmentRE,(function(t){var n=0,i=t.charAt(0),a=g.paramIsX[i],o=g.paramIsY[i],s=g.numParams[i];return i+t.substr(1).replace(g.paramRE,(function(t){return n>=s||(a[n]?t=e(t):o[n]&&(t=r(t)),n++),t}))}))}function S(t){w(t)&&t._fullLayout._activeShapeIndex>=0&&(u(t),delete t._fullLayout._activeShapeIndex,b(t))}t.exports={draw:b,drawOne:T,eraseActiveShape:function(t){if(w(t)){u(t);var e=t._fullLayout._activeShapeIndex,r=(t.layout||{}).shapes||[];if(e<r.length){for(var n=[],a=0;a<r.length;a++)a!==e&&n.push(r[a]);delete t._fullLayout._activeShapeIndex,i.call(\\\"_guiRelayout\\\",t,{shapes:n})}}}}},29241:function(t,e,r){\\\"use strict\\\";var n=r(41940),i=r(79952).P,a=r(1426).extendFlat;t.exports={newshape:{line:{color:{valType:\\\"color\\\",editType:\\\"none\\\"},width:{valType:\\\"number\\\",min:0,dflt:4,editType:\\\"none\\\"},dash:a({},i,{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\\\"},label:{text:{valType:\\\"string\\\",dflt:\\\"\\\",editType:\\\"none\\\"},font:n({editType:\\\"none\\\"}),textposition:{valType:\\\"enumerated\\\",values:[\\\"top left\\\",\\\"top center\\\",\\\"top right\\\",\\\"middle left\\\",\\\"middle center\\\",\\\"middle right\\\",\\\"bottom left\\\",\\\"bottom center\\\",\\\"bottom right\\\",\\\"start\\\",\\\"middle\\\",\\\"end\\\"],editType:\\\"none\\\"},textangle:{valType:\\\"angle\\\",dflt:\\\"auto\\\",editType:\\\"none\\\"},xanchor:{valType:\\\"enumerated\\\",values:[\\\"auto\\\",\\\"left\\\",\\\"center\\\",\\\"right\\\"],dflt:\\\"auto\\\",editType:\\\"none\\\"},yanchor:{valType:\\\"enumerated\\\",values:[\\\"top\\\",\\\"middle\\\",\\\"bottom\\\"],editType:\\\"none\\\"},padding:{valType:\\\"number\\\",dflt:3,min:0,editType:\\\"none\\\"},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),i=r(71828);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 a=(t||{}).plot_bgcolor||\\\"#FFF\\\";r(\\\"newshape.line.color\\\",n.contrast(a)),r(\\\"newshape.line.dash\\\")}var o=\\\"drawline\\\"===t.dragmode;if(r(\\\"newshape.label.text\\\")){r(\\\"newshape.label.textangle\\\");var s=r(\\\"newshape.label.textposition\\\",o?\\\"middle\\\":\\\"middle center\\\");r(\\\"newshape.label.xanchor\\\"),r(\\\"newshape.label.yanchor\\\",function(t,e){return t?\\\"bottom\\\":-1!==e.indexOf(\\\"top\\\")?\\\"top\\\":-1!==e.indexOf(\\\"bottom\\\")?\\\"bottom\\\":\\\"middle\\\"}(o,s)),r(\\\"newshape.label.padding\\\"),i.coerceFont(r,\\\"newshape.label.font\\\",e.font)}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,label:p.label,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(e){var r=n.select(e.node().parentNode);if(b&&b.selection&&b.side&&E){r.attr(\\\"transform\\\",null);var a=p[b.side],o=\\\"left\\\"===b.side||\\\"top\\\"===b.side?-1:1,c=i(b.pad)?b.pad:2,f=u.bBox(r.node()),h={t:0,b:0,l:0,r:0},d=t._fullLayout._reservedMargin;for(var v in d)for(var y in d[v]){var m=d[v][y];h[y]=Math.max(h[y],m)}var x={left:h.l,top:h.t,right:k.width-h.r,bottom:k.height-h.b},_=b.maxShift||o*(x[b.side]-f[b.side]),w=0;if(_<0)w=_;else{var T=b.offsetLeft||0,A=b.offsetTop||0;f.left-=T,f.right-=T,f.top-=A,f.bottom-=A,b.selection.each((function(){var t=u.bBox(this);s.bBoxIntersect(f,t,c)&&(w=Math.max(w,o*(t[b.side]-f[a])+c))})),w=Math.min(_,w),g._titleScoot=Math.abs(w)}if(w>0||_<0){var M={left:[-w,0],right:[w,0],top:[0,-w],bottom:[0,w]}[b.side];r.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.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),t._fullLayout.title.text&&t._fullLayout.title.automargin&&h.allowAutoMargin(t,\\\"title.automargin\\\"),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(63893),l=r(33306),u=r(7901),c=r(91424),f=r(92998),h=r(64168),p=r(89298),d=r(18783),v=r(99082),g=v.enforce,y=v.clean,m=r(71739).doAutoRange,x=\\\"start\\\";function b(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 _(t){var r,i,s,l,f,v,g=t._fullLayout,y=g._size,m=y.p,x=p.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(c.setSize,g.width,g.height),t._context.setBackground(t,g.paper_bgcolor),e.drawMainTitle(t),h.manage(t),!g._has(\\\"cartesian\\\"))return a.previousPromises(t);function _(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<x.length;r++){var T=(l=x[r])._anchorAxis;l._linepositions={},l._lw=c.crispRound(t,l.linewidth,1),l._mainLinePosition=_(l,T,l.side),l._mainMirrorPosition=l.mirror&&T?_(l,T,d.OPPOSITE_SIDE[l.side]):null}var A=[],M=[],S=[],E=1===u.opacity(g.paper_bgcolor)&&1===u.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(b(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]],f=s.xaxis,v=s.yaxis,s.bg&&void 0!==f._offset&&void 0!==v._offset&&s.bg.call(c.setRect,f._offset-m,v._offset-m,f._length+2*m,v._length+2*m).call(u.fill,g.plot_bgcolor).style(\\\"stroke-width\\\",0);if(!g._hasOnlyLargeSploms)for(i in g._plots){s=g._plots[i],f=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:f._length,height:v._length}),c.setTranslate(s.plot,f._offset,v._offset),s._hasClipOnAxisFalse?(W=null,X=J):(W=J,X=null),c.setClipUrl(s.plot,W,t),s.layerClipId=X}function $(t){return\\\"M\\\"+D+\\\",\\\"+t+\\\"H\\\"+z}function Q(t){return\\\"M\\\"+f._offset+\\\",\\\"+t+\\\"h\\\"+f._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],f=s.xaxis,v=s.yaxis;var nt=\\\"M0,0\\\";w(f,i)&&(B=k(f,\\\"left\\\",v,x),D=f._offset-(B?m+B:0),N=k(f,\\\"right\\\",v,x),z=f._offset+f._length+(N?m+N:0),R=_(f,v,\\\"bottom\\\"),F=_(f,v,\\\"top\\\"),!(Z=!f._anchorAxis||i!==f._mainSubplot)||\\\"allticks\\\"!==f.mirror&&\\\"all\\\"!==f.mirror||(f._linepositions[i]=[R,F]),nt=rt(f,$,Q),Z&&f.showline&&(\\\"all\\\"===f.mirror||\\\"allticks\\\"===f.mirror)&&(nt+=$(R)+$(F)),s.xlines.style(\\\"stroke-width\\\",f._lw+\\\"px\\\").call(u.stroke,f.showline?f.linecolor:\\\"rgba(0,0,0,0)\\\")),s.xlines.attr(\\\"d\\\",nt);var it=\\\"M0,0\\\";w(v,i)&&(q=k(v,\\\"bottom\\\",f,x),j=v._offset+v._length+(q?m:0),G=k(v,\\\"top\\\",f,x),U=v._offset-(G?m:0),V=_(v,f,\\\"left\\\"),H=_(v,f,\\\"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(u.stroke,v.showline?v.linecolor:\\\"rgba(0,0,0,0)\\\")),s.ylines.attr(\\\"d\\\",it)}return p.makeClipPaths(t),a.previousPromises(t)}function w(t,e){return(t.ticks||t.showline)&&(e===t._mainSubplot||\\\"all\\\"===t.mirror||\\\"allticks\\\"===t.mirror)}function T(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=d.FROM_BL[e];return r.side===e?n.domain[i]===t.domain[i]:r.mirror&&n.domain[1-i]===t.domain[1-i]}function k(t,e,r,n){if(T(t,e,r))return r._lw;for(var i=0;i<n.length;i++){var a=n[i];if(a._mainAxis===r._mainAxis&&T(t,e,a))return a._lw}return 0}e.layoutStyles=function(t){return o.syncOrAsync([a.doAutoMargin,_],t)},e.drawMainTitle=function(t){var e,r=t._fullLayout.title,i=t._fullLayout,l=function(t){var e=t.title,r=\\\"middle\\\";return o.isRightAnchor(e)?r=\\\"end\\\":o.isLeftAnchor(e)&&(r=x),r}(i),u=function(t){var e=t.title,r=\\\"0em\\\";return o.isTopAnchor(e)?r=d.CAP_SHIFT+\\\"em\\\":o.isMiddleAnchor(e)&&(r=d.MID_SHIFT+\\\"em\\\"),r}(i),h=function(t,e){var r=t.title,n=t._size,i=0;return\\\"0em\\\"!==e&&e?e===d.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}(i,u),p=function(t,e){var r=t.title,n=t._size,i=0;return e===x?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}(i,l);if(f.draw(t,\\\"gtitle\\\",{propContainer:i,propName:\\\"title.text\\\",placeholder:i._dfltTitle.plot,attributes:{x:p,y:h,\\\"text-anchor\\\":l,dy:u}}),r.text&&r.automargin){var v=n.selectAll(\\\".gtitle\\\"),g=c.bBox(v.node()).height,y=function(t,e,r){var n=e.y,i=e.yanchor,a=n>.5?\\\"t\\\":\\\"b\\\",o=t._fullLayout.margin[a],s=0;return\\\"paper\\\"===e.yref?s=r+e.pad.t+e.pad.b:\\\"container\\\"===e.yref&&(s=function(t,e,r,n,i){var a=0;return\\\"middle\\\"===r&&(a+=i/2),\\\"t\\\"===t?(\\\"top\\\"===r&&(a+=i),a+=n-e*n):(\\\"bottom\\\"===r&&(a+=i),a+=e*n),a}(a,n,i,t._fullLayout.height,r)+e.pad.t+e.pad.b),s>o?s:0}(t,r,g);y>0&&(function(t,e,r,n){var i=\\\"title.automargin\\\",s=t._fullLayout.title,l=s.y>.5?\\\"t\\\":\\\"b\\\",u={x:s.x,y:s.y,t:0,b:0},c={};\\\"paper\\\"===s.yref&&function(t,e,r,n,i){var a=\\\"paper\\\"===e.yref?t._fullLayout._size.h:t._fullLayout.height,s=o.isTopAnchor(e)?n:n-i,l=\\\"b\\\"===r?a-s:s;return!(o.isTopAnchor(e)&&\\\"t\\\"===r||o.isBottomAnchor(e)&&\\\"b\\\"===r)&&l<i}(t,s,l,e,n)?u[l]=r:\\\"container\\\"===s.yref&&(c[l]=r,t._fullLayout._reservedMargin[i]=c),a.allowAutoMargin(t,i),a.autoMargin(t,i,u)}(t,h,y,g),v.attr({x:p,y:h,\\\"text-anchor\\\":l,dy:(e=r.yanchor,\\\"top\\\"===e?d.CAP_SHIFT+.3+\\\"em\\\":\\\"bottom\\\"===e?\\\"-0.3em\\\":d.MID_SHIFT+\\\"em\\\")}).call(s.positionText,p,h))}},e.doTraceStyle=function(t){var r,n=t.calcdata,o=[];for(r=0;r<n.length;r++){var s=n[r],u=s[0]||{},c=u.trace||{},f=c._module||{},h=f.arraysToCalcdata;h&&h(s,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)}l(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 p.draw(t,\\\"redraw\\\"),t._fullLayout._hasOnlyLargeSploms&&(i.subplotsRegistry.splom.updateGrid(t),l(t),e.redrawReglTraces(t)),e.drawMainTitle(t),a.previousPromises(t)},e.doModeBar=function(t){var e=t._fullLayout;h.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;l(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=p.list(t,\\\"\\\",!0),n={},i=0;i<r.length;i++)if(!n[(e=r[i])._id]){n[e._id]=1,y(t,e),m(t,e);var a=e._matchGroup;if(a)for(var o in a){var s=p.getFromId(t,o);m(t,s,e.range),n[o]=1}}g(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)),t.labelalias&&t.labelalias.hasOwnProperty(o.text)){var g=t.labelalias[o.text];\\\"string\\\"==typeof g&&(o.text=g)}if(\\\"boundaries\\\"===t.tickson||t.showdividers){var y=function(e){var r=t.l2p(e);return r>=0&&r<=t._length?e:null};o.xbnd=[y(o.x-.5),y(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\\\"},labelalias:{valType:\\\"any\\\",dflt:!1,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=r(\\\"labelalias\\\");n.isPlainObject(f)||delete e.labelalias;var h=o(t);if(r(\\\"showticklabels\\\")){var p=c.font||{},d=e.color,v=-1!==(e.ticklabelposition||\\\"\\\").indexOf(\\\"inside\\\")?i(c.bgColor):d&&d!==a.color.dflt?d:p.color;if(n.coerceFont(r,\\\"tickfont\\\",{family:p.family,size:p.size,color:v}),c.noTicklabelstep||\\\"multicategory\\\"===u||\\\"log\\\"===u||r(\\\"ticklabelstep\\\"),c.noAng||r(\\\"tickangle\\\"),\\\"category\\\"!==u){var g=r(\\\"tickformat\\\");s(t,e,{name:\\\"tickformatstops\\\",inclusionAttr:\\\"enabled\\\",handleItemDefaults:l}),e.tickformatstops.length||delete e.tickformatstops,c.noExp||g||\\\"date\\\"===u||(r(\\\"showexponent\\\",h),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,labelalias:i.labelalias,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\\\"}),{}),automargin:{valType:\\\"boolean\\\",dflt:!1,editType:\\\"plot\\\"},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={}),t._reservedMargin||(t._reservedMargin={})}_.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\\\");var l=n(\\\"title.yref\\\");n(\\\"title.pad.t\\\"),n(\\\"title.pad.r\\\"),n(\\\"title.pad.b\\\"),n(\\\"title.pad.l\\\");var u=n(\\\"title.automargin\\\");n(\\\"title.x\\\"),n(\\\"title.xanchor\\\"),n(\\\"title.y\\\"),n(\\\"title.yanchor\\\"),u&&(\\\"paper\\\"===l&&(0!==e.title.y&&(e.title.y=1),\\\"auto\\\"===e.title.yanchor&&(e.title.yanchor=0===e.title.y?\\\"top\\\":\\\"bottom\\\")),\\\"container\\\"===l&&(\\\"auto\\\"===e.title.y&&(e.title.y=1),\\\"auto\\\"===e.title.yanchor&&(e.title.yanchor=e.title.y<.5?\\\"bottom\\\":\\\"top\\\"))),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 f=n(\\\"uirevision\\\");n(\\\"editrevision\\\",f),n(\\\"selectionrevision\\\",f),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={t:0,b:0,l:0,r:0},u=c.extendFlat({},i),f=t._fullLayout._reservedMargin;for(var h in f)for(var d in f[h]){var v=f[h][d];l[d]=Math.max(l[d],v)}var g=a.l,y=a.r,m=a.t,x=a.b,b=e._pushmargin,w=e._pushmarginIds,T=e.minreducedwidth,k=e.minreducedheight;if(!1!==e.margin.autoexpand){for(var A in b)w[A]||delete b[A];for(var M in b.base={l:{val:0,size:g},r:{val:1,size:y},t:{val:1,size:m},b:{val:0,size:x}},b){var S=b[M].l||{},E=b[M].b||{},L=S.val,C=S.size,O=E.val,I=E.size,D=r-l.r-l.l,z=n-l.t-l.b;for(var R in b){if(o(C)&&b[R].r){var F=b[R].r.val,B=b[R].r.size;if(F>L){var N=(C*F+(B-D)*L)/(F-L),j=(B*(1-L)+(C-D)*(1-F))/(F-L);N+j>g+y&&(g=N,y=j)}}if(o(I)&&b[R].t){var U=b[R].t.val,V=b[R].t.size;if(U>O){var H=(I*U+(V-z)*O)/(U-O),q=(V*(1-O)+(I-z)*(1-U))/(U-O);H+q>x+m&&(x=H,m=q)}}}}}var G=c.constrain(r-a.l-a.r,2,T),Z=c.constrain(n-a.t-a.b,2,k),Y=Math.max(0,r-G),W=Math.max(0,n-Z);if(Y){var X=(g+y)/Y;X>1&&(g/=X,y/=X)}if(W){var J=(x+m)/W;J>1&&(x/=J,m/=J)}if(i.l=Math.round(g)+l.l,i.r=Math.round(y)+l.r,i.t=Math.round(m)+l.t,i.b=Math.round(x)+l.b,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(u,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 K=3*(1+Object.keys(w).length);if(e._redrawFromAutoMarginCount<K)return s.call(\\\"_doPlot\\\",t);e._size=u,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,labelalias:i.labelalias,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,labelalias:i.labelalias,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,labelalias:a.labelalias,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,O=t._context.staticPlot;g||(g={mode:P.barmode,norm:P.barmode,gap:P.bargap,groupgap:P.bargroupgap},p(\\\"bar\\\",P));var I=a.makeTraceGroups(f,r,\\\"trace bars\\\").each((function(r){var u=n.select(this),f=r[0].trace,p=\\\"waterfall\\\"===f.type,I=\\\"funnel\\\"===f.type,D=\\\"bar\\\"===f.type||I,z=0;p&&f.connector.visible&&\\\"between\\\"===f.connector.mode&&(z=f.connector.line.width/2);var R=\\\"h\\\"===f.orientation,F=M(g),B=a.ensureSingle(u,\\\"g\\\",\\\"points\\\"),N=T(f),j=B.selectAll(\\\"g.point\\\").data(a.identity,N);j.enter().append(\\\"g\\\").classed(\\\"point\\\",!0),j.exit().remove(),j.each((function(u,p){var T,M,I=n.select(this),B=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,R),N=B[0][0],j=B[0][1],U=B[1][0],V=B[1][1],H=0==(R?j-N:V-U);if(H&&D&&v.getLineWidth(f,u)&&(H=!1),H||(H=!(i(N)&&i(j)&&i(U)&&i(V))),u.isBlank=H,H&&(R?j=N:V=U),z&&!H&&(R?(N-=k(N,j)*z,j+=k(N,j)*z):(U-=k(U,V)*z,V+=k(U,V)*z)),\\\"waterfall\\\"===f.type){if(!H){var q=f[u.dir].marker;T=q.line.width,M=q.color}}else T=v.getLineWidth(f,u),M=u.mc||f.marker.color;function G(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 Z=s.opacity(M)<1||T>.01?G:function(t,e,r){return r&&t===e?t:Math.abs(t-e)>=2?G(t):t>e?Math.ceil(t):Math.floor(t)};N=Z(N,j,R),j=Z(j,N,R),U=Z(U,V,!R),V=Z(V,U,!R)}var Y=A(a.ensureSingle(I,\\\"path\\\"),P,g,y);if(Y.style(\\\"vector-effect\\\",O?\\\"none\\\":\\\"non-scaling-stroke\\\").attr(\\\"d\\\",isNaN((j-N)*(V-U))||H&&t._context.staticPlot?\\\"M0,0Z\\\":\\\"M\\\"+N+\\\",\\\"+U+\\\"V\\\"+V+\\\"H\\\"+j+\\\"V\\\"+U+\\\"Z\\\").call(l.setClipUrl,e.layerClipId,t),!P.uniformtext.mode&&F){var W=l.makePointStyleFns(f);l.singlePointStyle(u,Y,f,W,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,I,r,p,N,j,U,V,g,y),e.layerClipId&&l.hideOutsideRangePoint(u,I.select(\\\"text\\\"),w,C,f.xcalendar,f.ycalendar)}));var U=!1===f.cliponaxis;l.setClipUrl(u,U?null:e.layerClipId,t)}));u.getComponentMethod(\\\"errorbars\\\",\\\"plot\\\")(t,I,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=t._context.staticPlot,u=e.xaxis,c=e.yaxis,f=e.radialAxis,h=e.angularAxis,p=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),d=e.layers.frontplot.select(\\\"g.barlayer\\\");a.makeTraceGroups(d,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\\\",l?\\\"none\\\":\\\"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=f.c2p(t.s0),s=t.rp1=f.c2p(t.s1),l=t.thetag0=h.c2g(t.p0),d=t.thetag1=h.c2g(t.p1);if(i(o)&&i(s)&&i(l)&&i(d)&&o!==s&&l!==d){var v=f.c2g(t.s1),g=(l+d)/2;t.ct=[u.c2p(v*Math.cos(g)),c.c2p(v*Math.sin(g))],e=p(o,s,l,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,o){var s,l,u=\\\"h\\\"===r.orientation,c=e.val,f=e.pos,h=!!f.rangebreaks,p=a.bPos,d=a.wdPos||0,v=a.bPosPxOffset||0,g=r.whiskerwidth||0,y=r.notched||!1,m=y?1-2*r.notchwidth:1;Array.isArray(a.bdPos)?(s=a.bdPos[0],l=a.bdPos[1]):(s=a.bdPos,l=a.bdPos);var x=t.selectAll(\\\"path.box\\\").data(\\\"violin\\\"!==r.type||r.box.visible?i.identity:[]);x.enter().append(\\\"path\\\").style(\\\"vector-effect\\\",o?\\\"none\\\":\\\"non-scaling-stroke\\\").attr(\\\"class\\\",\\\"box\\\"),x.exit().remove(),x.each((function(t){if(t.empty)return\\\"M0,0Z\\\";var e=f.c2l(t.pos+p,!0),a=f.l2p(e-s)+v,o=f.l2p(e+l)+v,x=h?(a+o)/2:f.l2p(e)+v,b=r.whiskerwidth,_=h?a*b+(1-b)*x:f.l2p(e-d)+v,w=h?o*b+(1-b)*x:f.l2p(e+d)+v,T=f.l2p(e-s*m)+v,k=f.l2p(e+l*m)+v,A=c.c2p(t.q1,!0),M=c.c2p(t.q3,!0),S=i.constrain(c.c2p(t.med,!0),Math.min(A,M)+1,Math.max(A,M)-1),E=void 0===t.lf||!1===r.boxpoints,L=c.c2p(E?t.min:t.lf,!0),C=c.c2p(E?t.max:t.uf,!0),P=c.c2p(t.ln,!0),O=c.c2p(t.un,!0);u?n.select(this).attr(\\\"d\\\",\\\"M\\\"+S+\\\",\\\"+T+\\\"V\\\"+k+\\\"M\\\"+A+\\\",\\\"+a+\\\"V\\\"+o+(y?\\\"H\\\"+P+\\\"L\\\"+S+\\\",\\\"+k+\\\"L\\\"+O+\\\",\\\"+o:\\\"\\\")+\\\"H\\\"+M+\\\"V\\\"+a+(y?\\\"H\\\"+O+\\\"L\\\"+S+\\\",\\\"+T+\\\"L\\\"+P+\\\",\\\"+a:\\\"\\\")+\\\"ZM\\\"+A+\\\",\\\"+x+\\\"H\\\"+L+\\\"M\\\"+M+\\\",\\\"+x+\\\"H\\\"+C+(0===g?\\\"\\\":\\\"M\\\"+L+\\\",\\\"+_+\\\"V\\\"+w+\\\"M\\\"+C+\\\",\\\"+_+\\\"V\\\"+w)):n.select(this).attr(\\\"d\\\",\\\"M\\\"+T+\\\",\\\"+S+\\\"H\\\"+k+\\\"M\\\"+a+\\\",\\\"+A+\\\"H\\\"+o+(y?\\\"V\\\"+P+\\\"L\\\"+k+\\\",\\\"+S+\\\"L\\\"+o+\\\",\\\"+O:\\\"\\\")+\\\"V\\\"+M+\\\"H\\\"+a+(y?\\\"V\\\"+O+\\\"L\\\"+T+\\\",\\\"+S+\\\"L\\\"+a+\\\",\\\"+P:\\\"\\\")+\\\"ZM\\\"+x+\\\",\\\"+A+\\\"V\\\"+L+\\\"M\\\"+x+\\\",\\\"+M+\\\"V\\\"+C+(0===g?\\\"\\\":\\\"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=t._context.staticPlot,c=e.xaxis,f=e.yaxis;i.makeTraceGroups(a,r,\\\"trace boxes\\\").each((function(t){var e,r,i=n.select(this),a=t[0],h=a.t,p=a.trace;h.wdPos=h.bdPos*p.whiskerwidth,!0!==p.visible||h.empty?i.remove():(\\\"h\\\"===p.orientation?(e=f,r=c):(e=c,r=f),o(i,{pos:e,val:r},p,h,u),s(i,{x:c,y:f},p,h),l(i,{pos:e,val:r},p,h))}))},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\\\"},labelalias:u({},a.labelalias,{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,c){var f=\\\"const-\\\"+l+\\\"-lines\\\",h=r.selectAll(\\\".\\\"+f).data(u);h.enter().append(\\\"path\\\").classed(f,!0).style(\\\"vector-effect\\\",c?\\\"none\\\":\\\"non-scaling-stroke\\\"),h.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\\\")})),h.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=t._context.staticPlot,c=e.xaxis,f=e.yaxis,h=t._fullLayout._clips;u.makeTraceGroups(i,r,\\\"trace\\\").each((function(e){var r=n.select(this),i=e[0],v=i.trace,g=v.aaxis,m=v.baxis,x=u.ensureSingle(r,\\\"g\\\",\\\"minorlayer\\\"),b=u.ensureSingle(r,\\\"g\\\",\\\"majorlayer\\\"),_=u.ensureSingle(r,\\\"g\\\",\\\"boundarylayer\\\"),w=u.ensureSingle(r,\\\"g\\\",\\\"labellayer\\\");r.style(\\\"opacity\\\",v.opacity),p(c,f,b,0,\\\"a\\\",g._gridlines,!0),p(c,f,b,0,\\\"b\\\",m._gridlines,!0),p(c,f,x,0,\\\"a\\\",g._minorgridlines,!0),p(c,f,x,0,\\\"b\\\",m._minorgridlines,!0),p(c,f,_,0,\\\"a-boundary\\\",g._boundarylines,l),p(c,f,_,0,\\\"b-boundary\\\",m._boundarylines,l);var T=d(t,c,f,v,0,w,g._labels,\\\"a-label\\\"),k=d(t,c,f,v,0,w,m._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,w,v,0,c,f,T,k),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)}(v,i,h,c,f)}))};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=o._context.staticPlot,c=i.ensureSingle(t,\\\"g\\\",\\\"contourlines\\\"),f=!1!==l.showlines,h=l.showlabels,p=f&&h,d=e.createLines(c,f||h,r,u),v=e.createLineClip(c,p,o,s.trace.uid),y=t.selectAll(\\\"g.contourlabels\\\").data(h?[0]:[]);if(y.exit().remove(),y.enter().append(\\\"g\\\").classed(\\\"contourlabels\\\",!0),h){var m=[],x=[];i.clearLocationCache();var b=e.labelFormatter(o,s),_=a.tester.append(\\\"text\\\").attr(\\\"data-notex\\\",1).call(a.font,l.labelfont),w=r[0].xaxis,T=r[0].yaxis,k=w._length,A=T._length,M=w.range,S=T.range,E=i.aggNums(Math.min,null,s.x),L=i.aggNums(Math.max,null,s.x),C=i.aggNums(Math.min,null,s.y),P=i.aggNums(Math.max,null,s.y),O=Math.max(w.c2p(E,!0),0),I=Math.min(w.c2p(L,!0),k),D=Math.max(T.c2p(P,!0),0),z=Math.min(T.c2p(C,!0),A),R={};M[0]<M[1]?(R.left=O,R.right=I):(R.left=I,R.right=O),S[0]<S[1]?(R.top=D,R.bottom=z):(R.top=z,R.bottom=D),R.middle=(R.top+R.bottom)/2,R.center=(R.left+R.right)/2,m.push([[R.left,R.top],[R.right,R.top],[R.right,R.bottom],[R.left,R.bottom]]);var F=Math.sqrt(k*k+A*A),B=g.LABELDISTANCE*F/Math.max(1,r.length/g.LABELINCREASE);d.each((function(t){var r=e.calcTextOpts(t.level,b,_,o);n.select(this).selectAll(\\\"path\\\").each((function(){var t=i.getVisibleSegment(this,R,r.height/2);if(t&&!(t.len<(r.width+r.height)*g.LABELMIN))for(var n=Math.min(Math.ceil(t.len/B),g.LABELMAX),a=0;a<n;a++){var o=e.findBestTextLocation(this,t,r,x,R);if(!o)break;e.addLabelData(o,r,x,m)}}))})),_.remove(),e.drawLabels(y,x,o,v,p?m:null)}h&&!f&&d.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,n){var i=r[0].smoothing,o=t.selectAll(\\\"g.contourlevel\\\").data(e?r:[]);if(o.exit().remove(),o.enter().append(\\\"g\\\").classed(\\\"contourlevel\\\",!0),e){var s=o.selectAll(\\\"path.openline\\\").data((function(t){return t.pedgepaths||t.edgepaths}));s.exit().remove(),s.enter().append(\\\"path\\\").classed(\\\"openline\\\",!0),s.attr(\\\"d\\\",(function(t){return a.smoothopen(t,i)})).style(\\\"stroke-miterlimit\\\",1).style(\\\"vector-effect\\\",n?\\\"none\\\":\\\"non-scaling-stroke\\\");var l=o.selectAll(\\\"path.closedline\\\").data((function(t){return t.ppaths||t.paths}));l.exit().remove(),l.enter().append(\\\"path\\\").classed(\\\"closedline\\\",!0),l.attr(\\\"d\\\",(function(t){return a.smoothclosed(t,i)})).style(\\\"stroke-miterlimit\\\",1).style(\\\"vector-effect\\\",n?\\\"none\\\":\\\"non-scaling-stroke\\\")}return o},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=r._context.staticPlot,p=s.ensureSingle(t,\\\"g\\\",\\\"contourlines\\\"),d=!1!==a.showlines,v=a.showlabels,g=d&&v,b=c.createLines(p,d||v,e,h),_=c.createLineClip(p,g,r,i.trace.uid),w=t.selectAll(\\\"g.contourlabels\\\").data(v?[0]:[]);if(w.exit().remove(),w.enter().append(\\\"g\\\").classed(\\\"contourlabels\\\",!0),v){var T=l.xaxis,k=l.yaxis,A=T._length,M=k._length,S=[[[0,0],[A,0],[A,M],[0,M]]],E=[];s.clearLocationCache();var L=c.labelFormatter(r,i),C=o.tester.append(\\\"text\\\").attr(\\\"data-notex\\\",1).call(o.font,a.labelfont),P={left:0,right:A,center:A/2,top:0,bottom:M,middle:M/2},O=Math.sqrt(A*A+M*M),I=f.LABELDISTANCE*O/Math.max(1,e.length/f.LABELINCREASE);b.each((function(t){var e=c.calcTextOpts(t.level,L,C,r);n.select(this).selectAll(\\\"path\\\").each((function(r){var n=this,i=s.getVisibleSegment(n,P,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/I),f.LABELMAX),o=0;o<a;o++){var l=c.findBestTextLocation(n,i,e,E,P);if(!l)break;c.addLabelData(l,e,E,S)}}))})),C.remove(),c.drawLabels(w,E,r,_,g?S:null)}v&&!d&&b.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,labelalias:u.labelalias,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(81684).sX,a=r(81684).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(81684).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(81684).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,y=t._context.staticPlot;!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 m=!!v&&v.duration>0;function x(t){return m?t.transition():t}var b=r.xaxis,_=r.yaxis,w=f[0].trace,T=w.line,k=n.select(d),A=o(k,\\\"g\\\",\\\"errorbars\\\"),M=o(k,\\\"g\\\",\\\"lines\\\"),S=o(k,\\\"g\\\",\\\"points\\\"),E=o(k,\\\"g\\\",\\\"text\\\");if(i.getComponentMethod(\\\"errorbars\\\",\\\"plot\\\")(t,A,r,v),!0===w.visible){var L,C;x(k).style(\\\"opacity\\\",w.opacity);var P=w.fill.charAt(w.fill.length-1);\\\"x\\\"!==P&&\\\"y\\\"!==P&&(P=\\\"\\\"),f[0][r.isRangePlot?\\\"nodeRangePlot3\\\":\\\"node3\\\"]=k;var O,I,D=\\\"\\\",z=[],R=w._prevtrace;R&&(D=R._prevRevpath||\\\"\\\",C=R._nextFill,z=R._polygons);var F,B,N,j,U,V,H,q=\\\"\\\",G=\\\"\\\",Z=[],Y=a.noop;if(L=w._ownFill,u.hasLines(w)||\\\"none\\\"!==w.fill){for(C&&C.datum(f),-1!==[\\\"hv\\\",\\\"vh\\\",\\\"hvh\\\",\\\"vhv\\\"].indexOf(T.shape)?(F=l.steps(T.shape),B=l.steps(T.shape.split(\\\"\\\").reverse().join(\\\"\\\"))):F=B=\\\"spline\\\"===T.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),T.smoothing):l.smoothopen(t,T.smoothing)}:function(t){return\\\"M\\\"+t.join(\\\"L\\\")},N=function(t){return B(t.reverse())},Z=c(f,{xaxis:b,yaxis:_,trace:w,connectGaps:w.connectgaps,baseTolerance:Math.max(T.width||1,3)/4,shape:T.shape,backoff:T.backoff,simplify:T.simplify,fill:w.fill}),H=w._polygons=new Array(Z.length),g=0;g<Z.length;g++)w._polygons[g]=h(Z[g]);Z.length&&(j=Z[0][0],V=(U=Z[Z.length-1])[U.length-1]),Y=function(t){return function(e){if(O=F(e),I=N(e),q?P?(q+=\\\"L\\\"+O.substr(1),G=I+\\\"L\\\"+G.substr(1)):(q+=\\\"Z\\\"+O,G=I+\\\"Z\\\"+G):(q=O,G=I),u.hasLines(w)){var r=n.select(this);if(r.datum(f),t)x(r.style(\\\"opacity\\\",0).attr(\\\"d\\\",O).call(l.lineGroupStyle)).style(\\\"opacity\\\",1);else{var i=x(r);i.attr(\\\"d\\\",O),l.singleLineStyle(f,i)}}}}}var W=M.selectAll(\\\".js-line\\\").data(Z);x(W.exit()).style(\\\"opacity\\\",0).remove(),W.each(Y(!1)),W.enter().append(\\\"path\\\").classed(\\\"js-line\\\",!0).style(\\\"vector-effect\\\",y?\\\"none\\\":\\\"non-scaling-stroke\\\").call(l.lineGroupStyle).each(Y(!0)),l.setClipUrl(W,r.layerClipId,t),Z.length?(L?(L.datum(f),j&&V&&(P?(\\\"y\\\"===P?j[1]=V[1]=_.c2p(0,!0):\\\"x\\\"===P&&(j[0]=V[0]=b.c2p(0,!0)),x(L).attr(\\\"d\\\",\\\"M\\\"+V+\\\"L\\\"+j+\\\"L\\\"+q.substr(1)).call(l.singleFillStyle,t)):x(L).attr(\\\"d\\\",q+\\\"Z\\\").call(l.singleFillStyle,t))):C&&(\\\"tonext\\\"===w.fill.substr(0,6)&&q&&D?(\\\"tonext\\\"===w.fill?x(C).attr(\\\"d\\\",q+\\\"Z\\\"+D+\\\"Z\\\").call(l.singleFillStyle,t):x(C).attr(\\\"d\\\",q+\\\"L\\\"+D.substr(1)+\\\"Z\\\").call(l.singleFillStyle,t),w._polygons=w._polygons.concat(z)):(J(C),w._polygons=null)),w._prevRevpath=G,w._prevPolygons=H):(L?J(L):C&&J(C),w._polygons=w._prevRevpath=w._prevPolygons=null),S.datum(f),E.datum(f),function(e,i,a){var o,c=a[0].trace,f=u.hasMarkers(c),h=u.hasText(c),p=et(c),d=rt,v=rt;if(f||h){var g=s,y=c.stackgroup,w=y&&\\\"infer zero\\\"===t._fullLayout._scatterStackOpts[b._id+_._id][y].stackgaps;c.marker.maxdisplayed||c._needsCull?g=w?$:K:y&&!w&&(g=Q),f&&(d=g),h&&(v=g)}var T,k=(o=e.selectAll(\\\"path.point\\\").data(d,p)).enter().append(\\\"path\\\").classed(\\\"point\\\",!0);m&&k.call(l.pointStyle,c,t).call(l.translatePoints,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=x(i);l.translatePoint(e,a,b,_)?(l.singlePointStyle(e,a,c,T,t),r.layerClipId&&l.hideOutsideRangePoint(e,a,b,_,c.xcalendar,c.ycalendar),c.customdata&&i.classed(\\\"plotly-customdata\\\",null!==e.data&&void 0!==e.data)):a.remove()})),m?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=x(e.select(\\\"text\\\"));l.translatePoint(t,i,b,_)?r.layerClipId&&l.hideOutsideRangePoint(t,e,b,_,c.xcalendar,c.ycalendar):e.remove()})),o.selectAll(\\\"text\\\").call(l.textPointStyle,c,t).each((function(t){var e=b.c2p(t.x),r=_.c2p(t.y);n.select(this).selectAll(\\\"tspan.line\\\").each((function(){x(n.select(this)).attr({x:e,y:r})}))})),o.exit().remove()}(S,E,f);var X=!1===w.cliponaxis?null:r.layerClipId;l.setClipUrl(S,X,t),l.setClipUrl(E,X,t)}function J(t){x(t).attr(\\\"d\\\",\\\"M0,0Z\\\")}function K(t){return t.filter((function(t){return!t.gap&&t.vis}))}function $(t){return t.filter((function(t){return t.vis}))}function Q(t){return t.filter((function(t){return!t.gap}))}function tt(t){return t.id}function et(t){if(t.ids)return tt}function rt(){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(81684).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(81684).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._context.staticPlot,f=t._fullLayout,h=e.xaxis,p=e.yaxis;function d(t,e){var r=s(t,{xaxis:h,yaxis:p,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 v=s.bPos,g=s.bdPos,y=e[s.valLetter+\\\"axis\\\"],m=e[s.posLetter+\\\"axis\\\"],x=\\\"both\\\"===u.side,b=x||\\\"positive\\\"===u.side,_=x||\\\"negative\\\"===u.side,w=r.selectAll(\\\"path.violin\\\").data(i.identity);w.enter().append(\\\"path\\\").style(\\\"vector-effect\\\",c?\\\"none\\\":\\\"non-scaling-stroke\\\").attr(\\\"class\\\",\\\"violin\\\"),w.exit().remove(),w.each((function(t){var e,r,i,a,o,l,c,h,p=n.select(this),w=t.density,T=w.length,k=m.c2l(t.pos+v,!0),A=m.l2p(k);if(u.width)e=s.maxKDE/g;else{var M=f._violinScaleGroupStats[u.scalegroup];e=\\\"count\\\"===u.scalemode?M.maxKDE/g*(M.maxCount/t.pts.length):M.maxKDE/g}if(b){for(c=new Array(T),o=0;o<T;o++)(h=c[o]={})[s.posLetter]=k+w[o].v/e,h[s.valLetter]=y.c2l(w[o].t,!0);r=d(c,u)}if(_){for(c=new Array(T),l=0,o=T-1;l<T;l++,o--)(h=c[l]={})[s.posLetter]=k-w[o].v/e,h[s.valLetter]=y.c2l(w[o].t,!0);i=d(c,u)}if(x)a=r+\\\"L\\\"+i.substr(1)+\\\"Z\\\";else{var S=[A,y.c2p(w[0].t)],E=[A,y.c2p(w[T-1].t)];\\\"h\\\"===u.orientation&&(S.reverse(),E.reverse()),a=b?\\\"M\\\"+S+\\\"L\\\"+r.substr(1)+\\\"L\\\"+E:\\\"M\\\"+E+\\\"L\\\"+i.substr(1)+\\\"L\\\"+S}p.attr(\\\"d\\\",a),t.posCenterPx=A,t.posDensityScale=e*g,t.path=p.node(),t.pathLength=t.path.getTotalLength()/(x?2:1)}));var T,k,A,M=u.box,S=M.width,E=(M.line||{}).width;x?(T=g*S,k=0):b?(T=[0,g*S/2],k=E*{x:1,y:-1}[s.posLetter]):(T=[g*S/2,0],k=E*{x:-1,y:1}[s.posLetter]),o.plotBoxAndWhiskers(r,{pos:m,val:y},u,{bPos:v,bdPos:T,bPosPxOffset:k}),o.plotBoxMean(r,{pos:m,val:y},u,{bPos:v,bdPos:T,bPosPxOffset:k}),!u.box.visible&&u.meanline.visible&&(A=i.identity);var L=r.selectAll(\\\"path.meanline\\\").data(A||[]);L.enter().append(\\\"path\\\").attr(\\\"class\\\",\\\"meanline\\\").style(\\\"fill\\\",\\\"none\\\").style(\\\"vector-effect\\\",c?\\\"none\\\":\\\"non-scaling-stroke\\\"),L.exit().remove(),L.each((function(t){var e=y.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:h,y:p},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.20.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\\\")}},2321: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.*mobile|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}},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(2321)({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)}},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.*mobile|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})),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}},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=\\\"\\u001b[34m\\\",m=\\\"\\u001b[32m\\\",b=\\\"\\u001b[39m\\\",x=\\\"\\u001b[31m\\\"):(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]]}}},6614:function(t,e,r){\\\"use strict\\\";var n=r(68318),i=r(68222),a=i(n(\\\"String.prototype.indexOf\\\"));t.exports=function(t,e){var r=n(t,!!e);return\\\"function\\\"==typeof r&&a(t,\\\".prototype.\\\")>-1?i(r):r}},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.getOwnPropertyDescriptor%\\\",!0),u=i(\\\"%Object.defineProperty%\\\",!0),c=i(\\\"%Math.max%\\\");if(u)try{u({},\\\"a\\\",{value:1})}catch(t){u=null}t.exports=function(t){var e=s(n,o,arguments);if(l&&u){var r=l(e,\\\"length\\\");r.configurable&&u(e,\\\"length\\\",{value:1+c(0,t.length-(arguments.length-1))})}return e};var f=function(){return s(n,a,arguments)};u?u(t.exports,\\\"apply\\\",{value:f}):t.exports.apply=f},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)},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=r(55622)(),u=s&&l,c=function(t,e,r,n){if(e in t)if(!0===n){if(t[e]===r)return}else if(\\\"function\\\"!=typeof(i=n)||\\\"[object Function]\\\"!==a.call(i)||!n())return;var i;u?s(t,e,{configurable:!0,enumerable:!1,value:r,writable:!0}):t[e]=r},f=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)c(t,a[s],e[a[s]],r[a[s]])};f.supportsDescriptors=!!u,t.exports=f},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}},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={}},31353:function(t,e,r){\\\"use strict\\\";var n=r(85395),i=Object.prototype.toString,a=Object.prototype.hasOwnProperty,o=function(t,e,r){for(var n=0,i=t.length;n<i;n++)a.call(t,n)&&(null==r?e(t[n],n,t):e.call(r,t[n],n,t))},s=function(t,e,r){for(var n=0,i=t.length;n<i;n++)null==r?e(t.charAt(n),n,t):e.call(r,t.charAt(n),n,t)},l=function(t,e,r){for(var n in t)a.call(t,n)&&(null==r?e(t[n],n,t):e.call(r,t[n],n,t))};t.exports=function(t,e,r){if(!n(e))throw new TypeError(\\\"iterator must be a function\\\");var a;arguments.length>=3&&(a=r),\\\"[object Array]\\\"===i.call(t)?o(t,e,a):\\\"string\\\"==typeof t?s(t,e,a):l(t,e,a)}},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 a('\\\"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={},d=\\\"undefined\\\"==typeof Uint8Array?n:h(Uint8Array),v={\\\"%AggregateError%\\\":\\\"undefined\\\"==typeof AggregateError?n:AggregateError,\\\"%Array%\\\":Array,\\\"%ArrayBuffer%\\\":\\\"undefined\\\"==typeof ArrayBuffer?n:ArrayBuffer,\\\"%ArrayIteratorPrototype%\\\":f?h([][Symbol.iterator]()):n,\\\"%AsyncFromSyncIteratorPrototype%\\\":n,\\\"%AsyncFunction%\\\":p,\\\"%AsyncGenerator%\\\":p,\\\"%AsyncGeneratorFunction%\\\":p,\\\"%AsyncIteratorPrototype%\\\":p,\\\"%Atomics%\\\":\\\"undefined\\\"==typeof Atomics?n:Atomics,\\\"%BigInt%\\\":\\\"undefined\\\"==typeof BigInt?n:BigInt,\\\"%BigInt64Array%\\\":\\\"undefined\\\"==typeof BigInt64Array?n:BigInt64Array,\\\"%BigUint64Array%\\\":\\\"undefined\\\"==typeof BigUint64Array?n:BigUint64Array,\\\"%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%\\\":p,\\\"%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%\\\":d,\\\"%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};try{null.error}catch(t){var g=h(h(t));v[\\\"%Error.prototype%\\\"]=g}var y=function t(e){var r;if(\\\"%AsyncFunction%\\\"===e)r=s(\\\"async function () {}\\\");else if(\\\"%GeneratorFunction%\\\"===e)r=s(\\\"function* () {}\\\");else if(\\\"%AsyncGeneratorFunction%\\\"===e)r=s(\\\"async function* () {}\\\");else if(\\\"%AsyncGenerator%\\\"===e){var n=t(\\\"%AsyncGeneratorFunction%\\\");n&&(r=n.prototype)}else if(\\\"%AsyncIteratorPrototype%\\\"===e){var i=t(\\\"%AsyncGenerator%\\\");i&&(r=h(i.prototype))}return v[e]=r,r},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=x.call(Function.call,RegExp.prototype.exec),M=/[^%.[\\\\]]+|\\\\[(?:(-?\\\\d+(?:\\\\.\\\\d+)?)|([\\\"'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]|(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|%$))/g,S=/\\\\\\\\(\\\\\\\\)?/g,E=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,M,(function(t,e,r,i){n[n.length]=r?T(i,S,\\\"$1\\\"):e||t})),n},L=function(t,e){var r,n=t;if(b(m,n)&&(n=\\\"%\\\"+(r=m[n])[0]+\\\"%\\\"),b(v,n)){var a=v[n];if(a===p&&(a=y(n)),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');if(null===A(/^%?[^%]*%?$/,t))throw new i(\\\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\\\");var r=E(t),n=r.length>0?r[0]:\\\"\\\",a=L(\\\"%\\\"+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],g=k(d,0,1),y=k(d,-1);if(('\\\"'===g||\\\"'\\\"===g||\\\"`\\\"===g||'\\\"'===y||\\\"'\\\"===y||\\\"`\\\"===y)&&g!==y)throw new i(\\\"property names with quotes must have matching quotes\\\");if(\\\"constructor\\\"!==d&&p||(c=!0),b(v,s=\\\"%\\\"+(n+=\\\".\\\"+d)+\\\"%\\\"))u=v[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&&(v[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(\\\"\\\")}},40383:function(t,e,r){\\\"use strict\\\";var n=r(68318)(\\\"%Object.getOwnPropertyDescriptor%\\\",!0);if(n)try{n([],\\\"length\\\")}catch(t){n=null}t.exports=n},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}()},55622:function(t,e,r){\\\"use strict\\\";var n=r(68318)(\\\"%Object.defineProperty%\\\",!0),i=function(){if(n)try{return n({},\\\"a\\\",{value:1}),!0}catch(t){return!1}return!1};i.hasArrayLengthDefineBug=function(){if(!i())return null;try{return 1!==n([],\\\"length\\\",{value:1}).length}catch(t){return!0}},t.exports=i},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,e,r){\\\"use strict\\\";var n=r(84543)(),i=r(6614)(\\\"Object.prototype.toString\\\"),a=function(t){return!(n&&t&&\\\"object\\\"==typeof t&&Symbol.toStringTag in t)&&\\\"[object Arguments]\\\"===i(t)},o=function(t){return!!a(t)||null!==t&&\\\"object\\\"==typeof t&&\\\"number\\\"==typeof t.length&&t.length>=0&&\\\"[object Array]\\\"!==i(t)&&\\\"[object Function]\\\"===i(t.callee)},s=function(){return a(arguments)}();a.isLegacyArguments=o,t.exports=s?a:o},54404:function(t){t.exports=!0},85395:function(t){\\\"use strict\\\";var e,r,n=Function.prototype.toString,i=\\\"object\\\"==typeof Reflect&&null!==Reflect&&Reflect.apply;if(\\\"function\\\"==typeof i&&\\\"function\\\"==typeof Object.defineProperty)try{e=Object.defineProperty({},\\\"length\\\",{get:function(){throw r}}),r={},i((function(){throw 42}),null,e)}catch(t){t!==r&&(i=null)}else i=null;var a=/^\\\\s*class\\\\b/,o=function(t){try{var e=n.call(t);return a.test(e)}catch(t){return!1}},s=function(t){try{return!o(t)&&(n.call(t),!0)}catch(t){return!1}},l=Object.prototype.toString,u=\\\"function\\\"==typeof Symbol&&!!Symbol.toStringTag,c=!(0 in[,]),f=function(){return!1};if(\\\"object\\\"==typeof document){var h=document.all;l.call(h)===l.call(document.all)&&(f=function(t){if((c||!t)&&(void 0===t||\\\"object\\\"==typeof t))try{var e=l.call(t);return(\\\"[object HTMLAllCollection]\\\"===e||\\\"[object HTML document.all class]\\\"===e||\\\"[object HTMLCollection]\\\"===e||\\\"[object Object]\\\"===e)&&null==t(\\\"\\\")}catch(t){}return!1})}t.exports=i?function(t){if(f(t))return!0;if(!t)return!1;if(\\\"function\\\"!=typeof t&&\\\"object\\\"!=typeof t)return!1;try{i(t,null,e)}catch(t){if(t!==r)return!1}return!o(t)&&s(t)}:function(t){if(f(t))return!0;if(!t)return!1;if(\\\"function\\\"!=typeof t&&\\\"object\\\"!=typeof t)return!1;if(u)return s(t);if(o(t))return!1;var e=l.call(t);return!(\\\"[object Function]\\\"!==e&&\\\"[object GeneratorFunction]\\\"!==e&&!/^\\\\[object HTML/.test(e))&&s(t)}},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(31353),i=r(72077),a=r(6614),o=a(\\\"Object.prototype.toString\\\"),s=r(84543)(),l=r(40383),u=\\\"undefined\\\"==typeof globalThis?r.g:globalThis,c=i(),f=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},h=a(\\\"String.prototype.slice\\\"),p={},d=Object.getPrototypeOf;s&&l&&d&&n(c,(function(t){var e=new u[t];if(Symbol.toStringTag in e){var r=d(e),n=l(r,Symbol.toStringTag);if(!n){var i=d(r);n=l(i,Symbol.toStringTag)}p[t]=n.get}})),t.exports=function(t){if(!t||\\\"object\\\"!=typeof t)return!1;if(!s||!(Symbol.toStringTag in t)){var e=h(o(t),8,-1);return f(c,e)>-1}return!!l&&function(t){var e=!1;return n(p,(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\\u001a\\\\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\\u0001\\\");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?\\\"\\u001b[\\\"+u.colors[r][0]+\\\"m\\\"+t+\\\"\\u001b[\\\"+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(31353),i=r(72077),a=r(6614),o=r(40383),s=a(\\\"Object.prototype.toString\\\"),l=r(84543)(),u=\\\"undefined\\\"==typeof globalThis?r.g:globalThis,c=i(),f=a(\\\"String.prototype.slice\\\"),h={},p=Object.getPrototypeOf;l&&o&&p&&n(c,(function(t){if(\\\"function\\\"==typeof u[t]){var e=new u[t];if(Symbol.toStringTag in e){var r=p(e),n=o(r,Symbol.toStringTag);if(!n){var i=p(r);n=o(i,Symbol.toStringTag)}h[t]=n.get}}}));var d=r(9187);t.exports=function(t){return!!d(t)&&(l&&Symbol.toStringTag in t?function(t){var e=!1;return n(h,(function(r,n){if(!e)try{var i=r.call(t);i===n&&(e=i)}catch(t){}})),e}(t):f(s(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=[\\\"BigInt64Array\\\",\\\"BigUint64Array\\\",\\\"Float32Array\\\",\\\"Float64Array\\\",\\\"Int16Array\\\",\\\"Int32Array\\\",\\\"Int8Array\\\",\\\"Uint16Array\\\",\\\"Uint32Array\\\",\\\"Uint8Array\\\",\\\"Uint8ClampedArray\\\"],i=\\\"undefined\\\"==typeof globalThis?r.g:globalThis;t.exports=function(){for(var t=[],e=0;e<n.length;e++)\\\"function\\\"==typeof i[n[e]]&&(t[t.length]=n[e]);return t}},81684: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 Q},k4:function(){return G}});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\\\\\\\\(\\\".concat(l,\\\",\\\").concat(l,\\\",\\\").concat(l,\\\"\\\\\\\\)$\\\")),p=new RegExp(\\\"^rgb\\\\\\\\(\\\".concat(c,\\\",\\\").concat(c,\\\",\\\").concat(c,\\\"\\\\\\\\)$\\\")),d=new RegExp(\\\"^rgba\\\\\\\\(\\\".concat(l,\\\",\\\").concat(l,\\\",\\\").concat(l,\\\",\\\").concat(u,\\\"\\\\\\\\)$\\\")),v=new RegExp(\\\"^rgba\\\\\\\\(\\\".concat(c,\\\",\\\").concat(c,\\\",\\\").concat(c,\\\",\\\").concat(u,\\\"\\\\\\\\)$\\\")),g=new RegExp(\\\"^hsl\\\\\\\\(\\\".concat(u,\\\",\\\").concat(c,\\\",\\\").concat(c,\\\"\\\\\\\\)$\\\")),y=new RegExp(\\\"^hsla\\\\\\\\(\\\".concat(u,\\\",\\\").concat(c,\\\",\\\").concat(c,\\\",\\\").concat(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))?O(e[1],e[2]/100,e[3]/100,1):(e=y.exec(t))?O(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\\\"#\\\".concat(P(this.r)).concat(P(this.g)).concat(P(this.b))}function E(){var t=L(this.opacity);return\\\"\\\".concat(1===t?\\\"rgb(\\\":\\\"rgba(\\\").concat(C(this.r),\\\", \\\").concat(C(this.g),\\\", \\\").concat(C(this.b)).concat(1===t?\\\")\\\":\\\", \\\".concat(t,\\\")\\\"))}function L(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function C(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function P(t){return((t=C(t))<16?\\\"0\\\":\\\"\\\")+t.toString(16)}function O(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new D(t,e,r,n)}function I(t){if(t instanceof D)return new D(t.h,t.s,t.l,t.opacity);if(t instanceof a||(t=_(t)),!t)return new D;if(t instanceof D)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 D(s,l,u,t.opacity)}function D(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function z(t){return(t=(t||0)%360)<0?t+360:t}function R(t){return Math.max(0,Math.min(1,t||0))}function F(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 B(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}n(a,_,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:x,formatHex:x,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return I(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},clamp:function(){return new M(C(this.r),C(this.g),C(this.b),L(this.opacity))},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,formatHex8:function(){return\\\"#\\\".concat(P(this.r)).concat(P(this.g)).concat(P(this.b)).concat(P(255*(isNaN(this.opacity)?1:this.opacity)))},formatRgb:E,toString:E})),n(D,(function(t,e,r,n){return 1===arguments.length?I(t):new D(t,e,r,null==n?1:n)}),i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new D(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new D(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(F(t>=240?t-240:t+120,i,n),F(t,i,n),F(t<120?t+240:t-120,i,n),this.opacity)},clamp:function(){return new D(z(this.h),R(this.s),R(this.l),L(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=L(this.opacity);return\\\"\\\".concat(1===t?\\\"hsl(\\\":\\\"hsla(\\\").concat(z(this.h),\\\", \\\").concat(100*R(this.s),\\\"%, \\\").concat(100*R(this.l),\\\"%\\\").concat(1===t?\\\")\\\":\\\", \\\".concat(t,\\\")\\\"))}}));var N=function(t){return function(){return t}};function j(t,e){var r=e-t;return r?function(t,e){return function(r){return t+r*e}}(t,r):N(isNaN(t)?e:t)}var U=function t(e){var r=function(t){return 1==(t=+t)?j: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):N(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=j(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 V(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 H(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]=Q(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 q(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}function G(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function Z(t){return Z=\\\"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},Z(t)}function Y(t,e){var r,n={},i={};for(r in null!==t&&\\\"object\\\"===Z(t)||(t={}),null!==e&&\\\"object\\\"===Z(e)||(e={}),e)r in t?n[r]=Q(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}V((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 B((r-n/e)*e,o,i,a,s)}})),V((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 B((r-n/e)*e,i,a,o,s)}}));var W=/[-+]?(?:\\\\d+\\\\.?\\\\d*|\\\\.?\\\\d+)(?:[eE][-+]?\\\\d+)?/g,X=new RegExp(W.source,\\\"g\\\");function J(t,e){var r,n,i,a=W.lastIndex=X.lastIndex=0,o=-1,s=[],l=[];for(t+=\\\"\\\",e+=\\\"\\\";(r=W.exec(t))&&(n=X.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:G(r,n)})),a=X.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 K(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 $(t){return $=\\\"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},$(t)}function Q(t,e){var r,n,i=$(e);return null==e||\\\"boolean\\\"===i?N(e):(\\\"number\\\"===i?G:\\\"string\\\"===i?(r=_(e))?(e=r,U):J:e instanceof _?U:e instanceof Date?q:(n=e,!ArrayBuffer.isView(n)||n instanceof DataView?Array.isArray(e)?H:\\\"function\\\"!=typeof e.valueOf&&\\\"function\\\"!=typeof e.toString||isNaN(e)?Y:G:K))(t,e)}},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)}()}));\\n\",\n       \"        });\\n\",\n       \"        require(['plotly'], function(Plotly) {\\n\",\n       \"            window._Plotly = Plotly;\\n\",\n       \"        });\\n\",\n       \"        }\\n\",\n       \"        </script>\\n\",\n       \"        \"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.plotly.v1+json\": {\n       \"config\": {\n        \"linkText\": \"Export to plot.ly\",\n        \"plotlyServerURL\": \"https://plot.ly\",\n        \"showLink\": false\n       },\n       \"data\": [\n        {\n         \"colorscale\": [\n          [\n           0,\n           \"#440154\"\n          ],\n          [\n           0.1111111111111111,\n           \"#482878\"\n          ],\n          [\n           0.2222222222222222,\n           \"#3e4989\"\n          ],\n          [\n           0.3333333333333333,\n           \"#31688e\"\n          ],\n          [\n           0.4444444444444444,\n           \"#26828e\"\n          ],\n          [\n           0.5555555555555556,\n           \"#1f9e89\"\n          ],\n          [\n           0.6666666666666666,\n           \"#35b779\"\n          ],\n          [\n           0.7777777777777778,\n           \"#6ece58\"\n          ],\n          [\n           0.8888888888888888,\n           \"#b5de2b\"\n          ],\n          [\n           1,\n           \"#fde725\"\n          ]\n         ],\n         \"reversescale\": true,\n         \"showscale\": true,\n         \"type\": \"heatmap\",\n         \"x\": [\n          \"Classifier\",\n          \"ResNet50\",\n          \"DenseNet121\"\n         ],\n         \"y\": [\n          \"Classifier\",\n          \"ResNet50\",\n          \"DenseNet121\"\n         ],\n         \"z\": [\n          [\n           1,\n           0.7485805262268669,\n           0.7492413206839863\n          ],\n          [\n           0.7485805262268669,\n           1,\n           0.7495757669393711\n          ],\n          [\n           0.7492413206839863,\n           0.7495757669393711,\n           1\n          ]\n         ]\n        }\n       ],\n       \"layout\": {\n        \"autosize\": true,\n        \"template\": {\n         \"data\": {\n          \"bar\": [\n           {\n            \"error_x\": {\n             \"color\": \"#2a3f5f\"\n            },\n            \"error_y\": {\n             \"color\": \"#2a3f5f\"\n            },\n            \"marker\": {\n             \"line\": {\n              \"color\": \"#E5ECF6\",\n              \"width\": 0.5\n             },\n             \"pattern\": {\n              \"fillmode\": \"overlay\",\n              \"size\": 10,\n              \"solidity\": 0.2\n             }\n            },\n            \"type\": \"bar\"\n           }\n          ],\n          \"barpolar\": [\n           {\n            \"marker\": {\n             \"line\": {\n              \"color\": \"#E5ECF6\",\n              \"width\": 0.5\n             },\n             \"pattern\": {\n              \"fillmode\": \"overlay\",\n              \"size\": 10,\n              \"solidity\": 0.2\n             }\n            },\n            \"type\": \"barpolar\"\n           }\n          ],\n          \"carpet\": [\n           {\n            \"aaxis\": {\n             \"endlinecolor\": \"#2a3f5f\",\n             \"gridcolor\": \"white\",\n             \"linecolor\": \"white\",\n             \"minorgridcolor\": \"white\",\n             \"startlinecolor\": \"#2a3f5f\"\n            },\n            \"baxis\": {\n             \"endlinecolor\": \"#2a3f5f\",\n             \"gridcolor\": \"white\",\n             \"linecolor\": \"white\",\n             \"minorgridcolor\": \"white\",\n             \"startlinecolor\": \"#2a3f5f\"\n            },\n            \"type\": \"carpet\"\n           }\n          ],\n          \"choropleth\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"type\": \"choropleth\"\n           }\n          ],\n          \"contour\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"contour\"\n           }\n          ],\n          \"contourcarpet\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"type\": \"contourcarpet\"\n           }\n          ],\n          \"heatmap\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"heatmap\"\n           }\n          ],\n          \"heatmapgl\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"heatmapgl\"\n           }\n          ],\n          \"histogram\": [\n           {\n            \"marker\": {\n             \"pattern\": {\n              \"fillmode\": \"overlay\",\n              \"size\": 10,\n              \"solidity\": 0.2\n             }\n            },\n            \"type\": \"histogram\"\n           }\n          ],\n          \"histogram2d\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"histogram2d\"\n           }\n          ],\n          \"histogram2dcontour\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"histogram2dcontour\"\n           }\n          ],\n          \"mesh3d\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"type\": \"mesh3d\"\n           }\n          ],\n          \"parcoords\": [\n           {\n            \"line\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"parcoords\"\n           }\n          ],\n          \"pie\": [\n           {\n            \"automargin\": true,\n            \"type\": \"pie\"\n           }\n          ],\n          \"scatter\": [\n           {\n            \"fillpattern\": {\n             \"fillmode\": \"overlay\",\n             \"size\": 10,\n             \"solidity\": 0.2\n            },\n            \"type\": \"scatter\"\n           }\n          ],\n          \"scatter3d\": [\n           {\n            \"line\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scatter3d\"\n           }\n          ],\n          \"scattercarpet\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scattercarpet\"\n           }\n          ],\n          \"scattergeo\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scattergeo\"\n           }\n          ],\n          \"scattergl\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scattergl\"\n           }\n          ],\n          \"scattermapbox\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scattermapbox\"\n           }\n          ],\n          \"scatterpolar\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scatterpolar\"\n           }\n          ],\n          \"scatterpolargl\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scatterpolargl\"\n           }\n          ],\n          \"scatterternary\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scatterternary\"\n           }\n          ],\n          \"surface\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"surface\"\n           }\n          ],\n          \"table\": [\n           {\n            \"cells\": {\n             \"fill\": {\n              \"color\": \"#EBF0F8\"\n             },\n             \"line\": {\n              \"color\": \"white\"\n             }\n            },\n            \"header\": {\n             \"fill\": {\n              \"color\": \"#C8D4E3\"\n             },\n             \"line\": {\n              \"color\": \"white\"\n             }\n            },\n            \"type\": \"table\"\n           }\n          ]\n         },\n         \"layout\": {\n          \"annotationdefaults\": {\n           \"arrowcolor\": \"#2a3f5f\",\n           \"arrowhead\": 0,\n           \"arrowwidth\": 1\n          },\n          \"autotypenumbers\": \"strict\",\n          \"coloraxis\": {\n           \"colorbar\": {\n            \"outlinewidth\": 0,\n            \"ticks\": \"\"\n           }\n          },\n          \"colorscale\": {\n           \"diverging\": [\n            [\n             0,\n             \"#8e0152\"\n            ],\n            [\n             0.1,\n             \"#c51b7d\"\n            ],\n            [\n             0.2,\n             \"#de77ae\"\n            ],\n            [\n             0.3,\n             \"#f1b6da\"\n            ],\n            [\n             0.4,\n             \"#fde0ef\"\n            ],\n            [\n             0.5,\n             \"#f7f7f7\"\n            ],\n            [\n             0.6,\n             \"#e6f5d0\"\n            ],\n            [\n             0.7,\n             \"#b8e186\"\n            ],\n            [\n             0.8,\n             \"#7fbc41\"\n            ],\n            [\n             0.9,\n             \"#4d9221\"\n            ],\n            [\n             1,\n             \"#276419\"\n            ]\n           ],\n           \"sequential\": [\n            [\n             0,\n             \"#0d0887\"\n            ],\n            [\n             0.1111111111111111,\n             \"#46039f\"\n            ],\n            [\n             0.2222222222222222,\n             \"#7201a8\"\n            ],\n            [\n             0.3333333333333333,\n             \"#9c179e\"\n            ],\n            [\n             0.4444444444444444,\n             \"#bd3786\"\n            ],\n            [\n             0.5555555555555556,\n             \"#d8576b\"\n            ],\n            [\n             0.6666666666666666,\n             \"#ed7953\"\n            ],\n            [\n             0.7777777777777778,\n             \"#fb9f3a\"\n            ],\n            [\n             0.8888888888888888,\n             \"#fdca26\"\n            ],\n            [\n             1,\n             \"#f0f921\"\n            ]\n           ],\n           \"sequentialminus\": [\n            [\n             0,\n             \"#0d0887\"\n            ],\n            [\n             0.1111111111111111,\n             \"#46039f\"\n            ],\n            [\n             0.2222222222222222,\n             \"#7201a8\"\n            ],\n            [\n             0.3333333333333333,\n             \"#9c179e\"\n            ],\n            [\n             0.4444444444444444,\n             \"#bd3786\"\n            ],\n            [\n             0.5555555555555556,\n             \"#d8576b\"\n            ],\n            [\n             0.6666666666666666,\n             \"#ed7953\"\n            ],\n            [\n             0.7777777777777778,\n             \"#fb9f3a\"\n            ],\n            [\n             0.8888888888888888,\n             \"#fdca26\"\n            ],\n            [\n             1,\n             \"#f0f921\"\n            ]\n           ]\n          },\n          \"colorway\": [\n           \"#636efa\",\n           \"#EF553B\",\n           \"#00cc96\",\n           \"#ab63fa\",\n           \"#FFA15A\",\n           \"#19d3f3\",\n           \"#FF6692\",\n           \"#B6E880\",\n           \"#FF97FF\",\n           \"#FECB52\"\n          ],\n          \"font\": {\n           \"color\": \"#2a3f5f\"\n          },\n          \"geo\": {\n           \"bgcolor\": \"white\",\n           \"lakecolor\": \"white\",\n           \"landcolor\": \"#E5ECF6\",\n           \"showlakes\": true,\n           \"showland\": true,\n           \"subunitcolor\": \"white\"\n          },\n          \"hoverlabel\": {\n           \"align\": \"left\"\n          },\n          \"hovermode\": \"closest\",\n          \"mapbox\": {\n           \"style\": \"light\"\n          },\n          \"paper_bgcolor\": \"white\",\n          \"plot_bgcolor\": \"#E5ECF6\",\n          \"polar\": {\n           \"angularaxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           },\n           \"bgcolor\": \"#E5ECF6\",\n           \"radialaxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           }\n          },\n          \"scene\": {\n           \"xaxis\": {\n            \"backgroundcolor\": \"#E5ECF6\",\n            \"gridcolor\": \"white\",\n            \"gridwidth\": 2,\n            \"linecolor\": \"white\",\n            \"showbackground\": true,\n            \"ticks\": \"\",\n            \"zerolinecolor\": \"white\"\n           },\n           \"yaxis\": {\n            \"backgroundcolor\": \"#E5ECF6\",\n            \"gridcolor\": \"white\",\n            \"gridwidth\": 2,\n            \"linecolor\": \"white\",\n            \"showbackground\": true,\n            \"ticks\": \"\",\n            \"zerolinecolor\": \"white\"\n           },\n           \"zaxis\": {\n            \"backgroundcolor\": \"#E5ECF6\",\n            \"gridcolor\": \"white\",\n            \"gridwidth\": 2,\n            \"linecolor\": \"white\",\n            \"showbackground\": true,\n            \"ticks\": \"\",\n            \"zerolinecolor\": \"white\"\n           }\n          },\n          \"shapedefaults\": {\n           \"line\": {\n            \"color\": \"#2a3f5f\"\n           }\n          },\n          \"ternary\": {\n           \"aaxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           },\n           \"baxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           },\n           \"bgcolor\": \"#E5ECF6\",\n           \"caxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           }\n          },\n          \"title\": {\n           \"x\": 0.05\n          },\n          \"xaxis\": {\n           \"automargin\": true,\n           \"gridcolor\": \"white\",\n           \"linecolor\": \"white\",\n           \"ticks\": \"\",\n           \"title\": {\n            \"standoff\": 15\n           },\n           \"zerolinecolor\": \"white\",\n           \"zerolinewidth\": 2\n          },\n          \"yaxis\": {\n           \"automargin\": true,\n           \"gridcolor\": \"white\",\n           \"linecolor\": \"white\",\n           \"ticks\": \"\",\n           \"title\": {\n            \"standoff\": 15\n           },\n           \"zerolinecolor\": \"white\",\n           \"zerolinewidth\": 2\n          }\n         }\n        },\n        \"xaxis\": {\n         \"autorange\": true,\n         \"range\": [\n          -0.5,\n          2.5\n         ],\n         \"type\": \"category\"\n        },\n        \"yaxis\": {\n         \"autorange\": true,\n         \"range\": [\n          -0.5,\n          2.5\n         ],\n         \"type\": \"category\"\n        }\n       }\n      },\n      \"image/png\": \"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\",\n      \"text/html\": [\n       \"<div>                            <div id=\\\"f0806269-1df5-4afd-aa9b-2029a1d6e594\\\" class=\\\"plotly-graph-div\\\" style=\\\"height:525px; width:100%;\\\"></div>            <script type=\\\"text/javascript\\\">                require([\\\"plotly\\\"], function(Plotly) {                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\\\"f0806269-1df5-4afd-aa9b-2029a1d6e594\\\")) {                    Plotly.newPlot(                        \\\"f0806269-1df5-4afd-aa9b-2029a1d6e594\\\",                        [{\\\"colorscale\\\":[[0.0,\\\"#440154\\\"],[0.1111111111111111,\\\"#482878\\\"],[0.2222222222222222,\\\"#3e4989\\\"],[0.3333333333333333,\\\"#31688e\\\"],[0.4444444444444444,\\\"#26828e\\\"],[0.5555555555555556,\\\"#1f9e89\\\"],[0.6666666666666666,\\\"#35b779\\\"],[0.7777777777777778,\\\"#6ece58\\\"],[0.8888888888888888,\\\"#b5de2b\\\"],[1.0,\\\"#fde725\\\"]],\\\"reversescale\\\":true,\\\"showscale\\\":true,\\\"x\\\":[\\\"Classifier\\\",\\\"ResNet50\\\",\\\"DenseNet121\\\"],\\\"y\\\":[\\\"Classifier\\\",\\\"ResNet50\\\",\\\"DenseNet121\\\"],\\\"z\\\":[[1.0,0.7485805262268669,0.7492413206839863],[0.7485805262268669,1.0,0.7495757669393711],[0.7492413206839863,0.7495757669393711,1.0]],\\\"type\\\":\\\"heatmap\\\"}],                        {\\\"template\\\":{\\\"data\\\":{\\\"barpolar\\\":[{\\\"marker\\\":{\\\"line\\\":{\\\"color\\\":\\\"#E5ECF6\\\",\\\"width\\\":0.5},\\\"pattern\\\":{\\\"fillmode\\\":\\\"overlay\\\",\\\"size\\\":10,\\\"solidity\\\":0.2}},\\\"type\\\":\\\"barpolar\\\"}],\\\"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\\\"}],\\\"carpet\\\":[{\\\"aaxis\\\":{\\\"endlinecolor\\\":\\\"#2a3f5f\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"minorgridcolor\\\":\\\"white\\\",\\\"startlinecolor\\\":\\\"#2a3f5f\\\"},\\\"baxis\\\":{\\\"endlinecolor\\\":\\\"#2a3f5f\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"minorgridcolor\\\":\\\"white\\\",\\\"startlinecolor\\\":\\\"#2a3f5f\\\"},\\\"type\\\":\\\"carpet\\\"}],\\\"choropleth\\\":[{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"},\\\"type\\\":\\\"choropleth\\\"}],\\\"contourcarpet\\\":[{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"},\\\"type\\\":\\\"contourcarpet\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"contour\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"heatmapgl\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"heatmap\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"histogram2dcontour\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"histogram2d\\\"}],\\\"histogram\\\":[{\\\"marker\\\":{\\\"pattern\\\":{\\\"fillmode\\\":\\\"overlay\\\",\\\"size\\\":10,\\\"solidity\\\":0.2}},\\\"type\\\":\\\"histogram\\\"}],\\\"mesh3d\\\":[{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"},\\\"type\\\":\\\"mesh3d\\\"}],\\\"parcoords\\\":[{\\\"line\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"parcoords\\\"}],\\\"pie\\\":[{\\\"automargin\\\":true,\\\"type\\\":\\\"pie\\\"}],\\\"scatter3d\\\":[{\\\"line\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scatter3d\\\"}],\\\"scattercarpet\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scattercarpet\\\"}],\\\"scattergeo\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scattergeo\\\"}],\\\"scattergl\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scattergl\\\"}],\\\"scattermapbox\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scattermapbox\\\"}],\\\"scatterpolargl\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scatterpolargl\\\"}],\\\"scatterpolar\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scatterpolar\\\"}],\\\"scatter\\\":[{\\\"fillpattern\\\":{\\\"fillmode\\\":\\\"overlay\\\",\\\"size\\\":10,\\\"solidity\\\":0.2},\\\"type\\\":\\\"scatter\\\"}],\\\"scatterternary\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scatterternary\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"surface\\\"}],\\\"table\\\":[{\\\"cells\\\":{\\\"fill\\\":{\\\"color\\\":\\\"#EBF0F8\\\"},\\\"line\\\":{\\\"color\\\":\\\"white\\\"}},\\\"header\\\":{\\\"fill\\\":{\\\"color\\\":\\\"#C8D4E3\\\"},\\\"line\\\":{\\\"color\\\":\\\"white\\\"}},\\\"type\\\":\\\"table\\\"}]},\\\"layout\\\":{\\\"annotationdefaults\\\":{\\\"arrowcolor\\\":\\\"#2a3f5f\\\",\\\"arrowhead\\\":0,\\\"arrowwidth\\\":1},\\\"autotypenumbers\\\":\\\"strict\\\",\\\"coloraxis\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"colorscale\\\":{\\\"diverging\\\":[[0,\\\"#8e0152\\\"],[0.1,\\\"#c51b7d\\\"],[0.2,\\\"#de77ae\\\"],[0.3,\\\"#f1b6da\\\"],[0.4,\\\"#fde0ef\\\"],[0.5,\\\"#f7f7f7\\\"],[0.6,\\\"#e6f5d0\\\"],[0.7,\\\"#b8e186\\\"],[0.8,\\\"#7fbc41\\\"],[0.9,\\\"#4d9221\\\"],[1,\\\"#276419\\\"]],\\\"sequential\\\":[[0.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\\\"]]},\\\"colorway\\\":[\\\"#636efa\\\",\\\"#EF553B\\\",\\\"#00cc96\\\",\\\"#ab63fa\\\",\\\"#FFA15A\\\",\\\"#19d3f3\\\",\\\"#FF6692\\\",\\\"#B6E880\\\",\\\"#FF97FF\\\",\\\"#FECB52\\\"],\\\"font\\\":{\\\"color\\\":\\\"#2a3f5f\\\"},\\\"geo\\\":{\\\"bgcolor\\\":\\\"white\\\",\\\"lakecolor\\\":\\\"white\\\",\\\"landcolor\\\":\\\"#E5ECF6\\\",\\\"showlakes\\\":true,\\\"showland\\\":true,\\\"subunitcolor\\\":\\\"white\\\"},\\\"hoverlabel\\\":{\\\"align\\\":\\\"left\\\"},\\\"hovermode\\\":\\\"closest\\\",\\\"mapbox\\\":{\\\"style\\\":\\\"light\\\"},\\\"paper_bgcolor\\\":\\\"white\\\",\\\"plot_bgcolor\\\":\\\"#E5ECF6\\\",\\\"polar\\\":{\\\"angularaxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"},\\\"bgcolor\\\":\\\"#E5ECF6\\\",\\\"radialaxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"}},\\\"scene\\\":{\\\"xaxis\\\":{\\\"backgroundcolor\\\":\\\"#E5ECF6\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"gridwidth\\\":2,\\\"linecolor\\\":\\\"white\\\",\\\"showbackground\\\":true,\\\"ticks\\\":\\\"\\\",\\\"zerolinecolor\\\":\\\"white\\\"},\\\"yaxis\\\":{\\\"backgroundcolor\\\":\\\"#E5ECF6\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"gridwidth\\\":2,\\\"linecolor\\\":\\\"white\\\",\\\"showbackground\\\":true,\\\"ticks\\\":\\\"\\\",\\\"zerolinecolor\\\":\\\"white\\\"},\\\"zaxis\\\":{\\\"backgroundcolor\\\":\\\"#E5ECF6\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"gridwidth\\\":2,\\\"linecolor\\\":\\\"white\\\",\\\"showbackground\\\":true,\\\"ticks\\\":\\\"\\\",\\\"zerolinecolor\\\":\\\"white\\\"}},\\\"shapedefaults\\\":{\\\"line\\\":{\\\"color\\\":\\\"#2a3f5f\\\"}},\\\"ternary\\\":{\\\"aaxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"},\\\"baxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"},\\\"bgcolor\\\":\\\"#E5ECF6\\\",\\\"caxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"}},\\\"title\\\":{\\\"x\\\":0.05},\\\"xaxis\\\":{\\\"automargin\\\":true,\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\",\\\"title\\\":{\\\"standoff\\\":15},\\\"zerolinecolor\\\":\\\"white\\\",\\\"zerolinewidth\\\":2},\\\"yaxis\\\":{\\\"automargin\\\":true,\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\",\\\"title\\\":{\\\"standoff\\\":15},\\\"zerolinecolor\\\":\\\"white\\\",\\\"zerolinewidth\\\":2}}}},                        {\\\"responsive\\\": true}                    ).then(function(){\\n\",\n       \"                            \\n\",\n       \"var gd = document.getElementById('f0806269-1df5-4afd-aa9b-2029a1d6e594');\\n\",\n       \"var x = new MutationObserver(function (mutations, observer) {{\\n\",\n       \"        var display = window.getComputedStyle(gd).display;\\n\",\n       \"        if (!display || display === 'none') {{\\n\",\n       \"            console.log([gd, 'removed!']);\\n\",\n       \"            Plotly.purge(gd);\\n\",\n       \"            observer.disconnect();\\n\",\n       \"        }}\\n\",\n       \"}});\\n\",\n       \"\\n\",\n       \"// Listen for the removal of the full notebook cells\\n\",\n       \"var notebookContainer = gd.closest('#notebook-container');\\n\",\n       \"if (notebookContainer) {{\\n\",\n       \"    x.observe(notebookContainer, {childList: true});\\n\",\n       \"}}\\n\",\n       \"\\n\",\n       \"// Listen for the clearing of the current output cell\\n\",\n       \"var outputEl = gd.closest('.output');\\n\",\n       \"if (outputEl) {{\\n\",\n       \"    x.observe(outputEl, {childList: true});\\n\",\n       \"}}\\n\",\n       \"\\n\",\n       \"                        })                };                });            </script>        </div>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import plotly.offline as py\\n\",\n    \"import plotly.graph_objs as go\\n\",\n    \"\\n\",\n    \"data = [\\n\",\n    \"    go.Heatmap(\\n\",\n    \"        z= base_predictions_train.astype(float).corr().values ,\\n\",\n    \"        x=base_predictions_train.columns.values,\\n\",\n    \"        y= base_predictions_train.columns.values,\\n\",\n    \"          colorscale='Viridis',\\n\",\n    \"            showscale=True,\\n\",\n    \"            reversescale = True\\n\",\n    \"    )\\n\",\n    \"]\\n\",\n    \"py.iplot(data, filename='labelled-heatmap')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.plotly.v1+json\": {\n       \"config\": {\n        \"linkText\": \"Export to plot.ly\",\n        \"plotlyServerURL\": \"https://plot.ly\",\n        \"showLink\": false\n       },\n       \"data\": [\n        {\n         \"colorscale\": [\n          [\n           0,\n           \"#440154\"\n          ],\n          [\n           0.1111111111111111,\n           \"#482878\"\n          ],\n          [\n           0.2222222222222222,\n           \"#3e4989\"\n          ],\n          [\n           0.3333333333333333,\n           \"#31688e\"\n          ],\n          [\n           0.4444444444444444,\n           \"#26828e\"\n          ],\n          [\n           0.5555555555555556,\n           \"#1f9e89\"\n          ],\n          [\n           0.6666666666666666,\n           \"#35b779\"\n          ],\n          [\n           0.7777777777777778,\n           \"#6ece58\"\n          ],\n          [\n           0.8888888888888888,\n           \"#b5de2b\"\n          ],\n          [\n           1,\n           \"#fde725\"\n          ]\n         ],\n         \"reversescale\": true,\n         \"showscale\": true,\n         \"type\": \"heatmap\",\n         \"x\": [\n          \"Classifier\",\n          \"ResNet50\",\n          \"DenseNet121\"\n         ],\n         \"y\": [\n          \"Classifier\",\n          \"ResNet50\",\n          \"DenseNet121\"\n         ],\n         \"z\": [\n          [\n           1,\n           0.8341978940686269,\n           0.8394115354924502\n          ],\n          [\n           0.8341978940686269,\n           1,\n           0.8812089787171198\n          ],\n          [\n           0.8394115354924502,\n           0.8812089787171198,\n           1\n          ]\n         ]\n        }\n       ],\n       \"layout\": {\n        \"autosize\": true,\n        \"template\": {\n         \"data\": {\n          \"bar\": [\n           {\n            \"error_x\": {\n             \"color\": \"#2a3f5f\"\n            },\n            \"error_y\": {\n             \"color\": \"#2a3f5f\"\n            },\n            \"marker\": {\n             \"line\": {\n              \"color\": \"#E5ECF6\",\n              \"width\": 0.5\n             },\n             \"pattern\": {\n              \"fillmode\": \"overlay\",\n              \"size\": 10,\n              \"solidity\": 0.2\n             }\n            },\n            \"type\": \"bar\"\n           }\n          ],\n          \"barpolar\": [\n           {\n            \"marker\": {\n             \"line\": {\n              \"color\": \"#E5ECF6\",\n              \"width\": 0.5\n             },\n             \"pattern\": {\n              \"fillmode\": \"overlay\",\n              \"size\": 10,\n              \"solidity\": 0.2\n             }\n            },\n            \"type\": \"barpolar\"\n           }\n          ],\n          \"carpet\": [\n           {\n            \"aaxis\": {\n             \"endlinecolor\": \"#2a3f5f\",\n             \"gridcolor\": \"white\",\n             \"linecolor\": \"white\",\n             \"minorgridcolor\": \"white\",\n             \"startlinecolor\": \"#2a3f5f\"\n            },\n            \"baxis\": {\n             \"endlinecolor\": \"#2a3f5f\",\n             \"gridcolor\": \"white\",\n             \"linecolor\": \"white\",\n             \"minorgridcolor\": \"white\",\n             \"startlinecolor\": \"#2a3f5f\"\n            },\n            \"type\": \"carpet\"\n           }\n          ],\n          \"choropleth\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"type\": \"choropleth\"\n           }\n          ],\n          \"contour\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"contour\"\n           }\n          ],\n          \"contourcarpet\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"type\": \"contourcarpet\"\n           }\n          ],\n          \"heatmap\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"heatmap\"\n           }\n          ],\n          \"heatmapgl\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"heatmapgl\"\n           }\n          ],\n          \"histogram\": [\n           {\n            \"marker\": {\n             \"pattern\": {\n              \"fillmode\": \"overlay\",\n              \"size\": 10,\n              \"solidity\": 0.2\n             }\n            },\n            \"type\": \"histogram\"\n           }\n          ],\n          \"histogram2d\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"histogram2d\"\n           }\n          ],\n          \"histogram2dcontour\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"histogram2dcontour\"\n           }\n          ],\n          \"mesh3d\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"type\": \"mesh3d\"\n           }\n          ],\n          \"parcoords\": [\n           {\n            \"line\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"parcoords\"\n           }\n          ],\n          \"pie\": [\n           {\n            \"automargin\": true,\n            \"type\": \"pie\"\n           }\n          ],\n          \"scatter\": [\n           {\n            \"fillpattern\": {\n             \"fillmode\": \"overlay\",\n             \"size\": 10,\n             \"solidity\": 0.2\n            },\n            \"type\": \"scatter\"\n           }\n          ],\n          \"scatter3d\": [\n           {\n            \"line\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scatter3d\"\n           }\n          ],\n          \"scattercarpet\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scattercarpet\"\n           }\n          ],\n          \"scattergeo\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scattergeo\"\n           }\n          ],\n          \"scattergl\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scattergl\"\n           }\n          ],\n          \"scattermapbox\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scattermapbox\"\n           }\n          ],\n          \"scatterpolar\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scatterpolar\"\n           }\n          ],\n          \"scatterpolargl\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scatterpolargl\"\n           }\n          ],\n          \"scatterternary\": [\n           {\n            \"marker\": {\n             \"colorbar\": {\n              \"outlinewidth\": 0,\n              \"ticks\": \"\"\n             }\n            },\n            \"type\": \"scatterternary\"\n           }\n          ],\n          \"surface\": [\n           {\n            \"colorbar\": {\n             \"outlinewidth\": 0,\n             \"ticks\": \"\"\n            },\n            \"colorscale\": [\n             [\n              0,\n              \"#0d0887\"\n             ],\n             [\n              0.1111111111111111,\n              \"#46039f\"\n             ],\n             [\n              0.2222222222222222,\n              \"#7201a8\"\n             ],\n             [\n              0.3333333333333333,\n              \"#9c179e\"\n             ],\n             [\n              0.4444444444444444,\n              \"#bd3786\"\n             ],\n             [\n              0.5555555555555556,\n              \"#d8576b\"\n             ],\n             [\n              0.6666666666666666,\n              \"#ed7953\"\n             ],\n             [\n              0.7777777777777778,\n              \"#fb9f3a\"\n             ],\n             [\n              0.8888888888888888,\n              \"#fdca26\"\n             ],\n             [\n              1,\n              \"#f0f921\"\n             ]\n            ],\n            \"type\": \"surface\"\n           }\n          ],\n          \"table\": [\n           {\n            \"cells\": {\n             \"fill\": {\n              \"color\": \"#EBF0F8\"\n             },\n             \"line\": {\n              \"color\": \"white\"\n             }\n            },\n            \"header\": {\n             \"fill\": {\n              \"color\": \"#C8D4E3\"\n             },\n             \"line\": {\n              \"color\": \"white\"\n             }\n            },\n            \"type\": \"table\"\n           }\n          ]\n         },\n         \"layout\": {\n          \"annotationdefaults\": {\n           \"arrowcolor\": \"#2a3f5f\",\n           \"arrowhead\": 0,\n           \"arrowwidth\": 1\n          },\n          \"autotypenumbers\": \"strict\",\n          \"coloraxis\": {\n           \"colorbar\": {\n            \"outlinewidth\": 0,\n            \"ticks\": \"\"\n           }\n          },\n          \"colorscale\": {\n           \"diverging\": [\n            [\n             0,\n             \"#8e0152\"\n            ],\n            [\n             0.1,\n             \"#c51b7d\"\n            ],\n            [\n             0.2,\n             \"#de77ae\"\n            ],\n            [\n             0.3,\n             \"#f1b6da\"\n            ],\n            [\n             0.4,\n             \"#fde0ef\"\n            ],\n            [\n             0.5,\n             \"#f7f7f7\"\n            ],\n            [\n             0.6,\n             \"#e6f5d0\"\n            ],\n            [\n             0.7,\n             \"#b8e186\"\n            ],\n            [\n             0.8,\n             \"#7fbc41\"\n            ],\n            [\n             0.9,\n             \"#4d9221\"\n            ],\n            [\n             1,\n             \"#276419\"\n            ]\n           ],\n           \"sequential\": [\n            [\n             0,\n             \"#0d0887\"\n            ],\n            [\n             0.1111111111111111,\n             \"#46039f\"\n            ],\n            [\n             0.2222222222222222,\n             \"#7201a8\"\n            ],\n            [\n             0.3333333333333333,\n             \"#9c179e\"\n            ],\n            [\n             0.4444444444444444,\n             \"#bd3786\"\n            ],\n            [\n             0.5555555555555556,\n             \"#d8576b\"\n            ],\n            [\n             0.6666666666666666,\n             \"#ed7953\"\n            ],\n            [\n             0.7777777777777778,\n             \"#fb9f3a\"\n            ],\n            [\n             0.8888888888888888,\n             \"#fdca26\"\n            ],\n            [\n             1,\n             \"#f0f921\"\n            ]\n           ],\n           \"sequentialminus\": [\n            [\n             0,\n             \"#0d0887\"\n            ],\n            [\n             0.1111111111111111,\n             \"#46039f\"\n            ],\n            [\n             0.2222222222222222,\n             \"#7201a8\"\n            ],\n            [\n             0.3333333333333333,\n             \"#9c179e\"\n            ],\n            [\n             0.4444444444444444,\n             \"#bd3786\"\n            ],\n            [\n             0.5555555555555556,\n             \"#d8576b\"\n            ],\n            [\n             0.6666666666666666,\n             \"#ed7953\"\n            ],\n            [\n             0.7777777777777778,\n             \"#fb9f3a\"\n            ],\n            [\n             0.8888888888888888,\n             \"#fdca26\"\n            ],\n            [\n             1,\n             \"#f0f921\"\n            ]\n           ]\n          },\n          \"colorway\": [\n           \"#636efa\",\n           \"#EF553B\",\n           \"#00cc96\",\n           \"#ab63fa\",\n           \"#FFA15A\",\n           \"#19d3f3\",\n           \"#FF6692\",\n           \"#B6E880\",\n           \"#FF97FF\",\n           \"#FECB52\"\n          ],\n          \"font\": {\n           \"color\": \"#2a3f5f\"\n          },\n          \"geo\": {\n           \"bgcolor\": \"white\",\n           \"lakecolor\": \"white\",\n           \"landcolor\": \"#E5ECF6\",\n           \"showlakes\": true,\n           \"showland\": true,\n           \"subunitcolor\": \"white\"\n          },\n          \"hoverlabel\": {\n           \"align\": \"left\"\n          },\n          \"hovermode\": \"closest\",\n          \"mapbox\": {\n           \"style\": \"light\"\n          },\n          \"paper_bgcolor\": \"white\",\n          \"plot_bgcolor\": \"#E5ECF6\",\n          \"polar\": {\n           \"angularaxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           },\n           \"bgcolor\": \"#E5ECF6\",\n           \"radialaxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           }\n          },\n          \"scene\": {\n           \"xaxis\": {\n            \"backgroundcolor\": \"#E5ECF6\",\n            \"gridcolor\": \"white\",\n            \"gridwidth\": 2,\n            \"linecolor\": \"white\",\n            \"showbackground\": true,\n            \"ticks\": \"\",\n            \"zerolinecolor\": \"white\"\n           },\n           \"yaxis\": {\n            \"backgroundcolor\": \"#E5ECF6\",\n            \"gridcolor\": \"white\",\n            \"gridwidth\": 2,\n            \"linecolor\": \"white\",\n            \"showbackground\": true,\n            \"ticks\": \"\",\n            \"zerolinecolor\": \"white\"\n           },\n           \"zaxis\": {\n            \"backgroundcolor\": \"#E5ECF6\",\n            \"gridcolor\": \"white\",\n            \"gridwidth\": 2,\n            \"linecolor\": \"white\",\n            \"showbackground\": true,\n            \"ticks\": \"\",\n            \"zerolinecolor\": \"white\"\n           }\n          },\n          \"shapedefaults\": {\n           \"line\": {\n            \"color\": \"#2a3f5f\"\n           }\n          },\n          \"ternary\": {\n           \"aaxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           },\n           \"baxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           },\n           \"bgcolor\": \"#E5ECF6\",\n           \"caxis\": {\n            \"gridcolor\": \"white\",\n            \"linecolor\": \"white\",\n            \"ticks\": \"\"\n           }\n          },\n          \"title\": {\n           \"x\": 0.05\n          },\n          \"xaxis\": {\n           \"automargin\": true,\n           \"gridcolor\": \"white\",\n           \"linecolor\": \"white\",\n           \"ticks\": \"\",\n           \"title\": {\n            \"standoff\": 15\n           },\n           \"zerolinecolor\": \"white\",\n           \"zerolinewidth\": 2\n          },\n          \"yaxis\": {\n           \"automargin\": true,\n           \"gridcolor\": \"white\",\n           \"linecolor\": \"white\",\n           \"ticks\": \"\",\n           \"title\": {\n            \"standoff\": 15\n           },\n           \"zerolinecolor\": \"white\",\n           \"zerolinewidth\": 2\n          }\n         }\n        },\n        \"xaxis\": {\n         \"autorange\": true,\n         \"range\": [\n          -0.5,\n          2.5\n         ],\n         \"type\": \"category\"\n        },\n        \"yaxis\": {\n         \"autorange\": true,\n         \"range\": [\n          -0.5,\n          2.5\n         ],\n         \"type\": \"category\"\n        }\n       }\n      },\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAA1MAAAFoCAYAAACymqHbAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAADU6ADAAQAAAABAAABaAAAAADS8epLAABAAElEQVR4AeydB4AdVdXHz7aEJIRUEgi9d5CuwdBDU5AoRUSQJkVQmoAivXeli/QiRaqAfNIDSBGkCkivIZAECBAgpO1+53/uzMtu6mY2IW82v5vsmzv3nntn3m/e233/d849U9PkxSgQgAAEIAABCEAAAhCAAAQgMEMEamfIGmMIQAACEIAABCAAAQhAAAIQCAKIKV4IEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhAAAIQgAAEChBATBWAxhAIQAACEIAABCAAAQhAAAKIKV4DEIAABCAAAQhA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\",\n      \"text/html\": [\n       \"<div>                            <div id=\\\"e18980e0-538d-4e5e-affe-e4e2603a2d3d\\\" class=\\\"plotly-graph-div\\\" style=\\\"height:525px; width:100%;\\\"></div>            <script type=\\\"text/javascript\\\">                require([\\\"plotly\\\"], function(Plotly) {                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\\\"e18980e0-538d-4e5e-affe-e4e2603a2d3d\\\")) {                    Plotly.newPlot(                        \\\"e18980e0-538d-4e5e-affe-e4e2603a2d3d\\\",                        [{\\\"colorscale\\\":[[0.0,\\\"#440154\\\"],[0.1111111111111111,\\\"#482878\\\"],[0.2222222222222222,\\\"#3e4989\\\"],[0.3333333333333333,\\\"#31688e\\\"],[0.4444444444444444,\\\"#26828e\\\"],[0.5555555555555556,\\\"#1f9e89\\\"],[0.6666666666666666,\\\"#35b779\\\"],[0.7777777777777778,\\\"#6ece58\\\"],[0.8888888888888888,\\\"#b5de2b\\\"],[1.0,\\\"#fde725\\\"]],\\\"reversescale\\\":true,\\\"showscale\\\":true,\\\"x\\\":[\\\"Classifier\\\",\\\"ResNet50\\\",\\\"DenseNet121\\\"],\\\"y\\\":[\\\"Classifier\\\",\\\"ResNet50\\\",\\\"DenseNet121\\\"],\\\"z\\\":[[1.0,0.8341978940686269,0.8394115354924502],[0.8341978940686269,1.0,0.8812089787171198],[0.8394115354924502,0.8812089787171198,1.0]],\\\"type\\\":\\\"heatmap\\\"}],                        {\\\"template\\\":{\\\"data\\\":{\\\"barpolar\\\":[{\\\"marker\\\":{\\\"line\\\":{\\\"color\\\":\\\"#E5ECF6\\\",\\\"width\\\":0.5},\\\"pattern\\\":{\\\"fillmode\\\":\\\"overlay\\\",\\\"size\\\":10,\\\"solidity\\\":0.2}},\\\"type\\\":\\\"barpolar\\\"}],\\\"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\\\"}],\\\"carpet\\\":[{\\\"aaxis\\\":{\\\"endlinecolor\\\":\\\"#2a3f5f\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"minorgridcolor\\\":\\\"white\\\",\\\"startlinecolor\\\":\\\"#2a3f5f\\\"},\\\"baxis\\\":{\\\"endlinecolor\\\":\\\"#2a3f5f\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"minorgridcolor\\\":\\\"white\\\",\\\"startlinecolor\\\":\\\"#2a3f5f\\\"},\\\"type\\\":\\\"carpet\\\"}],\\\"choropleth\\\":[{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"},\\\"type\\\":\\\"choropleth\\\"}],\\\"contourcarpet\\\":[{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"},\\\"type\\\":\\\"contourcarpet\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"contour\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"heatmapgl\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"heatmap\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"histogram2dcontour\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"histogram2d\\\"}],\\\"histogram\\\":[{\\\"marker\\\":{\\\"pattern\\\":{\\\"fillmode\\\":\\\"overlay\\\",\\\"size\\\":10,\\\"solidity\\\":0.2}},\\\"type\\\":\\\"histogram\\\"}],\\\"mesh3d\\\":[{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"},\\\"type\\\":\\\"mesh3d\\\"}],\\\"parcoords\\\":[{\\\"line\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"parcoords\\\"}],\\\"pie\\\":[{\\\"automargin\\\":true,\\\"type\\\":\\\"pie\\\"}],\\\"scatter3d\\\":[{\\\"line\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scatter3d\\\"}],\\\"scattercarpet\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scattercarpet\\\"}],\\\"scattergeo\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scattergeo\\\"}],\\\"scattergl\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scattergl\\\"}],\\\"scattermapbox\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scattermapbox\\\"}],\\\"scatterpolargl\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scatterpolargl\\\"}],\\\"scatterpolar\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scatterpolar\\\"}],\\\"scatter\\\":[{\\\"fillpattern\\\":{\\\"fillmode\\\":\\\"overlay\\\",\\\"size\\\":10,\\\"solidity\\\":0.2},\\\"type\\\":\\\"scatter\\\"}],\\\"scatterternary\\\":[{\\\"marker\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"type\\\":\\\"scatterternary\\\"}],\\\"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\\\"]],\\\"type\\\":\\\"surface\\\"}],\\\"table\\\":[{\\\"cells\\\":{\\\"fill\\\":{\\\"color\\\":\\\"#EBF0F8\\\"},\\\"line\\\":{\\\"color\\\":\\\"white\\\"}},\\\"header\\\":{\\\"fill\\\":{\\\"color\\\":\\\"#C8D4E3\\\"},\\\"line\\\":{\\\"color\\\":\\\"white\\\"}},\\\"type\\\":\\\"table\\\"}]},\\\"layout\\\":{\\\"annotationdefaults\\\":{\\\"arrowcolor\\\":\\\"#2a3f5f\\\",\\\"arrowhead\\\":0,\\\"arrowwidth\\\":1},\\\"autotypenumbers\\\":\\\"strict\\\",\\\"coloraxis\\\":{\\\"colorbar\\\":{\\\"outlinewidth\\\":0,\\\"ticks\\\":\\\"\\\"}},\\\"colorscale\\\":{\\\"diverging\\\":[[0,\\\"#8e0152\\\"],[0.1,\\\"#c51b7d\\\"],[0.2,\\\"#de77ae\\\"],[0.3,\\\"#f1b6da\\\"],[0.4,\\\"#fde0ef\\\"],[0.5,\\\"#f7f7f7\\\"],[0.6,\\\"#e6f5d0\\\"],[0.7,\\\"#b8e186\\\"],[0.8,\\\"#7fbc41\\\"],[0.9,\\\"#4d9221\\\"],[1,\\\"#276419\\\"]],\\\"sequential\\\":[[0.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\\\"]]},\\\"colorway\\\":[\\\"#636efa\\\",\\\"#EF553B\\\",\\\"#00cc96\\\",\\\"#ab63fa\\\",\\\"#FFA15A\\\",\\\"#19d3f3\\\",\\\"#FF6692\\\",\\\"#B6E880\\\",\\\"#FF97FF\\\",\\\"#FECB52\\\"],\\\"font\\\":{\\\"color\\\":\\\"#2a3f5f\\\"},\\\"geo\\\":{\\\"bgcolor\\\":\\\"white\\\",\\\"lakecolor\\\":\\\"white\\\",\\\"landcolor\\\":\\\"#E5ECF6\\\",\\\"showlakes\\\":true,\\\"showland\\\":true,\\\"subunitcolor\\\":\\\"white\\\"},\\\"hoverlabel\\\":{\\\"align\\\":\\\"left\\\"},\\\"hovermode\\\":\\\"closest\\\",\\\"mapbox\\\":{\\\"style\\\":\\\"light\\\"},\\\"paper_bgcolor\\\":\\\"white\\\",\\\"plot_bgcolor\\\":\\\"#E5ECF6\\\",\\\"polar\\\":{\\\"angularaxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"},\\\"bgcolor\\\":\\\"#E5ECF6\\\",\\\"radialaxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"}},\\\"scene\\\":{\\\"xaxis\\\":{\\\"backgroundcolor\\\":\\\"#E5ECF6\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"gridwidth\\\":2,\\\"linecolor\\\":\\\"white\\\",\\\"showbackground\\\":true,\\\"ticks\\\":\\\"\\\",\\\"zerolinecolor\\\":\\\"white\\\"},\\\"yaxis\\\":{\\\"backgroundcolor\\\":\\\"#E5ECF6\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"gridwidth\\\":2,\\\"linecolor\\\":\\\"white\\\",\\\"showbackground\\\":true,\\\"ticks\\\":\\\"\\\",\\\"zerolinecolor\\\":\\\"white\\\"},\\\"zaxis\\\":{\\\"backgroundcolor\\\":\\\"#E5ECF6\\\",\\\"gridcolor\\\":\\\"white\\\",\\\"gridwidth\\\":2,\\\"linecolor\\\":\\\"white\\\",\\\"showbackground\\\":true,\\\"ticks\\\":\\\"\\\",\\\"zerolinecolor\\\":\\\"white\\\"}},\\\"shapedefaults\\\":{\\\"line\\\":{\\\"color\\\":\\\"#2a3f5f\\\"}},\\\"ternary\\\":{\\\"aaxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"},\\\"baxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"},\\\"bgcolor\\\":\\\"#E5ECF6\\\",\\\"caxis\\\":{\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\"}},\\\"title\\\":{\\\"x\\\":0.05},\\\"xaxis\\\":{\\\"automargin\\\":true,\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\",\\\"title\\\":{\\\"standoff\\\":15},\\\"zerolinecolor\\\":\\\"white\\\",\\\"zerolinewidth\\\":2},\\\"yaxis\\\":{\\\"automargin\\\":true,\\\"gridcolor\\\":\\\"white\\\",\\\"linecolor\\\":\\\"white\\\",\\\"ticks\\\":\\\"\\\",\\\"title\\\":{\\\"standoff\\\":15},\\\"zerolinecolor\\\":\\\"white\\\",\\\"zerolinewidth\\\":2}}}},                        {\\\"responsive\\\": true}                    ).then(function(){\\n\",\n       \"                            \\n\",\n       \"var gd = document.getElementById('e18980e0-538d-4e5e-affe-e4e2603a2d3d');\\n\",\n       \"var x = new MutationObserver(function (mutations, observer) {{\\n\",\n       \"        var display = window.getComputedStyle(gd).display;\\n\",\n       \"        if (!display || display === 'none') {{\\n\",\n       \"            console.log([gd, 'removed!']);\\n\",\n       \"            Plotly.purge(gd);\\n\",\n       \"            observer.disconnect();\\n\",\n       \"        }}\\n\",\n       \"}});\\n\",\n       \"\\n\",\n       \"// Listen for the removal of the full notebook cells\\n\",\n       \"var notebookContainer = gd.closest('#notebook-container');\\n\",\n       \"if (notebookContainer) {{\\n\",\n       \"    x.observe(notebookContainer, {childList: true});\\n\",\n       \"}}\\n\",\n       \"\\n\",\n       \"// Listen for the clearing of the current output cell\\n\",\n       \"var outputEl = gd.closest('.output');\\n\",\n       \"if (outputEl) {{\\n\",\n       \"    x.observe(outputEl, {childList: true});\\n\",\n       \"}}\\n\",\n       \"\\n\",\n       \"                        })                };                });            </script>        </div>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import plotly.offline as py\\n\",\n    \"import plotly.graph_objs as go\\n\",\n    \"\\n\",\n    \"data = [\\n\",\n    \"    go.Heatmap(\\n\",\n    \"        z= base_predictions_test.astype(float).corr().values ,\\n\",\n    \"        x=base_predictions_test.columns.values,\\n\",\n    \"        y= base_predictions_test.columns.values,\\n\",\n    \"          colorscale='Viridis',\\n\",\n    \"            showscale=True,\\n\",\n    \"            reversescale = True\\n\",\n    \"    )\\n\",\n    \"]\\n\",\n    \"py.iplot(data, filename='labelled-heatmap')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"x_train = np.concatenate((oof_dict['Classifier_oof_train'], oof_dict['ResNet50_oof_train'], oof_dict['DenseNet121_oof_train'], ), axis=1)\\n\",\n    \"\\n\",\n    \"data_loader = DataLoader(dataset, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n    \"y_train = []\\n\",\n    \"for _, label in data_loader:\\n\",\n    \"    y_train.extend(label.tolist())\\n\",\n    \"x_test = np.concatenate((oof_dict['Classifier_oof_test'], oof_dict['ResNet50_oof_test'], oof_dict['DenseNet121_oof_test'], ), axis=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import xgboost as xgb\\n\",\n    \"\\n\",\n    \"gbm = xgb.XGBClassifier(\\n\",\n    \"    learning_rate = 0.01,\\n\",\n    \"    n_estimators= 200,\\n\",\n    \"    max_depth= 7,\\n\",\n    \"    min_child_weight= 5,\\n\",\n    \"    #gamma=1,\\n\",\n    \"    gamma=0.8,                        \\n\",\n    \"    subsample=0.8,\\n\",\n    \"    colsample_bytree=0.8,\\n\",\n    \"    objective= 'multi:logistic',\\n\",\n    \"    num_class = 11,\\n\",\n    \"    nthread= -1,\\n\",\n    \"    tree_method='gpu_hist',\\n\",\n    \").fit(x_train, y_train)\\n\",\n    \"prediction = gbm.predict(x_test)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0.8269651066395357\"\n      ]\n     },\n     \"execution_count\": 25,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"gbm.score(x_train, y_train)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create test csv\\n\",\n    \"def pad4(i):\\n\",\n    \"    return \\\"0\\\"*(4-len(str(i)))+str(i)\\n\",\n    \"df = pd.DataFrame()\\n\",\n    \"df[\\\"Id\\\"] = [pad4(i) for i in range(len(test_set))]\\n\",\n    \"df[\\\"Category\\\"] = prediction\\n\",\n    \"df.to_csv(\\\"submission.csv\\\",index = False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Tensorboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:28.569197Z\",\n     \"start_time\": \"2023-04-19T03:33:28.569191Z\"\n    }\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# %reload_ext tensorboard\\n\",\n    \"# %tensorboard --logdir=./runs/\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ivk0hrE-V8Cu\"\n   },\n   \"source\": [\n    \"# Q1. Augmentation Implementation\\n\",\n    \"## Implement augmentation by finishing train_tfm in the code with image size of your choice. \\n\",\n    \"## Directly copy the following block and paste it on GradeScope after you finish the code\\n\",\n    \"### Your train_tfm must be capable of producing 5+ different results when given an identical image multiple times.\\n\",\n    \"### Your  train_tfm in the report can be different from train_tfm in your training code.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:28.572324Z\",\n     \"start_time\": \"2023-04-19T03:33:28.572319Z\"\n    },\n    \"id\": \"GSfKNo42WjKm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"train_tfm = transforms.Compose([\\n\",\n    \"    # Resize the image into a fixed shape (height = width = 128)\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    # You can add some transforms here.\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3HemRgZ6WwRM\"\n   },\n   \"source\": [\n    \"# Q2. Visual Representations Implementation\\n\",\n    \"## Visualize the learned visual representations of the CNN model on the validation set by implementing t-SNE (t-distributed Stochastic Neighbor Embedding) on the output of both top & mid layers (You need to submit 2 images). \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:28.572724Z\",\n     \"start_time\": \"2023-04-19T03:33:28.572720Z\"\n    },\n    \"id\": \"iXd_SZnB2Wg8\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Classifier(\\n\",\n      \"  (cnn): Sequential(\\n\",\n      \"    (0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (2): ReLU()\\n\",\n      \"    (3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (4): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (5): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (6): ReLU()\\n\",\n      \"    (7): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (8): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (9): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (10): ReLU()\\n\",\n      \"    (11): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (12): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (13): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (14): ReLU()\\n\",\n      \"    (15): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (16): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (17): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (18): ReLU()\\n\",\n      \"    (19): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"  )\\n\",\n      \"  (fc): Sequential(\\n\",\n      \"    (0): Dropout(p=0.5, inplace=False)\\n\",\n      \"    (1): Linear(in_features=8192, out_features=1024, bias=True)\\n\",\n      \"    (2): ReLU()\\n\",\n      \"    (3): Dropout(p=0.5, inplace=False)\\n\",\n      \"    (4): Linear(in_features=1024, out_features=512, bias=True)\\n\",\n      \"    (5): ReLU()\\n\",\n      \"    (6): Dropout(p=0.5, inplace=False)\\n\",\n      \"    (7): Linear(in_features=512, out_features=11, bias=True)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import torch\\n\",\n    \"import numpy as np\\n\",\n    \"from sklearn.manifold import TSNE\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import matplotlib.cm as cm\\n\",\n    \"import torch.nn as nn\\n\",\n    \"\\n\",\n    \"device = 'cuda' if torch.cuda.is_available() else 'cpu'\\n\",\n    \"\\n\",\n    \"# Load the trained model\\n\",\n    \"model = Classifier().to(device)\\n\",\n    \"state_dict = torch.load(f\\\"models/{_exp_name}_Classifier_fold1_best.ckpt\\\")\\n\",\n    \"model.load_state_dict(state_dict)\\n\",\n    \"model.eval()\\n\",\n    \"\\n\",\n    \"print(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:28.573267Z\",\n     \"start_time\": \"2023-04-19T03:33:28.573262Z\"\n    },\n    \"id\": \"QcBKUNfc3BeL\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|█████████████████████████████████████████████████████████████████████| 57/57 [00:11<00:00,  4.92it/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 1000x800 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Load the vaildation set defined by TA\\n\",\n    \"valid_set = FoodDataset(\\\"./valid\\\", tfm=test_tfm)\\n\",\n    \"valid_loader = DataLoader(valid_set, batch_size=64, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n    \"\\n\",\n    \"# Extract the representations for the specific layer of model\\n\",\n    \"index = 19 # You should find out the index of layer which is defined as \\\"top\\\" or 'mid' layer of your model.\\n\",\n    \"features = []\\n\",\n    \"labels = []\\n\",\n    \"for batch in tqdm(valid_loader):\\n\",\n    \"    imgs, lbls = batch\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        logits = model.cnn[:index](imgs.to(device))\\n\",\n    \"        logits = logits.view(logits.size()[0], -1)\\n\",\n    \"    labels.extend(lbls.cpu().numpy())\\n\",\n    \"    logits = np.squeeze(logits.cpu().numpy())\\n\",\n    \"    features.extend(logits)\\n\",\n    \"    \\n\",\n    \"features = np.array(features)\\n\",\n    \"colors_per_class = cm.rainbow(np.linspace(0, 1, 11))\\n\",\n    \"\\n\",\n    \"# Apply t-SNE to the features\\n\",\n    \"features_tsne = TSNE(n_components=2, init='pca', random_state=42).fit_transform(features)\\n\",\n    \"\\n\",\n    \"# Plot the t-SNE visualization\\n\",\n    \"plt.figure(figsize=(10, 8))\\n\",\n    \"for label in np.unique(labels):\\n\",\n    \"    plt.scatter(features_tsne[labels == label, 0], features_tsne[labels == label, 1], label=label, s=5)\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rw2y9Uhw7wr2\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"# Dataloader for test\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:28.569624Z\",\n     \"start_time\": \"2023-04-19T03:33:28.569619Z\"\n    },\n    \"id\": \"B9QNdHIXVaVP\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # Construct test datasets.\\n\",\n    \"# # The argument \\\"loader\\\" tells how torchvision reads the data.\\n\",\n    \"# test_set = FoodDataset(\\\"./test\\\", tfm=test_tfm)\\n\",\n    \"# test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## TTA Dataloaders\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## TTA\\n\",\n    \"This code follows the same format as the sample code\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T03:33:28.571408Z\",\n     \"start_time\": \"2023-04-19T03:33:28.571403Z\"\n    }\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# --\\n\",\n    \"# # The number of classifiers to use, k is initialized by K-fold section\\n\",\n    \"# num_models = k\\n\",\n    \"# # Create a list of num_models models\\n\",\n    \"# models = [Classifier] * num_models\\n\",\n    \"# # Create an empty list to store the best model for each fold\\n\",\n    \"# base_models = []\\n\",\n    \"# # Load the best model for each fold\\n\",\n    \"# for i in range(num_models):\\n\",\n    \"#     # Create a model instance and move it to the device (GPU or CPU)\\n\",\n    \"#     model_best_i = models[i]().to(device)\\n\",\n    \"#     # Load the state dictionary of the best model for this fold from a checkpoint file\\n\",\n    \"#     model_best_i.load_state_dict(torch.load(f\\\"{_exp_name}_fold{i+1}_{models[i].__name__}_300_best.ckpt\\\"))\\n\",\n    \"#     # Append the model to the base_models list\\n\",\n    \"#     base_models.append(model_best_i)\\n\",\n    \"# # Create an ensemble model that combines the base models and move it to the device\\n\",\n    \"# model_best = EnsembleModel(base_models=base_models).to(device)\\n\",\n    \"\\n\",\n    \"# # Set the model to evaluation mode\\n\",\n    \"# model_best.eval()\\n\",\n    \"\\n\",\n    \"# with torch.no_grad():\\n\",\n    \"#     # Get the prediction without test-time augmentation (TTA)\\n\",\n    \"#     # Input the data from the test dataset to the ensemble model, and concatenate the prediction results\\n\",\n    \"#     prediction = torch.cat([model_best(data.to(device)) for data, _ in tqdm(test_loader)], dim=0)\\n\",\n    \"#     # Get the prediction with TTA, loop through each TTA method\\n\",\n    \"#     # Input the data from the test dataset to the ensemble model, and concatenate the prediction results, and stack them on the first dimension\\n\",\n    \"#     tta_predictions = torch.stack([\\n\",\n    \"#         torch.cat([model_best(data.to(device)) for data, _ in tqdm(tta_test_loaders[tta])], dim=0) for tta in range(num_tta)\\n\",\n    \"#     ],\\n\",\n    \"#                                   dim=0) \\n\",\n    \"\\n\",\n    \"# # Sum up the TTA predictions\\n\",\n    \"# total_tta_predictions = torch.sum(tta_predictions, dim=0)\\n\",\n    \"# # Average the TTA predictions\\n\",\n    \"# avg_tta_predictions = torch.mean(tta_predictions, dim=0) \\n\",\n    \"\\n\",\n    \"# # Get the weighted average of prediction and TTA prediction\\n\",\n    \"# prediction = torch.add(torch.mul(prediction, 0.8), torch.mul(avg_tta_predictions, 0.2))\\n\",\n    \"# # Get the predicted labels\\n\",\n    \"# prediction = torch.argmax(prediction, dim=1).cpu() \"\n   ]\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"DL\",\n   \"language\": \"python\",\n   \"name\": \"dl\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"toc\": {\n   \"base_numbering\": 1,\n   \"nav_menu\": {\n    \"height\": \"329px\",\n    \"width\": \"242px\"\n   },\n   \"number_sections\": true,\n   \"sideBar\": true,\n   \"skip_h1_title\": false,\n   \"title_cell\": \"Table of Contents\",\n   \"title_sidebar\": \"Contents\",\n   \"toc_cell\": false,\n   \"toc_position\": {\n    \"height\": \"calc(100% - 180px)\",\n    \"left\": \"10px\",\n    \"top\": \"150px\",\n    \"width\": \"364.59375px\"\n   },\n   \"toc_section_display\": true,\n   \"toc_window_display\": false\n  },\n  \"toc-autonumbering\": true,\n  \"toc-showcode\": false,\n  \"varInspector\": {\n   \"cols\": {\n    \"lenName\": 16,\n    \"lenType\": 16,\n    \"lenVar\": 40\n   },\n   \"kernels_config\": {\n    \"python\": {\n     \"delete_cmd_postfix\": \"\",\n     \"delete_cmd_prefix\": \"del \",\n     \"library\": \"var_list.py\",\n     \"varRefreshCmd\": \"print(var_dic_list())\"\n    },\n    \"r\": {\n     \"delete_cmd_postfix\": \") \",\n     \"delete_cmd_prefix\": \"rm(\",\n     \"library\": \"var_list.r\",\n     \"varRefreshCmd\": \"cat(var_dic_list()) \"\n    }\n   },\n   \"position\": {\n    \"height\": \"304px\",\n    \"left\": \"722px\",\n    \"right\": \"20px\",\n    \"top\": \"-14px\",\n    \"width\": \"383px\"\n   },\n   \"types_to_exclude\": [\n    \"module\",\n    \"function\",\n    \"builtin_function_or_method\",\n    \"instance\",\n    \"_Feature\"\n   ],\n   \"window_display\": false\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW03/HW03_Medium_0.70533.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T04:19:05.178035Z\",\n     \"start_time\": \"2023-04-19T04:19:05.172911Z\"\n    }\n   },\n   \"source\": [\n    \"# Medium Baseline\\n\",\n    \"You can search for the “Medium” tag to check for changes (Ctrl + F or Command + F)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"jRDuJsGCgxCO\"\n   },\n   \"source\": [\n    \"# HW3 Image Classification\\n\",\n    \"## We strongly recommend that you run with [Kaggle](https://www.kaggle.com/t/86ca241732c04da99aca6490080bae73) for this homework\\n\",\n    \"\\n\",\n    \"If you have any questions, please contact the TAs via TA hours, NTU COOL, or email to mlta-2023-spring@googlegroups.com\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"K9Vxu1iQwdIE\"\n   },\n   \"source\": [\n    \"# Check GPU Type\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:48.881086Z\",\n     \"start_time\": \"2023-04-19T06:29:48.757049Z\"\n    },\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"KKjf6sZcwb_A\",\n    \"outputId\": \"605652be-d5bf-48a2-8218-57b33b6f7790\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thu May 25 10:37:02 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   32C    P8    21W / 170W |    293MiB / 12288MiB |      0%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1170      G   /usr/lib/xorg/Xorg                233MiB |\\n\",\n      \"|    0   N/A  N/A      1474      G   /usr/bin/gnome-shell               31MiB |\\n\",\n      \"|    0   N/A  N/A      1722      G   ...nlogin/bin/sunloginclient        6MiB |\\n\",\n      \"|    0   N/A  N/A      8998      G   ...2gtk-4.0/WebKitWebProcess       19MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"EVgrPb3HhJUT\"\n   },\n   \"source\": [\n    \"# Get Data\\n\",\n    \"Notes: if the links are dead, you can download the data directly from Kaggle and upload it to the workspace, or you can use the Kaggle API to directly download the data into colab.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:48.894698Z\",\n     \"start_time\": \"2023-04-19T06:29:48.889221Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"EAO6dg9eVaU_\",\n    \"outputId\": \"5a20fe0a-ab0f-40e8-82d7-5cb1dea91d92\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Download Link\\n\",\n    \"# Link 1 (Dropbox): https://www.dropbox.com/s/up5q1gthsz3v0dq/food-11.zip?dl=0\\n\",\n    \"# Link 2 (Google Drive): https://drive.google.com/file/d/1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9/view?usp=share_link\\n\",\n    \"# Link 3: Kaggle Competition.\\n\",\n    \"\\n\",\n    \"# (1) dropbox link\\n\",\n    \"# !wget -O food11.zip https://www.dropbox.com/s/up5q1gthsz3v0dq/food-11.zip?dl=0\\n\",\n    \"\\n\",\n    \"# (2) google drive link\\n\",\n    \"# !pip install gdown --upgrade\\n\",\n    \"# !gdown --id '1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9' --output food11.zip\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:48.904501Z\",\n     \"start_time\": \"2023-04-19T06:29:48.895892Z\"\n    },\n    \"colab\": {\n     \"background_save\": true,\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"HEsBm1lkhGmk\",\n    \"outputId\": \"9612ed4d-d67d-46d3-f992-b1fd623c1090\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# ! unzip food11.zip\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n5ceUnRihL-f\"\n   },\n   \"source\": [\n    \"# Import Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:48.913435Z\",\n     \"start_time\": \"2023-04-19T06:29:48.908375Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"ay3WkYnHVaVE\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Define your log filename\\n\",\n    \"_exp_name = \\\"sample\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:49.599531Z\",\n     \"start_time\": \"2023-04-19T06:29:48.916823Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"CwOGtRWHVaVF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Import necessary packages.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import torch\\n\",\n    \"import os\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torchvision.transforms as transforms\\n\",\n    \"from PIL import Image\\n\",\n    \"# \\\"ConcatDataset\\\" and \\\"Subset\\\" are possibly useful when doing semi-supervised learning.\\n\",\n    \"from torch.utils.data import ConcatDataset, DataLoader, Subset, Dataset\\n\",\n    \"from torchvision.datasets import DatasetFolder, VisionDataset\\n\",\n    \"# Pretrained model\\n\",\n    \"from torchvision.models import resnet34, resnet50, vgg16, densenet121, alexnet, squeezenet1_0\\n\",\n    \"# This is for the progress bar.\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"import random\\n\",\n    \"# For plotting learning curve\\n\",\n    \"from torch.utils.tensorboard import SummaryWriter\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:49.625216Z\",\n     \"start_time\": \"2023-04-19T06:29:49.600519Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"8kJm9GekVaVH\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"myseed = 3407  # set a random seed for reproducibility\\n\",\n    \"torch.backends.cudnn.deterministic = True\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"np.random.seed(myseed)\\n\",\n    \"torch.manual_seed(myseed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed_all(myseed)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"d9MVtgbSVaVH\"\n   },\n   \"source\": [\n    \"# Transforms (Medium)\\n\",\n    \"Torchvision provides lots of useful utilities for image preprocessing, data *wrapping* as well as data augmentation.\\n\",\n    \"\\n\",\n    \"Please refer to PyTorch official website for details about different transforms.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:49.634271Z\",\n     \"start_time\": \"2023-04-19T06:29:49.626154Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"hidden\": true,\n    \"id\": \"jvI3Xmq4VaVJ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Normally, We don't need augmentations in testing and validation.\\n\",\n    \"# All we need here is to resize the PIL image and transform it into Tensor.\\n\",\n    \"test_tfm = transforms.Compose([\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\\n\",\n    \"\\n\",\n    \"# However, it is also possible to use augmentation in the testing phase.\\n\",\n    \"# You may use train_tfm to produce a variety of images and then test using ensemble methods\\n\",\n    \"\\n\",\n    \"train_tfm = transforms.Compose([\\n\",\n    \"    # Resize the image into a fixed shape (height = width = 128)\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    # You may add some transforms here.\\n\",\n    \"    \\n\",\n    \"    transforms.RandomChoice(transforms=[\\n\",\n    \"        # Apply TrivialAugmentWide data augmentation method\\n\",\n    \"        transforms.TrivialAugmentWide(),\\n\",\n    \"\\n\",\n    \"        # Return original image\\n\",\n    \"        transforms.Lambda(lambda x: x),\\n\",\n    \"    ],\\n\",\n    \"                            p=[0.95, 0.1]),\\n\",\n    \"\\n\",\n    \"    # ToTensor() should be the last one of the transfo·rms.\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Q1. Augmentation Implementation Visualization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:50.037611Z\",\n     \"start_time\": \"2023-04-19T06:29:49.636528Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 6 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# I want to show you an example code of Q1. Augmentation Implementation that visualizes the effects of different image transformations.\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"plt.rcParams[\\\"savefig.bbox\\\"] = 'tight'\\n\",\n    \"\\n\",\n    \"# You can change the file path to match your image\\n\",\n    \"orig_img = Image.open('Q1/assets/astronaut.jpg')\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def plot(imgs, with_orig=True, row_title=None, **imshow_kwargs):\\n\",\n    \"    if not isinstance(imgs[0], list):\\n\",\n    \"        # Make a 2d grid even if there's just 1 row\\n\",\n    \"        imgs = [imgs]\\n\",\n    \"\\n\",\n    \"    num_rows = len(imgs)\\n\",\n    \"    num_cols = len(imgs[0]) + with_orig\\n\",\n    \"    fig, axs = plt.subplots(nrows=num_rows, ncols=num_cols, squeeze=False)\\n\",\n    \"    for row_idx, row in enumerate(imgs):\\n\",\n    \"        row = [orig_img] + row if with_orig else row\\n\",\n    \"        for col_idx, img in enumerate(row):\\n\",\n    \"            ax = axs[row_idx, col_idx]\\n\",\n    \"            ax.imshow(np.asarray(img), **imshow_kwargs)\\n\",\n    \"            ax.set(xticklabels=[], yticklabels=[], xticks=[], yticks=[])\\n\",\n    \"\\n\",\n    \"    if with_orig:\\n\",\n    \"        axs[0, 0].set(title='Original image')\\n\",\n    \"        axs[0, 0].title.set_size(8)\\n\",\n    \"    if row_title is not None:\\n\",\n    \"        for row_idx in range(num_rows):\\n\",\n    \"            axs[row_idx, 0].set(ylabel=row_title[row_idx])\\n\",\n    \"\\n\",\n    \"    plt.tight_layout()\\n\",\n    \"\\n\",\n    \"# Create a list of five transformed images from the original image using the train_tfm function\\n\",\n    \"demo = [train_tfm(orig_img) for i in range(5)]\\n\",\n    \"\\n\",\n    \"# Convert the transformed images from tensors to PIL images\\n\",\n    \"pil_img_demo = [Image.fromarray(np.moveaxis(img.numpy()*255, 0, -1).astype(np.uint8)) for img in demo]\\n\",\n    \"\\n\",\n    \"# Plot the transformed images using the plot function\\n\",\n    \"plot(pil_img_demo) \"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"D0ivMf-jVaVK\"\n   },\n   \"source\": [\n    \"# Datasets\\n\",\n    \"The data is labelled by the name, so we load images and label while calling '__getitem__'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:50.041094Z\",\n     \"start_time\": \"2023-04-19T06:29:50.038409Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"hidden\": true,\n    \"id\": \"xBdtPhKwVaVL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class FoodDataset(Dataset):\\n\",\n    \"\\n\",\n    \"    def __init__(self,path,tfm=test_tfm,files = None):\\n\",\n    \"        super(FoodDataset).__init__()\\n\",\n    \"        self.path = path\\n\",\n    \"        self.files = sorted([os.path.join(path,x) for x in os.listdir(path) if x.endswith(\\\".jpg\\\")])\\n\",\n    \"        if files != None:\\n\",\n    \"            self.files = files\\n\",\n    \"            \\n\",\n    \"        self.transform = tfm\\n\",\n    \"  \\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.files)\\n\",\n    \"  \\n\",\n    \"    def __getitem__(self,idx):\\n\",\n    \"        fname = self.files[idx]\\n\",\n    \"        im = Image.open(fname)\\n\",\n    \"        im = self.transform(im)\\n\",\n    \"        \\n\",\n    \"        try:\\n\",\n    \"            label = int(fname.split(\\\"/\\\")[-1].split(\\\"_\\\")[0])\\n\",\n    \"        except:\\n\",\n    \"            label = -1 # test has no label\\n\",\n    \"            \\n\",\n    \"        return im,label\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZPFkDwug61PZ\"\n   },\n   \"source\": [\n    \"# Model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:50.050480Z\",\n     \"start_time\": \"2023-04-19T06:29:50.041809Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"b_kDECOJVaVL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Classifier(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(Classifier, self).__init__()\\n\",\n    \"        # torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)\\n\",\n    \"        # torch.nn.MaxPool2d(kernel_size, stride, padding)\\n\",\n    \"        # input 維度 [3, 128, 128]\\n\",\n    \"        self.cnn = nn.Sequential(\\n\",\n    \"            nn.Conv2d(3, 64, 3, 1, 1),  # [64, 128, 128]\\n\",\n    \"            nn.BatchNorm2d(64),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [64, 64, 64]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(64, 128, 3, 1, 1), # [128, 64, 64]\\n\",\n    \"            nn.BatchNorm2d(128),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [128, 32, 32]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(128, 256, 3, 1, 1), # [256, 32, 32]\\n\",\n    \"            nn.BatchNorm2d(256),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [256, 16, 16]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(256, 512, 3, 1, 1), # [512, 16, 16]\\n\",\n    \"            nn.BatchNorm2d(512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),       # [512, 8, 8]\\n\",\n    \"            \\n\",\n    \"            nn.Conv2d(512, 512, 3, 1, 1), # [512, 8, 8]\\n\",\n    \"            nn.BatchNorm2d(512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),       # [512, 4, 4]\\n\",\n    \"        )\\n\",\n    \"        self.fc = nn.Sequential(\\n\",\n    \"            nn.Linear(512*4*4, 1024),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Linear(1024, 512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Linear(512, 11)\\n\",\n    \"        )\\n\",\n    \"        \\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        out = self.cnn(x)\\n\",\n    \"        out = out.view(out.size()[0], -1)\\n\",\n    \"        return self.fc(out)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xgnIOaID687b\"\n   },\n   \"source\": [\n    \"# Configurations (Medium)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:50.784421Z\",\n     \"start_time\": \"2023-04-19T06:29:50.051318Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"2_OeWtstVaVO\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# \\\"cuda\\\" only when GPUs are available.\\n\",\n    \"# If you use apple chip (mac), you can change \\\"cpu\\\" to \\\"mps\\\"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# Initialize a model, and put it on the device specified.\\n\",\n    \"\\n\",\n    \"model = Classifier().to(device)\\n\",\n    \"\\n\",\n    \"Resume = False\\n\",\n    \"if Resume:\\n\",\n    \"    model.load_state_dict(torch.load(f\\\"{_exp_name}_best.ckpt\\\", map_location='cuda'))\\n\",\n    \"\\n\",\n    \"# The number of batch size.\\n\",\n    \"batch_size = 64\\n\",\n    \"\\n\",\n    \"# The number of training epochs.\\n\",\n    \"n_epochs = 24\\n\",\n    \"\\n\",\n    \"# If no improvement in 'patience' epochs, early stop.\\n\",\n    \"patience = 10\\n\",\n    \"\\n\",\n    \"# For the classification task, we use cross-entropy as the measurement of performance.\\n\",\n    \"criterion = nn.CrossEntropyLoss()\\n\",\n    \"\\n\",\n    \"# Initialize optimizer, you may fine-tune some hyperparameters such as learning rate on your own.\\n\",\n    \"optimizer = torch.optim.Adam(model.parameters(), lr=3e-4, weight_decay=1e-5) # 3e-4\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zPGwvvPK7F7u\"\n   },\n   \"source\": [\n    \"# Dataloader\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:29:50.797569Z\",\n     \"start_time\": \"2023-04-19T06:29:50.785190Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"zvZXRH2phItl\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # Construct train and valid datasets.\\n\",\n    \"# # The argument \\\"loader\\\" tells how torchvision reads the data.\\n\",\n    \"train_set = FoodDataset(\\\"./train\\\", tfm=train_tfm)\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)\\n\",\n    \"valid_set = FoodDataset(\\\"./valid\\\", tfm=test_tfm)\\n\",\n    \"valid_loader = DataLoader(valid_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UPQ0j1c17BG1\"\n   },\n   \"source\": [\n    \"# Start Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:52:11.813005Z\",\n     \"start_time\": \"2023-04-19T06:29:50.798505Z\"\n    },\n    \"id\": \"zbVkfIFhVaVO\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"78a5f80e1265434791b1d7bd1fedfa1f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 001/024 ] loss = 2.03769, acc = 0.28414\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"490f827990864b2fa56bec22493552cf\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 001/024 ] loss = 1.87093, acc = 0.34750 -> best\\n\",\n      \"Best model found at epoch 0, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2303e57a1d964e35a250eed4d5850263\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 002/024 ] loss = 1.80039, acc = 0.37261\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3386a8def72445fba229512b9a4a283d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 002/024 ] loss = 2.08574, acc = 0.32318\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"331bf3695d724842994ccf2fdde03d88\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 003/024 ] loss = 1.64297, acc = 0.43422\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4d3e228b11bc44cea462bd0fab394439\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 003/024 ] loss = 1.57740, acc = 0.46232 -> best\\n\",\n      \"Best model found at epoch 2, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"890a1bffd2bc4d6fb474196c3d457ffa\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 004/024 ] loss = 1.51926, acc = 0.47323\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7a7b4eff32a04d17960967ff3f640578\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 004/024 ] loss = 1.50311, acc = 0.49065 -> best\\n\",\n      \"Best model found at epoch 3, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"18603df224ca4aa4915c123372eb8ab6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 005/024 ] loss = 1.41421, acc = 0.51135\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ff1fff25ba4845adb39d7b323e0921ae\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 005/024 ] loss = 1.78227, acc = 0.42051\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"baf5e5ac6ee444168845478cf9e4dff0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 006/024 ] loss = 1.33130, acc = 0.54051\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"99f50c59b9264fb99ce935ef4ac01441\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 006/024 ] loss = 1.37301, acc = 0.53476 -> best\\n\",\n      \"Best model found at epoch 5, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6f37922f55784347b9bc0c679638a485\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 007/024 ] loss = 1.27142, acc = 0.56280\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"66f0081bb8d24400986e4f6575fe5f8a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 007/024 ] loss = 1.56306, acc = 0.50919\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7c4d5bb89a854d6e9fd94c8f9141400c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 008/024 ] loss = 1.17955, acc = 0.59554\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8b9237f88023421591b4752ff8c2d6e6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 008/024 ] loss = 1.57935, acc = 0.47518\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"57458554e5a64443a1f2e397d8b68de9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 009/024 ] loss = 1.13650, acc = 0.61296\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e3410a11a23644329a0a2eafc90cf0b6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 009/024 ] loss = 1.24741, acc = 0.58261 -> best\\n\",\n      \"Best model found at epoch 8, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cae14e8ca60644d79b794e0cacf6ca85\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 010/024 ] loss = 1.05494, acc = 0.63635\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"24a5cf2e2c2246ee825d99ff208acb70\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 010/024 ] loss = 1.14136, acc = 0.61418 -> best\\n\",\n      \"Best model found at epoch 9, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fdab95ec331843d18083768ee0fa1058\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 011/024 ] loss = 1.01457, acc = 0.65426\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1460e119077e46ab8d592693c9a612aa\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 011/024 ] loss = 1.13627, acc = 0.61693 -> best\\n\",\n      \"Best model found at epoch 10, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1387ab05310f46cd9b4b314aca7b0d75\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 012/024 ] loss = 0.97366, acc = 0.66979\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ca9d90b45740429c9752b4b35ae3b0bc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 012/024 ] loss = 1.40956, acc = 0.55756\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a32a9ab146fc42569ed25e549b4192f8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 013/024 ] loss = 0.92291, acc = 0.68133\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cabca9e0229d4bbdb5b2f4891fe6abb1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 013/024 ] loss = 1.28733, acc = 0.58954\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b074b155577a43b78e66b38b01cd1095\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 014/024 ] loss = 0.88282, acc = 0.69307\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f985449796974761991ab0c325839dc5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 014/024 ] loss = 0.97992, acc = 0.67166 -> best\\n\",\n      \"Best model found at epoch 13, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"87203088cd3f4f899a82ac4230460b92\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 015/024 ] loss = 0.82740, acc = 0.71706\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e7ed0cf5253845ba98a5b865d6fb8c30\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 015/024 ] loss = 1.08841, acc = 0.64761\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5a739429182b400a8497b16996b9147e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 016/024 ] loss = 0.81145, acc = 0.72452\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a37d86e6f390444dbcc722b3ee95df12\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 016/024 ] loss = 1.10604, acc = 0.64176\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"611a39b9734840468c58bf706e014f39\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 017/024 ] loss = 0.74927, acc = 0.74492\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6b269256b41d4273a89c46fd841012be\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 017/024 ] loss = 1.13834, acc = 0.64660\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6433f8a282ff4993a3dfd38233d49cc4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 018/024 ] loss = 0.70918, acc = 0.76085\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"eb4c73cfcef64029972b48cbfbe3a6fe\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 018/024 ] loss = 1.06464, acc = 0.66243\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6a0ef2044ae5430a954f99ecc8096302\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 019/024 ] loss = 0.70004, acc = 0.76403\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d03ef9a2b3994e4797e412ea5574d1c6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 019/024 ] loss = 1.03563, acc = 0.68793 -> best\\n\",\n      \"Best model found at epoch 18, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"70cdb5c6afc8442ebbbddcf7a86bc04d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 020/024 ] loss = 0.66501, acc = 0.77379\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7254f76035b641b491c4e7a31a3412f1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 020/024 ] loss = 1.12440, acc = 0.66655\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e4635fa88fed4e43a5c9c80819569c33\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 021/024 ] loss = 0.64045, acc = 0.78493\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"893890ca15804f5abbadf35faeadc68a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 021/024 ] loss = 1.29516, acc = 0.62255\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ddd14693f9df4257a64bf2c4badf3bfa\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 022/024 ] loss = 0.58406, acc = 0.79867\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a8ab8709a1bd4747aad89c1bd6ed11d1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 022/024 ] loss = 1.03098, acc = 0.69302 -> best\\n\",\n      \"Best model found at epoch 21, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e344e5d9905947cfad73b63c752f6847\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 023/024 ] loss = 0.57086, acc = 0.81260\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"572afc3ad1594cfe80ca247054999c4c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 023/024 ] loss = 1.02793, acc = 0.69590 -> best\\n\",\n      \"Best model found at epoch 22, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c84b177432164de98cab109a442d8166\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 024/024 ] loss = 0.56037, acc = 0.80991\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9a8941b109ab41f9a0a824acbb928c53\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 024/024 ] loss = 1.21833, acc = 0.66942\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Create a SummaryWriter object to write data to TensorBoard and the results are stored in ./runs folder\\n\",\n    \"writer = SummaryWriter()\\n\",\n    \"\\n\",\n    \"# Initialize trackers, these are not parameters and should not be changed\\n\",\n    \"stale = 0\\n\",\n    \"best_acc = 0\\n\",\n    \"\\n\",\n    \"for epoch in range(n_epochs):\\n\",\n    \"\\n\",\n    \"    # ---------- Training ----------\\n\",\n    \"    # Make sure the model is in train mode before training.\\n\",\n    \"    model.train()\\n\",\n    \"\\n\",\n    \"    # These are used to record information in training.\\n\",\n    \"    train_loss = []\\n\",\n    \"    train_accs = []\\n\",\n    \"\\n\",\n    \"    for batch in tqdm(train_loader):\\n\",\n    \"\\n\",\n    \"        # A batch consists of image data and corresponding labels.\\n\",\n    \"        imgs, labels = batch\\n\",\n    \"        \\n\",\n    \"        #imgs = imgs.half()  # image.dtype: torch.float32 => torch.float16\\n\",\n    \"        #print(imgs.dtype)\\n\",\n    \"        #print(imgs.shape,labels.shape)\\n\",\n    \"\\n\",\n    \"        # Forward the data. (Make sure data and model are on the same device.)\\n\",\n    \"        logits = model(imgs.to(device))\\n\",\n    \"\\n\",\n    \"        # Calculate the cross-entropy loss.\\n\",\n    \"        # We don't need to apply softmax before computing cross-entropy as it is done automatically.\\n\",\n    \"        loss = criterion(logits, labels.to(device))\\n\",\n    \"\\n\",\n    \"        # Gradients stored in the parameters in the previous step should be cleared out first.\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        # Compute the gradients for parameters.\\n\",\n    \"        loss.backward()\\n\",\n    \"\\n\",\n    \"        # Clip the gradient norms for stable training.\\n\",\n    \"        grad_norm = nn.utils.clip_grad_norm_(model.parameters(), max_norm=10)\\n\",\n    \"\\n\",\n    \"        # Update the parameters with computed gradients.\\n\",\n    \"        optimizer.step()\\n\",\n    \"\\n\",\n    \"        # Compute the accuracy for current batch.\\n\",\n    \"        acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n    \"\\n\",\n    \"        # Record the loss and accuracy.\\n\",\n    \"        train_loss.append(loss.item())\\n\",\n    \"        train_accs.append(acc)\\n\",\n    \"        \\n\",\n    \"    train_loss = sum(train_loss) / len(train_loss)\\n\",\n    \"    train_acc = sum(train_accs) / len(train_accs)\\n\",\n    \"\\n\",\n    \"    # Print the information.\\n\",\n    \"    print(f\\\"[ Train | {epoch + 1:03d}/{n_epochs:03d} ] loss = {train_loss:.5f}, acc = {train_acc:.5f}\\\")\\n\",\n    \"\\n\",\n    \"    # ---------- Validation ----------\\n\",\n    \"    # Make sure the model is in eval mode so that some modules like dropout are disabled and work normally.\\n\",\n    \"    model.eval()\\n\",\n    \"\\n\",\n    \"    # These are used to record information in validation.\\n\",\n    \"    valid_loss = []\\n\",\n    \"    valid_accs = []\\n\",\n    \"\\n\",\n    \"    # Iterate the validation set by batches.\\n\",\n    \"    for batch in tqdm(valid_loader):\\n\",\n    \"\\n\",\n    \"        # A batch consists of image data and corresponding labels.\\n\",\n    \"        imgs, labels = batch\\n\",\n    \"        #imgs = imgs.half()\\n\",\n    \"\\n\",\n    \"        # We don't need gradient in validation.\\n\",\n    \"        # Using torch.no_grad() accelerates the forward process.\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            logits = model(imgs.to(device))\\n\",\n    \"\\n\",\n    \"        # We can still compute the loss (but not the gradient).\\n\",\n    \"        loss = criterion(logits, labels.to(device))\\n\",\n    \"\\n\",\n    \"        # Compute the accuracy for current batch.\\n\",\n    \"        acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n    \"\\n\",\n    \"        # Record the loss and accuracy.\\n\",\n    \"        valid_loss.append(loss.item())\\n\",\n    \"        valid_accs.append(acc)\\n\",\n    \"        #break\\n\",\n    \"\\n\",\n    \"    # The average loss and accuracy for entire validation set is the average of the recorded values.\\n\",\n    \"    valid_loss = sum(valid_loss) / len(valid_loss)\\n\",\n    \"    valid_acc = sum(valid_accs) / len(valid_accs)\\n\",\n    \"\\n\",\n    \"    # Print the information.\\n\",\n    \"    #print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f}\\\")\\n\",\n    \"\\n\",\n    \"    writer.add_scalar('Acc/train', train_acc, epoch)\\n\",\n    \"    writer.add_scalar('Acc/valid', valid_acc, epoch)\\n\",\n    \"    writer.add_scalar('lr', optimizer.state_dict()['param_groups'][0]['lr'], epoch)\\n\",\n    \"\\n\",\n    \"    # Update logs\\n\",\n    \"    if valid_acc > best_acc:\\n\",\n    \"        with open(f\\\"./{_exp_name}_log.txt\\\",\\\"a\\\"):\\n\",\n    \"            print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f} -> best\\\")\\n\",\n    \"    else:\\n\",\n    \"        with open(f\\\"./{_exp_name}_log.txt\\\",\\\"a\\\"):\\n\",\n    \"            print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f}\\\")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"    # Save models\\n\",\n    \"    if valid_acc > best_acc:\\n\",\n    \"        print(f\\\"Best model found at epoch {epoch}, saving model\\\")\\n\",\n    \"        torch.save(model.state_dict(), f\\\"{_exp_name}_best.ckpt\\\") # only save best to prevent output memory exceed error\\n\",\n    \"        best_acc = valid_acc\\n\",\n    \"        stale = 0\\n\",\n    \"    else:\\n\",\n    \"        stale += 1\\n\",\n    \"        if stale > patience:\\n\",\n    \"            print(f\\\"No improvment {patience} consecutive epochs, early stopping\\\")\\n\",\n    \"            break\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Tensorboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:52:11.815430Z\",\n     \"start_time\": \"2023-04-19T06:52:11.813899Z\"\n    }\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# %reload_ext tensorboard\\n\",\n    \"# %tensorboard --logdir=./runs/\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rw2y9Uhw7wr2\"\n   },\n   \"source\": [\n    \"# Dataloader for test\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:52:11.821120Z\",\n     \"start_time\": \"2023-04-19T06:52:11.817051Z\"\n    },\n    \"id\": \"B9QNdHIXVaVP\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Construct test datasets.\\n\",\n    \"# The argument \\\"loader\\\" tells how torchvision reads the data.\\n\",\n    \"test_set = FoodDataset(\\\"./test\\\", tfm=test_tfm)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"G31uyjpvVaVP\"\n   },\n   \"source\": [\n    \"# Testing and generate prediction CSV\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:52:21.817225Z\",\n     \"start_time\": \"2023-04-19T06:52:11.821782Z\"\n    },\n    \"id\": \"bpLtxx5FVaVP\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c1ed2fe17f3b4b569457cb7323cb833f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"model_best = Classifier().to(device)\\n\",\n    \"model_best.load_state_dict(torch.load(f\\\"{_exp_name}_best.ckpt\\\"))\\n\",\n    \"\\n\",\n    \"model_best.eval()\\n\",\n    \"prediction = []\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for data,_ in tqdm(test_loader):\\n\",\n    \"        test_pred = model_best(data.to(device))\\n\",\n    \"        test_label = np.argmax(test_pred.cpu().data.numpy(), axis=1)\\n\",\n    \"        prediction += test_label.squeeze().tolist()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:52:21.824426Z\",\n     \"start_time\": \"2023-04-19T06:52:21.818121Z\"\n    },\n    \"id\": \"fKupB3VUVaVQ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create test csv\\n\",\n    \"def pad4(i):\\n\",\n    \"    return \\\"0\\\"*(4-len(str(i)))+str(i)\\n\",\n    \"df = pd.DataFrame()\\n\",\n    \"df[\\\"Id\\\"] = [pad4(i) for i in range(len(test_set))]\\n\",\n    \"df[\\\"Category\\\"] = prediction\\n\",\n    \"df.to_csv(\\\"submission.csv\\\",index = False)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ivk0hrE-V8Cu\"\n   },\n   \"source\": [\n    \"# Q1. Augmentation Implementation\\n\",\n    \"## Implement augmentation by finishing train_tfm in the code with image size of your choice. \\n\",\n    \"## Directly copy the following block and paste it on GradeScope after you finish the code\\n\",\n    \"### Your train_tfm must be capable of producing 5+ different results when given an identical image multiple times.\\n\",\n    \"### Your  train_tfm in the report can be different from train_tfm in your training code.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:52:21.826755Z\",\n     \"start_time\": \"2023-04-19T06:52:21.825190Z\"\n    },\n    \"id\": \"GSfKNo42WjKm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"train_tfm = transforms.Compose([\\n\",\n    \"    # Resize the image into a fixed shape (height = width = 128)\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    # You can add some transforms here.\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3HemRgZ6WwRM\"\n   },\n   \"source\": [\n    \"# Q2. Visual Representations Implementation\\n\",\n    \"## Visualize the learned visual representations of the CNN model on the validation set by implementing t-SNE (t-distributed Stochastic Neighbor Embedding) on the output of both top & mid layers (You need to submit 2 images). \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:52:22.055485Z\",\n     \"start_time\": \"2023-04-19T06:52:21.827500Z\"\n    },\n    \"id\": \"iXd_SZnB2Wg8\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Classifier(\\n\",\n      \"  (cnn): Sequential(\\n\",\n      \"    (0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (2): ReLU()\\n\",\n      \"    (3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (4): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (5): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (6): ReLU()\\n\",\n      \"    (7): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (8): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (9): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (10): ReLU()\\n\",\n      \"    (11): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (12): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (13): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (14): ReLU()\\n\",\n      \"    (15): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (16): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (17): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (18): ReLU()\\n\",\n      \"    (19): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"  )\\n\",\n      \"  (fc): Sequential(\\n\",\n      \"    (0): Linear(in_features=8192, out_features=1024, bias=True)\\n\",\n      \"    (1): ReLU()\\n\",\n      \"    (2): Linear(in_features=1024, out_features=512, bias=True)\\n\",\n      \"    (3): ReLU()\\n\",\n      \"    (4): Linear(in_features=512, out_features=11, bias=True)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import torch\\n\",\n    \"import numpy as np\\n\",\n    \"from sklearn.manifold import TSNE\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import matplotlib.cm as cm\\n\",\n    \"import torch.nn as nn\\n\",\n    \"\\n\",\n    \"device = 'cuda' if torch.cuda.is_available() else 'cpu'\\n\",\n    \"\\n\",\n    \"# Load the trained model\\n\",\n    \"model = Classifier().to(device)\\n\",\n    \"state_dict = torch.load(f\\\"{_exp_name}_best.ckpt\\\")\\n\",\n    \"model.load_state_dict(state_dict)\\n\",\n    \"model.eval()\\n\",\n    \"\\n\",\n    \"print(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T06:57:17.494994Z\",\n     \"start_time\": \"2023-04-19T06:52:22.056345Z\"\n    },\n    \"id\": \"QcBKUNfc3BeL\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 57/57 [00:12<00:00,  4.50it/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 1000x800 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Load the vaildation set defined by TA\\n\",\n    \"valid_set = FoodDataset(\\\"./valid\\\", tfm=test_tfm)\\n\",\n    \"valid_loader = DataLoader(valid_set, batch_size=64, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n    \"\\n\",\n    \"# Extract the representations for the specific layer of model\\n\",\n    \"index = 5 # You should find out the index of layer which is defined as \\\"top\\\" or 'mid' layer of your model.\\n\",\n    \"features = []\\n\",\n    \"labels = []\\n\",\n    \"for batch in tqdm(valid_loader):\\n\",\n    \"    imgs, lbls = batch\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        logits = model.cnn[:index](imgs.to(device))\\n\",\n    \"        logits = logits.view(logits.size()[0], -1)\\n\",\n    \"    labels.extend(lbls.cpu().numpy())\\n\",\n    \"    logits = np.squeeze(logits.cpu().numpy())\\n\",\n    \"    features.extend(logits)\\n\",\n    \"    \\n\",\n    \"features = np.array(features)\\n\",\n    \"colors_per_class = cm.rainbow(np.linspace(0, 1, 11))\\n\",\n    \"\\n\",\n    \"# Apply t-SNE to the features\\n\",\n    \"features_tsne = TSNE(n_components=2, init='pca', random_state=42).fit_transform(features)\\n\",\n    \"\\n\",\n    \"# Plot the t-SNE visualization\\n\",\n    \"plt.figure(figsize=(10, 8))\\n\",\n    \"for label in np.unique(labels):\\n\",\n    \"    plt.scatter(features_tsne[labels == label, 0], features_tsne[labels == label, 1], label=label, s=5)\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"DL\",\n   \"language\": \"python\",\n   \"name\": \"dl\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"toc\": {\n   \"base_numbering\": 1,\n   \"nav_menu\": {\n    \"height\": \"329px\",\n    \"width\": \"242px\"\n   },\n   \"number_sections\": true,\n   \"sideBar\": true,\n   \"skip_h1_title\": false,\n   \"title_cell\": \"Table of Contents\",\n   \"title_sidebar\": \"Contents\",\n   \"toc_cell\": false,\n   \"toc_position\": {\n    \"height\": \"calc(100% - 180px)\",\n    \"left\": \"10px\",\n    \"top\": \"150px\",\n    \"width\": \"364.59375px\"\n   },\n   \"toc_section_display\": true,\n   \"toc_window_display\": false\n  },\n  \"varInspector\": {\n   \"cols\": {\n    \"lenName\": 16,\n    \"lenType\": 16,\n    \"lenVar\": 40\n   },\n   \"kernels_config\": {\n    \"python\": {\n     \"delete_cmd_postfix\": \"\",\n     \"delete_cmd_prefix\": \"del \",\n     \"library\": \"var_list.py\",\n     \"varRefreshCmd\": \"print(var_dic_list())\"\n    },\n    \"r\": {\n     \"delete_cmd_postfix\": \") \",\n     \"delete_cmd_prefix\": \"rm(\",\n     \"library\": \"var_list.r\",\n     \"varRefreshCmd\": \"cat(var_dic_list()) \"\n    }\n   },\n   \"position\": {\n    \"height\": \"304px\",\n    \"left\": \"722px\",\n    \"right\": \"20px\",\n    \"top\": \"-14px\",\n    \"width\": \"383px\"\n   },\n   \"types_to_exclude\": [\n    \"module\",\n    \"function\",\n    \"builtin_function_or_method\",\n    \"instance\",\n    \"_Feature\"\n   ],\n   \"window_display\": false\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 1\n}\n"
  },
  {
    "path": "HW03/HW03_Sample_Code.ipynb",
    "content": "{\n  \"cells\": [\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"jRDuJsGCgxCO\"\n      },\n      \"source\": [\n        \"# HW3 Image Classification\\n\",\n        \"## We strongly recommend that you run with [Kaggle](https://www.kaggle.com/t/86ca241732c04da99aca6490080bae73) for this homework\\n\",\n        \"\\n\",\n        \"If you have any questions, please contact the TAs via TA hours, NTU COOL, or email to mlta-2023-spring@googlegroups.com\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"K9Vxu1iQwdIE\"\n      },\n      \"source\": [\n        \"# Check GPU Type\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"KKjf6sZcwb_A\",\n        \"outputId\": \"605652be-d5bf-48a2-8218-57b33b6f7790\"\n      },\n      \"outputs\": [\n        {\n          \"name\": \"stdout\",\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Mon Mar 13 14:55:35 2023       \\n\",\n            \"+-----------------------------------------------------------------------------+\\n\",\n            \"| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0     |\\n\",\n            \"|-------------------------------+----------------------+----------------------+\\n\",\n            \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n            \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n            \"|                               |                      |               MIG M. |\\n\",\n            \"|===============================+======================+======================|\\n\",\n            \"|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |\\n\",\n            \"| N/A   66C    P0    31W /  70W |    625MiB / 15360MiB |      0%      Default |\\n\",\n            \"|                               |                      |                  N/A |\\n\",\n            \"+-------------------------------+----------------------+----------------------+\\n\",\n            \"                                                                               \\n\",\n            \"+-----------------------------------------------------------------------------+\\n\",\n            \"| Processes:                                                                  |\\n\",\n            \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n            \"|        ID   ID                                                   Usage      |\\n\",\n            \"|=============================================================================|\\n\",\n            \"+-----------------------------------------------------------------------------+\\n\"\n          ]\n        }\n      ],\n      \"source\": [\n        \"!nvidia-smi\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"EVgrPb3HhJUT\"\n      },\n      \"source\": [\n        \"# Get Data\\n\",\n        \"Notes: if the links are dead, you can download the data directly from Kaggle and upload it to the workspace, or you can use the Kaggle API to directly download the data into colab.\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"EAO6dg9eVaU_\",\n        \"outputId\": \"5a20fe0a-ab0f-40e8-82d7-5cb1dea91d92\"\n      },\n      \"outputs\": [\n        {\n          \"name\": \"stdout\",\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\\n\",\n            \"Requirement already satisfied: gdown in /usr/local/lib/python3.9/dist-packages (4.6.4)\\n\",\n            \"Requirement already satisfied: filelock in /usr/local/lib/python3.9/dist-packages (from gdown) (3.9.0)\\n\",\n            \"Requirement already satisfied: six in /usr/local/lib/python3.9/dist-packages (from gdown) (1.15.0)\\n\",\n            \"Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.9/dist-packages (from gdown) (4.6.3)\\n\",\n            \"Requirement already satisfied: requests[socks] in /usr/local/lib/python3.9/dist-packages (from gdown) (2.25.1)\\n\",\n            \"Requirement already satisfied: tqdm in /usr/local/lib/python3.9/dist-packages (from gdown) (4.65.0)\\n\",\n            \"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests[socks]->gdown) (1.26.14)\\n\",\n            \"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from requests[socks]->gdown) (2022.12.7)\\n\",\n            \"Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests[socks]->gdown) (2.10)\\n\",\n            \"Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.9/dist-packages (from requests[socks]->gdown) (4.0.0)\\n\",\n            \"Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.9/dist-packages (from requests[socks]->gdown) (1.7.1)\\n\",\n            \"/usr/local/lib/python3.9/dist-packages/gdown/cli.py:121: FutureWarning: Option `--id` was deprecated in version 4.3.1 and will be removed in 5.0. You don't need to pass it anymore to use a file ID.\\n\",\n            \"  warnings.warn(\\n\",\n            \"Downloading...\\n\",\n            \"From: https://drive.google.com/uc?id=1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9\\n\",\n            \"To: /content/food11.zip\\n\",\n            \"100% 1.16G/1.16G [00:09<00:00, 126MB/s] \\n\"\n          ]\n        }\n      ],\n      \"source\": [\n        \"# Download Link\\n\",\n        \"# Link 1 (Dropbox): https://www.dropbox.com/s/up5q1gthsz3v0dq/food-11.zip?dl=0\\n\",\n        \"# Link 2 (Google Drive): https://drive.google.com/file/d/1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9/view?usp=share_link\\n\",\n        \"# Link 3: Kaggle Competition.\\n\",\n        \"\\n\",\n        \"# (1) dropbox link\\n\",\n        \"# !wget -O food11.zip https://www.dropbox.com/s/up5q1gthsz3v0dq/food-11.zip?dl=0\\n\",\n        \"\\n\",\n        \"# (2) google drive link\\n\",\n        \"!pip install gdown --upgrade\\n\",\n        \"!gdown --id '1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9' --output food11.zip\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true,\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"HEsBm1lkhGmk\",\n        \"outputId\": \"96b56b94-7aee-4180-b615-61a1cff7c7e5\"\n      },\n      \"outputs\": [\n        {\n          \"name\": \"stdout\",\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Archive:  food11.zip\\n\",\n            \"replace valid/9_2898.jpg? [y]es, [n]o, [A]ll, [N]one, [r]ename: \"\n          ]\n        }\n      ],\n      \"source\": [\n        \"! unzip food11.zip\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"n5ceUnRihL-f\"\n      },\n      \"source\": [\n        \"# Import Packages\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true\n        },\n        \"id\": \"ay3WkYnHVaVE\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"_exp_name = \\\"sample\\\"\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true\n        },\n        \"id\": \"CwOGtRWHVaVF\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# Import necessary packages.\\n\",\n        \"import numpy as np\\n\",\n        \"import pandas as pd\\n\",\n        \"import torch\\n\",\n        \"import os\\n\",\n        \"import torch.nn as nn\\n\",\n        \"import torchvision.transforms as transforms\\n\",\n        \"from PIL import Image\\n\",\n        \"# \\\"ConcatDataset\\\" and \\\"Subset\\\" are possibly useful when doing semi-supervised learning.\\n\",\n        \"from torch.utils.data import ConcatDataset, DataLoader, Subset, Dataset\\n\",\n        \"from torchvision.datasets import DatasetFolder, VisionDataset\\n\",\n        \"# This is for the progress bar.\\n\",\n        \"from tqdm.auto import tqdm\\n\",\n        \"import random\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true\n        },\n        \"id\": \"8kJm9GekVaVH\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"myseed = 6666  # set a random seed for reproducibility\\n\",\n        \"torch.backends.cudnn.deterministic = True\\n\",\n        \"torch.backends.cudnn.benchmark = False\\n\",\n        \"np.random.seed(myseed)\\n\",\n        \"torch.manual_seed(myseed)\\n\",\n        \"if torch.cuda.is_available():\\n\",\n        \"    torch.cuda.manual_seed_all(myseed)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"d9MVtgbSVaVH\"\n      },\n      \"source\": [\n        \"# Transforms\\n\",\n        \"Torchvision provides lots of useful utilities for image preprocessing, data *wrapping* as well as data augmentation.\\n\",\n        \"\\n\",\n        \"Please refer to PyTorch official website for details about different transforms.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true\n        },\n        \"id\": \"jvI3Xmq4VaVJ\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# Normally, We don't need augmentations in testing and validation.\\n\",\n        \"# All we need here is to resize the PIL image and transform it into Tensor.\\n\",\n        \"test_tfm = transforms.Compose([\\n\",\n        \"    transforms.Resize((128, 128)),\\n\",\n        \"    transforms.ToTensor(),\\n\",\n        \"])\\n\",\n        \"\\n\",\n        \"# However, it is also possible to use augmentation in the testing phase.\\n\",\n        \"# You may use train_tfm to produce a variety of images and then test using ensemble methods\\n\",\n        \"train_tfm = transforms.Compose([\\n\",\n        \"    # Resize the image into a fixed shape (height = width = 128)\\n\",\n        \"    transforms.Resize((128, 128)),\\n\",\n        \"    # You may add some transforms here.\\n\",\n        \"\\n\",\n        \"    # ToTensor() should be the last one of the transforms.\\n\",\n        \"    transforms.ToTensor(),\\n\",\n        \"])\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"D0ivMf-jVaVK\"\n      },\n      \"source\": [\n        \"# Datasets\\n\",\n        \"The data is labelled by the name, so we load images and label while calling '__getitem__'\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true\n        },\n        \"id\": \"xBdtPhKwVaVL\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"class FoodDataset(Dataset):\\n\",\n        \"\\n\",\n        \"    def __init__(self,path,tfm=test_tfm,files = None):\\n\",\n        \"        super(FoodDataset).__init__()\\n\",\n        \"        self.path = path\\n\",\n        \"        self.files = sorted([os.path.join(path,x) for x in os.listdir(path) if x.endswith(\\\".jpg\\\")])\\n\",\n        \"        if files != None:\\n\",\n        \"            self.files = files\\n\",\n        \"\\n\",\n        \"        self.transform = tfm\\n\",\n        \"\\n\",\n        \"    def __len__(self):\\n\",\n        \"        return len(self.files)\\n\",\n        \"\\n\",\n        \"    def __getitem__(self,idx):\\n\",\n        \"        fname = self.files[idx]\\n\",\n        \"        im = Image.open(fname)\\n\",\n        \"        im = self.transform(im)\\n\",\n        \"\\n\",\n        \"        try:\\n\",\n        \"            label = int(fname.split(\\\"/\\\")[-1].split(\\\"_\\\")[0])\\n\",\n        \"        except:\\n\",\n        \"            label = -1 # test has no label\\n\",\n        \"\\n\",\n        \"        return im,label\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"ZPFkDwug61PZ\"\n      },\n      \"source\": [\n        \"# Model\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true\n        },\n        \"id\": \"b_kDECOJVaVL\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"class Classifier(nn.Module):\\n\",\n        \"    def __init__(self):\\n\",\n        \"        super(Classifier, self).__init__()\\n\",\n        \"        # torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)\\n\",\n        \"        # torch.nn.MaxPool2d(kernel_size, stride, padding)\\n\",\n        \"        # input 維度 [3, 128, 128]\\n\",\n        \"        self.cnn = nn.Sequential(\\n\",\n        \"            nn.Conv2d(3, 64, 3, 1, 1),  # [64, 128, 128]\\n\",\n        \"            nn.BatchNorm2d(64),\\n\",\n        \"            nn.ReLU(),\\n\",\n        \"            nn.MaxPool2d(2, 2, 0),      # [64, 64, 64]\\n\",\n        \"\\n\",\n        \"            nn.Conv2d(64, 128, 3, 1, 1), # [128, 64, 64]\\n\",\n        \"            nn.BatchNorm2d(128),\\n\",\n        \"            nn.ReLU(),\\n\",\n        \"            nn.MaxPool2d(2, 2, 0),      # [128, 32, 32]\\n\",\n        \"\\n\",\n        \"            nn.Conv2d(128, 256, 3, 1, 1), # [256, 32, 32]\\n\",\n        \"            nn.BatchNorm2d(256),\\n\",\n        \"            nn.ReLU(),\\n\",\n        \"            nn.MaxPool2d(2, 2, 0),      # [256, 16, 16]\\n\",\n        \"\\n\",\n        \"            nn.Conv2d(256, 512, 3, 1, 1), # [512, 16, 16]\\n\",\n        \"            nn.BatchNorm2d(512),\\n\",\n        \"            nn.ReLU(),\\n\",\n        \"            nn.MaxPool2d(2, 2, 0),       # [512, 8, 8]\\n\",\n        \"\\n\",\n        \"            nn.Conv2d(512, 512, 3, 1, 1), # [512, 8, 8]\\n\",\n        \"            nn.BatchNorm2d(512),\\n\",\n        \"            nn.ReLU(),\\n\",\n        \"            nn.MaxPool2d(2, 2, 0),       # [512, 4, 4]\\n\",\n        \"        )\\n\",\n        \"        self.fc = nn.Sequential(\\n\",\n        \"            nn.Linear(512*4*4, 1024),\\n\",\n        \"            nn.ReLU(),\\n\",\n        \"            nn.Linear(1024, 512),\\n\",\n        \"            nn.ReLU(),\\n\",\n        \"            nn.Linear(512, 11)\\n\",\n        \"        )\\n\",\n        \"\\n\",\n        \"    def forward(self, x):\\n\",\n        \"        out = self.cnn(x)\\n\",\n        \"        out = out.view(out.size()[0], -1)\\n\",\n        \"        return self.fc(out)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"xgnIOaID687b\"\n      },\n      \"source\": [\n        \"# Configurations\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true\n        },\n        \"id\": \"2_OeWtstVaVO\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# \\\"cuda\\\" only when GPUs are available.\\n\",\n        \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n        \"\\n\",\n        \"# Initialize a model, and put it on the device specified.\\n\",\n        \"model = Classifier().to(device)\\n\",\n        \"\\n\",\n        \"# The number of batch size.\\n\",\n        \"batch_size = 64\\n\",\n        \"\\n\",\n        \"# The number of training epochs.\\n\",\n        \"n_epochs = 8\\n\",\n        \"\\n\",\n        \"# If no improvement in 'patience' epochs, early stop.\\n\",\n        \"patience = 5\\n\",\n        \"\\n\",\n        \"# For the classification task, we use cross-entropy as the measurement of performance.\\n\",\n        \"criterion = nn.CrossEntropyLoss()\\n\",\n        \"\\n\",\n        \"# Initialize optimizer, you may fine-tune some hyperparameters such as learning rate on your own.\\n\",\n        \"optimizer = torch.optim.Adam(model.parameters(), lr=0.0003, weight_decay=1e-5)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"zPGwvvPK7F7u\"\n      },\n      \"source\": [\n        \"# Dataloader\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"background_save\": true\n        },\n        \"id\": \"zvZXRH2phItl\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# Construct train and valid datasets.\\n\",\n        \"# The argument \\\"loader\\\" tells how torchvision reads the data.\\n\",\n        \"train_set = FoodDataset(\\\"./train\\\", tfm=train_tfm)\\n\",\n        \"train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)\\n\",\n        \"valid_set = FoodDataset(\\\"./valid\\\", tfm=test_tfm)\\n\",\n        \"valid_loader = DataLoader(valid_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"UPQ0j1c17BG1\"\n      },\n      \"source\": [\n        \"# Start Training\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"zbVkfIFhVaVO\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# Initialize trackers, these are not parameters and should not be changed\\n\",\n        \"stale = 0\\n\",\n        \"best_acc = 0\\n\",\n        \"\\n\",\n        \"for epoch in range(n_epochs):\\n\",\n        \"\\n\",\n        \"    # ---------- Training ----------\\n\",\n        \"    # Make sure the model is in train mode before training.\\n\",\n        \"    model.train()\\n\",\n        \"\\n\",\n        \"    # These are used to record information in training.\\n\",\n        \"    train_loss = []\\n\",\n        \"    train_accs = []\\n\",\n        \"\\n\",\n        \"    for batch in tqdm(train_loader):\\n\",\n        \"\\n\",\n        \"        # A batch consists of image data and corresponding labels.\\n\",\n        \"        imgs, labels = batch\\n\",\n        \"        #imgs = imgs.half()\\n\",\n        \"        #print(imgs.shape,labels.shape)\\n\",\n        \"\\n\",\n        \"        # Forward the data. (Make sure data and model are on the same device.)\\n\",\n        \"        logits = model(imgs.to(device))\\n\",\n        \"\\n\",\n        \"        # Calculate the cross-entropy loss.\\n\",\n        \"        # We don't need to apply softmax before computing cross-entropy as it is done automatically.\\n\",\n        \"        loss = criterion(logits, labels.to(device))\\n\",\n        \"\\n\",\n        \"        # Gradients stored in the parameters in the previous step should be cleared out first.\\n\",\n        \"        optimizer.zero_grad()\\n\",\n        \"\\n\",\n        \"        # Compute the gradients for parameters.\\n\",\n        \"        loss.backward()\\n\",\n        \"\\n\",\n        \"        # Clip the gradient norms for stable training.\\n\",\n        \"        grad_norm = nn.utils.clip_grad_norm_(model.parameters(), max_norm=10)\\n\",\n        \"\\n\",\n        \"        # Update the parameters with computed gradients.\\n\",\n        \"        optimizer.step()\\n\",\n        \"\\n\",\n        \"        # Compute the accuracy for current batch.\\n\",\n        \"        acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n        \"\\n\",\n        \"        # Record the loss and accuracy.\\n\",\n        \"        train_loss.append(loss.item())\\n\",\n        \"        train_accs.append(acc)\\n\",\n        \"\\n\",\n        \"    train_loss = sum(train_loss) / len(train_loss)\\n\",\n        \"    train_acc = sum(train_accs) / len(train_accs)\\n\",\n        \"\\n\",\n        \"    # Print the information.\\n\",\n        \"    print(f\\\"[ Train | {epoch + 1:03d}/{n_epochs:03d} ] loss = {train_loss:.5f}, acc = {train_acc:.5f}\\\")\\n\",\n        \"\\n\",\n        \"    # ---------- Validation ----------\\n\",\n        \"    # Make sure the model is in eval mode so that some modules like dropout are disabled and work normally.\\n\",\n        \"    model.eval()\\n\",\n        \"\\n\",\n        \"    # These are used to record information in validation.\\n\",\n        \"    valid_loss = []\\n\",\n        \"    valid_accs = []\\n\",\n        \"\\n\",\n        \"    # Iterate the validation set by batches.\\n\",\n        \"    for batch in tqdm(valid_loader):\\n\",\n        \"\\n\",\n        \"        # A batch consists of image data and corresponding labels.\\n\",\n        \"        imgs, labels = batch\\n\",\n        \"        #imgs = imgs.half()\\n\",\n        \"\\n\",\n        \"        # We don't need gradient in validation.\\n\",\n        \"        # Using torch.no_grad() accelerates the forward process.\\n\",\n        \"        with torch.no_grad():\\n\",\n        \"            logits = model(imgs.to(device))\\n\",\n        \"\\n\",\n        \"        # We can still compute the loss (but not the gradient).\\n\",\n        \"        loss = criterion(logits, labels.to(device))\\n\",\n        \"\\n\",\n        \"        # Compute the accuracy for current batch.\\n\",\n        \"        acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n        \"\\n\",\n        \"        # Record the loss and accuracy.\\n\",\n        \"        valid_loss.append(loss.item())\\n\",\n        \"        valid_accs.append(acc)\\n\",\n        \"        #break\\n\",\n        \"\\n\",\n        \"    # The average loss and accuracy for entire validation set is the average of the recorded values.\\n\",\n        \"    valid_loss = sum(valid_loss) / len(valid_loss)\\n\",\n        \"    valid_acc = sum(valid_accs) / len(valid_accs)\\n\",\n        \"\\n\",\n        \"    # Print the information.\\n\",\n        \"    print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f}\\\")\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"    # update logs\\n\",\n        \"    if valid_acc > best_acc:\\n\",\n        \"        with open(f\\\"./{_exp_name}_log.txt\\\",\\\"a\\\"):\\n\",\n        \"            print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f} -> best\\\")\\n\",\n        \"    else:\\n\",\n        \"        with open(f\\\"./{_exp_name}_log.txt\\\",\\\"a\\\"):\\n\",\n        \"            print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f}\\\")\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"    # save models\\n\",\n        \"    if valid_acc > best_acc:\\n\",\n        \"        print(f\\\"Best model found at epoch {epoch}, saving model\\\")\\n\",\n        \"        torch.save(model.state_dict(), f\\\"{_exp_name}_best.ckpt\\\") # only save best to prevent output memory exceed error\\n\",\n        \"        best_acc = valid_acc\\n\",\n        \"        stale = 0\\n\",\n        \"    else:\\n\",\n        \"        stale += 1\\n\",\n        \"        if stale > patience:\\n\",\n        \"            print(f\\\"No improvment {patience} consecutive epochs, early stopping\\\")\\n\",\n        \"            break\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"rw2y9Uhw7wr2\"\n      },\n      \"source\": [\n        \"# Dataloader for test\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"B9QNdHIXVaVP\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# Construct test datasets.\\n\",\n        \"# The argument \\\"loader\\\" tells how torchvision reads the data.\\n\",\n        \"test_set = FoodDataset(\\\"./test\\\", tfm=test_tfm)\\n\",\n        \"test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"G31uyjpvVaVP\"\n      },\n      \"source\": [\n        \"# Testing and generate prediction CSV\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"bpLtxx5FVaVP\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"model_best = Classifier().to(device)\\n\",\n        \"model_best.load_state_dict(torch.load(f\\\"{_exp_name}_best.ckpt\\\"))\\n\",\n        \"model_best.eval()\\n\",\n        \"prediction = []\\n\",\n        \"with torch.no_grad():\\n\",\n        \"    for data,_ in tqdm(test_loader):\\n\",\n        \"        test_pred = model_best(data.to(device))\\n\",\n        \"        test_label = np.argmax(test_pred.cpu().data.numpy(), axis=1)\\n\",\n        \"        prediction += test_label.squeeze().tolist()\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"fKupB3VUVaVQ\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# create test csv\\n\",\n        \"def pad4(i):\\n\",\n        \"    return \\\"0\\\"*(4-len(str(i)))+str(i)\\n\",\n        \"df = pd.DataFrame()\\n\",\n        \"df[\\\"Id\\\"] = [pad4(i) for i in range(len(test_set))]\\n\",\n        \"df[\\\"Category\\\"] = prediction\\n\",\n        \"df.to_csv(\\\"submission.csv\\\",index = False)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Ivk0hrE-V8Cu\"\n      },\n      \"source\": [\n        \"# Q1. Augmentation Implementation\\n\",\n        \"## Implement augmentation by finishing train_tfm in the code with image size of your choice.\\n\",\n        \"## Directly copy the following block and paste it on GradeScope after you finish the code\\n\",\n        \"### Your train_tfm must be capable of producing 5+ different results when given an identical image multiple times.\\n\",\n        \"### Your  train_tfm in the report can be different from train_tfm in your training code.\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"GSfKNo42WjKm\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"train_tfm = transforms.Compose([\\n\",\n        \"    # Resize the image into a fixed shape (height = width = 128)\\n\",\n        \"    transforms.Resize((128, 128)),\\n\",\n        \"    # You can add some transforms here.\\n\",\n        \"    transforms.ToTensor(),\\n\",\n        \"])\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"3HemRgZ6WwRM\"\n      },\n      \"source\": [\n        \"# Q2. Visual Representations Implementation\\n\",\n        \"## Visualize the learned visual representations of the CNN model on the validation set by implementing t-SNE (t-distributed Stochastic Neighbor Embedding) on the output of both top & mid layers (You need to submit 2 images).\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"iXd_SZnB2Wg8\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import torch\\n\",\n        \"import numpy as np\\n\",\n        \"from sklearn.manifold import TSNE\\n\",\n        \"import matplotlib.pyplot as plt\\n\",\n        \"from tqdm import tqdm\\n\",\n        \"import matplotlib.cm as cm\\n\",\n        \"import torch.nn as nn\\n\",\n        \"\\n\",\n        \"device = 'cuda' if torch.cuda.is_available() else 'cpu'\\n\",\n        \"\\n\",\n        \"# Load the trained model\\n\",\n        \"model = Classifier().to(device)\\n\",\n        \"state_dict = torch.load(f\\\"{_exp_name}_best.ckpt\\\")\\n\",\n        \"model.load_state_dict(state_dict)\\n\",\n        \"model.eval()\\n\",\n        \"\\n\",\n        \"print(model)\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"QcBKUNfc3BeL\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"# Load the vaildation set defined by TA\\n\",\n        \"valid_set = FoodDataset(\\\"./valid\\\", tfm=test_tfm)\\n\",\n        \"valid_loader = DataLoader(valid_set, batch_size=64, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n        \"\\n\",\n        \"# Extract the representations for the specific layer of model\\n\",\n        \"index = ... # You should find out the index of layer which is defined as \\\"top\\\" or 'mid' layer of your model.\\n\",\n        \"features = []\\n\",\n        \"labels = []\\n\",\n        \"for batch in tqdm(valid_loader):\\n\",\n        \"    imgs, lbls = batch\\n\",\n        \"    with torch.no_grad():\\n\",\n        \"        logits = model.cnn[:index](imgs.to(device))\\n\",\n        \"        logits = logits.view(logits.size()[0], -1)\\n\",\n        \"    labels.extend(lbls.cpu().numpy())\\n\",\n        \"    logits = np.squeeze(logits.cpu().numpy())\\n\",\n        \"    features.extend(logits)\\n\",\n        \"\\n\",\n        \"features = np.array(features)\\n\",\n        \"colors_per_class = cm.rainbow(np.linspace(0, 1, 11))\\n\",\n        \"\\n\",\n        \"# Apply t-SNE to the features\\n\",\n        \"features_tsne = TSNE(n_components=2, init='pca', random_state=42).fit_transform(features)\\n\",\n        \"\\n\",\n        \"# Plot the t-SNE visualization\\n\",\n        \"plt.figure(figsize=(10, 8))\\n\",\n        \"for label in np.unique(labels):\\n\",\n        \"    plt.scatter(features_tsne[labels == label, 0], features_tsne[labels == label, 1], label=label, s=5)\\n\",\n        \"plt.legend()\\n\",\n        \"plt.show()\\n\",\n        \"\\n\",\n        \"plt.figure(figsize=(10, 8))\\n\",\n        \"labels = [0]\\n\",\n        \"for label in np.unique(labels):\\n\",\n        \"    plt.scatter(features_tsne[labels == label, 0], features_tsne[labels == label, 1], label=label, s=5)\\n\",\n        \"plt.legend()\\n\",\n        \"plt.show()\"\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"accelerator\": \"GPU\",\n    \"colab\": {\n      \"provenance\": []\n    },\n    \"gpuClass\": \"standard\",\n    \"kernelspec\": {\n      \"display_name\": \"Python 3\",\n      \"language\": \"python\",\n      \"name\": \"python3\"\n    },\n    \"language_info\": {\n      \"codemirror_mode\": {\n        \"name\": \"ipython\",\n        \"version\": 3\n      },\n      \"file_extension\": \".py\",\n      \"mimetype\": \"text/x-python\",\n      \"name\": \"python\",\n      \"nbconvert_exporter\": \"python\",\n      \"pygments_lexer\": \"ipython3\",\n      \"version\": \"3.6.4\"\n    }\n  },\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0\n}"
  },
  {
    "path": "HW03/HW03_Strong_0.81400.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Strong Baseline\\n\",\n    \"You can search for the “Strong” tag to check for changes (Ctrl + F or Command + F)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"jRDuJsGCgxCO\"\n   },\n   \"source\": [\n    \"# HW3 Image Classification\\n\",\n    \"## We strongly recommend that you run with [Kaggle](https://www.kaggle.com/t/86ca241732c04da99aca6490080bae73) for this homework\\n\",\n    \"\\n\",\n    \"If you have any questions, please contact the TAs via TA hours, NTU COOL, or email to mlta-2023-spring@googlegroups.com\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"K9Vxu1iQwdIE\"\n   },\n   \"source\": [\n    \"# Check GPU Type\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 69,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:37.575353Z\",\n     \"start_time\": \"2023-04-19T14:22:37.430558Z\"\n    },\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"KKjf6sZcwb_A\",\n    \"outputId\": \"605652be-d5bf-48a2-8218-57b33b6f7790\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Sat May 27 12:03:34 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   32C    P8    22W / 170W |  11266MiB / 12288MiB |      0%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1170      G   /usr/lib/xorg/Xorg                235MiB |\\n\",\n      \"|    0   N/A  N/A      1474      G   /usr/bin/gnome-shell               31MiB |\\n\",\n      \"|    0   N/A  N/A      1722      G   ...nlogin/bin/sunloginclient        8MiB |\\n\",\n      \"|    0   N/A  N/A      8998      G   ...2gtk-4.0/WebKitWebProcess       19MiB |\\n\",\n      \"|    0   N/A  N/A     35393      C   ...conda3/envs/DL/bin/python    10966MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"EVgrPb3HhJUT\"\n   },\n   \"source\": [\n    \"# Get Data\\n\",\n    \"Notes: if the links are dead, you can download the data directly from Kaggle and upload it to the workspace, or you can use the Kaggle API to directly download the data into colab.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 70,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:37.585635Z\",\n     \"start_time\": \"2023-04-19T14:22:37.579870Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"EAO6dg9eVaU_\",\n    \"outputId\": \"5a20fe0a-ab0f-40e8-82d7-5cb1dea91d92\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Download Link\\n\",\n    \"# Link 1 (Dropbox): https://www.dropbox.com/s/up5q1gthsz3v0dq/food-11.zip?dl=0\\n\",\n    \"# Link 2 (Google Drive): https://drive.google.com/file/d/1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9/view?usp=share_link\\n\",\n    \"# Link 3: Kaggle Competition.\\n\",\n    \"\\n\",\n    \"# (1) dropbox link\\n\",\n    \"# !wget -O food11.zip https://www.dropbox.com/s/up5q1gthsz3v0dq/food-11.zip?dl=0\\n\",\n    \"\\n\",\n    \"# (2) google drive link\\n\",\n    \"# !pip install gdown --upgrade\\n\",\n    \"# !gdown --id '1tbGNwk1yGoCBdu4Gi_Cia7EJ9OhubYD9' --output food11.zip\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 71,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:37.595591Z\",\n     \"start_time\": \"2023-04-19T14:22:37.591145Z\"\n    },\n    \"colab\": {\n     \"background_save\": true,\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"hidden\": true,\n    \"id\": \"HEsBm1lkhGmk\",\n    \"outputId\": \"9612ed4d-d67d-46d3-f992-b1fd623c1090\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# ! unzip food11.zip\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n5ceUnRihL-f\"\n   },\n   \"source\": [\n    \"# Import Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 72,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:37.600962Z\",\n     \"start_time\": \"2023-04-19T14:22:37.598490Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"ay3WkYnHVaVE\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Define your log filename\\n\",\n    \"_exp_name = \\\"sample\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 73,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:38.838110Z\",\n     \"start_time\": \"2023-04-19T14:22:37.602881Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"CwOGtRWHVaVF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Import necessary packages.\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import torch\\n\",\n    \"import os\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torchvision.transforms as transforms\\n\",\n    \"from PIL import Image\\n\",\n    \"# \\\"ConcatDataset\\\" and \\\"Subset\\\" are possibly useful when doing semi-supervised learning.\\n\",\n    \"from torch.utils.data import ConcatDataset, DataLoader, Subset, Dataset\\n\",\n    \"from torchvision.datasets import DatasetFolder, VisionDataset\\n\",\n    \"# Pretrained model\\n\",\n    \"from torchvision.models import resnet34, resnet50, vgg16, densenet121, alexnet, squeezenet1_0\\n\",\n    \"# This is for the progress bar.\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"import random\\n\",\n    \"# For plotting learning curve\\n\",\n    \"from torch.utils.tensorboard import SummaryWriter\\n\",\n    \"# K-fold cross validation and boosting\\n\",\n    \"from sklearn.model_selection import KFold\\n\",\n    \"from sklearn.ensemble import AdaBoostClassifier\\n\",\n    \"# Optuna\\n\",\n    \"import optuna\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 74,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:38.917931Z\",\n     \"start_time\": \"2023-04-19T14:22:38.839058Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"8kJm9GekVaVH\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"myseed = 3407  # set a random seed for reproducibility\\n\",\n    \"torch.backends.cudnn.deterministic = True\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"np.random.seed(myseed)\\n\",\n    \"torch.manual_seed(myseed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed_all(myseed)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"d9MVtgbSVaVH\"\n   },\n   \"source\": [\n    \"# Transforms\\n\",\n    \"Torchvision provides lots of useful utilities for image preprocessing, data *wrapping* as well as data augmentation.\\n\",\n    \"\\n\",\n    \"Please refer to PyTorch official website for details about different transforms.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 75,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:38.927138Z\",\n     \"start_time\": \"2023-04-19T14:22:38.920698Z\"\n    },\n    \"code_folding\": [],\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"hidden\": true,\n    \"id\": \"jvI3Xmq4VaVJ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Normally, We don't need augmentations in testing and validation.\\n\",\n    \"# All we need here is to resize the PIL image and transform it into Tensor.\\n\",\n    \"test_tfm = transforms.Compose([\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\\n\",\n    \"\\n\",\n    \"# However, it is also possible to use augmentation in the testing phase.\\n\",\n    \"# You may use train_tfm to produce a variety of images and then test using ensemble methods\\n\",\n    \"\\n\",\n    \"train_tfm = transforms.Compose([\\n\",\n    \"    # Resize the image into a fixed shape (height = width = 128)\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    # You may add some transforms here.\\n\",\n    \"    \\n\",\n    \"    transforms.RandomChoice(transforms=[\\n\",\n    \"        # Apply TrivialAugmentWide data augmentation method\\n\",\n    \"        transforms.TrivialAugmentWide(),\\n\",\n    \"\\n\",\n    \"        # Return original image\\n\",\n    \"        transforms.Lambda(lambda x: x),\\n\",\n    \"    ],\\n\",\n    \"                            p=[0.95, 0.05]),\\n\",\n    \"\\n\",\n    \"    # ToTensor() should be the last one of the transfo·rms.\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Q1. Augmentation Implementation Visualization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 76,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:39.361104Z\",\n     \"start_time\": \"2023-04-19T14:22:38.929546Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 6 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# I want to show you an example code of Q1. Augmentation Implementation that visualizes the effects of different image transformations.\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"plt.rcParams[\\\"savefig.bbox\\\"] = 'tight'\\n\",\n    \"\\n\",\n    \"# You can change the file path to match your image\\n\",\n    \"orig_img = Image.open('Q1/assets/astronaut.jpg')\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def plot(imgs, with_orig=True, row_title=None, **imshow_kwargs):\\n\",\n    \"    if not isinstance(imgs[0], list):\\n\",\n    \"        # Make a 2d grid even if there's just 1 row\\n\",\n    \"        imgs = [imgs]\\n\",\n    \"\\n\",\n    \"    num_rows = len(imgs)\\n\",\n    \"    num_cols = len(imgs[0]) + with_orig\\n\",\n    \"    fig, axs = plt.subplots(nrows=num_rows, ncols=num_cols, squeeze=False)\\n\",\n    \"    for row_idx, row in enumerate(imgs):\\n\",\n    \"        row = [orig_img] + row if with_orig else row\\n\",\n    \"        for col_idx, img in enumerate(row):\\n\",\n    \"            ax = axs[row_idx, col_idx]\\n\",\n    \"            ax.imshow(np.asarray(img), **imshow_kwargs)\\n\",\n    \"            ax.set(xticklabels=[], yticklabels=[], xticks=[], yticks=[])\\n\",\n    \"\\n\",\n    \"    if with_orig:\\n\",\n    \"        axs[0, 0].set(title='Original image')\\n\",\n    \"        axs[0, 0].title.set_size(8)\\n\",\n    \"    if row_title is not None:\\n\",\n    \"        for row_idx in range(num_rows):\\n\",\n    \"            axs[row_idx, 0].set(ylabel=row_title[row_idx])\\n\",\n    \"\\n\",\n    \"    plt.tight_layout()\\n\",\n    \"\\n\",\n    \"# Create a list of five transformed images from the original image using the train_tfm function\\n\",\n    \"demo = [train_tfm(orig_img) for i in range(5)]\\n\",\n    \"\\n\",\n    \"# Convert the transformed images from tensors to PIL images\\n\",\n    \"pil_img_demo = [Image.fromarray(np.moveaxis(img.numpy()*255, 0, -1).astype(np.uint8)) for img in demo]\\n\",\n    \"\\n\",\n    \"# Plot the transformed images using the plot function\\n\",\n    \"plot(pil_img_demo) \"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true,\n    \"id\": \"D0ivMf-jVaVK\"\n   },\n   \"source\": [\n    \"# Datasets\\n\",\n    \"The data is labelled by the name, so we load images and label while calling '__getitem__'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 77,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:39.365602Z\",\n     \"start_time\": \"2023-04-19T14:22:39.362840Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"hidden\": true,\n    \"id\": \"xBdtPhKwVaVL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class FoodDataset(Dataset):\\n\",\n    \"\\n\",\n    \"    def __init__(self,path,tfm=test_tfm,files = None):\\n\",\n    \"        super(FoodDataset).__init__()\\n\",\n    \"        self.path = path\\n\",\n    \"        self.files = sorted([os.path.join(path,x) for x in os.listdir(path) if x.endswith(\\\".jpg\\\")])\\n\",\n    \"        if files != None:\\n\",\n    \"            self.files = files\\n\",\n    \"            \\n\",\n    \"        self.transform = tfm\\n\",\n    \"  \\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.files)\\n\",\n    \"  \\n\",\n    \"    def __getitem__(self,idx):\\n\",\n    \"        fname = self.files[idx]\\n\",\n    \"        im = Image.open(fname)\\n\",\n    \"        im = self.transform(im)\\n\",\n    \"        \\n\",\n    \"        try:\\n\",\n    \"            label = int(fname.split(\\\"/\\\")[-1].split(\\\"_\\\")[0])\\n\",\n    \"        except:\\n\",\n    \"            label = -1 # test has no label\\n\",\n    \"            \\n\",\n    \"        return im,label\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZPFkDwug61PZ\"\n   },\n   \"source\": [\n    \"# Model (Strong)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 78,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:39.374317Z\",\n     \"start_time\": \"2023-04-19T14:22:39.366511Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"b_kDECOJVaVL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Classifier(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(Classifier, self).__init__()\\n\",\n    \"        # torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)\\n\",\n    \"        # torch.nn.MaxPool2d(kernel_size, stride, padding)\\n\",\n    \"        # input 維度 [3, 128, 128]\\n\",\n    \"        self.cnn = nn.Sequential(\\n\",\n    \"            nn.Conv2d(3, 64, 3, 1, 1),  # [64, 128, 128]\\n\",\n    \"            nn.BatchNorm2d(64),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [64, 64, 64]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(64, 128, 3, 1, 1), # [128, 64, 64]\\n\",\n    \"            nn.BatchNorm2d(128),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [128, 32, 32]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(128, 256, 3, 1, 1), # [256, 32, 32]\\n\",\n    \"            nn.BatchNorm2d(256),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),      # [256, 16, 16]\\n\",\n    \"\\n\",\n    \"            nn.Conv2d(256, 512, 3, 1, 1), # [512, 16, 16]\\n\",\n    \"            nn.BatchNorm2d(512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),       # [512, 8, 8]\\n\",\n    \"            \\n\",\n    \"            nn.Conv2d(512, 512, 3, 1, 1), # [512, 8, 8]\\n\",\n    \"            nn.BatchNorm2d(512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.MaxPool2d(2, 2, 0),       # [512, 4, 4]\\n\",\n    \"        )\\n\",\n    \"        self.fc = nn.Sequential(\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(512*4*4, 1024),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(1024, 512),\\n\",\n    \"            nn.ReLU(),\\n\",\n    \"            nn.Dropout(p=0.5),\\n\",\n    \"            nn.Linear(512, 11)\\n\",\n    \"        )\\n\",\n    \"        \\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        out = self.cnn(x)\\n\",\n    \"        out = out.view(out.size()[0], -1)\\n\",\n    \"        return self.fc(out)\\n\",\n    \"    \\n\",\n    \"    \\n\",\n    \"class ResNet34(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(ResNet34, self).__init__()\\n\",\n    \"        self.model = resnet34(weights=None)\\n\",\n    \"        num_features = self.model.fc.in_features\\n\",\n    \"        self.model.fc = nn.Linear(num_features, 11)\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"        \\n\",\n    \"    def forward(self, x):\\n\",\n    \"        return self.model(x)\\n\",\n    \"    \\n\",\n    \"class ResNet50(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(ResNet50, self).__init__()\\n\",\n    \"        self.model = resnet50(weights=None)\\n\",\n    \"        num_features = self.model.fc.in_features\\n\",\n    \"        self.model.fc = nn.Linear(num_features, 11)\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"        \\n\",\n    \"    \\n\",\n    \"    def forward(self, x):\\n\",\n    \"        return self.model(x)\\n\",\n    \"\\n\",\n    \"    \\n\",\n    \"class VGG16(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(VGG16, self).__init__()\\n\",\n    \"        self.model = vgg16(weights=None)\\n\",\n    \"        num_features = self.model.classifier[6].in_features\\n\",\n    \"        self.model.classifier[6] = nn.Linear(num_features, 11)\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        return self.model(x)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class DenseNet121(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(DenseNet121, self).__init__()\\n\",\n    \"        self.model = densenet121(weights=None)\\n\",\n    \"        num_features = self.model.classifier.in_features\\n\",\n    \"        self.model.classifier = nn.Linear(num_features, 11)\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.model(x)\\n\",\n    \"        return x\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"class AlexNet(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(AlexNet, self).__init__()\\n\",\n    \"        self.model = alexnet(weights=None)\\n\",\n    \"        num_features = self.model.classifier[6].in_features\\n\",\n    \"        self.model.classifier[6] = nn.Linear(num_features, 11)\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.model(x)\\n\",\n    \"        return x\\n\",\n    \"    \\n\",\n    \"    \\n\",\n    \"class SqueezeNet(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(SqueezeNet, self).__init__()\\n\",\n    \"        self.model = squeezenet1_0(weights=None)\\n\",\n    \"        # (1): Conv2d(512, 1000, kernel_size=(1, 1), stride=(1, 1))\\n\",\n    \"        num_features = self.model.classifier[1].in_channels\\n\",\n    \"        self.model.classifier[1] = nn.Conv2d(num_features, 11, kernel_size=(1,1), stride=(1,1))\\n\",\n    \"        self.model.num_classes = 11\\n\",\n    \"        \\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.model(x)\\n\",\n    \"        return x\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xgnIOaID687b\"\n   },\n   \"source\": [\n    \"# Configurations (strong)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 79,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:40.301397Z\",\n     \"start_time\": \"2023-04-19T14:22:39.375135Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"2_OeWtstVaVO\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# \\\"cuda\\\" only when GPUs are available.\\n\",\n    \"# If you use apple chip (mac), you can change \\\"cpu\\\" to \\\"mps\\\"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# Initialize a model, and put it on the device specified.\\n\",\n    \"model = Classifier().to(device)\\n\",\n    \"\\n\",\n    \"Resume = False\\n\",\n    \"if Resume:\\n\",\n    \"    model.load_state_dict(torch.load(f\\\"{_exp_name}_best.ckpt\\\", map_location='cuda'))\\n\",\n    \"\\n\",\n    \"# The number of batch size.\\n\",\n    \"batch_size = 64\\n\",\n    \"\\n\",\n    \"# The number of training epochs.\\n\",\n    \"n_epochs = 160\\n\",\n    \"\\n\",\n    \"# If no improvement in 'patience' epochs, early stop.\\n\",\n    \"patience = 20\\n\",\n    \"\\n\",\n    \"# For the classification task, we use cross-entropy as the measurement of performance.\\n\",\n    \"# criterion = nn.CrossEntropyLoss()\\n\",\n    \"# Label Smoothing Cross Entropy Loss\\n\",\n    \"criterion = nn.CrossEntropyLoss(label_smoothing=0.1)\\n\",\n    \"\\n\",\n    \"# Initialize optimizer, you may fine-tune some hyperparameters such as learning rate on your own.\\n\",\n    \"optimizer = torch.optim.Adam(model.parameters(), lr=3e-4, weight_decay=1e-5) # 3e-4\\n\",\n    \"\\n\",\n    \"# Create a learning rate scheduler that reduces the learning rate when the metric stops improving\\n\",\n    \"scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.8, patience=patience/2, threshold=0.05)\\n\",\n    \"# scheduler = torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0=10, T_mult=2, eta_min=1e-8)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zPGwvvPK7F7u\"\n   },\n   \"source\": [\n    \"# Dataloader\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 80,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T14:22:40.317932Z\",\n     \"start_time\": \"2023-04-19T14:22:40.302185Z\"\n    },\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"zvZXRH2phItl\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # Construct train and valid datasets.\\n\",\n    \"# # The argument \\\"loader\\\" tells how torchvision reads the data.\\n\",\n    \"train_set = FoodDataset(\\\"./train\\\", tfm=train_tfm)\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)\\n\",\n    \"valid_set = FoodDataset(\\\"./valid\\\", tfm=test_tfm)\\n\",\n    \"valid_loader = DataLoader(valid_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UPQ0j1c17BG1\"\n   },\n   \"source\": [\n    \"# Start Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 81,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T15:54:54.846883Z\",\n     \"start_time\": \"2023-04-19T14:22:40.318753Z\"\n    },\n    \"id\": \"zbVkfIFhVaVO\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"75e75b2ff43b4a0fa5306ce91073c688\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 001/160 ] loss = 2.24101, acc = 0.22114\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7e3eb0e4362441439a24a18713550b65\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 001/160 ] loss = 2.03890, acc = 0.31184 -> best\\n\",\n      \"Best model found at epoch 0, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5de122c901b44464b56f411879ed24c2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 002/160 ] loss = 2.11259, acc = 0.28513\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3680d7cc2bf649e99574f5947bfa5e8a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 002/160 ] loss = 1.93632, acc = 0.37492 -> best\\n\",\n      \"Best model found at epoch 1, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"61ef1307d16148829d15b43e727c2d6e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 003/160 ] loss = 2.05819, acc = 0.31509\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"aef7ab6070754a60a6bfd7fd4ae39a42\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 003/160 ] loss = 1.88943, acc = 0.37492\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fba7eac944804b70811f722bbace8bb9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 004/160 ] loss = 1.98661, acc = 0.34703\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c172af408ac64f97ad6901a452435dd3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 004/160 ] loss = 1.99743, acc = 0.36532\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"37ff5983c6bf44c3925aa063ed400eeb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 005/160 ] loss = 1.93206, acc = 0.38127\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6d44b567ad0146f0ac9b61ef81ba239d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 005/160 ] loss = 1.74143, acc = 0.45560 -> best\\n\",\n      \"Best model found at epoch 4, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9abf52603ca4455f91da4459fa5a32d1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 006/160 ] loss = 1.87235, acc = 0.41610\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"34802614be2c481ab7e11e88f40ed230\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 006/160 ] loss = 1.89777, acc = 0.39310\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"629087a0d89f4dfe81b3d7bb8138ae02\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 007/160 ] loss = 1.80876, acc = 0.44377\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2d84e9a991d145e58f7653c7839e671d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 007/160 ] loss = 1.65141, acc = 0.51577 -> best\\n\",\n      \"Best model found at epoch 6, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"148f1d6f36fe4be9a282f5fd41430175\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 008/160 ] loss = 1.76905, acc = 0.46616\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4c4e1a7628f74aa78465329836afd6f9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 008/160 ] loss = 1.65477, acc = 0.49604\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c61f436b1df44515984e6ffdf330ec11\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 009/160 ] loss = 1.72718, acc = 0.48119\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"adad5ae2a68a4288ab03eedbc24c7513\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 009/160 ] loss = 1.78426, acc = 0.45944\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4e0ba0abd2a8428592f1ecca4bd3bde1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 010/160 ] loss = 1.68916, acc = 0.49920\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6e959c75aeed4368ab2b9d8d6f0a5d2f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 010/160 ] loss = 1.63149, acc = 0.51194\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3dfea26394604dc3856db6c6b31779b4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 011/160 ] loss = 1.64769, acc = 0.52538\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7bfbd60779b64413ac884adde5d9f9a2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 011/160 ] loss = 1.66485, acc = 0.50780\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d5c85341c60d4e12b417b6f36e1f88f5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 012/160 ] loss = 1.61561, acc = 0.53434\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b966212ad34147feaccc734e2e609935\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 012/160 ] loss = 1.47625, acc = 0.58620 -> best\\n\",\n      \"Best model found at epoch 11, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e6b6786f35cf44b494a8bd9487647472\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 013/160 ] loss = 1.58598, acc = 0.54578\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b61bebe4a32440bf9a7998120d284422\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 013/160 ] loss = 1.53157, acc = 0.56631\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"18d538cc9c99456b95b44fef0d5734c1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 014/160 ] loss = 1.55350, acc = 0.55971\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4c22263e2f7f4917bae7158cc60c91c4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 014/160 ] loss = 1.64998, acc = 0.50431\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8c7c91b7faee4cbf894a45bbe1188add\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 015/160 ] loss = 1.52601, acc = 0.57613\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0a13e44a962140beaa3d658669e03fb8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 015/160 ] loss = 1.48905, acc = 0.57416\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6909762596e04eceb8cdeb27c499169e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 016/160 ] loss = 1.51271, acc = 0.58260\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ecbc82256269401794bea96b600d86dc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 016/160 ] loss = 1.44844, acc = 0.59970 -> best\\n\",\n      \"Best model found at epoch 15, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"55186dcd1d3b4e18a1b8fb4ae93cc010\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 017/160 ] loss = 1.48970, acc = 0.59385\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6472e244951644919a4a24cdbfd52a20\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 017/160 ] loss = 1.43379, acc = 0.61373 -> best\\n\",\n      \"Best model found at epoch 16, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"de54d828420a48aabafee514075ceedd\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 018/160 ] loss = 1.46324, acc = 0.61326\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a11b029542ff41abb3461fb1fce1e1bb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 018/160 ] loss = 1.42454, acc = 0.61355\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e636bde721234e968a91dfa85569e2e0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 019/160 ] loss = 1.44253, acc = 0.61843\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0fdf95be21294aac839013f8c4e3829f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 019/160 ] loss = 1.32698, acc = 0.65304 -> best\\n\",\n      \"Best model found at epoch 18, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6bb92b199ca04217adf323d5d6fe5402\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 020/160 ] loss = 1.42801, acc = 0.62789\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"642b974677f446e9a06e238f052dc56c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 020/160 ] loss = 1.44834, acc = 0.60283\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b8f534432a584196923b457fdd495ca4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 021/160 ] loss = 1.39630, acc = 0.63814\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1adad74ee66945b18ff09be8f7c62f8c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 021/160 ] loss = 1.32812, acc = 0.65985 -> best\\n\",\n      \"Best model found at epoch 20, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f54f1efc5a514834a580b59e3353136e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 022/160 ] loss = 1.37959, acc = 0.64500\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cc1dc09fdece447eb314ad5416f4f42a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 022/160 ] loss = 1.38022, acc = 0.63278\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ed93d8cd5962433ca6254e684f8d89e0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 023/160 ] loss = 1.37018, acc = 0.65117\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"dece8107cb134a479abec3959a988283\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 023/160 ] loss = 1.48431, acc = 0.56345\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b0660304a2a24888b0ac29f164ac6f43\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 024/160 ] loss = 1.34340, acc = 0.66441\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f5eef9ae377147a89603a434bfb8ac08\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 024/160 ] loss = 1.37345, acc = 0.64662\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"aea0981c6548487cbd2271992f92982a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 025/160 ] loss = 1.33680, acc = 0.66570\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ad163c462a514baeabc07412afad6a55\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 025/160 ] loss = 1.32753, acc = 0.66392 -> best\\n\",\n      \"Best model found at epoch 24, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cf671189d00d4f71a880c8b94d6adb5d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 026/160 ] loss = 1.32095, acc = 0.67148\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2a964b425ad74a3c98dfdddfa28bcfeb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 026/160 ] loss = 1.37510, acc = 0.63813\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fd4e6dd1365c4db2b98fa1e7ccf1034c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 027/160 ] loss = 1.30459, acc = 0.67914\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4eeb99b350444254bb1a297801e4f2ef\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 027/160 ] loss = 1.43791, acc = 0.62469\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"872fb628cdf54139b306b5a6bf4c0d13\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 028/160 ] loss = 1.28530, acc = 0.69009\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3dad1b10479a4c67962f81f45181c341\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 028/160 ] loss = 1.25484, acc = 0.68480 -> best\\n\",\n      \"Best model found at epoch 27, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"88765308bf884e0a8e63c6c89f871668\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 029/160 ] loss = 1.27192, acc = 0.69626\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c4c6687886c54817a237f05d6e68d67e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 029/160 ] loss = 1.29954, acc = 0.66903\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"faff653b0737446ca11caf09dd93a69b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 030/160 ] loss = 1.26207, acc = 0.70462\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fe3c076a4fba4054a2d312d107025e09\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 030/160 ] loss = 1.29509, acc = 0.67248\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a1270c765e4443e097fc1c5b8a793489\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 031/160 ] loss = 1.22485, acc = 0.71736\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"03eb698ea81a4c44b79e7d8464e8689e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 031/160 ] loss = 1.22446, acc = 0.70113 -> best\\n\",\n      \"Best model found at epoch 30, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a43be97f3b0e4c1fa6619239b97fa66c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 032/160 ] loss = 1.20594, acc = 0.72830\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"29c5df057f004a76a2f4a24e9ad38f33\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 032/160 ] loss = 1.19820, acc = 0.72290 -> best\\n\",\n      \"Best model found at epoch 31, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d69a768d2c5045b886711048c312bcb6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 033/160 ] loss = 1.20273, acc = 0.73149\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4b424fa3e8d343148fb0f8db75e8b48b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 033/160 ] loss = 1.25409, acc = 0.68375\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5dc1b06b11704393a11d7292d8b94cdc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 034/160 ] loss = 1.17092, acc = 0.74293\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ffd771725e3a49ab8d6aaf78b6ac8daa\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 034/160 ] loss = 1.21990, acc = 0.72267\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ed7448542eb046f991f721f2e433c159\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 035/160 ] loss = 1.17307, acc = 0.74244\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3eab235868df402e84a4d3399eb40c8b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 035/160 ] loss = 1.21316, acc = 0.71785\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"842ac1ed9561443e83963c61227ad721\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 036/160 ] loss = 1.15082, acc = 0.75617\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3fbf391c2f21410eb9ad70dfe3c3d85d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 036/160 ] loss = 1.18902, acc = 0.72027\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"51216b9c349f459ba2150d08442b0ddf\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 037/160 ] loss = 1.15181, acc = 0.75289\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"29403ca98fdc4565b54143f0905e6abb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 037/160 ] loss = 1.26544, acc = 0.68601\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f96dc748c81447aca9eb4b9502cd3c5b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 038/160 ] loss = 1.13107, acc = 0.76493\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"90eb9e11e1c04e358c11a76d6c8bcc26\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 038/160 ] loss = 1.20486, acc = 0.71376\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"964c0f9f6862417d8dd953ecc8f146e0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 039/160 ] loss = 1.12555, acc = 0.76602\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"aa5765a9d1b44de0b844542f25bd936b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 039/160 ] loss = 1.20007, acc = 0.71952\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"75706d4f40da4635ad7660dbc5c2e7b9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 040/160 ] loss = 1.11421, acc = 0.77070\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d31ff7f202524fc792025636674b8889\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 040/160 ] loss = 1.19144, acc = 0.72690 -> best\\n\",\n      \"Best model found at epoch 39, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"25dda4bbddcd45ef99bcfb483abdbe94\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 041/160 ] loss = 1.10595, acc = 0.77926\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"84587cd36145490fb5fb76e71288e180\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 041/160 ] loss = 1.28142, acc = 0.69748\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ae1bb30aa83b4464b2899d015db4b35c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 042/160 ] loss = 1.10858, acc = 0.77389\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"445920ffb8754586bbb922e8ecd5acbf\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 042/160 ] loss = 1.17717, acc = 0.73789 -> best\\n\",\n      \"Best model found at epoch 41, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7183ddada9274653973c109f6d57f516\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 043/160 ] loss = 1.08829, acc = 0.78563\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ab36d5d791c1424f977b69ac9a6f6033\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 043/160 ] loss = 1.18365, acc = 0.73567\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a16a4bce6b3743e3bd22be3855a287b6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 044/160 ] loss = 1.07831, acc = 0.78652\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b2f6007ca2ef4b7683636dc7e1d07ef0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 044/160 ] loss = 1.21313, acc = 0.71696\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"db5232d2e35b41e5b5cd983844dd297c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 045/160 ] loss = 1.06386, acc = 0.79270\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7556cbfb26a94f3e948fb4a75524b17b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 045/160 ] loss = 1.26161, acc = 0.69104\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a7fbebba052a419ca4c44d87ece7186d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 046/160 ] loss = 1.06217, acc = 0.79508\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4c8b2a411fb5433b974cd8c022d5a2bf\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 046/160 ] loss = 1.14994, acc = 0.74586 -> best\\n\",\n      \"Best model found at epoch 45, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"49f63ca49c7943acba4d54c7fdf3e0f2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 047/160 ] loss = 1.04496, acc = 0.80205\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"062c50832b914e1197954440c766728d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 047/160 ] loss = 1.15737, acc = 0.74906 -> best\\n\",\n      \"Best model found at epoch 46, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"81a21c78b69f422cb147cfe4788cb95a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 048/160 ] loss = 1.04399, acc = 0.80434\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ebae678338104237a74773434aaa5b6b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 048/160 ] loss = 1.26804, acc = 0.69129\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cbf395ad6ab847bd92e6907c408ed0ef\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 049/160 ] loss = 1.03924, acc = 0.80673\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"75ebaf9396d7442bbd9953c910935fa0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 049/160 ] loss = 1.15032, acc = 0.74305\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0eafdad8cf064f0e9a1bcbaa625f06cb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 050/160 ] loss = 1.03293, acc = 0.81061\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"36b057ffc2ec41c0b56e477440cd87eb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 050/160 ] loss = 1.17649, acc = 0.73352\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bdb5ac04c7e54afe951b847ca0c38a54\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 051/160 ] loss = 1.01303, acc = 0.81986\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d5343ac8c99f4de0b0c34bff72260d18\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 051/160 ] loss = 1.14880, acc = 0.74463\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c3fb7664bc0c4b26a6f0d7230e806133\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 052/160 ] loss = 1.01253, acc = 0.81310\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"844622109fcd4cb691a99cc0a6563f23\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 052/160 ] loss = 1.22781, acc = 0.71872\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"62127914ee2e427fade787cae8d17cf8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 053/160 ] loss = 0.99873, acc = 0.82444\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c6ba5996f805453a984bfde47ce4b068\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 053/160 ] loss = 1.21948, acc = 0.71635\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bdf07b559ec64445a5fd370c60ebb7c1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 054/160 ] loss = 0.96617, acc = 0.83937\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"19dc37325cb94cc8a41ce5a023e15290\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 054/160 ] loss = 1.15727, acc = 0.74250\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"761e4ccde3b84e039076d6ce9caf695a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 055/160 ] loss = 0.96578, acc = 0.83738\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a42a920848824f66ab248f8bfb03ca7f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 055/160 ] loss = 1.19325, acc = 0.71584\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"464a2e8750844e5f88eabb42f60976e9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 056/160 ] loss = 0.95808, acc = 0.83977\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8ce86935972f463589df8ee9247645af\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 056/160 ] loss = 1.16353, acc = 0.74499\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"59f96f3258c54074abf0d663e183f83f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 057/160 ] loss = 0.94278, acc = 0.85171\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f11ebabab0dc493e89f38393165309e6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 057/160 ] loss = 1.13833, acc = 0.75918 -> best\\n\",\n      \"Best model found at epoch 56, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"32973137fa264d9f8a79cb2167b882dc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 058/160 ] loss = 0.95506, acc = 0.84216\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6fe9e1122e4d447687f41c133574a9a3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 058/160 ] loss = 1.12971, acc = 0.74636\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b1c5faef5ce141c4a61d2d835a23e06c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 059/160 ] loss = 0.94735, acc = 0.84246\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9ad883eefdcd4f998c6f8fb7410a4f35\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 059/160 ] loss = 1.17870, acc = 0.73478\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fa6b715c28c14caa805053a2bf1fbbb0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 060/160 ] loss = 0.93617, acc = 0.85171\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"60b5c1b465734336a824989e6139e3c7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 060/160 ] loss = 1.16764, acc = 0.74367\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bdbad5f7d3a440e3afa71db60823bd79\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 061/160 ] loss = 0.93495, acc = 0.84574\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9378f2b83d6b4fdeac1533c54563a34b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 061/160 ] loss = 1.15795, acc = 0.74353\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3f7dbc28190d4d70833ac2e3283f7570\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 062/160 ] loss = 0.93785, acc = 0.84713\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a4f0025a46d24f9281562491a4d7fe21\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 062/160 ] loss = 1.19971, acc = 0.72891\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9c526e3901dd4891bf7daefef8901f3a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 063/160 ] loss = 0.91453, acc = 0.85738\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d2ae1242c2024772a7d522d475c217f1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 063/160 ] loss = 1.33078, acc = 0.67269\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2077b13abcaa4e42a21ef3411d3c638c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 064/160 ] loss = 0.92354, acc = 0.85390\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"db83f5b33fbc4296b3da0b656dbfed62\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 064/160 ] loss = 1.15043, acc = 0.74481\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7ff7e6e5f75943279c512f324b3fd628\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 065/160 ] loss = 0.89066, acc = 0.87002\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7747059d163b45ff948040d780de521e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 065/160 ] loss = 1.28146, acc = 0.69284\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3d956366f61b44a595c509b848f1d808\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 066/160 ] loss = 0.88805, acc = 0.87022\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"998102ac19664169b741dcc106fca06b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 066/160 ] loss = 1.10752, acc = 0.77099 -> best\\n\",\n      \"Best model found at epoch 65, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"21412420699647f3be4dcc91ba49cc0c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 067/160 ] loss = 0.88720, acc = 0.86764\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"09d65298967a484e83f008b48e14058a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 067/160 ] loss = 1.17502, acc = 0.72786\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c1deb89a652b44109b17cae24f39dffd\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 068/160 ] loss = 0.86770, acc = 0.87679\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"46889097b5b94b2aa1048d73bbe7765f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 068/160 ] loss = 1.14892, acc = 0.74131\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ebf2fd0ea6bb4099889ebbc4dd3f19c0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 069/160 ] loss = 0.89333, acc = 0.86584\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"415762a16d9042d1b65b3259543158f5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 069/160 ] loss = 1.15612, acc = 0.74357\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"35a2af6bc676487eab054ca92de18049\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 070/160 ] loss = 0.87300, acc = 0.87550\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"642f9fe5f69540a2841c69ceda9dcca5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 070/160 ] loss = 1.11860, acc = 0.76697\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"956c57ca42d74d6fb4ac8b17b7593266\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 071/160 ] loss = 0.86790, acc = 0.87311\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9695c81c72994d58a5d21188212b7b03\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 071/160 ] loss = 1.10844, acc = 0.76084\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1a3e44739ed949ba9fff8b4f0c30a0cc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 072/160 ] loss = 0.86159, acc = 0.87818\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3d0d76a548954e45aa708660cade92f0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 072/160 ] loss = 1.11200, acc = 0.75755\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3fb9573d364b4a6fa56955aeab1d6fe8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 073/160 ] loss = 0.86761, acc = 0.87500\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"95968765c41e4a80a8a965b47c852b63\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 073/160 ] loss = 1.23975, acc = 0.71324\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2934fccd75984af4a66aaafd00c2530d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 074/160 ] loss = 0.85101, acc = 0.88037\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3ae322d73dbd496aa4ecd44ca587cdba\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 074/160 ] loss = 1.13057, acc = 0.75306\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c27ba6aa695b4d8c9c1f22401a2336bd\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 075/160 ] loss = 0.85918, acc = 0.87838\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5ebf02bfe61748729d06eae3918e4609\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 075/160 ] loss = 1.09048, acc = 0.77078\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9041ada0addd4c0f98a52788beddc3da\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 076/160 ] loss = 0.83917, acc = 0.88684\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bec4996615c74b1fb9d6918ad537206b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 076/160 ] loss = 1.15480, acc = 0.74700\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"80fccb48e99745c8b87cbb617f6b1f2b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 077/160 ] loss = 0.84336, acc = 0.88465\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d6b1091c27e0488da4bc1ec76c80dcf5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 077/160 ] loss = 1.12843, acc = 0.75609\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"99ca14e654cd41b7b244c764fa6c2cf4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 078/160 ] loss = 0.83446, acc = 0.88754\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cbfa4476500c46b29583de539309e526\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 078/160 ] loss = 1.09936, acc = 0.76779\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7dae1c865e7e43bda19bfb0fa656b1f0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 079/160 ] loss = 0.83775, acc = 0.88764\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"032e28c52f96450aaceb1c362f417d2e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 079/160 ] loss = 1.10707, acc = 0.76372\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d67399bdfd8145a6b9d2925e93fcf056\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 080/160 ] loss = 0.82845, acc = 0.89122\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d410b1ccb0964ed5a627ea2dcffba0bc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 080/160 ] loss = 1.09572, acc = 0.77108 -> best\\n\",\n      \"Best model found at epoch 79, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fcc07b5aaec149a8b9185f3574755099\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 081/160 ] loss = 0.82166, acc = 0.89530\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"77aa5dfb87bf4bd29a02b8ed52f2a5b2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 081/160 ] loss = 1.09460, acc = 0.76978\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"75d7c1b2cb7f4812b7972f5abc279a4d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 082/160 ] loss = 0.81979, acc = 0.89182\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8fbf9693c4c845bfb48d003c6b1fe721\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 082/160 ] loss = 1.10516, acc = 0.76175\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a2ab5db2d7e144e0b09b0893adeebb4c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 083/160 ] loss = 0.82247, acc = 0.89351\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"30b34a77ca4e46be96bb213a759ab2e6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 083/160 ] loss = 1.14180, acc = 0.75440\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"088a5cc97d0141878cfb26528dd76f51\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 084/160 ] loss = 0.81371, acc = 0.89461\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d12a06e8d12a488bba1c47baafa158b5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 084/160 ] loss = 1.14431, acc = 0.75102\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d587de44ca014ce39292e646cab839c0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 085/160 ] loss = 0.81471, acc = 0.89550\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"13d0411f0071430abc50f31deb338dda\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 085/160 ] loss = 1.10688, acc = 0.77067\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1cf8daec17174399a4c364492a0e50fe\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 086/160 ] loss = 0.80448, acc = 0.90028\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4ea98dc85a6849179416fda01ce15f94\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 086/160 ] loss = 1.09734, acc = 0.76687\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6b2b3779eae241ed9ac70dfc730b4528\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 087/160 ] loss = 0.79353, acc = 0.90187\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f1ec20405bc94735b90785b99929f319\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 087/160 ] loss = 1.09183, acc = 0.77853 -> best\\n\",\n      \"Best model found at epoch 86, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f79e5cf4ee834c5c997ce6d334337ebe\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 088/160 ] loss = 0.80102, acc = 0.90396\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"86b1ec3f8f3542f59b3f93563e5190f7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 088/160 ] loss = 1.07374, acc = 0.77325\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d0261c79da9b417cb15b1545625f6ec1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 089/160 ] loss = 0.78690, acc = 0.90794\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8f478f9a1d3d463698dd220ac0f36a56\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 089/160 ] loss = 1.08692, acc = 0.77167\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1fe9b456758b4eaf9ed9a15b38553116\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 090/160 ] loss = 0.79078, acc = 0.90575\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d3291a8f812c434e91e4ce85e05fe802\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 090/160 ] loss = 1.11106, acc = 0.76877\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d9b45af12032421487519c990743a682\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 091/160 ] loss = 0.78969, acc = 0.90456\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3f6a581da336408b8c901b5dde2487c3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 091/160 ] loss = 1.09332, acc = 0.77880 -> best\\n\",\n      \"Best model found at epoch 90, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4bd5be4d58434e4893edfc85ac70aaad\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 092/160 ] loss = 0.78234, acc = 0.90595\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bf16061f4065434691e344359e4d11cd\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 092/160 ] loss = 1.07267, acc = 0.77853\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"edb1fd9d640542508b13577affc12600\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 093/160 ] loss = 0.78417, acc = 0.90575\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5129ef734ac842e9a9d7c334f12a1b76\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 093/160 ] loss = 1.07717, acc = 0.77551\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c45f9f9bbf5643d48eebe93d88a7f465\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 094/160 ] loss = 0.79302, acc = 0.90237\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b5c0635b83de453c81a4af82f2f35acc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 094/160 ] loss = 1.06869, acc = 0.78259 -> best\\n\",\n      \"Best model found at epoch 93, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c0bf420cd9a84140be87e887b88023bb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 095/160 ] loss = 0.78844, acc = 0.90804\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"99830f37411441b9b3ce6652208b7588\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 095/160 ] loss = 1.07601, acc = 0.77711\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"59946779a4f546d3a6ab2e3a4482cb23\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 096/160 ] loss = 0.77773, acc = 0.91212\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b3a9cbcd213e4a21a92b596e88b392bb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 096/160 ] loss = 1.08312, acc = 0.78179\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"188e96d532034c30a2634e3ad9175417\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 097/160 ] loss = 0.78598, acc = 0.90525\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5f1d403a73e046eea0bfc4f3f6c5efbc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 097/160 ] loss = 1.05560, acc = 0.78529 -> best\\n\",\n      \"Best model found at epoch 96, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"248ffcaf9c12431ab466baf458b71202\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 098/160 ] loss = 0.78251, acc = 0.90794\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1a82e54ba8194c7bbf21a5103f945bf9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 098/160 ] loss = 1.06603, acc = 0.78264\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c4c4274d1f2e40d093e84466894716b3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 099/160 ] loss = 0.77832, acc = 0.90565\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a577f0d704be44b8a7df1b353e36c4dd\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 099/160 ] loss = 1.06259, acc = 0.78504\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b84bc53616d7476092321cfe82f04713\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 100/160 ] loss = 0.76239, acc = 0.91451\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6c632e07328f4f7aab8ec6597469ff24\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 100/160 ] loss = 1.09414, acc = 0.77323\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"aef12f1de5d1422ebca933df78bbd3a1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 101/160 ] loss = 0.75427, acc = 0.91879\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"532fd1840c294dbb9fd5f763cee46327\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 101/160 ] loss = 1.06107, acc = 0.78641 -> best\\n\",\n      \"Best model found at epoch 100, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c19ac60f1bb94f5dbc19afd36feab6c0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 102/160 ] loss = 0.77373, acc = 0.91023\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0b1d75e0452c4b8cb86fb0b275b07f95\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 102/160 ] loss = 1.08056, acc = 0.77656\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c9d9ad5f4c3243e1b2c963c3001c9213\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 103/160 ] loss = 0.75477, acc = 0.92158\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a3649e2316de466d95c1993d1bb82fe2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 103/160 ] loss = 1.09906, acc = 0.77958\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e6ecd940e083426da55e35c3d27b0c91\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 104/160 ] loss = 0.76030, acc = 0.91441\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cd5c15df6f8d41f78fb6264648a2df73\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 104/160 ] loss = 1.08807, acc = 0.77380\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5d35da1a454d48a581cc8e3965fa9fa7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 105/160 ] loss = 0.75504, acc = 0.91779\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f78b5e5634c1477f97dfac377ef7fbbb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 105/160 ] loss = 1.08018, acc = 0.77812\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"aa2621ff04d54744bc69e6424b3339e9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 106/160 ] loss = 0.75462, acc = 0.91909\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"64eb304cf42a4fb5a45a080417a1a76f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 106/160 ] loss = 1.09229, acc = 0.77828\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7c4620fc51a542faa044806c0c925432\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 107/160 ] loss = 0.74741, acc = 0.91909\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d5f729b8b1d449bf80a36791c2794aba\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 107/160 ] loss = 1.07259, acc = 0.78428\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"61f3c6069f864157ad2c899f8f6d37d0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 108/160 ] loss = 0.75119, acc = 0.91750\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b82f57a3f3bd456daa29d13233791f34\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 108/160 ] loss = 1.05531, acc = 0.78922 -> best\\n\",\n      \"Best model found at epoch 107, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7d7ff6e57d194785844ef0e7888a8f3f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 109/160 ] loss = 0.76300, acc = 0.91580\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bfd86832af3a4f7f9936768105e88c7a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 109/160 ] loss = 1.08173, acc = 0.77439\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8b6ada81f1b24572a1baaf013f3f88ea\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 110/160 ] loss = 0.75091, acc = 0.92138\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b0385079339a4e12be2f265137cf8ed2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 110/160 ] loss = 1.05368, acc = 0.79027 -> best\\n\",\n      \"Best model found at epoch 109, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c1cb50289dc74213ae3e006faf4bc7ed\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 111/160 ] loss = 0.74197, acc = 0.92446\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"31e67848afb442418036a5be6ab4865b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 111/160 ] loss = 1.03188, acc = 0.79438 -> best\\n\",\n      \"Best model found at epoch 110, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a215cc3072644ac3925a7d9b3a694c15\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 112/160 ] loss = 0.74874, acc = 0.92178\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"db000afc9e4e45ef8de788f9791e15e5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 112/160 ] loss = 1.04468, acc = 0.78762\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0723b2eead6b4c15a52ff04b268d4188\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 113/160 ] loss = 0.75232, acc = 0.91998\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8af9059cc6c3401e9a50ab3f7d231c82\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 113/160 ] loss = 1.05186, acc = 0.78865\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6ca2a760b1f64052a061c8e9e4b6be62\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 114/160 ] loss = 0.75034, acc = 0.91988\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"08f7f5242e21476ebfc08d99290f0b8f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 114/160 ] loss = 1.06980, acc = 0.78047\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bb6aeb41c6d4462db0cedd6b165a8bd0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 115/160 ] loss = 0.74220, acc = 0.92416\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b467d04a517749bf9a55435e914e6730\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 115/160 ] loss = 1.07463, acc = 0.77793\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c0a2f5e002db413cb286241f1d4be9b2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 116/160 ] loss = 0.72882, acc = 0.92844\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a44c037127734ec9b59bb309a1d7f170\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 116/160 ] loss = 1.04773, acc = 0.78837\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4ebda1c073d54d948615735bfef50f17\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 117/160 ] loss = 0.74170, acc = 0.92178\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"02d6936163254e508c0b2f97e84aa835\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 117/160 ] loss = 1.09954, acc = 0.77160\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"be3fa1d4d3ea40548ced83569951c601\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 118/160 ] loss = 0.73644, acc = 0.92307\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f802d6a4e64c448bb2c64bc6c515a68e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 118/160 ] loss = 1.10427, acc = 0.76500\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fea52533e4a14c03a22d1c0b44f2134d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 119/160 ] loss = 0.73467, acc = 0.92536\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"38e7cbedec8344719c3bfe958769e385\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 119/160 ] loss = 1.04691, acc = 0.79146\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a066eeac0c1d42ec85a57652c0c4b571\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 120/160 ] loss = 0.74454, acc = 0.92227\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"697b9f2ec19b4a1ca1736ebd7c245c5f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 120/160 ] loss = 1.10451, acc = 0.77113\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ac683153937b40f883cdd321fe0bfe64\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 121/160 ] loss = 0.72916, acc = 0.92755\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e5e1003ddd544994bf1e50e256f520fd\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 121/160 ] loss = 1.03746, acc = 0.79166\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d48d89926eea4c22bd949acbec1f6a9f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 122/160 ] loss = 0.72943, acc = 0.92884\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0ad85eb01b8e4157bb0d2af9985fec67\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 122/160 ] loss = 1.03924, acc = 0.79173\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5257a16c80744211ada6b08237b1caa7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 123/160 ] loss = 0.73336, acc = 0.92546\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2662dcc94c754587b3bb2634ff69bd78\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 123/160 ] loss = 1.04476, acc = 0.78680\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"975f197e971d4cabb195fcc4932049f5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 124/160 ] loss = 0.72692, acc = 0.92685\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7742b1855a034224897d41fefef2cbca\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 124/160 ] loss = 1.03715, acc = 0.79289\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f47300e89e8b4e7589ebf9fddbe7eb66\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 125/160 ] loss = 0.71901, acc = 0.93153\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f1e4cc36831a4098976823a745593b2e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 125/160 ] loss = 1.05223, acc = 0.79029\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"341bf46cce6a4c158c82a8052d363beb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 126/160 ] loss = 0.73094, acc = 0.92635\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"14e2b6b91e4544f8826df08e7770c730\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 126/160 ] loss = 1.04389, acc = 0.79198\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6155f1ab0eb44698ba9c480b01edd475\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 127/160 ] loss = 0.73259, acc = 0.92576\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0a60b6e0e1514617955bd5829245ae08\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 127/160 ] loss = 1.03004, acc = 0.79824 -> best\\n\",\n      \"Best model found at epoch 126, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d8a4eff54cf24d918a6aca6a252bb997\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 128/160 ] loss = 0.72030, acc = 0.93113\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"afd43fcef2ab483e92ae47e187991a37\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 128/160 ] loss = 1.03712, acc = 0.79966 -> best\\n\",\n      \"Best model found at epoch 127, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"be2350838ae94a92acc72be77b48d8a1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 129/160 ] loss = 0.71741, acc = 0.93322\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ad8cef9abc284f64b9d02b95f7d3f934\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 129/160 ] loss = 1.04193, acc = 0.78810\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"139dcf4e64e04d2aa46fdb7661664769\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 130/160 ] loss = 0.72578, acc = 0.92725\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1d2c85caada2440aa1688e2157f93f1f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 130/160 ] loss = 1.04757, acc = 0.78728\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"18956965d048438c937e7c63ab1fa6b8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 131/160 ] loss = 0.71299, acc = 0.93163\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3e15d7feb5b74ae2afaa28bf1b8fbb66\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 131/160 ] loss = 1.04832, acc = 0.79084\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9146806877684837877c3bf09604bf88\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 132/160 ] loss = 0.70876, acc = 0.93551\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e00014f71be54c5b9b2fe2f0cd8a196c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 132/160 ] loss = 1.02976, acc = 0.79623\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bda683addc654bf199d06441da717439\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 133/160 ] loss = 0.71819, acc = 0.93242\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"02ce3d58f1c14594ac864afb88002594\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 133/160 ] loss = 1.02843, acc = 0.79628\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d1574948834846d38e9243a1e040354b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 134/160 ] loss = 0.71746, acc = 0.92894\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"717e32c6a6d14517a5f8ca7dd5fa067d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 134/160 ] loss = 1.02442, acc = 0.79991 -> best\\n\",\n      \"Best model found at epoch 133, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2809d2da0ee4484a809294cf3c77ec54\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 135/160 ] loss = 0.71771, acc = 0.93123\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7beedaffe5ff46e69821eff5d160a739\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 135/160 ] loss = 1.02847, acc = 0.80180 -> best\\n\",\n      \"Best model found at epoch 134, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ea4c4dd5c0434a858f79c8d605c56503\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 136/160 ] loss = 0.71600, acc = 0.93362\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2d0dc2a597c84e57aa44bb806d93e40d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 136/160 ] loss = 1.01812, acc = 0.80210 -> best\\n\",\n      \"Best model found at epoch 135, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"591386a7a3a84eedac980d219e807147\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 137/160 ] loss = 0.70519, acc = 0.93730\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"571bb483843a4c1998f7a3b98c7bbbe8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 137/160 ] loss = 1.03327, acc = 0.79525\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cf1c705fdce54940a3c109c190712169\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 138/160 ] loss = 0.71435, acc = 0.93143\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ff7594ea64e24546ae8338c55dc932c9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 138/160 ] loss = 1.04855, acc = 0.78728\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0c7cf8af12db40a2a58df231b99239ee\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 139/160 ] loss = 0.71057, acc = 0.93710\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2043d16930674c719710f775f26badb0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 139/160 ] loss = 1.05299, acc = 0.79157\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"141cd04a37b64c72894300a784784f5c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 140/160 ] loss = 0.71831, acc = 0.92964\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bc6165d314774a4485853cb71fe17193\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 140/160 ] loss = 1.05431, acc = 0.78673\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6cc6aa1a98ee46628d07429afed9cac8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 141/160 ] loss = 0.71308, acc = 0.93004\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e827ba0c3a4249e7afb287a89c2eb229\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 141/160 ] loss = 1.03862, acc = 0.79104\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"65855eca1db94a18aeb3864fd0af13ad\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 142/160 ] loss = 0.70770, acc = 0.93451\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"647dec2a86454cc8b751f41342756f1b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 142/160 ] loss = 1.02554, acc = 0.80082\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"be6b3f49c84246ba9d1fc50239a63507\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 143/160 ] loss = 0.70885, acc = 0.93501\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5f6584d7c9e44fe4a8e0ce28d1296190\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 143/160 ] loss = 1.03075, acc = 0.79397\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"13d7b53904d04c179344df985ac122e7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 144/160 ] loss = 0.70756, acc = 0.93481\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9a436a212ae94358abda8615edaa2e15\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 144/160 ] loss = 1.03246, acc = 0.79776\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bac736da7fdc48bebd6766ea88f8f897\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 145/160 ] loss = 0.70425, acc = 0.93541\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e55284ca54f14b7c934524e559f7e2c2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 145/160 ] loss = 1.01706, acc = 0.80377 -> best\\n\",\n      \"Best model found at epoch 144, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1610d7d535344afab28dc30caa66e237\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 146/160 ] loss = 0.70382, acc = 0.93362\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"62f8f41f8a0b4c7b8a8e78d3f7afb81d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 146/160 ] loss = 1.05401, acc = 0.78321\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e4525bee79354ab09ca1c4ebd5e3a3a7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 147/160 ] loss = 0.70425, acc = 0.93591\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"032976d48f424794b76ae395e687b87a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 147/160 ] loss = 1.02553, acc = 0.79248\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"23121448dbd040ed88288b4f209d999e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 148/160 ] loss = 0.70602, acc = 0.93561\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"582c14fd6c464c359fc394891dbd8b27\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 148/160 ] loss = 1.05209, acc = 0.78511\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9bca1adef8074db6be94afe46b41ca27\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 149/160 ] loss = 0.70824, acc = 0.93511\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"832f61368b814a3fa2f0ee4d3b9f3e7c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 149/160 ] loss = 1.02502, acc = 0.79824\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1c16efc4d357401e86f02d885ded7cc6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 150/160 ] loss = 0.69189, acc = 0.94108\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"50aca6a220324d958d1f39b28e839be6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 150/160 ] loss = 1.01661, acc = 0.80494 -> best\\n\",\n      \"Best model found at epoch 149, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5a1c254e4752473b88e3feef624a706e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 151/160 ] loss = 0.69881, acc = 0.93680\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3dbaeb0bb83243a495455ebe534da8d5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 151/160 ] loss = 1.03438, acc = 0.79463\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"890d866be0d54f44b057479a28938a3a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 152/160 ] loss = 0.70741, acc = 0.93382\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"abb4e781685b45bd9b92bcee0c5482f6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 152/160 ] loss = 1.01765, acc = 0.80429\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ddd6a2f6e02b48c6b2cc550fcd9f14e2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 153/160 ] loss = 0.71013, acc = 0.93342\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"28d0786a9f754463b37ebff39282cf0e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 153/160 ] loss = 1.03263, acc = 0.79381\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2c1e88b51a194564be0e99bf7842a3b2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 154/160 ] loss = 0.69577, acc = 0.93899\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a4f65575f6624e2d8dcfea69c66621e3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 154/160 ] loss = 1.01710, acc = 0.80644 -> best\\n\",\n      \"Best model found at epoch 153, saving model\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f008b3fd7e2f461b838467a2d6a760b4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 155/160 ] loss = 0.69474, acc = 0.93989\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8b2a66b87c864b37bbfab7627ec9a3b1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 155/160 ] loss = 1.02956, acc = 0.79077\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7acd490870c34e01a988894cf20eb7c4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 156/160 ] loss = 0.69590, acc = 0.93989\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bbd4e09ca68a46bc888a68fe1b7e3bfa\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 156/160 ] loss = 1.00959, acc = 0.80331\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a109b3d3cc5f4d3fb8c07b1067698a09\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 157/160 ] loss = 0.69347, acc = 0.93999\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5f85913c1407467f86d17faacf817fd0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 157/160 ] loss = 1.02494, acc = 0.79655\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5ac1c2e358ac4903868938ed444c83a4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 158/160 ] loss = 0.69565, acc = 0.94029\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5d11bf33c1a549128cbf56187ea97f3a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 158/160 ] loss = 1.04054, acc = 0.79692\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f80ae13915bf46f28ba935037fb73ce2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 159/160 ] loss = 0.69155, acc = 0.94108\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e6799504855e4a8faf6feafb0b546780\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 159/160 ] loss = 1.01270, acc = 0.80436\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fd4ed78fb5cb4695b386424c13c9962d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/157 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Train | 160/160 ] loss = 0.70488, acc = 0.93461\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"eb0932ab5b334720a48c9cdf2400f6c5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/57 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[ Valid | 160/160 ] loss = 1.03627, acc = 0.79856\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Create a SummaryWriter object to write data to TensorBoard and the results are stored in ./runs folder\\n\",\n    \"writer = SummaryWriter()\\n\",\n    \"\\n\",\n    \"# Initialize trackers, these are not parameters and should not be changed\\n\",\n    \"stale = 0\\n\",\n    \"best_acc = 0\\n\",\n    \"\\n\",\n    \"for epoch in range(n_epochs):\\n\",\n    \"\\n\",\n    \"    # ---------- Training ----------\\n\",\n    \"    # Make sure the model is in train mode before training.\\n\",\n    \"    model.train()\\n\",\n    \"\\n\",\n    \"    # These are used to record information in training.\\n\",\n    \"    train_loss = []\\n\",\n    \"    train_accs = []\\n\",\n    \"\\n\",\n    \"    for batch in tqdm(train_loader):\\n\",\n    \"        # A batch consists of image data and corresponding labels.\\n\",\n    \"        imgs, labels = batch\\n\",\n    \"\\n\",\n    \"        #imgs = imgs.half()  # image.dtype: torch.float32 => torch.float16\\n\",\n    \"        #print(imgs.dtype)\\n\",\n    \"        #print(imgs.shape,labels.shape)\\n\",\n    \"\\n\",\n    \"        # Forward the data. (Make sure data and model are on the same device.)\\n\",\n    \"        logits = model(imgs.to(device))\\n\",\n    \"\\n\",\n    \"        # Calculate the cross-entropy loss.\\n\",\n    \"        # We don't need to apply softmax before computing cross-entropy as it is done automatically.\\n\",\n    \"        loss = criterion(logits, labels.to(device))\\n\",\n    \"\\n\",\n    \"        # Gradients stored in the parameters in the previous step should be cleared out first.\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        # Compute the gradients for parameters.\\n\",\n    \"        loss.backward()\\n\",\n    \"\\n\",\n    \"        # Clip the gradient norms for stable training.\\n\",\n    \"        grad_norm = nn.utils.clip_grad_norm_(model.parameters(), max_norm=10)\\n\",\n    \"\\n\",\n    \"        # Update the parameters with computed gradients.\\n\",\n    \"        optimizer.step()\\n\",\n    \"\\n\",\n    \"        # Compute the accuracy for current batch.\\n\",\n    \"        acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n    \"\\n\",\n    \"        # Record the loss and accuracy.\\n\",\n    \"        train_loss.append(loss.item())\\n\",\n    \"        train_accs.append(acc)\\n\",\n    \"\\n\",\n    \"    train_loss = sum(train_loss) / len(train_loss)\\n\",\n    \"    train_acc = sum(train_accs) / len(train_accs)\\n\",\n    \"\\n\",\n    \"    # Print the information.\\n\",\n    \"    print(f\\\"[ Train | {epoch + 1:03d}/{n_epochs:03d} ] loss = {train_loss:.5f}, acc = {train_acc:.5f}\\\")\\n\",\n    \"\\n\",\n    \"    # ---------- Validation ----------\\n\",\n    \"    # Make sure the model is in eval mode so that some modules like dropout are disabled and work normally.\\n\",\n    \"    model.eval()\\n\",\n    \"\\n\",\n    \"    # These are used to record information in validation.\\n\",\n    \"    valid_loss = []\\n\",\n    \"    valid_accs = []\\n\",\n    \"\\n\",\n    \"    # Iterate the validation set by batches.\\n\",\n    \"    for batch in tqdm(valid_loader):\\n\",\n    \"\\n\",\n    \"        # A batch consists of image data and corresponding labels.\\n\",\n    \"        imgs, labels = batch\\n\",\n    \"        #imgs = imgs.half()\\n\",\n    \"\\n\",\n    \"        # We don't need gradient in validation.\\n\",\n    \"        # Using torch.no_grad() accelerates the forward process.\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            logits = model(imgs.to(device))\\n\",\n    \"\\n\",\n    \"        # We can still compute the loss (but not the gradient).\\n\",\n    \"        loss = criterion(logits, labels.to(device))\\n\",\n    \"\\n\",\n    \"        # Compute the accuracy for current batch.\\n\",\n    \"        acc = (logits.argmax(dim=-1) == labels.to(device)).float().mean()\\n\",\n    \"\\n\",\n    \"        # Record the loss and accuracy.\\n\",\n    \"        valid_loss.append(loss.item())\\n\",\n    \"        valid_accs.append(acc)\\n\",\n    \"        #break\\n\",\n    \"\\n\",\n    \"    # The average loss and accuracy for entire validation set is the average of the recorded values.\\n\",\n    \"    valid_loss = sum(valid_loss) / len(valid_loss)\\n\",\n    \"    valid_acc = sum(valid_accs) / len(valid_accs)\\n\",\n    \"\\n\",\n    \"    # Print the information.\\n\",\n    \"    #print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f}\\\")\\n\",\n    \"\\n\",\n    \"    writer.add_scalar('Acc/train', train_acc, epoch)\\n\",\n    \"    writer.add_scalar('Acc/valid', valid_acc, epoch)\\n\",\n    \"    writer.add_scalar('lr', optimizer.state_dict()['param_groups'][0]['lr'], epoch)\\n\",\n    \"\\n\",\n    \"    # Update logs\\n\",\n    \"    if valid_acc > best_acc:\\n\",\n    \"        with open(f\\\"./{_exp_name}_log.txt\\\",\\\"a\\\"):\\n\",\n    \"            print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f} -> best\\\")\\n\",\n    \"    else:\\n\",\n    \"        with open(f\\\"./{_exp_name}_log.txt\\\",\\\"a\\\"):\\n\",\n    \"            print(f\\\"[ Valid | {epoch + 1:03d}/{n_epochs:03d} ] loss = {valid_loss:.5f}, acc = {valid_acc:.5f}\\\")\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"    # Save models\\n\",\n    \"    if valid_acc > best_acc:\\n\",\n    \"        print(f\\\"Best model found at epoch {epoch}, saving model\\\")\\n\",\n    \"        torch.save(model.state_dict(), f\\\"{_exp_name}_best.ckpt\\\") # only save best to prevent output memory exceed error\\n\",\n    \"        best_acc = valid_acc\\n\",\n    \"        stale = 0\\n\",\n    \"    else:\\n\",\n    \"        stale += 1\\n\",\n    \"        if stale > patience:\\n\",\n    \"            print(f\\\"No improvment {patience} consecutive epochs, early stopping\\\")\\n\",\n    \"            break\\n\",\n    \"\\n\",\n    \"    # Update learning rate based on the best_acc so far\\n\",\n    \"    scheduler.step(best_acc)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Tensorboard\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 82,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T15:54:54.849446Z\",\n     \"start_time\": \"2023-04-19T15:54:54.847962Z\"\n    }\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# %reload_ext tensorboard\\n\",\n    \"# %tensorboard --logdir=./runs/\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rw2y9Uhw7wr2\"\n   },\n   \"source\": [\n    \"# Dataloader for test\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 83,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T15:54:54.862790Z\",\n     \"start_time\": \"2023-04-19T15:54:54.850718Z\"\n    },\n    \"id\": \"B9QNdHIXVaVP\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Construct test datasets.\\n\",\n    \"# The argument \\\"loader\\\" tells how torchvision reads the data.\\n\",\n    \"test_set = FoodDataset(\\\"./test\\\", tfm=test_tfm)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False, num_workers=0, pin_memory=True)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"G31uyjpvVaVP\"\n   },\n   \"source\": [\n    \"# Testing and generate prediction CSV\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 84,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T15:55:05.445460Z\",\n     \"start_time\": \"2023-04-19T15:54:54.863701Z\"\n    },\n    \"id\": \"bpLtxx5FVaVP\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f0ef8e8f1ad74fbf85d2c94acee61322\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/47 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"model_best = Classifier().to(device)\\n\",\n    \"model_best.load_state_dict(torch.load(f\\\"{_exp_name}_best.ckpt\\\"))\\n\",\n    \"\\n\",\n    \"model_best.eval()\\n\",\n    \"prediction = []\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for data,_ in tqdm(test_loader):\\n\",\n    \"        test_pred = model_best(data.to(device))\\n\",\n    \"        test_label = np.argmax(test_pred.cpu().data.numpy(), axis=1)\\n\",\n    \"        prediction += test_label.squeeze().tolist()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 85,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T15:55:05.453689Z\",\n     \"start_time\": \"2023-04-19T15:55:05.446291Z\"\n    },\n    \"id\": \"fKupB3VUVaVQ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create test csv\\n\",\n    \"def pad4(i):\\n\",\n    \"    return \\\"0\\\"*(4-len(str(i)))+str(i)\\n\",\n    \"df = pd.DataFrame()\\n\",\n    \"df[\\\"Id\\\"] = [pad4(i) for i in range(len(test_set))]\\n\",\n    \"df[\\\"Category\\\"] = prediction\\n\",\n    \"df.to_csv(\\\"submission.csv\\\",index = False)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ivk0hrE-V8Cu\"\n   },\n   \"source\": [\n    \"# Q1. Augmentation Implementation\\n\",\n    \"## Implement augmentation by finishing train_tfm in the code with image size of your choice. \\n\",\n    \"## Directly copy the following block and paste it on GradeScope after you finish the code\\n\",\n    \"### Your train_tfm must be capable of producing 5+ different results when given an identical image multiple times.\\n\",\n    \"### Your  train_tfm in the report can be different from train_tfm in your training code.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 86,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T15:55:05.456044Z\",\n     \"start_time\": \"2023-04-19T15:55:05.454467Z\"\n    },\n    \"id\": \"GSfKNo42WjKm\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"train_tfm = transforms.Compose([\\n\",\n    \"    # Resize the image into a fixed shape (height = width = 128)\\n\",\n    \"    transforms.Resize((128, 128)),\\n\",\n    \"    # You can add some transforms here.\\n\",\n    \"    transforms.ToTensor(),\\n\",\n    \"])\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3HemRgZ6WwRM\"\n   },\n   \"source\": [\n    \"# Q2. Visual Representations Implementation\\n\",\n    \"## Visualize the learned visual representations of the CNN model on the validation set by implementing t-SNE (t-distributed Stochastic Neighbor Embedding) on the output of both top & mid layers (You need to submit 2 images). \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 87,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T15:55:05.544741Z\",\n     \"start_time\": \"2023-04-19T15:55:05.456895Z\"\n    },\n    \"id\": \"iXd_SZnB2Wg8\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Classifier(\\n\",\n      \"  (cnn): Sequential(\\n\",\n      \"    (0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (2): ReLU()\\n\",\n      \"    (3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (4): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (5): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (6): ReLU()\\n\",\n      \"    (7): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (8): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (9): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (10): ReLU()\\n\",\n      \"    (11): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (12): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (13): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (14): ReLU()\\n\",\n      \"    (15): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"    (16): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\\n\",\n      \"    (17): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\\n\",\n      \"    (18): ReLU()\\n\",\n      \"    (19): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\\n\",\n      \"  )\\n\",\n      \"  (fc): Sequential(\\n\",\n      \"    (0): Dropout(p=0.5, inplace=False)\\n\",\n      \"    (1): Linear(in_features=8192, out_features=1024, bias=True)\\n\",\n      \"    (2): ReLU()\\n\",\n      \"    (3): Dropout(p=0.5, inplace=False)\\n\",\n      \"    (4): Linear(in_features=1024, out_features=512, bias=True)\\n\",\n      \"    (5): ReLU()\\n\",\n      \"    (6): Dropout(p=0.5, inplace=False)\\n\",\n      \"    (7): Linear(in_features=512, out_features=11, bias=True)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import torch\\n\",\n    \"import numpy as np\\n\",\n    \"from sklearn.manifold import TSNE\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import matplotlib.cm as cm\\n\",\n    \"import torch.nn as nn\\n\",\n    \"\\n\",\n    \"device = 'cuda' if torch.cuda.is_available() else 'cpu'\\n\",\n    \"\\n\",\n    \"# Load the trained model\\n\",\n    \"model = Classifier().to(device)\\n\",\n    \"state_dict = torch.load(f\\\"{_exp_name}_best.ckpt\\\")\\n\",\n    \"model.load_state_dict(state_dict)\\n\",\n    \"model.eval()\\n\",\n    \"\\n\",\n    \"print(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 88,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-19T16:00:04.697965Z\",\n     \"start_time\": \"2023-04-19T15:55:05.545736Z\"\n    },\n    \"id\": \"QcBKUNfc3BeL\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 57/57 [00:11<00:00,  4.91it/s]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 1000x800 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Load the vaildation set defined by TA\\n\",\n    \"valid_set = FoodDataset(\\\"./valid\\\", tfm=test_tfm)\\n\",\n    \"valid_loader = DataLoader(valid_set, batch_size=64, shuffle=False, num_workers=0, pin_memory=True)\\n\",\n    \"\\n\",\n    \"# Extract the representations for the specific layer of model\\n\",\n    \"index = 17 # You should find out the index of layer which is defined as \\\"top\\\" or 'mid' layer of your model.\\n\",\n    \"features = []\\n\",\n    \"labels = []\\n\",\n    \"for batch in tqdm(valid_loader):\\n\",\n    \"    imgs, lbls = batch\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        logits = model.cnn[:index](imgs.to(device))\\n\",\n    \"        logits = logits.view(logits.size()[0], -1)\\n\",\n    \"    labels.extend(lbls.cpu().numpy())\\n\",\n    \"    logits = np.squeeze(logits.cpu().numpy())\\n\",\n    \"    features.extend(logits)\\n\",\n    \"    \\n\",\n    \"features = np.array(features)\\n\",\n    \"colors_per_class = cm.rainbow(np.linspace(0, 1, 11))\\n\",\n    \"\\n\",\n    \"# Apply t-SNE to the features\\n\",\n    \"features_tsne = TSNE(n_components=2, init='pca', random_state=42).fit_transform(features)\\n\",\n    \"\\n\",\n    \"# Plot the t-SNE visualization\\n\",\n    \"plt.figure(figsize=(10, 8))\\n\",\n    \"for label in np.unique(labels):\\n\",\n    \"    plt.scatter(features_tsne[labels == label, 0], features_tsne[labels == label, 1], label=label, s=5)\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"DL\",\n   \"language\": \"python\",\n   \"name\": \"dl\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"toc\": {\n   \"base_numbering\": 1,\n   \"nav_menu\": {\n    \"height\": \"329px\",\n    \"width\": \"242px\"\n   },\n   \"number_sections\": true,\n   \"sideBar\": true,\n   \"skip_h1_title\": false,\n   \"title_cell\": \"Table of Contents\",\n   \"title_sidebar\": \"Contents\",\n   \"toc_cell\": false,\n   \"toc_position\": {\n    \"height\": \"calc(100% - 180px)\",\n    \"left\": \"10px\",\n    \"top\": \"150px\",\n    \"width\": \"364.59375px\"\n   },\n   \"toc_section_display\": true,\n   \"toc_window_display\": false\n  },\n  \"toc-autonumbering\": true,\n  \"toc-showcode\": true,\n  \"varInspector\": {\n   \"cols\": {\n    \"lenName\": 16,\n    \"lenType\": 16,\n    \"lenVar\": 40\n   },\n   \"kernels_config\": {\n    \"python\": {\n     \"delete_cmd_postfix\": \"\",\n     \"delete_cmd_prefix\": \"del \",\n     \"library\": \"var_list.py\",\n     \"varRefreshCmd\": \"print(var_dic_list())\"\n    },\n    \"r\": {\n     \"delete_cmd_postfix\": \") \",\n     \"delete_cmd_prefix\": \"rm(\",\n     \"library\": \"var_list.r\",\n     \"varRefreshCmd\": \"cat(var_dic_list()) \"\n    }\n   },\n   \"position\": {\n    \"height\": \"304px\",\n    \"left\": \"722px\",\n    \"right\": \"20px\",\n    \"top\": \"-14px\",\n    \"width\": \"383px\"\n   },\n   \"types_to_exclude\": [\n    \"module\",\n    \"function\",\n    \"builtin_function_or_method\",\n    \"instance\",\n    \"_Feature\"\n   ],\n   \"window_display\": false\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW03/Q1/README.md",
    "content": "plot_transforms 文件是 torchvision 官方文档提供的示例代码, 尝试运行它, 可以对变换有更多的理解，我增加了一些注释和小部分扩展的函数演示。\n"
  },
  {
    "path": "HW03/Q1/plot_transforms.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:38.351891Z\",\n     \"start_time\": \"2023-04-02T12:48:38.210902Z\"\n    }\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"%matplotlib inline\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"\\n\",\n    \"# Illustration of transforms\\n\",\n    \"\\n\",\n    \"This example illustrates the various transforms available in `the\\n\",\n    \"torchvision.transforms module <transforms>`.\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:38.831718Z\",\n     \"start_time\": \"2023-04-02T12:48:38.352570Z\"\n    }\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from PIL import Image\\t\\t\\t\\t# Image 处理图像\\n\",\n    \"from pathlib import Path\\t\\t\\t# Path 处理文件路径\\n\",\n    \"import matplotlib.pyplot as plt\\t\\t# 绘图\\n\",\n    \"import numpy as np\\t\\t\\t\\t\\t# 处理数组和矩阵\\n\",\n    \"\\n\",\n    \"import torch\\t\\t\\t\\t\\t\\t# pytorch 深度学习\\n\",\n    \"import torchvision.transforms as T\\t# torchvision.transforms 用于对图像进行各种变换\\n\",\n    \"\\n\",\n    \"# 设置一些绘图参数，savefig.bbox 用于控制图像保存时的边框大小\\n\",\n    \"plt.rcParams[\\\"savefig.bbox\\\"] = 'tight'\\n\",\n    \"\\n\",\n    \"# 打开 assets/astronaut.jpg 路径下的图像文件，并将其赋值给 orig_img 变量\\n\",\n    \"orig_img = Image.open(Path('assets') / 'astronaut.jpg')\\n\",\n    \"\\n\",\n    \"# if you change the seed, make sure that the randomly-applied transforms\\n\",\n    \"# properly show that the image can be both transformed and *not* transformed!\\n\",\n    \"torch.manual_seed(0)\\n\",\n    \"\\n\",\n    \"# 定义绘图函数\\n\",\n    \"def plot(imgs, with_orig=True, row_title=None, **imshow_kwargs):\\n\",\n    \"\\t# 判断 imgs 是否是一个二维列表，如果不是，则将其转换为二维列表\\n\",\n    \"    if not isinstance(imgs[0], list):\\n\",\n    \"        # Make a 2d grid even if there's just 1 row\\n\",\n    \"        imgs = [imgs]\\n\",\n    \"\\t\\n\",\n    \"\\t# 根据 with_orig 参数确定网格的列数，并使用 plt.subplots 方法创建一个画布和一组子图\\n\",\n    \"    num_rows = len(imgs)\\n\",\n    \"    num_cols = len(imgs[0]) + with_orig\\n\",\n    \"    fig, axs = plt.subplots(nrows=num_rows, ncols=num_cols, squeeze=False)\\n\",\n    \"    \\n\",\n    \"    # 遍历每一行和每一列的图像，并使用 ax.imshow 方法将其显示在对应的子图上，并使用 ax.set 方法去掉坐标轴和刻度\\n\",\n    \"    for row_idx, row in enumerate(imgs):\\n\",\n    \"        row = [orig_img] + row if with_orig else row\\n\",\n    \"        for col_idx, img in enumerate(row):\\n\",\n    \"            ax = axs[row_idx, col_idx]\\n\",\n    \"            ax.imshow(np.asarray(img), **imshow_kwargs)\\n\",\n    \"            ax.set(xticklabels=[], yticklabels=[], xticks=[], yticks=[])\\n\",\n    \"\\t\\n\",\n    \"\\t# 如果 with_orig 为真，则在第一列的子图上设置标题为 Original image\\n\",\n    \"    if with_orig:\\n\",\n    \"        axs[0, 0].set(title='Original image')\\n\",\n    \"        axs[0, 0].title.set_size(8)\\n\",\n    \"    \\n\",\n    \"    # 如果 row_title 不为空，则在每行的第一列的子图上设置标签为 row_title 中对应的元素\\n\",\n    \"    if row_title is not None:\\n\",\n    \"        for row_idx in range(num_rows):\\n\",\n    \"            axs[row_idx, 0].set(ylabel=row_title[row_idx])\\n\",\n    \"\\t\\n\",\n    \"\\t# 调整子图之间的间距\\n\",\n    \"    plt.tight_layout()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Compose\\n\",\n    \"Take a look at transforms.Compose in advance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:39.000102Z\",\n     \"start_time\": \"2023-04-02T12:48:38.832657Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 6 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"compose = T.Compose([\\n\",\n    \"    # 将图像缩放到固定的形状（高度=宽度=128）\\n\",\n    \"    T.Resize((128, 128)),\\n\",\n    \"    # 对图像应用高斯模糊，核大小为3，标准差为0.1\\n\",\n    \"    T.GaussianBlur(3, 0.1),\\n\",\n    \"    # 随机地改变图像的亮度和色调。亮度因子从[0.5, 1.5]之间均匀地选择，色调因子从[-0.3, 0.3]之间均匀地选择。\\n\",\n    \"    T.ColorJitter(brightness=0.5, hue=0.3),\\n\",\n    \"    # 随机反转图像，概率为0.5\\n\",\n    \"    T.RandomInvert(p=0.5),\\n\",\n    \"    # 随机应用一个变换列表，概率为0.6。\\n\",\n    \"    # 这里变换列表中只有一个变换，就是随机旋转图像，角度为0到60度之间\\n\",\n    \"    T.RandomApply(transforms=[T.RandomRotation(degrees=(0, 60))], p=0.6),\\n\",\n    \"])\\n\",\n    \"demo = [compose(orig_img) for i in range(5)]\\n\",\n    \"plot(demo)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Pad\\n\",\n    \"The :class:`~torchvision.transforms.Pad` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.pad`)\\n\",\n    \"fills image borders with some pixel values.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:39.161529Z\",\n     \"start_time\": \"2023-04-02T12:48:39.001191Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# padding 表示要填充在图像边界的像素数\\n\",\n    \"padded_imgs = [T.Pad(padding=padding)(orig_img) for padding in (3, 10, 30, 50)]\\n\",\n    \"plot(padded_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Resize\\n\",\n    \"The :class:`~torchvision.transforms.Resize` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.resize`)\\n\",\n    \"resizes an image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:39.312463Z\",\n     \"start_time\": \"2023-04-02T12:48:39.162227Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# size 表示要调整到的尺寸\\n\",\n    \"resized_imgs = [T.Resize(size=size)(orig_img) for size in (30, 50, 100, orig_img.size)]\\n\",\n    \"plot(resized_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:39.314858Z\",\n     \"start_time\": \"2023-04-02T12:48:39.313192Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(418, 424)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(orig_img.size)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## CenterCrop\\n\",\n    \"The :class:`~torchvision.transforms.CenterCrop` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.center_crop`)\\n\",\n    \"crops the given image at the center.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:39.441537Z\",\n     \"start_time\": \"2023-04-02T12:48:39.315389Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# size 表示中心裁剪的尺寸\\n\",\n    \"center_crops = [T.CenterCrop(size=size)(orig_img) for size in (30, 50, 100, orig_img.size)]\\n\",\n    \"plot(center_crops)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## FiveCrop\\n\",\n    \"The :class:`~torchvision.transforms.FiveCrop` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.five_crop`)\\n\",\n    \"crops the given image into four corners and the central crop.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:39.562661Z\",\n     \"start_time\": \"2023-04-02T12:48:39.442310Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 6 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"(top_left, top_right, bottom_left, bottom_right, center) = T.FiveCrop(size=(100, 100))(orig_img)\\n\",\n    \"plot([top_left, top_right, bottom_left, bottom_right, center])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Grayscale\\n\",\n    \"The :class:`~torchvision.transforms.Grayscale` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.to_grayscale`)\\n\",\n    \"converts an image to grayscale\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:39.665956Z\",\n     \"start_time\": \"2023-04-02T12:48:39.563323Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"gray_img = T.Grayscale()(orig_img)\\n\",\n    \"plot([gray_img], cmap='gray')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Random transforms\\n\",\n    \"The following transforms are random, which means that the same transfomer\\n\",\n    \"instance will produce different result each time it transforms a given image.\\n\",\n    \"\\n\",\n    \"### ColorJitter\\n\",\n    \"The :class:`~torchvision.transforms.ColorJitter` transform\\n\",\n    \"randomly changes the brightness, saturation, and other properties of an image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:39.838930Z\",\n     \"start_time\": \"2023-04-02T12:48:39.666634Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"jitter = T.ColorJitter(brightness=.5, hue=.3)\\n\",\n    \"jitted_imgs = [jitter(orig_img) for _ in range(4)]\\n\",\n    \"plot(jitted_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### GaussianBlur\\n\",\n    \"The :class:`~torchvision.transforms.GaussianBlur` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.gaussian_blur`)\\n\",\n    \"performs gaussian blur transform on an image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:40.054364Z\",\n     \"start_time\": \"2023-04-02T12:48:39.839611Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"blurrer = T.GaussianBlur(kernel_size=(5, 9), sigma=(0.1, 5))\\n\",\n    \"blurred_imgs = [blurrer(orig_img) for _ in range(4)]\\n\",\n    \"plot(blurred_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomPerspective\\n\",\n    \"The :class:`~torchvision.transforms.RandomPerspective` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.perspective`)\\n\",\n    \"performs random perspective transform on an image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:40.209256Z\",\n     \"start_time\": \"2023-04-02T12:48:40.055099Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"perspective_transformer = T.RandomPerspective(distortion_scale=0.6, p=1.0)\\n\",\n    \"perspective_imgs = [perspective_transformer(orig_img) for _ in range(4)]\\n\",\n    \"plot(perspective_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomRotation\\n\",\n    \"The :class:`~torchvision.transforms.RandomRotation` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.rotate`)\\n\",\n    \"rotates an image with random angle.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:40.362061Z\",\n     \"start_time\": \"2023-04-02T12:48:40.210528Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 随机旋转\\n\",\n    \"rotater = T.RandomRotation(degrees=(0, 180))\\n\",\n    \"rotated_imgs = [rotater(orig_img) for _ in range(4)]\\n\",\n    \"plot(rotated_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomAffine\\n\",\n    \"The :class:`~torchvision.transforms.RandomAffine` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.affine`)\\n\",\n    \"performs random affine transform on an image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:40.508965Z\",\n     \"start_time\": \"2023-04-02T12:48:40.362762Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 随机仿射变换\\n\",\n    \"affine_transfomer = T.RandomAffine(degrees=(30, 70), translate=(0.1, 0.3), scale=(0.5, 0.75))\\n\",\n    \"affine_imgs = [affine_transfomer(orig_img) for _ in range(4)]\\n\",\n    \"plot(affine_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### ElasticTransform\\n\",\n    \"The :class:`~torchvision.transforms.ElasticTransform` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.elastic_transform`)\\n\",\n    \"Randomly transforms the morphology of objects in images and produces a\\n\",\n    \"see-through-water-like effect.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:41.008026Z\",\n     \"start_time\": \"2023-04-02T12:48:40.509670Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 3 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 在图像上添加一些小的扭曲\\n\",\n    \"elastic_transformer = T.ElasticTransform(alpha=250.0)\\n\",\n    \"transformed_imgs = [elastic_transformer(orig_img) for _ in range(2)]\\n\",\n    \"plot(transformed_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomCrop\\n\",\n    \"The :class:`~torchvision.transforms.RandomCrop` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.crop`)\\n\",\n    \"crops an image at a random location.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:41.121488Z\",\n     \"start_time\": \"2023-04-02T12:48:41.008717Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 随机裁剪\\n\",\n    \"cropper = T.RandomCrop(size=(128, 128))\\n\",\n    \"crops = [cropper(orig_img) for _ in range(4)]\\n\",\n    \"plot(crops)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomResizedCrop\\n\",\n    \"The :class:`~torchvision.transforms.RandomResizedCrop` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.resized_crop`)\\n\",\n    \"crops an image at a random location, and then resizes the crop to a given\\n\",\n    \"size.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:41.220657Z\",\n     \"start_time\": \"2023-04-02T12:48:41.122182Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 随机缩放并裁剪\\n\",\n    \"resize_cropper = T.RandomResizedCrop(size=(32, 32))\\n\",\n    \"resized_crops = [resize_cropper(orig_img) for _ in range(4)]\\n\",\n    \"plot(resized_crops)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomInvert\\n\",\n    \"The :class:`~torchvision.transforms.RandomInvert` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.invert`)\\n\",\n    \"randomly inverts the colors of the given image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:41.365289Z\",\n     \"start_time\": \"2023-04-02T12:48:41.221292Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 以给定的概率随机地变换给定图像的颜色，默认为 0.5\\n\",\n    \"inverter = T.RandomInvert()\\n\",\n    \"invertered_imgs = [inverter(orig_img) for _ in range(4)]\\n\",\n    \"plot(invertered_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomPosterize\\n\",\n    \"The :class:`~torchvision.transforms.RandomPosterize` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.posterize`)\\n\",\n    \"randomly posterizes the image by reducing the number of bits\\n\",\n    \"of each color channel.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:41.509892Z\",\n     \"start_time\": \"2023-04-02T12:48:41.365957Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 对图像进行随机的色彩分层，各channel像素值的bits位数降为2\\n\",\n    \"posterizer = T.RandomPosterize(bits=2)\\n\",\n    \"posterized_imgs = [posterizer(orig_img) for _ in range(4)]\\n\",\n    \"plot(posterized_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomSolarize\\n\",\n    \"The :class:`~torchvision.transforms.RandomSolarize` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.solarize`)\\n\",\n    \"randomly solarizes the image by inverting all pixel values above\\n\",\n    \"the threshold.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:41.694375Z\",\n     \"start_time\": \"2023-04-02T12:48:41.510496Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAnUAAACTCAYAAADode/iAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAACjMUlEQVR4nOz9aZBt113fD39+a6299xl7vn379h01XFmWLFu25NnGmDgG24AhwTzkISEkRVF5xQsI4QUpKkWoVFKpkFSFF0n+VU8SSP4xcUhCSAhDgg0ehPGEBsuadefbt+fuM+xpDc+LtbslgwdJLdlC2l+p7719+55z9tmftU791m+UEEKgVatWrVq1atWq1V9oqW/3BbRq1apVq1atWrU6ulqjrlWrVq1atWrV6hWg1qhr1apVq1atWrV6Bag16lq1atWqVatWrV4Bao26Vq1atWrVqlWrV4Bao65Vq1atWrVq1eoVoNaoa9WqVatWrVq1egWoNepatWrVqlWrVq1eAWqNulatWrVq1apVq1eAvuVGXVVV/NzP/Ry33norr33ta3nd617Hv/23//YbPuYXfuEX+PVf//Vv+tz/6l/9K/75P//nR7q+f/AP/gF/9+/+3a/5sw9+8IM8+eSTR3r+Vq1atWrVqlWrl0LmW/2CP/7jP05Zltx///30+30uXLjABz7wAeq65id/8if/3L+31vKLv/iLz+m5/87f+Tsv9uV+lX77t3/7JX3+Vq1atWrVqlWrF6pvqafuiSee4L//9//Ov/k3/4Z+vw/AuXPn+Gf/7J/xD//hPwTgE5/4BHfffTc/9VM/xdvf/nb+23/7b/z4j/84v/IrvwLA3t4ef/Wv/lVuv/12vuu7vou/8Tf+xqFn7dletn/37/4d3/3d381f+2t/jbvuuot7772Xp556CoC1tTXe+973cs8993DnnXfyUz/1UzyXEbjnzp3joYceAuA7v/M7+dmf/Vm+4zu+g9OnT/NP/+k/5aMf/SjveMc7OHv2LB/96EcPH/fX//pf59577+X1r3893/u938v6+vrhz37+53+eW2+9lbe+9a387M/+LPfee+/hz37t136Nt771rbzpTW/iPe95z+Frt2rVqlWrVq1a/Vl9S426L37xi5w/f57FxcWv+vu3v/3tXLlyhY2NDQAeeOABfviHf5j77ruPj3zkI1/1b3/xF3+R+fl5HnnkEX7jN36DT33qU1/39T772c/yj//xP+bBBx/kfe97H//kn/wTAObm5vit3/otvvCFL/DAAw/w1FNP8Ru/8RvP+/1cunSJT3ziE3z2s5/lF37hF3jooYf4zGc+w8c+9jF++qd/+vDf/Yt/8S/4/Oc/zwMPPMC73vWuQ8/jb/3Wb/E//+f/5P777+e+++77qtDupz/9aT760Y/yR3/0R3zxi1/kl37pl/jRH/3R532NrVq1atWqVatXh77l4VcR+ab/5rbbbuNd73rX1/zZxz/+cf7lv/yXAMzPz/MDP/ADX/d53vWud3H27FkgGo4Hj/Pe83M/93N86lOfIoTA+vo6d999Nz/0Qz/0vN7LRz7yEZRSrK6usrS0dHgt99xzD9evX6coCjqdDv/xP/5Hfu3Xfo2yLMnznJWVlcP38sM//MOHXsu/+Tf/5qHH8jd/8ze5//77eetb33r4ehsbG1RVRZqmz+s6W7Vq1apVq1avfH1Ljbo3vvGNPPbYY2xtbX2Vt+6+++7j1KlTHDt2DIDBYPB1nyOE8JwMQ4BOp3P4Z6011loAfvmXf5mtrS0++9nP0ul0+Omf/mmKonje7+fPPv/B91prIOYDfupTn+JXfuVX+MxnPsOxY8f4H//jfxx66r7Rewkh8Lf/9t9+zvmErVq1atWqVatXt76l4dfz58/zfd/3ffzkT/4k0+kUgAsXLvAzP/Mz/PzP//xzeo73vve9/Pt//+8B2N3d5Td/8zef93Xs7OywsrJCp9Phxo0bfOxjH3vez/F8XmtmZoaFhQWqquJf/+t/ffiz9773vXzsYx9jOp3ivefXfu3XDn/2fd/3ffzqr/4qly9fBqJ38fOf//xLdp2tWrVq1apVq7/Y+paHX3/1V3+Vv//3/z533XUXaZqiteZnfuZn+Imf+Inn9Phf+IVf4G/9rb/FHXfcwblz53jnO9/J7Ozs87qGn/qpn+IjH/kId999NydPnuR973vfC3krz0kf+MAH+A//4T9w++23c+rUKd7xjnfwu7/7uwB8//d/P5/5zGd4wxvewOrqKm9729vY2dkB4Du+4zv4R//oH/HhD38Y5xx1XfOhD33oqwopWrVq1apVq1atDiThuZR9voxU1zXOOTqdDvv7+7zrXe/il3/5l19Sw+yl1Gg0Yjgc4r3nJ37iJ1hdXeWXfumXvt2X1apVq1atWrX6C6ZvuafuqNrZ2eEDH/gAzjnyPOdHf/RH/8IadAA/9mM/xoULF8jznDe96U38vb/3977dl9SqVatWrVq1+guov3CeulatWrVq1apVq1Z/Xu3s11atWrVq1apVq1eAWqOuVatWrVq1atXqFaDWqGvVqlWrVq1atXoF6AUXSnjvuXbtGsPh8Dk3A271rVUIgdFoxOrqKkod3X5vmb/81TJ/9all/upTy/zVp+fK/AUbddeuXeP06dMv9OGtvoW6fPkyp06dOvLztMz/4qhl/upTy/zVp5b5q0/fjPkLNuqGwyEAb37zPWxtbTMaTVCiGQz6LMzPMTMzwIWa1CT0e31cgBAEHwJKCSIKQiAAIiAISCAEAQISHHjPQXGuUgqlFUqihSrxQc3jBERBY70KxOduvghAiI/xzfOJBER5tDaIKLwPiKjDU0oAggd/+E3zhX/mS4jvBSEEmmsVRDQhCCKgFWgTLyoE8C7eB8HgvMcHB1JR5ftMdi8xnUypbIm1nroO1FYxM7PMseVTaJPFa1dAsEDAe49vrs2HZ30PlFXFJz/96UNWR1XLvGXeMm+Zt8xb5n9RmEdmLx5zdcA8XhLB07xH0/D59jN/wUbdwQa5/TWv58EHH2RzY49e13Du7BnueO3trJ5YIS+n9LoJx5eX8RhA4Zt5p+pZwCJQQRHwSLyZzhK8j3cO0MZgjMFojYgcPofSCqU0ShmCCN47JAREAsF7nKtxzsYNqISyLMnznLouQALDmSHdbh+tExKTok0KCC4Iznmc84BGgmDtsxdAfA2t4vV473Dec7CqBYVWCSZVpKlG6bhQ8IKz8efWWmpXYn3B2uVHeeyh32drfYPxVMiLmsmkpijg7Mkl7n7jPRxfOQ3K4EMgBIfH4pzFeY9zDmst1lqmeUFZlkymOZ/89KdfNHd6y7xl3jJvmbfMW+YvFnOtNYjgRdhXikIrZCqsp4oVY5hTnorApGE+52p6zlIpuKqE1bLEPYt5d2bIdrdPTcLnHkspLiTIzC6zYczi7ADOziIziqTaZVlZoBPXgNdYG1irLKFKYF44rjzps5hvMOXCA1cYP7ZDqJsblwZY9aCuM1w5xzFzlmPdGebyx3ni28T8yM2H19a28M5gTBdjErK0w3AwZH5+Cbu5gTHC/MIsImm07J2PG1cpDi7tcFEcnHhCIFhLcA4hWvXmWYvgcAGJYIxBaY0o3Swgj0hAhYC1JbYuKIopZT6mygvKYoK3FiMBkygy7VC+wNmCUCf0+jMMh7Mok+KazR48SNCEZ5n5okI8UEg8iTjv8N5CUM0Hk0KrlCRVJKlBm3gCwGuEaPl776htTl5O2FvT9JPANHV4J6ig8JXClhXT0SbiK+bnZjBpj6q2BPHUroRgozXvQvwgsZb+oKIsK7L90VHxtsxb5i3zlnnLvGX+ojI/MOp2tOZhpciAr4hwQRvclxzhK58nO1aRLifUqaL05+i8ZYF3qoK3FlNcPibJC/yfYd7TjqEvqHzB7umEq8UMX9lUPP3gY2g/xBy/B7nHEYZ/jLqjB8xBOAMXVvBPKvxTa9Adot/dxZyLzIMTwnqBfez3qT71OPVoirOBQADlCI+4uC7NYyTpEsdf9zf5yF3fPuZHNuoef/QKVemYjgN1MeGxRx8nS1KCS9ne2mJuscu5c4FuVwMKrzxw4BqFQEAQlBIOVoWygSACzUlJaUViErQxaK0OXb2NsxaRZjM236vgqaqCyXiP/b0t9nY3mYz3CL4iTTQzM0Pm52bpdruAMBrtsr29S1HWmLTHYDjP7Nwig8EsJumgtUGJ4A7etIBqXiu6nEM8QSKNC1ijJH5AaRGUBFRoHigHpxma96yoqkBZjKlLi/GQKcGpgMKBt+zv7bC9s05RjhlkGSiHVgIoQkgIKuCkuboQUKSoAHWaHBVvy7xl3jJvmbfMW+YvGnPRij2T8HFjuKYVu6LohkCN4Bz4jQSKWcqNLcr+MYJLueV0h7fnO8yMtri6u0neMN9vmPfnZrnU7ZIjLI522dve5XhZc2Kux2tPzWNvfhNjlfE5uuxvKtzke+C2cbSApIdfKAlf6kHnJPJdEE46XBDClsf9ocI/fhGfP4pzNT4IPi6Qg/+j8Vp5cPtY/9S3lfmRjbq6NFS5gO9Q15a9nQmXLt5gf0cYjfZZPT3PbbfdSr83IE1SrHWE4Ak+4INHi4oWb3jGNasE0HJ4ilNaoZVClKCkiW0bfbD1CCHEkxQAntpWbKxf5+KFJ9nevI4WRyczGBVQpktqPJ1E6GaK2lpEapTUlMWIzc1N6voi/eEsy8dXWVxcZn5+nl5vBpEE/MHCfcbNTIinO90sZq1iLP8w/u88oOJCb6Sbk4z3gbouyYscrTN6g1mGiWZnd5/xZJsQSqqqYmd3h2k+ZTi/gFHqmXvnA74Juh/kHIhSeEAlL83Gb5m3zFvmLfOW+auXebc34Mkk5TXPk/m+MXxeKx5Qin0Vw64hh709HQ2/AcibA+p7XwsVMPGcqCre37/O9iNP8vjXYX4lEf5LpnidtXzgWcxHz2J+0/FVbl9c5g9PzPPF/xwIu4/A9w8RuYUwnSFsPwHXLPz6gPBdp3ALgv8vgtsLwGPIgcWuFeAP2QCH4Xml+gwXVqmK+79tzI9s1Bk1wIpHwhTvpxS55cb1Xfa3DUVRoJRme2PEieOLKONRwTVHGfCNy9sfJlA2N0niBtdaYYxCH+RaKBX/3mi00tGt60NM1sThg6OuKybjPS4+9Rj33/8F6mLC6uoxuukMiTYY7VE4gi9xteCsRUINWBQWCRW2LtneHLO3u8HW4hI3n7uJ5eNnyHoLz7iZm0RKockBkfj3ooSYIOoB8F6wDgIqHgpIAIcngHicrynrKS54lldOkyXQ63e4eu06u/sVejenKi2j0Yi8yAni46LyMc5/cJp9dhIw3iPeIy9CqXvLvGXeMm+Zt8xb5s9mvnR8kWvG85rgKEVIFZhvwtxrxX81iktaR2NOKfy24H5H4R5/BKVuR/oK9aaAv8WhJo6zMxVvHu+x9fBjPPANmGtfslILb/smzBcWl7j33E2UHzjDVz53N+E/zhMKgV5Als8T3AZh7dP4314kqIyQVxC6iHwACCjlMbqPcBHLZQI1oCOtoNDJec6sdpH9bx/zIxt1gsKYBK0NzkZHeVHU2LLEO8X+bsXVyzc4f+sq3TRB4o5BRBpL1BO8wzeWrqgmPq9iAirRyxu/5FlfCiRAEAg2YF1FWU7Jp2M2bqzx2GMP8/RTj9PtpCwuDkBm6PQ69HodkkTjvSMvJoxHE/b2RoxGU4qiQoknS2BaVFRFwe6O5YpyFEXF8ZPnGQ5n0CaBIHjXVN6oZuNLdDkH7/DBH57mJITosg0hnkolWuaCw/uaophQ25phb5Z+z9AbZIymBWmaxSRhHHlRYF2NaA3xLjZhgQDC4YcjIgRrm5wG+TrUWuYt85Z5y7xl3jJ/YczP3bpKlSbUDfMggnwT5le1sKYhHDAH+CzwmIA7RRCF7IFcDMzUFe/VU87uj6lvrPHZb8L8rHf8WDHBjiZsfRPmqXK8e7ni9LvP84mPW4prAsajPpJCDuHaY/hiSAgXIMwg6sMoSRH5fsggWIWqNlDyqzi/TQgeJYqAwZgT3JxOv63Mj2zUaQPBKbQySONydc7HU04w5JOCy5euMRndyuwgQ0vjVvTgXdX8OX4RAnJAWxTBe4JXeDwSJOZXNNaq9x6l4odHWVbs720zHq1TVRV7e1sUxQRthF4vJU0NztVYawkenHVUVYULjslkwng8Js9zrDuwhh1VMaa2DhHH5kbN9u4epdWcv+019BNDUxQTT5kxiwDVbHwv4PH4YOPCxhOCIgQhaBXLrr2gmg+1ss6p6pzru/to5Zmb67O3s0PwDq1VNOStIzUJqUoovMc3Hy7Cs8r1JWaDeOtwogiij4q3Zd4yb5m3zFvmLfOvYl6MbqUYZHxS4LYQmHo4/02Yr3rPTV7xOB4fhCAB3qFgFtT1Pv5pTzIXOP++ijfvb3PseTDXVYV/nszP3qy5/fbX8MWneohLCZ+GcG2TQEngPnyoISSo8O9R/H9R3Qx+GMJOjfyveaT6EcT9J5zbJaiAdyCujylzJs+BuTYJI5XQf5GZH9moGw56jIPDGFA1KA1aCziPoKnrko2NLXZ3JywuzpJl6WF1h2vctD766gHwoSkdDzQ7yBHwh1arCgoJTb5DDWVZsLm5yY3rl5iM1zGJRgHz80PqeoXZ2SGLS0ukJvauqZzDWI+TmqqqqKwj63ZRxjSLxOOsxbuauihQwWHzKbndoabH7OI8Z3pdEpMhEkFCTB+IPYoOEnwdIdj4Awl4fHwvwRGCoLSgjCAqUNuCspww2bmB9xWTccZkNKEqCwyQKkWqNTO9Ad2kQ53n4EEp3Tx/PFH5EHABfBAIGiVHxtsyb5m3zFvmLfOW+Vcx39+d8I7FWT6XpZxtmNffhLnxwl/xji/iuSzClggbQ0V4hyBBWBzBm3XB2Z1Ntp66xNPfAuZvvnuex2ePs3fjy4SLJ1H6CgAiFpHQGHhrBHaRNy9DFmA/RFNVHUNkDpER3gW8DQRbU1fhOTEPvQEfSzJ+KC9IX0TmR14ZC4sz1NU4uqm1o9dPmRkM8NUAXycEVZPnOVvbG5w+tUiWpUDAY4FnFkE8FTUVNI0b1+OQIM9sqKAI4qJrnkBVVGxvbnDl6lU21i5TlXsM+j1mZ2dYnJ+nk2qMEQRPohO0VjjvqJ1Fi6KylqKsCcEjStDG4J1FqViSPp5MyIspWZph0Vy7+jQrJ45zYuU43W4P1+RYxOsPhJh4AQLKCwRpHKs078vjgiMARmlEDCLR1R9CQBtIgsLWOXWVI8FitJClhn5vwGA4izEZEkrwgsnS6O5u7qH3Hudiw0dRCmVemo3fMm+Zt8xb5i3zVzfzlVOLvPZ5Ms+C8I4gOIRpUHxCHE8FWCTwYV2Rb25w9VvIfOnEcWZParau/l+0X4CwgVJ9QphBwj6EKQTwS0/D3ccJJsA6saBjqtDhfUj9Cay/0Bj1Duf0c2J+yXTZevxJwsnTLyrzI68MpRXeC1pSlCTMLXS49fwcmZlhuh/Y3vYU04rrV3c5f0tBt9chYEFqAg7nA94LIjrm2AaaHItAEI/FIl4hRNejkoDC4uqCna01rl29wNq1q+zvbBN8SarmUTMp/UxQzpBPp+yO9yg6GVkvI+ukyGBIp9+j00lRIljrUEpHV+80ZzTN2R1N2NzdxXnPwsws3UGf3c01LjzxCK+59TwzwwWMTiDYpq+RB7HE/NBnKqWCc3hnG5e+RlR01YsxpCZDqUCWDhAS0rSDoQYvVEYQsaADWdrh1M3nmFlaQnUyqt2AcwFBo4xuKm9cTEQRF5txI19VkfViqmXeMm+Zt8xb5q9u5rfeUrDS60SD7gUw7wEfkkCOhbog31rj+reY+ZUnHuGWu87x1JeWsdVTIIbgjxHCMoR7Gy/yPn73IdwnBPlQQP2gRUoIhSZcPYt86q8Qbvw/VOMbiDxEkrzrOTG/dGUDdh7Hray+qMyPbNQFH6uEtBiMzuh2u5y/7RynV2/m+uU9/vi+R1hf2+fatQ329sfMzA3QxsczjmoSKYmQ42FIDpNlwUc3fVNNRIg9v0Nw5NMxmxtr7G5v4OsJhAIIOF+TT8ckxhBcTbA1tiqZ2lgF4+ouWgnKGDo6wZgMYyDNMkII1NZx7doNxpMJk8kU7wKpSRGTUOZTtjY32Fjf4PjKOdIsw5ikeSOxQsuHJnEUmpNKUwJPPLEp7/DN6TRJEsR6up0BRqVM6wA4CC5a+lqRdoTOYJYz586xsHgMF+LpxHlLwKPF4ImvhzxTrRUUL9nGb5m3zFvmLfOW+aub+f7+mNm5Af4IzAPQ/TYzv8vv0plfYLr2JNbWwKMQnkLJFkpuArkZqY4TpjpetxakF5BewM861E0Dwv9zjHr9MqirbKV8U+b9E6e49JnPUZ7UVMFiXkTmRzbq+v0Bg4FmtLeNVilGd0lNn25nSK8Lielga8fW1g7b27ssH1+iq00EG687XnRo4COxr80BcZqKmpgy2CQ4OMoiZ3d3h3w6IdHCoN9r5sAFqrKi3+nRzzpxaYXYnRkfu0NL0OAFW7pDl7qt6jivz8aeO7ayaKXJkhSjDXVdozWUVcH29vZhMq9SJiZ9BuK1+cBBfxklgn/2zMHQlOgLsXmlSvDKokRjXSAvKnQoCa4kL8vYFkCEXq/H0tIi/X6f/XEeR4m4w3aZPHu0johCqZioqvVLk0zbMm+Zt8xb5i3zlvkrgfneaBsZBvy12BNRSZwogjwG6nFElhF5J/5CQD0thNsicwkBpQM+DXhX4HyN8hOs5PBNmF9cE64+fYWzp99C6sKLyvzIRt14NMF78F5hLWxvjrl2dYthd4Ui9/R6MyRJh/EoZ319m1tu8fR6BkSh8AQiYIIcQhTV5C0clPA2Q4FjY8gAwVPXFdPJiKrMmR10GQ66FGXJ9uYWdZ4z6HQRk+DrQDftUavYwFIFTbCKKrfkkyo+v4qvlecFe3v7FNMCWzuMSuh0OrEM2QfS1GBtyfbWBmWR0+0O8I1d7VxsRhjX6DMl8X9WscRbkGZgsfeQ5yVl5Zp5ehrvhRBiGbjWgtaxd1OIZ9nDcToH4D0cjtdRSsWcBqUO/+7FVsu8Zd4yb5m3zFvmrwTmfmeDm5dv54En7kcRK32f4RAQvYfS+8Am5LNfdb+CEsKWJYz3wXuSLGPRCuvfhLlUNYKnyLexKpC9iMyPbNRduXoNHebQOkGrlPFozJOPX2ayH9hYG7G3a7G1oywt21u7WBtj7sYYPNEtGbzETUPMqzioMxJR8ZQEh5Z9/DngHa6uKIsc3zMkJmU6qRmP9pnpD+l1u3SzLqGZoZamHUIIIApXwaTOKaqcqqoJxFPW/v4+29s77O2PsLVFQiwntqJIEoXWiqrM2dhcZ293j/5gDqXjbEDnYqKoEo134F08vTnvsM7Fd9A0sVSiCKKw1rGzs8fDjzzKhUtX0G5EZiziS4J18UPEE+8D0fUvEheFMQbVgFZwaMUf/F0IvGQbv2XeMm+Zt8xb5i3zVwLz3c11Tr333TzyxDHcxhpapWj9VuAUPvwPVKJRN9+GnFtEv87Sd7HBdCWKAPgvPY4U2xijOf+aOxhvb3xT5pwAlGC3r4HkGNN90Zgf2aizdY0ojwsetGY6Lbl48RpbGwWTvZraarwLaG3Z2d4jn5bMzPQxRgPNGw3xFBQTAzm0WGN6YLS6QziIJ8cTTZIYsizDOUueTxECezt7FHnJiaUVThw/wcL8ApPRhLKoUCoOhhalKKsK6yx5MWF7e5vJdEIxmbC3tcvmxg7T6ZTQ3FgtGq0CXgdwlqr0TCYj9va2WV4+gU4V1jmccxz0NgLwIeCdw9aW2tUgoI2ODRqbBV7VnhtbW3zlkce5cPEqhoJBJnQST6Y9IXhqF3uVH3Tp9j62C/AhwEErAKUOwwJa68PGjy/Vxm+Zt8xb5i3zlnnL/FvF3B0/wZfmFzg7mjBzwDxoRqKYdRXaWYpiwt7ONtMXwPxN5T5fzE6wrdcxeg6t30oICSE0xtVNA9RbAgve8oOuJhX4L0azFQJSjgjBkiaGcytnePKx+78p82BnEOnROX4OLX38wTSWF4H50Y06C6JCbLpYa5wTdrZH7O9aDF20yRCJJcVFWbG3N2L5+GJMUThYzHEFNNZ83BTx5KPgID4Pz+Q2IBiTkqYZWmuKsiSfTtnZ3sNaR6fbZTAYsLCwyOLCMUQ0RhvSLA5wruoaHxxFMWVnZ5vd/T3W19dROmE8rcjzgrIs8b6kLCsy2yVxCpMovNfUVUWe5zjn0d7jXQQWgsRBvCHG/WPuQDyaBGKZshOPBpwPVLVF65Rbz7+Gqppy+alH2djaYKanmBukSPBYD1VVcVDqfPA8vjnZKRUbeWqtD+PyWmvwz3wIvdhqmbfMW+Yt85Z5y/zFYO4R9DdhvjYY8IcLi8jCMdSWxj1iqB7oUHnNwkJFRzzJzTk337LNHbLHzMbzYx7Kgu7CcbihUPrNxP5zNTrcDp19WEmRxFPaQAdYIfBG7/kj8bheH50oUqfI0gknngNzdWWKBMcwmSX1cshclEKOyPxFqH6F0LhYCQqCwfm6WYyBgMVoxWDYZW5uhjQ1hOCx1h82KVSioIGvlDzrVKQQ0THBskkyJICgCQhVZZlMCoKvwDumeYHRhiTNEKVxLsTKGKUJKJTSdHs9hiYBAlVdMBgMmZuMWVpaZmHxGL3hLE8+8STXrl9nc3uH6aSgF4SuJATRCDFXIklSAJzzcDDYVwIhOPDq8ANKKYVGxw8AiR8A1lqqukaZlLn5Y7zrXe/l9OnT/N7v/CYPfWmbaVHT7yQx18DFRNG4YSA0p7mDTa+UajYRh+57gKYe6SVRy7xl3jJvmbfMW+YvBvPwHJiPlEa7gFNCtajxb1AUT2umD6fsXnwIuIX0KytcOj3kSz825uSxZT78PJiTpdjBPjpdhZk5cB6mCSLfB7fUcKuBYCmU4qNoBgRGAopA8u4V3FNd/FMl9194kHe887181/s/xMd/L3xd5mlj6M5HaxgRYUMJtRLONEbvC2X+InQwbBa7NAmRKva5iUvcoY0wO9fn5ltOcf78LQyGPXyosS40LkUNSkGIiYJaxWoZQRFQh+5sYlFLfIwYQlCUlWV3d4ytS9JEAGEwGDIzM4fShslkQllYrHUYYxjOzDAfAsP+ECUwnebs7Oyys7dLVVUYk3B8eYW6djiEvfGU0aREJ5YsJPF5NHS7XTqdLs55nK+a2L5vLrD5YApxcYs2sULm4CQWAtZZEg9KGXq9IVm3R14WDGYWcUFRVI6y9hiJHyxVXVFV9eFJKISAUuow90KazXQ4HFuEYF86F33LvGXeMm+Zt8xb5kdh3rwcD4jhzDdhbrXh9smEU4XFW0diDJe/Z4Y/GSwx+vy9+LBL/3zO+Xfucvf+LqqqSJ8H826nS/Lmd5De+U7klIHawyUHcxC6KULAowjasK0DuyEWeagQuKsz4EvLQ/wTm2w8eoHffur/5bu+54PfkHmyrFEmZUDMp1RKcX16hUtuk5PZPWjkBTN/EZoPR3e0lkBiNFYrvBN88HhxDAcDbjt/mjfe83rOnFmh18twro6nEa1RIkhjMceeLNGA9whIjMIjoCSeiIQUwZAkXUzSo3Yw2p9gdJwL1+0PGM7OYr1ne32dtevr5HnO7MwsKydWUWmGzjoEW3H96lVurG+wu7vL3t4eJk1QaUqv3+fY8jLXb6yzvTMmiEHrDIUlMRkL80v0e32sc/imv4xIiGtZBCX+We8p9uzxOBzEk49T1NYxGo2wHkyqSbMew+EiSTqgmhTUFtAxz6IqLWVRYl0dR9LQlM1rjWli7tGTHReHcwd9cV6asveWecu8Zd4yb5m3zF8oc0QzIWBIuYjh3Ddhvuo9t62vs/Us5m88scr+uzO+/GgHtdrl/e+/xNv3N6guROa7z4P5Wq9PPiOc9AEo2TAB/9roLfPiCaIJuSJoRbAaVTr0FDhmKDTMLw9ZesNJZsMSe7sb7F2/9A2Zn8g8SXeeg9OCUory6V2+/OAnufVHbudcMqDfVOA+X+ZHNupEiJa98ogJoIlWPkK/1+HUuVXueMNt3HTTCYaDPiKOIBWIQuskDkpGQWisUhV9s77x0YamF1C02+OvShS9/gwnV89wefkC+TinLCakWaDTGTAczjGcmSNLeyiVMB5N6PW69AZ9XPAUZUE5mbC3N8H5QNbpEvZHjKc5unY4D1mnR7fXRxmF1kJiNODpdjucWDlOlqbgGpezCoiEJp8AUAHdVMYIHhGagdAKCQYkbtb9/Qnj6biJp0O3N0O/N0M12aCuc4xK8B7qumY6nVKVJcELAQeouIm0wRyU22sO8zOUUpiXaOO3zFvmLfOWecu8ZX4U5kOExxEeFsXqN2Buh3N8tD/HSd3jtCTMjSfQ63J90CcZeDorBUtvnPDucoL2gfACmF9MU1Ln+bD3PKwCGxJiH7qGuROF9CCUnvA58H8s4BThJs0Td20xc1b48JvezUJ5F7W1IAUP3v/Y12V+XFfMLc9FLxyOgGIz5JSXRvz+jT+gf1zxI8nbmQlLz5v50cOvwUPwiBckJIAhAEkqnDx5jDfcdQfnbz7L4uwQ0YILDh8UQQ7ixgpCdDEiTXduCYQgzcYJHDSlPvSBKyHrDVg9eYZbzt/G7miPzbUSrRT9fj/mUszOkS1lrK6skucV3rm4QbUCV1BXBaJgfn6WrNNlaXmZyXTKaDxhPJ1ikoSZmSFZx2BUTIkV1WFmbpHl46uxY7iA1k0vGxWIrutmEzbu2ZhXG0BijoQEjdaGLBswN5sxng5Y21hnMhmTZSnLx0+Qj25g3RTvY7m7c5aiyKnLCq9M/IAhflhoEUJTLeOD4H1zz/RLN0qmZd4yb5m3zFvmLfOjMA8IXSBRwh/3BvyVk2e4+Wswv9Qf8pXPzfGlxzKy5VWO31whi46d+UBQCm4qOHFzwXAH1udn+WSny5ljy5zOpzCeUHwT5r3jq1xIEkYCv6oVlQRcw1xCiEW8TYhdUpA7Azym8FchPPog7slHuFI9yv9v/iHOn/gKf+nd70dL/xsy13XOyuJpUNuEEKiC4+KVTVzt2P3Ul9lPe3z2u+/hO/ugnyfzIxt1qTHUEyE1XcQpyjDFmDGDoeLU6RluO7XASq+DUWCbDtIRvI7WfJBmYzTl0BIrjRQKFfNPUYHGjdt08JaAiGZheZXXvelt1GK48MhDuGKXuf6AfpbRzzoM+gMkaOyA2Nxwukdtp6hQEfwEkZokSZibHXBsaZGqqtkfjdja2eHG5gb9Tkavk+Kdo/aKxcVVzt/+Jk6cOkfa7R5W7xyWcDcbPcbBaZatAkJMxmwSCVQCWVfT6/boDroknYwbN66ytDTkzE2nWbt6iWI/kBhQyiEilPmUfJqjOgNcCKjgwNdIUIg4nG/GkXiP0DR15KVJqG2Zt8xb5i3zlnnL/IUyHws8IIr7RMglMEXz380y773tzbz+zzDfSjPGFzqMH08ITzzC5uccycwt9L7Lkdw7xc9UZExQUvNAkvCFYsBnv7zI8I01tyyN+PDODsnXYX7r7W/iieQcN/5PFzowOhmQs9F4o5ksEURiv2QCQRQsB9SPAr+uYPRa/OYFyj3HztqYjcc/y9qlS/y1H/nhb8i8KqZkb78b9bjFxcWGP/lWwhdvEK6fQv/Iu8kHPTLncM+T+ZGNuqybYnMhuIBCSHy01LPgMdWUUE5IrEWR4pSggsZLQLQGaRInidZwdNM+s2wlNE75QDwxEd2Q0lTUpEnGyuoZ3iCGxeGAYvs6x5aOoZXCO8dBZ2hbW1xVo1BICLiyjMOYvceWsbInTTRaCc51GE8MztbxBBiiVd/vz3D+NXfw2jvuYn5hkYNOzxye3uI4knBwSoFDCL4ZmeKb94j3cRxMcChtYmPFTheTxvJ85zVlLWQ+npOsramriqqqSJI4UsQkQmhOVfEU+ezf4z1TPDfLvmXeMm+Zt8xb5i3z58L8hrXMk5IdgfkFCXyawESpOJWhgmu/fZE/1Fu8+z1vPmS+uHSMi1qhMkegxrk/xnTeir4zxa+WBAnoN5bIJDK/raz5w+CZ/KnGdoXH39JhZ2LwX4e5nLyLP/m/e1SXEpSaAR2QRZAlj7wxIKtCKAV6QDdADioRSECdEbglhd87hR4btGi8s1y5vsHD157g1qXbvi5zW1W8vq+4fj7FOYdKBJnpwsBCeANmZsBt+BfE/MhGXR0cTjvEBxJXMaBGec+g8oSNbXYuXyefWaLb70RXsjTbQYjDfg+c7wEQaU4/B2XQIQb5heaUFF8zJmHGs1KWdTl58jRLgy7lzhqCR5sE6xzWWaz1jEYjpuMpoiAQUCoh0QFX7zPOJ2TpHqlJSNIkbn5fUxQF1nnStMdgOMOdd76et77lrZw+fZos6xB8OEx8VBITSYOP34d4tPuq3+Pej+9XN9VNJklQKkHQdDtdALwHZy21tVgriPE457HOUtc11DXeO2K5+QGFcIi78Xof5i28FGqZt8xb5i3zlvmrk/nCzBLJEZkPn8U8oAi6QrqPc/GBLzOeGM695fUcf+NpSvE8kCSYocMkKcZ8kOF7evTeuUcwIDbgVcJUB2y9z7F8wrsW9/i/35dQfSnB3yb4r8H8jjtfz+Kdb+H3/mibnSc/hahVcMdRroO/NkZdB/nKKqp7FvEpdEDmgR2QpcgkbAnsCG7tEtZabF3jfU3AcfUrG9z67tu+IfNjCN3lU/gNhwmKYd7lejGAYUYwMDm4r8+T+ZGNurIqmqHHBTqU9HVJX6AbPLK1w8bjT7E1u8Sx2T5moY8oobQ2nny0aS5aGste0E3Zs1LhcBErid2olYqJgiGAVgalTOxP1E0Zpim226XI93F2yngywVlLkRcUeUmiErSO+QHR/enJxzlFniNAmmpmZgbUdU5Z5ljnGAxnOHvuVm59zR3c+5a3c/LkGZI0xXvfbGGFVrHc/KAc/dml6QcbH2KfGRc4zDeI42ASRAxKHTwGnPdYH6jqmtoqVNPd21pHVdWo1EaXNxy6ZAU5vI+xG/XB6JqXZuu3zFvmLfOWecv81cn85OwSw9k++gUw9wJfFMV1FOOGuYQJ7iu/jV97CO8s60/9NtfWVkm+5wcZ3iXgpsy+Z4K+xTLoBbLhNoVNcMFE40qEXuEpG+ZvAS6e0Dx+bsCczxlezxk/i/ktr7kDu3IPv/m/Hmb/+oMoFQg8SuAhnKeZICKI06j6GCILyPQUsnM63qQdQbGAlhp2pwQ7xTmHtTUhWLxvJmd8E+a9yjJMj7EbbgBQDQ0M5gn1PnW5yMcz4axSHHuezI8+UaIqUV5InKMfKuYSTz+AwiPFlJ3ra1x+4mnM0iwLXUOn38OJw/mAdx5tNErpWGUigYCOFr44RMeFoUShJLp3UbHMV+kEnSRoLRxUC2Xd2I17vD9lMp1SFlOqskCLIUtSlDI458nLismoJNSBYAP5dMp4bw/BMq0KppMxInDzLbcynFvmpltey/LKCbIkOWwCGEI4PE2FEDjoJ/PsER/AIQgXPCpA8IIyOo4s0fEUE58qPsb5ODzaOkdVe7SJH3TeB+raYmx96JaPJeOCF1AHXboRpOkr9BLt+5Z5y7xl3jJvmb/Kmc93DaHfw3wN5tcDdCQwj8aLUIjjooZrCJ8RhRUdiyuu/in+sc/hv3AZt1PhXAA8fnqB4g8+gRz7Ht62OGXMlMfPTHlNWXBdDFOd4pVBO0+3rDjzLObJdMp79vfYnbXcWRWEZzHPZpe5rOf4+O/dz/76l2ImpDrI5+SQa+Rs8f46ImuIfKXhGQBByxAvDlEl3lqcc7FZ9QEbiWH7b8Tc1ZbUWgixOjifTPHjKyi3gP/ozeTvhE+/TviwPD/mRzbqEudIvGPgSma1Z2gcqY/Jo9576vGYtYsXSRaGmF5G52SKUbEqRvCICog+WKxxkweiK1fwHFQWKaUQDKIN0syR02IwxoAC7UCjcN5h8j1wljQVlKT4OuYqJIki6wxJUgt1oBrkBO8I1pHnU0yiyKuCqq6Ym5/nxKlbWV69ieHMMZIkxTmLeBerUAIRRuOWVyogKl6/NPGEg5MjIoh34ANBCVobdNNIMARQKla2+ODjaiBWOjnvcU4IKFwghh1sHZ8n+HiPlEKCj/dNeRSCO1ycR6XbMm+Zt8xb5i3zlvnXZt49mZJ+DeZTL2whfFoUu0CthOt4alF4Fb+C/yzhTz5OeHACxuOCxVoLHpwGt/tF9McHXPj/vIlaWUoRHs5SlA1o56gTRXljSN23PNgNnB3k9Bvmt+RT3pgozlcFdV0xOz+Pm7uZP3io4Mv3/0+q3c3o3VUa70ODRj3Dy0sMuQdPkHDoQY0GfyAoC0oQH6tZXdMkWiQabN7F9fNcmRM81E8Qqg2CjPA3KuR/p1xIhPI8JM+D+ZGNukGiGGqYUYqhDnS0UNce2zRNxHvGu3tceexxejM9hp0OnbkZvBaC9xAad62OrlQlOt5IPM1xrpFqLOrGXa9NM8TZxI3oPDZ4rI/PlaYZg16K9Dzb6ztMxxNEpZhkAGi0SRBR5HlOEMfi8hydXpdxWSCiWFhc4qabbqE7XCaQNvkUqgkbxFExwT87lBAQdeC2jye70JzwAnHReHwsS5dnjYHx6nAxhBCaeHv8qutAkgg+CLZ2lGWJSSu8d7HUWmLTQvGxMWGTU9k0gJSXbOe3zFvmLfOWecu8ZX5Lp0M6N0PVMA8BLojwO9owBgrRHA+eLp762cxHE7jvacLDE8DjaxuNcG+jMdRRpD1Ff75kajRjnzH+LynhpOeW1+9wZz7hM5KyM9sFL6yphEoUqmH+wPIcX+p1OVkW9ERRDpb41d8r2XrsvyJMiOPL/GEhDCKICtGYCxCCxO4ueFyTSymNl/YgtKpQKMVhaN57j1IR1IGH9vkwD4XDe0dQn8O5TWT6EfY/kXHpJuHW58H8yEbda8/fzGxdUl+/gpvuocQ2vQeF4FXsJG0t1c4e609eYGF2jqU0gV4akyx9QJSK1UtIE4+Pg4wDQix116AMSps4Rgao6oqiKHHeUdcV5bSgzHNsvU+mJxybT5kddOmkHebnhTyr6fYGdHs9QlBo8eT5HoPpDGk3YXH5OEoLLuyASun2ZkiyLkol1E6eGQEoqnGvhpjgeegub3Ihmk0tIs14u7hI4mOh8cty6Ovl4JTQuPK9J4jgvFA7jw0qurZDwDuHcxbv7GGn7ug1/mrXsahnwgUvhVrmLfOWecu8Zd4y/1rMP6kUG00uXRBhHBSp9whCEEUYj+AT/wn/pevx/XYUy3fOsqRnGbhlVGIYnJlhNl1hwfTobG3z+92UP17vUjzZ4akFYe2WmunagPx/5YiqcX9lyPVhn7umM2x1Ez6zfJxKC7MNc9+ZYbR5Ce+nJDr2yoNo0IWDfEh8c7AQDvrqPTuXUnEQjj947AFj4TBe3xh8B/ifK3PxEB47MAY9hIvAHm7vOE/vCOcXnjvzIxt1b3v7mxhUOU9/wbL29Ijaxq7RShJC44oM3uPznL2LV7mSdUi7HYYnj6O0ARGUxKaN8f4o8D66c5XETS8GEU0IQllXTKYTtrd32NjYYGNjnc3NDSbjCXk+JVE15286xj2vv5XZQZdMG3rdPlo5QONsRe08RT3FhZruoMPc/DxJ2mNvtMckt2SdGYYzSyBJdJmGBiaBg35KAqDjCS8Ex0Hp8Z9VCKE5wYTD/S7NInhmGcT/Yt5FAIngq9qTWjk8KYTgm9h9LN9WB+7/Z4cDiCc8rXWThPziq2XeMm+Zt8xb5q885m96+5uYq3IuHoG5F41rmAdRjLynIOBVNOowXyBwAzUfOP32U7xz8R0MklmmmzmbG5tsbm5y7cpVnswfP2T+1tfdysNv7FJ+wjD9/T7ulINljX7bDMlMoNPbQ41r0kGHL87Ps5P2eM9oj2Fu8Z0ZHrKz+PISWil0wykgHEzpCAAueu9EdGPc/XlFw7pZJ40td5Bn94wp34RonwfzYD1+95nHCY4QNiBf4cajCveur39Nf1ZHNurOnj9Np5pS7K2xP7rB3lYNNvZXEQHdvGnjAmE0Zv3pS2TDIWd6HfpJ0vQpinPjmjsSF6zE6qe46Q0iirwsWV9f5+LFizzxxBNcuHCBtRvX2N7dwdaxpHjQ19jqVm45s8R0aZ4ETTfpkqYG6wK1LSmLirLKwUDW66BSw/50zNbuHlUtzC8tMhjOg2hcc8Jo0lQjPHkGIPjD01oIB+XnnoCKk/x845o9WDxBHb7P6FNvwg5N6KE5KhLkIO4eK6t8iDH+g47fEEMCSgQlB8m78UJisjGxw/pLoJZ5y7xl3jJvmb/ymH/p/DLvrBwnjsA8iODvL+FGCquCu0kRegYvD8Lmlwn3X0BfhLs/dA9v6b2F9YvrfP6JL35D5u87s8TcW+YZB03+qS7VrxnMmwPJa2uyQUV/mjNnoO51eDo1vHU65s27e9S1MF1Y5OEv7UF5Ba1UY3I3oXPCM0ZdvMOHnrgDgzp2iPNNUUUTXj84AEhj8AsN53ivYlj++TEnED14QRDpAouAZ+u6cL/WnH+OzI/efHiYkgVh6eaT7O9u4sqaSbGL9jVKFBUeHyxp0CQOyr0R15++RHZsgZV+j36/S6DpB6Tie5OgYk6FKJRKAM20yLl85TJf/vLDPPjAgzz11FNsbKwzycdUrjrwheJcQl4U+BAriqaTHNNL6HS6JKnBWo+I4FSG1xllAZN8wniSMxpPSdI+i4vL9HoDRBRe4jaOXvBmc8IhBAkSF/JBrggQvI4u/CCHsXbbbHwvsaz7wJqPC+KZihmROHJFaxXH1ASPbxIxY4VRONxgQnM5/uBjKJ4eRClQPg5nfgnUMm+Zt8xb5i3zVx7zq8MJ+2GRm18g826/G+/FQ6Aet6D2CfOPEO4qCeXj+C9fgrHl9d9zN/foe/jKlx55zszTYOndk2NNQnFfl/p3DOYznvB+YXRHxv/RGR8p4MP5hLlJjh9P0WmfL0wW2PzC7xGCjRNMmhBpZHrghY03PUho+iaqZk2AKBfDsxIO8yVNY9SpQDMpo4mXA4fN+54H8xIoQnM5KgBT4AYhONgfs7F3Hp08N+ZHNuq8Cnij6R1f4Pi5s+xt7VGNc8Q6FAqHw+NQwaOUIbia8fYmV554ks78kM7MgNB3eEIc9tucbhQabTSCwlaO3a0dvvLQw3z2vvt45LFH2d3fxXmL0oIxqolDxxlpogWdpHhRFGWJhDFKJ/TSDK0EHYQEhbHC3ihna2uf8aTCWlg6Ps9wdp4k7eAPyq4h5hU4eWZBCBycngJNLDyAk/ghoZAYajiMyceS/GjNNyeDIDRdGg+fSZrBeElmSBNBKYvzCucC3ju8r+ML+fDM5m+eJp45PUpAKznMG3ix1TJvmbfMW+Yt81ce80QtccqoF8w8nRngew4VJkh4hOCfJmw9hf+ExVlHwNN/XYe7V+/miQcef17MlSg6UhLePMbvJUzvy3A7gvvfQj1U7K4K9Shn/lnMi6V5vvjFNerJ46hgkQNj24Po8IxRH5qb3fx6kNOoGwPNEw5bn8S8yjmUdCDcgIPQqxwsnnD49VyZ+xBNzNAsuiBCUIIkJ9neGvMn/1e449bnxvDIRl10nwvGdJlbXWVlNGFvPGLfFlDVKGdRIVA3i1WLR5U5kysX2FuYYXlpETWcg45GJEMFwYgmaIUYg60so50R156+xoOf+1OefOwxtnbWIYHB/ID5mXnyyZTxZIStK2K1ike0oTcY4KuCyXSK3XcUPsckCWVVM52M2d3eZn3tBps7I4oaks6AYBJUloExKAw6eFACLrpGI964MEQ1cfPg8aIIocmfQKMlrpTgm7h58E3n8ZijESuuaBaERjDET5eaLIU0y5ifn6EqcywaG8BRE0JF8DaGA4KgFXjnITjE1bGrdYgF5lh3VLwt85Z5y7xl3jJ/lTC3ew8yXbqXpRfIfGlpEQZzwH2E8Cd48djgEOcJ1tJdNbz/3e/CXXXPi7nThsn9A+ypgv7slNl3OnZdjr2U0DlVc3x2zLu2t1FrN7jxLOa2MIT1K+AsPtQ4UbGFiI7hbZoiHoDgY/hdi0IFj0gg3m0X57MGQZRG63vQ8p1ISAj8a0TWm2paiEa9I1A1HrvnxjwPgQJwHpS+BeR2wttvwdxbshoMdb9io3puzI9s1AUk9u4JGp1lLJ08zub2KvuTPYrdPRIfewwFAcSjQ0BcTbG7y8aFp1k6e5rZlVUERRAdb44yYBR1COzvj1lfW+fyhUusXbvOeDJCJcL88TmOLR9HOSEfjXG1i6XDVpjmJdO8RJmUTpbh/A57oz3WtzawLlDWNflkxP7eFvujMZUT0Bmuqrm+vknv6YucOqOYmZ3HqORwcyvFYfz7oEGlJ7ri472I94MAuEBwHuscPhwkBjc/R5pci4OMDhAREp2QZSknT51gefkYx48f5/raGpvrGxRVHZNog21ObLFqy3mPszXWWpytcdbiY2190yfnxVfLvGXeMm+Zt8xfecxRu82bfeHMh8ePE4brSLBNYYUF6xn2Fd/7wTezMr2dhy888ryYj8Yl9fWU6ZMZ5gM7/CB7HLtng/oNcZaquTpiurfF+p9h3iu3+P7vu4vP/DFc+PwfYn11aLh5T+NdjcbcgRdWpDHsafysAmhBtMLoPkrOEfzDhKARqmbNRM9iE3VFqYrEqOfMPBEhSUGrAbrzQcwtc/TO17x9WHNzU0F7IwT+63NAeGSjLr6h6JoOWjGzMM+pm86yv7nNjbwgVM/0ggkSGzkigq0rtrc2uHblEqu330EabPw3SUrQChc8k8mE9fUbXL9xjWvr15kUU9I0ZeHYPDedP0fW6XLl6cvk0ylVWeMJ1DjWrm/w0EOPcHxpmdOrx0El1F4YTUp290ds7+xSFBO0AlEGnaaUNWxcX2fjoSd44skrvOWtb+f2176WxfljGGPQqom3O/BEizmEGDPXOnYal4N4vI/vN8bNY8xea40IOK8ON3+8e/FXEeh0MpaXj7O0tMzccIaZmRkef+IJvviFLwBQW4d1z8wgdD42LyyrMiaW2jgP0QeHKIXz9uh4W+Yt85Z5y7xl/qpgnoyHMHc05tXtr0Wduh354gWkKhDnSUTxHXef5UT2DtYubj9v5he/8gjfce8yn9w+ToeEWS+kecn0OTA/vnKF777rHj4zzHjoU79PXRY4T8yZ1KBoxpVJw9bF3MxwkFOpmrWgFFqtAHs49wlCcGgVOBjpxiF5QZiQZearmA9nZnji6zCfNYGZ08Lkxj1kP9Snc77kzVi+s248tUpx7DkyP7qnLsRqjjp4nFZ0sy7zJ1ZYvfkc47199sclNviYQCrxJGRQZEooi4LR5ibVdALeEVTAGbBiKSdTdrY22Ny8EV2x3tId9Fidy7jj7ttZXlni0UcfY3d3m6ooCD6gmtEsGxu7fPJTf8LWxg43nTvFcNgnTRKSJCWIIu3PobIezlYgwjSv2dzd5/GnrnDx4hXSRy6wvTNmb3fE61//BlZWVsiyLLrfVTjsKh67fnOQhAEQY+UEvLfPiqwDLhwmTSqJ+SThMP5+EMMXer0eMzOznFg+zszMHLOz89RVzc7ONnlZkXU78YPWH/S5cdRNpZC1Fudi8i5KqKvqqHhb5i3zlnnLvGX+KmG+eNw04dUXxnx/c5Ol6RTlToEXtIUsGN5y993cec+7uLE+ekHMP/2pP+H2jR3edO4Us9M+u0nC9Hkyv/fee1j68A9w3+//LpPd3Rha9XI4MSL4EJ218owXVOuYa6mUacz1VYQB6C4hjGLhQ4i5giIHfjrwTcHLAfP55eP80Y0Rt9x+B3d9HeZqdQVteswueH4o1KxY20ymiMztc2T+IuTUKYLERWBVwChFOuixcuY0o81d6t0p9f4IRyAogeCRAEkQqtJR7IwZb+4yd8piBgqvApWtmEz22N5aZ3PzBt55OoMuJ06f5PiJJV77+vOMRrvs7W4zGe0jQGI0KI3RQllYLl5aY2d7jwcfepisk5BmKcYYlEkwSUaWpaSJoapr9vYn7Ozss7G1w/7+FKX2mVZfYG80ZjSecu8993Lq5El63W7scI5umqCrZuRN008oBJQE6mDxIc7tQyC4gPUeZRRpktDt9kjSDKX0YWNDEIyJOSxaa5Q29Ho9Tp8+zXT6Bh5//DGsc+RFBbh4avMHJ7sIPg4VdnEkjRequj4q3pZ5y7xl3jJvmb9KmO9eGVHe9MKZlztjXre5y4OL82yLR3nhTnOcd9/xl9nM94/MfOaIzN/2tnfw3u/5EH/0h/+X/RtrTRjbQTMGLfiYR3cw89cHIRGDkhCLUsMGol+PUW/D29+nqmvyfEpdlXjvDptTb24K3j/D3CvNw5/5OBfKig9+xzu5fvXKn2MuzKNU4K3Bc5P3zRix58/8yEadbk41B+XhtQR0YujPz7Jy9jTj9W3WyxJnK0IQQlCoIKTKUFlHKCr2N7Zx04rOnAelsUqwVcF0f4fJ/i5Z2mcw6JN0TvOaO25laXmOq1cvU+YlCiFLE1zQWE9s5Bcg1I698ZRpnsdNqvVhrkMgnsZi9RJUtaOqLbX1+KAQ51hb36Cqa+qqBgStFGfPnsUYjdISewU1rb+jgd6c6LwHpfBOQMWk2oAj+IAxCZ1un35/hjTtgiisb2bmiW9mCxIbWvp4+hsOB5y/7TWgFBcuPk1RlXGThwNH7zOnimfGlTiCCLZ+aVz0LfOWecu8Zd4yf+Uxn17fgZvUkZjnG9v0TvdYHwqMHFvBM7X2ZcP8Pe/5Tt79l76b3/uN/0RdVHgX8I6mb1xoClibe69iw2ylA3iHC19BuI6oGaytKfIJk8k+VZVD8M3sY4WzTbV3wzz1gaGzPPHoo9w3N8u733wPa9euHDIPQeigCLrPWDde4BfI/EUJvx504kZirx4lGtPtsHB8meXTp9jb3yPs7OKCYIixaiWCCUKxP2Xjyhrn9sfMLi+RoKgqS7m7w3Rni2K8S6ULsv6A4fwCy8eOoVVMVF2YX2CyP2Frcxtb2EMOsf6Epmmiio0aXaxs8hwM1o19Yghx5EvMjT1IdBWc92zv7PKVRx6h1+2SmDhz8MTqCbppSmgaUx641j1gm94zAYlNClEQJJZpJ5p+b0CvN4NJsvgY76OzNsTfRalI08eZcXVdY0zC0rFlggi1tVy+fJGyrMjzEmsd1jS9dKRJ9myYWOeo7UtzmmuZt8xb5i3zlvkrj7ncPodoORLz3StrvP11N/Pkaxeoro2pb1pBFnOmF18+zO9981t490e+i0/91//DZKeIBpg0jwtxJJhRzaxfQmw0jY/3xO1g600m0zHT6T62LuNjlIpmuMTm1M9mLt5z/KZVHrn/fj736U9jc8073vZ6ttavUJYVVV6yEODK22b404WCc0647QUyP3JbahGapnrxIBNCnPcWkoTOzJDFUycZHjsGaYfaCS4owCBoEpXgpjX7a+tM1m9gypK0KnA7m2xeeoqNS0+S76xz4+pFXF2gdYhJjtaxsnyCs2fOsbi4jEk7TZZjU70EsXtzABvia1ovuPDVXz6eowBNQB/ejgOXKcD+aJ8nnnqcL3/5Ib7yyCNsb+/gfUA3Q6oPm07G1dAsQpoPw9hNXOuErNOn0x1gTIp3IbpVvY+LoHnsQXdyax1VFecf1s6jdcrC/BI333KelZWTJEnWnEQs3sWT4sF1K6UOE1n9wa54kdUyb5m3zFvmLfNXHnP2J0B5JOajtXXCRo4bvImqO8fwNTezs3HhZcX8icce5fXJaV779regjOCcbdg2DYWjRR8fT7znoZn+4FxNWUwo8jHWVk1vPR1DrwcbR/gq5nVVc/tdbyQddrF1wQN/+ikee/xRjh1bIUky6tpyZtWSnHWcbYzYF8r8RWhpEppS9YPuyrG8WxuD9HvMHj/G0pnT5Bs7+HofH+xBLiFKPOItxd4mo2sX0befwaic6vpF1h/9MptPP4WVhGkFk/0FOr2U3d1t5ufnOXvmLHOz87ig2djZx3moipy6rnGuMZCbr8OhvQf1SCFw0I+oOU41b6axjAFlNKkxBFexsbnOw488zPzcEnNz8wwGPebmZgjhoL9RjMEHL890o1YKUaZpdqjIOj206VBVlqLISdOULOscuo0Pe5mHWK5urWU6zdnfG8e4fmJYWFji9JmzTPMCbWIFlPfm0FX7bCovpVrmLfOWecu8Zf7KYz6fz7C2HlhOjsZ8fO0i9u63YD94ns7yDhv3/cHLkvlfesM9rD30FJcvXkbkoHddMy5OhWcmingfewiKAJ6ymOJsQZoaOp0uVVVRlgU0uXgHlJ7N/HS3z92vOccD9z9CVVXc9+k/Ym44ZGFxKTbjnrOIMSwBtx2B+dEnShBQolACKngMNK5MDQaSXp+ZlWVmlxaZFiW+qKm9jUa0BIw4fLHHaP0y9eYVsnqIGW0wE2qGEticjFAqY/PGGlmvx2QwoJt1GAwGnFw9hUMzLWqeeuJxNtausb2zQ1nX+NBY2AdO2GhCxxsU/GFn6YP2gs90go7QINDpdkh0h7LM2d7Z5sLFiywfP8bi4hxZmpCkJibLRsfsgbOXg67pItHVbm2gth4tFdPplHxa0OvHLtK2tocpG0qE4B3OWaqqZm9vH+eja77f72MSw7Fjx8mLgsl4/3AwMM1B0j/r+4NWmS+FWuYt85Z5y7xl/spjbuwiO8FEA+cIzLvrl5nzN1HcOSRc3XzZMj92fInv/ND38Bv/73+mGk+b+6toptrF5wsejyOEOO7LJEJiFC6k9Ho9ur0O00kTgk5MY3DKn2MeQs73fvf3sXBC+Mwnn6Se1vzxH/8R3//9H2Y4M0tGwCSBWQdZgPoFMj+yUVdWFbrfpyMJLkRXfXRDCkFrdJrQnRmycuokW5MxezdGOF9jmpEqRjm01Nh8l+nWVXphyMDtc3q+x2R3Dhf2WZxbZj2vuXH9enSuKo0SodMfoJOM87ffSVUVTMc77O5uNy5rQSlQSuIQaRqLPoBqNkrctDTWNRyMdYbQVLJAr98lSRTBwsbGBpevXOHE6gnmFuaYW5hHHXiJm0f6g4Ukgg+eqq4Yj0smk5LUJJRFjdaGLAuMRxN2dreZn18AFXsiRXdroCgKirLGekGZJDbBNiY2KwzxwuvKYtM4fiX2MbIxqZJ4Qgj+pek63jJvmbfMW+Yt81ce85tPLvHQArx7nGCOwLyb73J66yrrYcjjbp83zfdYeRkyv3LlKneu3MPNb7ibJz9zXzQeVXwMxGbEB5a1EkWapbzzL99JvrHPtKwwJ/psXX+apx/KWVhY4K33voH7Pv15hPA1mXd7Q975tu9FzO+wd7Vibm7I0rEBVQGDyvKh1HLHEZkf2ajb39lmeTAg0TGmHBpXKRJvQq0DSaZZOrmCTPeZTncI0xFBLIInM8LsXMrKfJeuqpFynx4lx4c9toY9Kucwi7O4acWTl6/Hi9YZVVljOhll0CiTsLC4QH/YQxl16Io9qIpRunGDe6HxqOPDs52azXHqwDYP4Fy8oWli6HYy6spT2JKdvR2uX7vKyZMr9Id9OlkaR7eIHPY4UiiEgFc6NqYExqMRdVVjrSNLU7QKFGXBzt4unW4PkyhMkoAIOzu77I+ukhclg8EMx5aPM5wZRhe0c0ymY4wKdPQinUQRGyY6nHexFL4JHRzkY7zYapm3zFvmLfOW+SuP+c2V53LSQekKeYHMZ+ZS7HyXy6omlPusU/KVYY/XvkyZ769d5zW3v5ZLDzxEsT9CiSAhHPav83gCgvIOVzvEDfnw930YV4OzgYlc5jfk9zj7mhO867a/zKUbV9i5mFNbvi7z15z8TsJqLPK4dGkfowKn9CJ3NsztEZgf2ahbe/BBVpME29HUJmAQxAtSg04VThxeHMlMn7mbbmFUV2w9/ShVtc/CIGP1xBLnbjrJyVMn6Kee4B1GaWa1Z7UbcBVMQsHJYwusbe3g6sDe9pi69MzMDUl7GVkKg26HTneIJAmYxlWpmqHUIaB9iE0iHRAEJ8+cvA76EB1a50oxGPYZzg7p9AcYYxhoTQhQ1jnj3S32rl/n9NIiJtE4H3AiiGi0T9FOEZQQUg1BMdM3zGSegMd6iyjIyzE3tm5QV57JdMpg0MN7T20rdke77O3tx/42PkOJpZMZQhCcMzjnSHR0ydd17GoegiJgCMTFUNeOqvRHxdsyb5m3zFvmLfNXCfOdBx/kg0lCp6MZvwDmx04s8fhNJ/njUye4kXrwDqs0f6w9N3cDxyuYvgyZ37y6Qnrz7Ywf+CJaCToEQnA4VeG0R3xAKgfi+dSnPsmjjzwMPkXQSBBuvv123nz2LmxhufP0TXx+/QmSVH0D5lnDPOBdeFGZH9mou/bwIxzvdBjctEroZohJSZreNUo0Rhkg4LWiv7TAKX8L2o1R0y63nJjj1Ooiy8tz9AcZCkvtHcF5Mg3Hh12mVclkvIdIykKvy/akYnt3G0cg66Yo5UiMIxEhSzISkyFa4fHEAiVBo1BNU0HXDILxxPl6B6XiBwtAgLm5Wc6cOc3McIgxBpOY2DRSaXpZh1Bb9jfXyXe2yDJQWYagYhm7EwIpQQk+BJQyZIlCmxjbt1RUrmB/e4etnQ2C0/T7MySpxjfjc26sraGUsLCwwMLcLMtLi2SdlPF4Qj4pGI/2GQy6SOhAaE4rxFyA4H3TdyccjrF5sdUyb5m3zFvmLfNXHvPrDz/CSqdD8QKYL56Y44HVRf5oeY7RIMNjSbxDnGes4f8Mu/xwVTJ9GTJPtzdZ+Y63Mdqo8OtPEIiNhIMOCBXiQ5zJ6y3TseepyRVAYUiZnT/GLafOMhmPCE5z5+2v5+LlLZzwbWF+ZKNu48o1nk4TVrEMT60iA0VQEHSc82d0ghJFcDXdjmHuxBJL5jZUvsOJuQ4Lsz3SVPDexZ4zLuCsxYki6XYYDvrMVjkbe/sM6prdYsq+HaNTIc0Nzmc461DA2RMnmYxHVFXBZDpFa8GIkIpBaUXtPUVZxSaJ4ZneP8TJvigCWimGvT6Lcwt0siyOoEkNShm6nT49rcE5ttbXuH55BvE5s0uLZN0+QXeptcOKI+jYQTB2ZQfrHAFH7Wq2dne4dvUq6zduoCUlBIV1Nft7I8q85Mqly5RlydzcHP3ugBACo/19rl69yu7uPkWRs7Q4z+LMIHbAbqp/nPd45w/HyfiXaOO3zFvmLfOWecu8ZZ6cWCIxt7Gb7/Dbcx0ene1RpTFUqQDtAtpatCg2ux3ylynz/fU13rswxP7Q+3j6k+coH/9TpFwjcRoTNOJczNlrJmgYrRE0WXfA+//S+xj2hevXG+b+GB96/3uo8/LbwvzoLU2mBdMra2xqwFvM6dMkQw1pileAEiRopN5HJ47ZXoeVk8uYqkNHahIdcLYmSCw7FonJjSF4RCmGnYyVXsBOJ1TBsuWmbE4KbqyXlK5gee4YNu2RpgnzwxluPn2GuizZ3dslWEdiDJ2sC0oxqUo29vaox2PEBhLRaKVpyotwzsY/O3C1I+2n9Hs9ulmGkoR+d0gmDjvZY7Kzz/pFwUx3qbbnmTu+SndphdAdUOvYhd0oAy5gQ8A3417yvGRzY4P1tTW21tcJQfP0hUuIKDqpZrS/y9bWNtevX6fb7bK6epJbbrmZuq6pqoK6LnDBYr1teiFFd3QcAG1j/oWLfZLcs7IMXky1zFvmLfOWecv81c3cJY7/3Otw9eQyZdVhJDW1DmhbIwLe6NjjDpDgqZXigU7GX36ZMj93SfixY8f4r995nEfe/lfJ//unkBsPkrg4Isx6C41hqSQWQRw/dYJbzy5z5cKTLxvmRx8T5gN6MmVy+SrKKDr9Hlmvj6guAYsNnuAU4gq0K0mAjnGYAAkgeIKzWOfQPkEpg/LxJhoR+trgtDCfBpRJ2MuF7VHJzm7JRj6l3p8y018g6ySoJFYlnTl5krMnT5IlGXOzs5gkZW1zkwtXrjCxlrqx9meyPkrrODzZWqaTMWVR0O31mZ9fZH5hjixNUUFwNWiVxCRGW6Kqfep9RSkV0/EmWTnFeIdeXsEMZ3BGoZzgfGzeKMbgS0ueF2ysb7K5vkk+meA8PH3xCjdubDHs90gSRVGUlGXsOD7NJ/jgEAVpltDpZUglKCXUtsa6WBFjnaN2zQDgEDttv1RqmbfMW+Yt85b5q5t54UrWgF3jsAFqIOARZzHO4XyCV+Yw2d+K8AVtmNPCXS9T5otS8dbxJpdWTmJ/4D24/zaDvfZptPV4HdAqxCIKa1Edw8k7zjDa2nlZMT+6UQdo77CTMZtXLpIsDElmZ8g6GajYUVkQTKjRzqKcjsNxfY1SHqMFvFBXjsp50iSgUTE+7nzzGh5XTkl1wqmZLnlZYsYV29Mxm+OS/c4+g7kBSTeNMXeTcOL4Cnfc/lpuOXszxiQ8/vTTzC88wfz1K+TekuoUVUOeF5RlgbU1O9sJe7u7mDQlSTM6WY8kNRTTKVVp6WSOos4ppvsMKdAup2sN2aTArwuFKBICogN6IOBBvEIpwXko64r9/V22NjcY7+/S7XSZX1xiMi3Y3R0xmUyo64os69Dr9wDBNd2oD06DsdG2o6pKyqrCWtvE+v2h2/bgv5dKLfOWecu8Zd4yf3UzV87inMZLwPsarzy2YZ5UjtR5qiTgULHtiPPkwPYRmO/P9xinmjdvlC8J84k1fGlSIOtC57ii/sF7CB/LcGt/AGpKUD5OHVGwuDLLPbfczuYjT72smB/ZqIvjdAPKe6a7e1y9cBGzsMCx4YBuqqB2pOLo4DC2hFJRO0uVT0kTTb+boZVGi6YsCnxt6Wc9jIeytAiBrGtYWBhQWE9qNb4e0NUVPXKujQpGe1uMp3uonkFrgzIJZV5glKbOS04srTDMupw7scrM7Az9hVlmZxeo8ort7e3YDboquHL5CpcuXkBrBRIIePKyYGdvh2JSIWimo3XcaIOZ2YQs1Oh6SqYMnTLH76wzcRapCmZPnSMkcyiVEIJQW0dZlly/dpXd7S06acL5W29m9eRpZuYWGM7MceXyZbY2N1lcXEQpWFu7jrWWyWRKIFCWJWVR4OqKUVWxt7/PoDeg08lib54QR5NYFxeEcy9NL6OWecu8Zd4yb5m/uplv2JK6VCTOkuZTqkQz6WY4pXGiyYoCVVsmWQ/rISstgcDFruEdCwPmXgDzpZVVVpeXmXmJmI/rKReVoShz1M46/RlL+Mh59v5HiWx+Gu8KRAKJ0Zy+dxW2xofMb731ZlZeBsyPPlFCYhmx8oK3gd2NHbqXrzFYPk63k5EEh1GOXqLInCVMJzhncXmODQFXZHQHPYw2aISqKDFWSJthwVYCaUczLz2KsqIzrUhmesxlfYZJB+828fsTdoqcad5EnUUz3tllur/P9YuXmevPMDszhzKGZNhloBcZZCnWpGgtJGmC0YoTK8scW5xnZ3uLLNEU+YRJPmU02sVVjo2Niun+BkmxhU2GUGVoE0jTjMzluEJR1BVFPkE5T//kbUjaWOi1ZTrZZ3NzHZzlpjNnOHf6NJ1+n8Ew9jLqdlLuuON2FhcX2dpaJ4SA1rEfUgieqqoYj0ZMxhM6nS51VWFtjfexB1KQ2K9HKUVV1zj30jjqW+Yt85Z5y7xl/uplTqL4irMwnaCdRec5JgR0kZEPelhtcAhpUWKtUAXBIhgJ3OhoPiE9bi8rbn+ezI/Nv7TMb5hAnmaULkcXivm64g29CQ/9ldu5/L93CFcfBjyml/H6429i+/ImOMu5M2eoT59m52XA/OieOolVJz4IwQnF/pTtS9c4duw4852MbmpQYhmmir5N0M5jRBOSDGdrXG2xlSXrZCTaUIeKsixRKkEZg1aeRMXxG50kQVtP4jyDLGPQ62FMIDMBtTfBTkomZUXtA7YoCLWlGE/ZSDK6aYcs65D1O6yvXaM/N0/W7SNKMTs7w2DQR1nLoJNSZSm2KilGI/J8iqtKfG3ZHq1Tj7eZCVNCTwjTHiGBkEic01cr7HTC/sYNqrIkGSyQzs6jkwy8ZTrZYzoZcWxxgVvPnmN+OGR9d4e1G9e5sXGDophy9uxpZueGdHtdRITRaERZFPR6Xeqy4uqVa+zu7nLrLbeQJinex27Vrhn467xvxte4w/j8i62Wecu8Zd4yb5m/OpmPxPIbqeJRm2Cdx4pGkgxta3RtMZWl7GTU2pCEiqws8SrBG4NTnloJn08MDyUJ32U973gZMR8mIImgvEFqxcnphO/euMGZlZJ/94H3UP6XAW7vT0n0Gxj4ZTYmlzm2uEB99hxfGA55/+4O177NzI+eU6cUohKCBx8srqwZbeyw8cQFljod5o7N0sXRc5as6XWjRVBGYUVhvcdZT1XVKKVJdEptK4pgSYxpZu3FochGCyHpEIopWhydQY8sW2GYJSRX1wFhR4RxXVM7y3Q8wpU1aZqR6oTExHLmre0NuoMZuv0haZJw3ShMEm9FVVXUdUVdVVRlBd5TVwX5aES1u0VqC7ppoGcdxsZBv1WwKCokaEJZ4/b2yZVmunkD080QDSo4OqkwOzNgNssop1OuVwVX1m+wubWB0nGEibWxgqrIc7xzbG9ucuP6dY6vHCd4j7OWIs+pipIiL9jZ2Waa5+yPR9S2RkQ3A4QdRVUeFW/LvGXeMm+Zt8xb5ix1OhTHZvkdHI85SxEELxongjcKIwrjPdp60qrGK02tUxJb0QmW2hiCKGKrZrBa+IOkw0ox5bQ4poMe57/NzPe9Jw0WT0UIGl3W+L19ZpRmeOo89c3vI9y/TCUL7CfpIfP+dMrxqmD3ZcD8yEadEoUQmytKEFKnCeOK0eXrbHYzFlml10/AlxGlCN7FqWwKgxJHXcWS3SRLSZXBh5oSRxUg9RrtXLPxFSFLKeoaby2p9qwkKYOleZSkeL3N5bV1UinJA1QBClszLUoSbTBaoxSk0w4zZYUrK9IkaZr6BRKTIAGsrSmKgnw6pa5rpvkUm08ZUDHsJiz2OswkCUlzqqlxECziSqytMK5CbEWVT/BVCcaggtDNEnqdhN3tTXY3bxC0YmNvl4tr19nY2aOvDP1OhiiFrUvAU+Y5mxsbGK0xSnP29Blmh7NkWYft7S22trZYu3GDq9evsb27i/fx3obw0jWobJm3zFvmLfOW+auP+TKr3OgnBF8iDXPlAgHBY+K0icqhvKfOUiplUKEmw5EGqLyOLToAqxUqS/lkXfMD1vI72uOTlPcszfOGbxPzUoSkYR5cyemG+XFbcWsx4fP3CDz2DmxX2O/ssfQyZH5ko47g8cHig8cSeywrD2GSU62vExYytBoSQkXtHV4pjGjSNMWLgI1VICoYRAStFVoJjoAPFpwnc57gABNBdjopvoLgKnyeoyc5CyrhzMI8ripgtI+vagQhC4oQ4odNbWvyomRaFrjK4YqabpIQfEApRWISrHeMpxOm0wl1URCsRXB0JLDUN6wOuqzO9JhJE5KmKsUjOB/wvsLWU4yrMa7G53tQjiEz+KDJp1PWb6zzxFe+QplPUammCsLmZMTG9g47VqjKiiRLGY1GOOdxwTMaj+HGDZxz1NZR15bJdJvra2vkZcnm1jZb21tM8hzfDMGTpoLmJVHLvGXeMm+Zt8xfdczzhYxCDZFQkfg4dcGKpkpTVMNceY8PhiCC0wqnBE1ANcxL5+N4L2OoteZiJ+XjFZxwFUme4yY5i98G5obAKQIJgvcB5SsG9ZTgarZczWq+B2fGcJPBGM2seXkyP3rzYQLgAIsXz0TAiGYYhNmgmfGepJzgbYn4QFAKZzSiPGI0QXm0MZg0QRuFC44SC7aOg6TxBBSld4gkBBGMTsgSYi+aYKm9ZSbT3NZNWFRzXN50XNsfs5WXTB3UKGqjCWmHwAAvBi0GbwOFKxECida4umRU5Yymsb8N1jKbKI7P9DgxSDk7MMykGYNMM9vTJJkiS1MMGuUFFQK+rHHe0tWWNN/B7t9AZwqVDEmUppcN2NyZcH3zBmSKwWBIIprZpM92PubpK2uEEBiPxpQ2sLa5Q2Efj5vHWtxBJUxTcWV9jLXbum6aF0YJzx5w/OKqZd4yb5m3zFvmry7mw6C5z3vycoKyJcEHRCl0wzo07J0x2DTBGYUOjqxhXmsdx32hyLwjSIKIYHXClxPoWsvfCJbj3lJ8G5iXmeJ/pikFGu/jKLi8rKm95Xe05Xq+g5newH2Xwt0/xMnLk/nRCyVUdIGKcygCToEWoZ92mOv0SAFXTcHVSBA84GtwOJJunKOnTYJONMpoaldT4QnWxgaWokBBFRwKh0IDgkFhjEb6fbqdHihhVsGwG+j1YHYvY3M0ZWN3yo29MXkwBAMBhcfiFDhtEIF4wKgJ3hJsgfiSTDn6XcPqbI9zi7Oc7BqWTE2WGLLUMOindDopqTEIgg4q3g8vODwqWFSxT76zTtLrwaBDqg3dzoDKweZoQj3xDErLrEoJlWOSV0zLEu8cVVVjHYwmOaNJ/jWRhmZI3MHvX/Wzo4L9BmqZt8xb5i3zlvmri/mw02Md0A3zEAQFqBo0jrrpK+dMgks03mgSV5PiEWtjc+KGeRri1FbfMLcoRkbzsX6fhU6PWgl3KLjpW8S83095spOyZWLVrmuYey9YPHmwlMU+/Z11ypM9eE+H2hl6L0PmR29pArFSxnvEOxIUiQS6qSHrpSCBmujy1Cpa5rGLc40vAyo14OLg2hA0SnRMDiTgnUNpkKAOu0SjD95kQCTmMiRJClqog6PbSel0O8zOzrBSVGzuT1nc2GFnWlFUjtoGyiqnQKMGS5AoPA7jA6pU9IJlPnQwPVjsd1lZGHC8lzGroGcMaZLQ7WQMBn16nQ6JSXDOISpemEisQ/bWU5cF9WiEHU9Is5qqrNje2eTG+ho7O7s4CUxGE/Z8HFKcByht3dyLA8Dy5yAfzLj7WvC/FWqZt8xb5i3zlvmri3naS2OPNiwBh1PRuyrBY2yNKgO+YS7eI0HjRRNEx4IY5/AaQlAo59DPYi4EgghrWcLlhvnjwXG2k/KD3Q6veQmZdzoZjw76/F6nQ2EStHOEhnkQQfnAvPWMy4J7RiO+NJ6wt1ij85cn86OHX7XC+hBTY5WQeEiCJ0sUnW5Cd9DFZwJVSSoJaIXUdXS8K0FrjVKq2TwKJZokSaDUBB/wzqOVj7F+5zDaYIzgHDjrYxKrRPe4UdDF4TSoRNFVKXPdhJXZPqNpSWU9QRRFVbNbBYbnbiNdnOPyjWuEssKMC+zaJkld0u9oZvsdhh3NQENfFN00Iwh0s4wszWL/JRFcCBACWmmMVkDA1hXGVlAX2OkY3S/IpzlPX3ia0WQSh/UKlGWNc6ARamjuSzwlfD3I364Nf/j6LfOWecuclnnL/NXE/Fo34cagi2uYVw3zUNcoAl4JTmu8Uo1hpPCiqRvm4gPKeVzDXDmH1QZrBO1AN8yDxNCnVXAJx+9o+OFEsfISMa+yjD9IM/a1wYmgG+ZOadCKlMCddcXTtmKnLjg5HTPuF5QvU+ZHNuq6szPYvTFBBC1CEgK9RDE302N+aYbBbIccj/V10x26GSsigTTtkHY6YBr3NoJSijRJkSSFqsS5GrRGQTw9EDBG46wmWId3ltLVKPEkRqFEkeHxBCQ4MgW9jmJGJQSlSbMMRJhISvfUSdKVJQYLKXvrm+idCWJrZp2jn0Gno8kS6CpI0IgmlucjzdiTcPjhBA7TMZjEEIC6LOl7i6srytE+qjdmOp5y/cYa0yInBIEGpkcRAN9MeIvjQ56x3g/+fPD9t1st85Z5y7xl3jJ/9TDPZnp8emmGndkOXTzG1zht8KYZDSeBKu1QPYt5QPBKUSUpoWGuG+YekGaAvTUabTViHcpZMlfjxVMbhRfFU3g+SeD9X4O5yTJKEbykqFMnGT4H5l7BVTSLGharmilCEUBcODQ8wWE7hlHDfLYsqb1lt6740Gif7d6Y/suU+ZGNuoXjJ7DlFSpbI95ilKffSVg5vsjc/Aw6dRTjkul4DD3PoDNDpjOcd4iKb85oAwLBxzyLLM1QmW26KMeu0tHaDYQQLd80NRBcM0bDYWtHcA6TJnSSBAI4W1NbRwIEXyM4uiGeFrtKke9ts2enlNUYV04hnzCvhZO9HoNMSDoKjEN5S/BCWVtsXSEKnHWx1xLgm6aAInLYH8fZGkM47LBeTMZMRmN293Ypbd3cPSE6nlWToPpMOuSzYb8cNvuz1TJvmbfMW+Yt81cP89HxRR6dn8GljjPjkrvHY36359nrzFDqDO0doWFuG+biYw5dmWb4zJLVNYlzVIBvmEsI0fBrmCvvMc5haoc4h00TiiThvgCnbM2d1mGArGG+FzSfSRI+qBT112F+vNfjciZc6Si6xnHRW3peeF/DHAUd65iaaMCphnkQ4VpisETmjkDlLHN5zo9MxkxfpsyPbNSdvf01bHvhxtNP4q3FGEd/0GE420NUYJKP2d3dxxUFRgkqMSRJgveBMp/iRmO6vR6dXg9jDM47tNKQJBSimBY1ytQkiaEsy2aosiLRCofH1zWJ0SitKIsSW1pS4ubudTxlVVNVFVVd4wWcCigM4Kn2CrZwFJmhyktMXtDtdZgd9plNQaVCHSpGk4LJJGc6qUjShMwYaluTBkNtbQwvaBVzSghYa6m9Ix+PkKDJMsHbOuZh2BpLPKFE3qrBLt/oNr+s1DJvmbfMW+Yt81ce8zO3v4adr8G8mO3hVWAuH/PB3X3OFAVfVkKdGOokQflAN5+SjMaMej2KXg9rDNq7GMZMEgaieH9R87umpkgMWVlSEwhaUWuFxqPqmtpovFZkRYkpLRWaMkn4nY7n0armDVXFmYb5vAp8N4YEz/RrMO/0Ojww7PO7KdSpkIaKH54UnJzk+ElFmSbUxvADtuY/BIOzNoaOtSKIxNY21rLgHWfHI24EzX2ZMLQ1yy9T5kc26pbPncMUlq2tTep8SqIMw2Gf3qBD7WvyyZhqGjd9II7AKIqS4AJVWeO8oypLbF3T7/fRJva3UUohylDWFlPVKJPgwuG4YZQWlNbRZYqQpAZEUeQFRdOEME0yjE6iC91Ht71zDlVBsFN05THOk5QZlQukaUJ3tk860yNRDiWeuqqZVJa9aRmbMRpN7WwTahBc8LgQME2zSoIQXMDWlnJakOgS1bOIdXjvYpJwiAugccgSkCbJ+Mg8vyVqmbfMW+Yt85b5K4/5pXPnOPdnmHeGfb446JD4mpXJmBPTgh0l5AQ6RUGnKOm7wG1lzS3e8WhZ8qW6ZtTv40zsUeiVIlWG22rLelXzJyZBByH+p/Ba8FrHsDdC3TDv5AWdsqJKEraSjB2dcNp5zjTMxTl6Fbivwzyb7XNhpkehHF48C1XNSmWpn8V8wdnYikcEHTyDEBiJEJ7F3NSWN08LfkeX3OhZnHUsvUyZH9mo680vkp1X3FhbZ2eyj7icwewMppdSU1KVFUYZkoTYWdl5XG0JzoOH4DyVK+L3IdAf9NFKE0IcZpuXNaiSJOuC0nhRuBBd+aITlJEmTq1ItMEHhbUxWRECSmmytEOSFPi6xnuhDgHvarSCAQaHQWcpkmiKTsKe8iQqMNAaXyumtacIMD/s0+n+/9u7sy+7zvPO79932NMZawAKVZgIEKRIipNASqRISx5k2S23HCcdd9K9upP0Vf6pXCS5yHJip2O33W1bTieWJWsySZHiIHHEPBRqrjPt6Z1ysQ8gkAItkkU6FLh/awEFoAZUnc8+Zz37nZ4E5xxoiQ2uWXcRmt0tEoGYr8ewpmn/IeIOqjKYsmq4o+biaV6+msvAAUiarUe/Ak/+1rw1b81b89b87jP/+8VlevdLlm4z7w4H1J2YiIqkqpFScyWCmZRo58mM5YTzZB4OO88DrkQ6z/MhMOt1cVIhAvQCxJXhS7LijSSjkgopJCo007RBRXgtECEQhMQojQwSbQ1qbu6l4uU45ZGoRH4Ac5NGfE16dmXgolL0jYQ7mHe05N7guOwDZ4PnudAcPB1uM3+kKHBxhwuVYeFTbH7wI02yhP7xoxx/+PPsTXZgtstgaQETHNaUOO/I4gShPWrer43IIzy31iyUdd2075hOkSKQZhlSRgQhcd5TG0tAoFRzblBAABKpJCpoQgjztQ+BKImQSuJMM3Tug0dFmjTLmspbNcP5MmmepHJqELUjThJ8FjMJNaLIkVqiowTvwAuFyhI6/Q7eWbxsdgkZ1/QHDPPvSIj5LLqf3wVOc2TSJ65rZpMpeVnPR2gFQtAsyCWAaGbgf1Vu51rz1rw1b81b87vPPMmmXDi+yDO3mcdLC/SDo29KHvCOv4gTLmiPVRFGR1SRZ+zBAD9wjnvqmieNYX865U0RKLMMLyOY9wMeGksPQa50M6o1N/dK4oJGhDBf1xYwSYRXEmWaaVEZPNcizctZxlNCIFSzQ1UkzQaXO5kPipzf1ZL/PUpYcsAdzJeU5A+c5//wnmMEUiCIpia7aV5Mc55I+jxW15jJlHc+peYHLuqc0iTdAUdOnWJn4yrlpoZYsTfaJ/IlmRRkOsbjiKKYTpah5jWt8B7nLFFZMrvZl206IXiHjDKs883dmROEIAlS4OXNpsAQpEToZteJwDctSvAECVKr5uNC8wBnWYcgJSGAjhQ+kkzKinxWUNWGkPZIF48g+xGjG5dJ8oK+jbE1CJGSDbo4Gahri45jUBJotl4jVfO9iWYLs6dpB1LWhq5xBOsoZyWzoqSsa3wIt16+bp97b4b4w6f+hq41b81b89a8Nb/7zIfqFX7aPcrqqVOsbVyl2tQMYsW/Ge2jfMn3pOA1HSNwmCgmzzLcfB1Z8B7lLEVZsp7nnDGGznSC8A4fZWjnCUHinSALEiEFUmqEkEia0d6gbz5OjbnHIyR4rZqPCwEP/F3WYUVKFgP8MFI8HjVr8Ir3MV/KC+61MUfex9woyTqCL83NpRRI0Wx7uN28YxzeOuyn2PzARZ0N4JUkW+hz/My9VMOY2BdUsx20EHS6Q7oqoq5nqDgiShJUAFzzBEVI0jRGikBeFlhbUxVgC8usNBS1JUERvENphcIhhMfPzyCXojlTWkiFlwFCQKuAEAGHRTgHQqC0wpNgvUcIiSGQ2xqLJ+1m2KzL4qFVTn7+OGZvlf2XfsL2tU1SoVkYLKAGGb7OiZIOQoKKVLMl27nmzlTI5nyb+TC98ODqgDfN92RNTTWbUeV5cwq3FEQIhFDNDjGlQDR3h94HvHe3Woh82nZIteateWvemrfmd5/5oRBxTVneWOjzL8/ci5mbh9kOXghe6Q6Zqoi4nuHiCJMkuLm5mJuXaYwXgZ+VBdrWJAWcLCxfLQ2mtggUC95xQSscjiA8EolCNkfi4AlSIefmVgWCCCgsYW4+1oq/JiH2nkpIvkIg2JrJbebZoVV+3F9lXB7iN+PX+O3rm3SEJhsscHWQ0atzLiQdtIRRpDDeszs3r4TE3TbtftPcmMDFEFj5FJsfuKgDSRASGUUMV1ago5DFGDFJ6GDpphryHOUVkVYwr7SFEngncUISpEJoTRIniDpQ14airpnOyqaxrpJEMtClJg4e4TWFT6hCjMQjbYX3EhuaU86VtOBmKOlR0iF8QKgY4ojc+GYdRVkTZjVJR5GsHSIsHyNOFlldfZjh55/glZDy/PW/YlGkdNJjTKuYECDOYtJ+Sm+QURYzQmVIEDgp0CpQh/PUtaCaNju3PM2p22WZs7e9wUISo4+ssLR0mIXhAoPekOFwEZ0k2GCpq5KiKJhOp2xsbLC/v8/+/j5FUTbrPea5/br4p39ZaM1b89a8NW/N7zZzyTZCaESkGa6s4DqKS8WY2STheSzX5ubOK8zcXAJBCaSTKCERUhG0pooTQh1IasNv1DVHZyUj3+x2XZeBGTV18ASvyXzCQohReCa2ouclcYhxIjCWluBmOOlxslnrGFTMtThizXj+rfF0yprpe8zreIHv/e0b3PjpVQ7/68dZWf87FkVKnR7DVzGXAqRz89VBRlXMiObmJ6Tg36vAWjiPuc0cIrJ/xLzXHZD2BxAnxMFSm5q6qv5JzQ9c1Mn5jDiiGRbXnQ6xkqSxJsOgbE5ZFggJWkqUENh59doMrAt8oFmUKARSyGYw19U4UxK8Q9DsQIqVRhFT+4yJG7AzU1R5jrIC68AIjdbzwwkTSSIKlM9JhQAnUUEhAOMMJq8gNyQLMQvHDpOs3YOIlklUQm+wxPKJE6SHFhlt7LK3O+LGNGJSKXoLCacfOIzsLrM5vcFktEfqAic6CXFXM7GaceWZVo5USoyMKIKgdJbl5SW+8vRTLJ64h+On72dl9ShrK6scXjrUbOu39a2piqIouHDhPOfOnef8+XO8/vobXL58mdlshrW2efDDzy+Af8r2Mq15a96at+at+d1nvk1NIAfhCFrx150OryhJHmtmGJzNScuCIMFKiRMC7T3SN6vjbh7eLGl2gHohEQSy28whUAlBrTSOmMRnPOQGPDNTHM5zJlbQcYDQoOFaKnk1kVwQBdbnlHNzFxQZkL7HfHbsMOtr95CLJSa8yXTzHV4+/xV+b3mR0eadzbPuMru3mXc7CY90NSvvMV+QEWtBcHVu/szTT5GLPgg4cniNc9eu8/rFCxQ+sCgVg0PLHBr0WVo+zNraMUbjEUkc8dZbb31i5gcu6gRNSwwXQAqB9AJvfXOIpNKYymBcTRQA37QHETe/aR/ANXPUzvn5LimQQqJVINIBbQSRjvGyQxli6jpmd5qxXiRMbJ8QltHOYKzFqoQER9gf04tLVro9hrFBihIRLELUSOnA5VTlhNpbOumA5eVlVk7fi9dDOt0MrTTLh4+weuwYVzf2m1YxUqCWjjJYWyZePEyIOxR2jyvXRlBOKbodxNoAUzm2i5r90pLGDlHXqMmUPaHpLC4xXFjm8Il7OHLyFJ1uj06/S9pNydKExXgBHUVo3ewQe+qpLzKbzTh37hxvvvkWL730Es899zxvvfU249EY61yzxFQ2CzS9Z76V+pN98rfmrXlr3pq35nefeQAcO4QAuRBc9ILMesZSUitNVBkiV2NuMw/QbFSZm0vrUM4j5ua1kJxXgS/OzdExTnbIQsygjvmtacbpIqGyfcZz8+lt5ov7Y74el6x3e3w/NmyIkhAsQdTckI6Ry8luM/9JZ5k/e+Mocv8VJq+9jHUFF17fpvzdY6Sb7zVfvKP58W6Hb8zNL/4j5t2FZfbLPpPpJsQCW1l21zcoyoqN2uJeex1jbbORQkoGgwWefeYZHn7kMZ5++mlefvkV3n774zU/+PSrmM8RB1BBk+oUlEEHQxRJvG7OHcIE6rrGOodSEUIprDGYusY73zR0dh5CU+1HWpFoRYRFCUUdIioTs19EbFYZO25IpZaRUYZzJaU3yLjDIBOIMGE23aC0Oau9wFKSEcspkfTIUBJsRVUXIDQ6SYjihMFgCLqHFhC8oz9YYGX1KNudc8S6Qyfu4bsr3PPQYwwXOwRfc899Aw4tnWC0eZ3Z+hWujGb4acV2kOwhMUXB9WvXCdt75CrCJSnZ0mHukzGqO+CQVCRRTJJG5NWM7e1NCLByeIXl5UNkWUa32+Gxxx7jc5/7HE8++QRPPvkk3/3u3/PCCz/m3DvnmOWzdw/d/lOs0WjNW/PWvDVvze9C8y4iNMfH/F3QbOkUoQw2GEwkkbo5Uw4TiOsa7RxORQSl0MYQ1TXSedRt5h7BS1pxdm5eCUUcIh42MV8vItQHND9ic/6gF/jPSca6nFJJT3iPuUwS1ncSxt95CervYG2NkJL9G2/wdvEEX/oF802Gi88TfJeT951kYeks480x5frmBzd/6BFOnf48qc8wG4530jfopgt86eHfxsqSn73zAuvXrzOZjhiPR3zrb/6aTqfD5x96hF/7ta/zuc/dzyuvvPqxmR+4qAvBE4LHW4+wgUTH6DQlcQatDC6SKAUIsLXBhxodNbulbj7xgw946xCh2UcjaO7olNII0RzwNzOBmfHcGJXM9BDb61E6hQ0eq2AaaoJxqKTH0ZVVtFmg3rnB5mwL5yzLXYWWEuEleIc3FuLmBUioZui+LnNqVxAPItJOl4XlFaIooXIVWsRs3LjAG6/DqdMnWRgM6HcG9Nc6aGCys8u17S2K3X02xjlb44IpHrefYwMYIRksL3P22GnOnn2Szz30EEtLiyRxjFSCGzfW+fELz3P9+jUOHTrMvfee4f77HuDo0aP0ej0GgwG9Xo/V1VXOnLmXe+89zbe+9Te89uprjEbjW1vvm/06n/DdXGvemrfmrXlrfheaLyLCIlhYt4FSx9g0pXIGqwwqkri5ua4NMtTYqNkJe7OoEz4grSMEd7PXAmMh2VGaoXAMCfyPJuCMZ2dUMvql5ito06Pe2SaebfGvneW7XcUPpcR7SbjN3CnFbk8RdCA+eZZ4GlOP/zPl7CLT619EdxLqd5kf5dTpr7Aw2CbrXGRn5QLafA6/0/1A5o+tnWJWZPzN//wnXLt6lUkxxbnAgw89ysNPL7K3u8HnH/9tNjenvPLKa7z11gV297bY39/nR//wA9548w2+/tu/w1NPfYXBoMdrr/70wOYfT1E33ymEd/jaIIJDSXDO4r1DyIDSCiGapsm2NsDN82kEzja7WgQOIWgWX8oIHYMXNT4I8tqxVzu2Kqilw7kcqwOHV9cYDFaoXI2MIzqppJcpdN1n11bs727jc0MWSdJIN7P+XhB8cwiNCyCUBgKT/T2c8gyOLBJFGVlvQJJluKllmAU6kzGj9be5avaZDJdI44zx/h431q+xt7nO3s5lxvsbjPcnjErDVABYhBAkacpaf4kvPP4E95y4h1RHTEdjtsqcWT7j2rUr/OQnL3LhwnmyrMOLL77I6VP38thjj/P5zz/M6uoqw4UFFhcXeOSRR1haWmJxYYG/7Hb5h+eeY388xlp/UM7WvDVvzVvz1vwzap6GLsIfxTjXHD9TG0JwOAnKWaR3BBlwWhEExLVBz83nJ/qhbLMzOeAIc3MjI67E0Bc1BIGqHaP3NT9E5WpEvE4n1fSzHrrO2LXulvmjkeSVSGOQcJu5DNCbAS5l8JufJ9raYfxaijEztpkRZRn+XeaWq+Ywk+Eh0vjEhzY/ceYh/ubvXmA3n7K0usYjRx/k2DHFcNjjrTdfuWW+sLDEs88+zjPPPMuPX3yVl19+if29bXZ2tvlPf/kX3H///fzBH/4+/W6P5w5ofvDpV9e0XBG2QvgKEermFxXellhj8METK4manzoeBFjn0GreQiT45iBJmrOAggepI6QIKBUTvKS2gjpEdJeW6fXWMFGHQkCSeAaDBBF1WFge0ulFlNMx5U6OjDo40WVc7LM3K+kkgYiA8WAdCOebZtFBopVmNh5hfIUzJ1EhI856qCSl3twi1gkPr6YIpXF+TLk9ZeoFk0nOztYmWzs32NhcZzTapqxrKjy1aubEJaCQIDTrV2/wnf/3b6mqiulsyrSYMhqP2N3f5dy5d9gfjYijmDRNuXz5Cu+88w4/e/1nnP3CEzz44EMcPXqUKIo4cuQIX/utr9HNOmiteP7HL3HjxsatodtP9H6uNW/NW/PWvDW/68z7bgkvHNpW4CtCqJtfVEhboo1BBk+tJG7eUUII0M5h1bwNXPDI4HE0nVCFB68j4g9k7hgMLiCiKdfTb/PtiwW/vvwYh8LTyCi9Zb42K3kwCbxOwHlgbu6MY7kssfYapyYnOSZTrsQncMXrzOQG9mM2r/dH/PqTT1C6h8hChQsV48mYc+eu3NH82NFjfOHxB3js0cf4/ve/zetvvEFdV5y/cJ4/+49/zVef+RJaKV548aObfzwbJYJD+hrpSoQrCb4CWSN8Db6pbFUUoXzAhwIhFUo2p4ZjmkMerXMEERAhIERzJ2iMRQmBEhEmJFQ2I6TLZL2jpHGCKGfk+zPWC4tDUk4r7r3/KLFOyZ1BR0vE6QrFaIdpMaEoa4K2ONfs0BLeY10ghOawTF8V1NUUV9cQJFGUIVBU0xGpL9FKoHQHJ1K8T3BBI01NMd1id7TJ7mSfaV3iPDghmgWZAUTwzGYF5945z2x/0vRErCucs4QQqKyhdobKGOraIKVEa8nW1g6bG1tcvXqdixcu8fTT13nqqac5ffoUSZJy6NAyX/7y00jZ7DL7++99n/F4SgjNPdMn9eRvzVvz1rw1b83vPvNAFxcWmfgC60qCKxFz8zA3D0LgogjnAzIUBKlwsukIgRHIEDjuHHsiMAuBIOCQsyx8IPOc9WIRxyLJoYcoi3P84NoGv97/ATr6nVvmeTHh4bLGaUvPecbvMhcE3SfD0NEFqrsAY8/+emB7RaE/Beb33Xcfv//Nf0avv8ZPfvJ9yjLn8tvv8Hd5we99/TcJAf7++x/N/MBFnUIgg0G6AuoZ3szwvsIrB6Ii+Pl23fldWwB0pFE6IviAkBKlNc5ZnPcwf2CMrymKGuGbk53LOjDOBVPj0a6g1xc47xlNJkyLDayVXHxnnZ3tHQ6tLFBNJOU4MCkUtdFMi5qiLFGxwVnfjM275rBKrWNkCEhb4YoZdV4QDTxSJiilsWWON2NMOWFqBDUZhewxtoK9qmZjf5+d/V0m5YzKBwISgri1fTsEMMGxu79PPpnOX9ia88mFbF74PGB9wPmAUoKqCuR5xWxaMhpN2NvbZ29vj/F4zFe/+lVOnTpNr9Nl9cgRvvz00+R5zmh/xAs/fpGiLD/Ru7nWvDVvzVvz1vzuM99gCR9SKreLr2dIM0P6Cjk3F7eZy/luZxtpnI4QPhCkxGlNz1ms9xxxljMh8JCvSYsa+yHMo/gEX37gKQ7FC9TbkumYd5nfU5bcFxuK28ydkGzpCJ9G+H6NtDPiEyuYbUlNzVh2GXyKzL/81FOsHlngO9/9W8bTERcvX+av/p9v81/93u+yvz/ixy9+ePOP4fBhwFt8nRPKXZzLUcHgfMDjcKZ5ohXOoLxHR5o4TQCBNRYXPJ4w38frMM5ijMEjIASSSBNFGozEBk3tNdNphReBQ8tdsu5hJlVBXQlmk5zReExvKSPIhNxYxrOaUFsKaipTEYcaW1qCdYhYEycZSZw2a0RMja9KTFVhjENKTRxpvLMoYVnodxiiGRvNZu6oypLd8YTd0T7TKsfSTD+EMF/i6H9eXXvAeI/39burbnfzz4KbM+jO3XxvIPimd2JVVRhTNy+K1vDk2bM8+vBjLC0ucOTICr/xG7/BeDxhZ3eXt956u7k7/lhwW/PWvDVvzVvzz5L5sM4R5S6ly3HBoHxA4lDGoKwncwbnPTbS1HNzbSwqeCSBi1JyNDj+pbPEc3P3EczH4wn9pc4dzY2pSN9jbpKMc3GKGsRIaoQpiTqHiSKNF1sQDT515k8++ST33Ptv+aM/+TM2b1zn4qUr/OV//i5PPv4ou3sf3vzgbcKMwZiAqSdQjwnCIEJNCLIZcvegUHhvm0a9SiF1s/7C01Sy1jucb7a+l6amtgbhJdIKZKRQwiMlxGlC2ungEOjMMjgs6XUzVHeZOF2gmhhEVqEzwfVLIzb2NpjkO2S+JgiHdYaiKjGFQSFIooRep0cqNVVeQtVcvKF2OOMJCIQX+KrC4+guLqCJ2NoumOYeiyIoSeEMtW/WEHAbsXjPYxUAd9vfmwbWP//om4uLm0umeY/34LzH+wLvN0GA84bx3i62tjxx9gkOHTrEysoKzzzzLD/92etsbmyws7fPu/ZGf4xpzVvz1rw1b83vPvMFY1g3gafqCXk9Zl0YQqgRQSJEsybSoZC+GXX1SuF1s7ZOElA+cNg7/mvvOWQtwdQUt5mHSDEWTUuxO5ln3QwlZ1S7r5JWDmSMjcdgj7OxN/pHzeMoIe/0KJMhyX2HILwDPiA6SdP6TQpC4FNp/sADD/KH/+IP+Y9/8R+4dPkCFy6e4757T3D27NkPbX7gos5MJngZYaoc5SqEdghs86QJTWNcrdT8Z2vWPFg337ArJTrSeBfjvceVnqq2TX84K5AugBdo59EKOolGDmK8k0TdwOJqj8OHe/QXMlQyZDKr2Z+tM57uMs43mVU7eFGgpEWpgLOGYlZR14Ykihn2evSGXWQkKascGTyREgRT4U2J9xYXwNQGM+9JOC0s+9MSS0phDNujCaVxWD/feHxb2S7mf7lJcaeLItz6V3nbeyTM6/ybn+1coCgqNjY2CcFT5BXON0PWT5w9y9LSMmfOnObXnn2GV15+mf3R+F1tSD7OtOateWtOa96a33Xmw8mESEYcrXLquXnANgVLUHgpsLeZK+fRrukmgZTYSLPlYt72npXSk7/HXHuBfx/zeFXybfUyr/7l97BXrnHm4UW+cOZr1KWkzDeZVaN/1LzT6/FXwy5VJyJ1gd3gOaoFYrWLjIZIleC9+NSan338LP/897/Bf/qP3+LG+hW+/6Pn+B/+1b/kxIkTH8r8wEXd5MJ55PEVotoB+tY6CakUcr5INUiQWoNtBiWDdU0rGefQQiLjGAW4sgYvsLXHG4EpLaKAw6kl7cNAGISryEPGdOrYHcHasWWEdVy8us5r59bZ3tgiH+dElWA1XcT2ShiNiYWhLmqq6RQpLIvDPsOFAaKbMRMWU4yofYWSEEwOLqesZtQBAgrnJXVIyF2N0Qm5ha3xmGlR4W1AhmZ4uTkssIH1c8D3r69vf4+fXxC/uI355nXlHOR5xebmLsYErLOUVYGQgrNfOMtwMOTsF87y2KOP8uZb72DK4hM5sLI1b81b89a8Nb/7zJcunMcfX+Fy7YjQOC/wgmZELkDwzSibn5sHPMK6pk2Yc1gh8XHMt4G0rHnofcztHcz39q+xs/fnxP2Y3/oXXyfL72f7epib+3/U3A/7/GxhQOhmdE5bIjfCXq24LEEEAWqVtPMAgtGn2vzhhx/h3/yrP+CP/uTP2dpY54cv/JgHH3jwQ5kfuKi7+uZPOaYcUceBC80OED0fKQzvrmaD85R5QVWWGGObk8YJqHnfQNE0CsQaR10HKtccKtgtJvT6Bb0wRYQZIRmyU8Vcuzyjo/dIKHjulTd55Z1rSCtZiAacPjTgeC9hPL5MxYg4lFRVSWUqFnop/YUeURJhrMdYg7UW4ZozeWyd412ODxVeSpAaoSRGJNQ4yiDYGo/Zn+W37bD6+c8a3vP2XRHzYdrw3o/6ZZeKaBYkeygKQ2CPIAxSCXq9PmmW8YVHH2dl5TCPPfoY3/vBDzl/8RIufPx3dK15a96at+at+XtyF5iHN3/K15Sj7DgWXKDnLKUGMTe//ScRztPPC46WJavGEluLIFBLyaYQ1L6Zrv2g5ntXFvnm6SdRh1f42asr/PADmg96KZcWemwkEY9Zz2UMLlicM0yDQy8ZpP5DpIiQ8ru/AuY9vvmNf8Yf/8kfc3Vjgy8++QRra6sf2PzARd21i5e5mEYcXhsg7QTjDaQRcaya3n/e45XEVzUmL8jzgrqqMMbgbLObREuJFAJvLXVlUQGM9IyDRVlHZaYsMqUbFDaP6fqIIBbJi5qN85vk4xGja5aF6jBpJDi2MODEMCHk69h8nUHHk4SayuV0s4SVpUX63R5lAFs7sKArSzGZYbyhKktiU+KtRclAEisiBRWWynnysmJnNKKsSmzwuBA+QBXPnPK9g7Z3+BghfuHPIQSkFPMLyFOVFaN9z/X1dV559RWyLGN5YYljx45x331nuO/0vVy+ehVXf/xP/Na8NW/Nf4lna05rfoeP+ZSb37h4mSfSiENz89/3hr9OI2axag6R9p5ISU5XNUt5wX15wcmqwhuDv82cuXn5PuYJU9JfMNeMLzxFPobxtekHNi+XFvlut8ezAe6Zm7vK8vBkxglv+ItjJXX/GHLVIvWn3/y1117l7ONn+fJTX+Qfnv8xxaz8UOYHn34dTbl4/iI+HKafBPJiwsjVaC1ItCKJY7xuXgSUg1grkqgHobnz89YRvMfUNSYEtACpFd4LxlVB4h1COCKfkyBwNmArj5FT0AtQ9VAusJZ2WA2KJHZ0ZYHduoivr7CYjunHlnpaIFVgcTCk3xngvCC3BmoDpaXYHbN3bRMZS0xRUVXNXD3eNYdrKknhYa8o2RqNmFYVlvlO6ptNjbm5WFLMx1ibgdbbId87fPp+DXtDCCilUEr9/GNuDgUL8N5RlhU7O7vEOqGTdbjn+En6/R5rR9c4c+Zefvj8c1R1fVDi1rw1b81b89b8M2h+rJjwb12N0AKtFWUcM9QK7xx7Dt7Sih9HPUQIdJxl1TqG3nOqrlH/iPnf+5wCwW/YQHIA83gw5K87Axa94CFrkHPzL+yO+WfXNhnHkvR4RTWoSJUh/RUyf/CRJzh/aZ0L6zscPX6MLE0/kPmBizpvLJO9ETtdweD4MpGMmO3t4lzN8uKQXpoRlCJKElIdNwdTSomzlrqu8M6B99g6oo4jorrG1hbhPaWZEhx4L5DOkiqDVwWu3sRUY7zoQ7aIjlIGqcQbQzXbweVTBLt0khmLHY/0M4KwdHs9hv1FpMqYliUTV5OWBpEbZpt7TLb3yRa7GGMpq5KyqLGmRAqPV5qR8WxMptwYjSlDoPaB2tlm7p13ramc/6GBTNMUrTVVVeGcw83vct8bIUQDHQJSCOIoIk1SoihCCIGxFmOq5uT2+RxIWTQXwsULF/jxiy+wdnSV+87czz2n7qE/6LM/Hh+UuDVvzVvz1rw1/wyaxzLCzM17i0O+nWYsKsX5JOGKjrFS4qVEWUtcV0jnkN5zpo74YhyxUtdkdzAvneVFZeiqgqcOYH6lv4hWGb9dlsSupiwNITcMNvcI2/vEi1360lI9U3LPsZqjr5fs/YqYr66s8M1vfoM//Q//gcNnH//A5gc/p27esHk6mmAPDVhdWkRXOXkxIY5iYq1RaYLSullbIUBKgdQRKpLNEL61IAIuBDQeECSJQosU4SvqKmCNR8aejq6RwiJVzsjuU+bXqFwgWE/kBJqcJPb0OxApg1Ye7xyxjpFSM57VVGXBtJxRSsfy8hHMrCLfn1IUJdEgw3iPqCryoqCsSywW5xQ7s5ztyZTcOiwS4z02eDziDoO1zQVw+PBhHnnkEVZWVtja2uLq1atcvnyZoihuXQjvrtybhtdJkrCwsMBwOCSOY5RSlGXJZDJmlucUZdlsj3aesioZjye89dZbvPXWW5w6eYrFpQUG/f6BeVvz1rw1b81b88+eeX1owLmlRe6rckIxYRLFXNSa19IEpzVOCIIALwVeR7hIIr1HWsslETgUAofwzREz7zFfMh4fe76na3Jh+W2VE30E81OzmtWyIC9nbEuHWj6CnlWEuXl/kLHmPZOHKx6wBeFXyPztt9/m2dXjJEmPUR19YPOPoU2YxrmafGqYTqbIxT6LwyFpqoikxntPLEDqZlEqAsL8BUDHUTNUXxtKYyjchLJylKbE1YqFKMaFZi3GpCjpdFOiWKJ9oKtqlLYYD84ZnAsoERNpUMoRKYGpLdWswtSeIrfkxYyq3qOsDUhPOuggXKCsa/JpTl7VpAFsEIjKYa3DOk/hAsYUbJUlu5MZJgi8UFg81kP4+SDtzy8DIUnThDNnzvDv/t2/44EHHmB7e5sf/ehH/NEf/RHnz59HSnlrCFfQPCYhBKIoYjgccuTIEZaXl+l0OgDMZjOSOEaKXZxzVLUjeKirmvFkwubmJi+//AoPP/www+GAheHCQXlb89a8NW/NW/PPoHk+mXJ5sc/+cMjTqWJbaoT3OAH+NnMxL+7s3FzVhsPG8DU3wVWO2R3MHypKXuymbMSSN33gi6rmkLbYA5p3XOCeuuaRuXkUYCEIOspxf+koD2h+7733cv/993P58mVOnz7N2bNn+dM//dNPzPzShXc4+6UnsKPtD2x+4KLOBU9tLaao2R+PKKolFjsZUaagdkgpsM7hrUVIiCJNNJ9b1kohQgChiIwlMTUulFgM3djheoEiDzhfUdqawge0UqSJRHtDYkyzdsM7PIqAxDuLsZbJzDAdF0zHOdNZ1Zw7Ezw6UkSJptvt0Bv0GPY6OO+Y1TUhSYiGQ+JOH6UygqupLEw9WA+jvCSvHSZAHcAGEFIS/C+e9iwE9Ho9HnvsMZ5++mlOnjzJdDqlKAq+9a1vcenSJay179o1E0Izh3+zql9ZWeHIkSP0+32894xGIwiBuq4p6xofPNaaZj6+KNjf32d9/RqXLl3kyJFVhsPBQXlb89a8NW/NW/PPqPnRaon/u5PxSqaoakctBdo5pLUECSbSGKVwSmGVan5mobhmLM+bmi+FEn0Hc2FrvuIDf6YUe4nkf/GGM8YwdJbPeccCih4S/SHNVa9DxzuiuqZKEqbDIT/r9ClVxrqr6RzQ/HOf+xzf+c53eOedd+j3+3zjG99gaWnpEzPfuHGdx1dPkauT7G1vfiDDg3eU8B4jPAJHXpTsTyZ0oj5JqlFKISV4JZo+fFFMFEdopZACEBIfHH6+YFDrmCjxeO+IZE0aBcaRxgdB3IkRscKKQKokaZSQxBHeesqyYFZ4JjPDLJ9S5DmzaU5VWpSMiHWHLNKkmabTi0hShRbNQZm2KqidgW5CHB+iu7ZK1B0gog5QUtSCsYfKWPamBcaJ5kUmSNKsS5QoRqM9nLHc2gQtQOuItbWjPPLIIywsLKCUwns/bw9i7rjIEkBKSZamDIdDDh06xOr8IrDOoZRiNp3eGr4FSQgC7wPGWqbTMevr17l69TIrK4dJs+SgvK15a96at+at+WfU/P7JhCeiPi+mGqsUXoJUgiAkNooxcdT8+9xcBocMAYfgko55JvFwB/OoE7MbK7QIGCUZRQkvxRHSel4rC75WeI7PDOJDmldVwYozhLl5sbbKrDvARR22KFk5oPna2hp7e3s459Bas7q6ys9+9rNP1PyhRwruPfMFrl159QMZHnykznu8bO6ybIC8LMlLjYwypFZESYSIIoKOUDpCIPDWY71t5u+doy4rillOns+oTE3woIUgTQS+H+ODptNNkEpgbA0hoFWEc4E8r9ne3md7VDDLHcEZlHIoKVhc7NPtDEmTjDSNkMrhZY1xOaGsEU7gTE3USVi7/zSOQHZomUoqVJD4oCgtTJ0nrwyTWYm14BEIqRgOhnSHPcoyp3DzQzfnV0EURaytrXHmzBl6vR5CCMqy5Ny5c+zv7//CwsqbCzMjpcjSlG6W0et06HW7dLIM5xx5khBHEVJKQBA8+HkHkhACdW3Y399ja2uTsizQ0cfT2rc1b81b89a8Nf/smduy5NlSsxllXNGKKokIUYTQEU5HBATSevTcXDpHXFY8O8v5aj6jfh/zvJuwoQRHbM2NEJAqYuACa3nNl7b38aOCjfcxl3Pz9A7m3tSsdxIOnzlN6gOjI8sckYqdIAkfg/mVK1fY398nhECSJNR1/Ymbl/keqyvhA5sfvE2Yu9m0WeAQFHXNeDZFaI/KOphIIFzAW0/wJc7OG2mI0Bxo6JtWLdYY8KCCQkhItEbKDknqQUq683loW9fkpqCqA7ujKZu7I/ZyRxxFDDJFp5ORpYI0VnSzlCzpoESCc5ba1NS2IJiSiMAg62Ijje4mPHD/Q6TdLte2trgxntELHbzV1FYwJZAH8LZZyGiCxwhLUZYgm7Yn711U2VTxa6ytrRFFEdZaiqLg/Pnz5Hn+C4+joBmqlUoRRRFJkhDHMVprtNYIIYjjmChSaK2QUiGEQgmF8U3zbHygKAp2d3eZTKZEOjoob2vemrfmrXlr/hk2782m/Cvt+d+yDlcjgXKBw9az7EuUDZwDStFMN0oPx2rDI8bgPGwHxXjegULIDm5u/kKnwxZwT13zVVNwtA4MR1N2dkdcfx9zl6W8mHS4KBJOOstvmhrm5jWBzazLMNLc6CZ8f32F+p2Sp39nkf9+NuNHocOy1YwPYH7kyCpXrlyirmu01nQ6Ha5du/aJm+/v7ZJPP7j5wadfA3gh0Zqmt563FDXIMsaHCjueUFVN6w0tNd1Oh8GgRxxpgnfUlaUqK4SQLA2X5gsH52fFBObDus2cdl1WlKZkc2uXnb0pe7OawgtUp89gsc/aUkIvU2hqtPLEGrRshsONqalNDsLTTzIy2Qy35mmCCNBZWkL1e8w2b7C+vsXqoS7SK7yOKIIiNx7rPNYHnHdYHPv7++yPR1hXNfPnQhJCc0FoJYnjZttzURTUdc3169c5d+4cs9nsjkO1QohbxwIIIXDOYYzBe39rePfnnxYQEpCCQCD4AAKq2nJ9/QbnL1ykqsuD8rbmrXlr3pq35p9x804Z81uhYjSesFhVDG2gKzWy0+F/HfS4Fmmkd3Qqyz8vK5yQ/E/DJfbjGCNABo9oasX5hhqIy4oHTMl9c/OrdzDvZIqamovK85yGi9IgQuBZUxNMjheeK0nG81LyVtbly2nC0w5efuN13BsXWVj95+zft8WXD3WxXvHSgcwjsiyj0+kQRRFPPvkkly5d+tSZH7io00GRCclAeFLpUdpjBewUliv7NbubO4SyZHV5gWOry/QHfZJYYuuSuq4BRdrpkqYpnSwiEhZrKgrj8FIjdARKElzA2UARFHulY2NaUSHoLA3IlpbJBjFxRxGrmJ4QJCIQgiWIgBcQREBITRandOMeWgmCFggHmUiIVJdZyNgeCS6du0YmUpYPH8ZqT117isJggscGR5gfTmhdwDtBc1vKz98CVVXx1ttv87d/+7dcu3aNNE154YUXWF9fpyju1MNNNLtnAOccRVEwm83mB2XWWGtvvbXO4b3D2pq6rmgGiSU+eMrKcvnKOs89/2Oqojoob2vemrfmrXlr/hk33y0sbr+m3tzhRlnC8gJidZk/H/S5HkuSuuTLdc0Ixb/vdJmmKVtZhBEWbSoy45BSE+bmwgWWbODMLzG/oWL+TyHYEgGCRYhALGAwNz8Xp/xZ3GOmBEILSgc/LGPszg4deRWG17l07gaIlOsHNH/7nbd5+qmnOH36NJPJhMOHD/Pcc8996swPPjGvFFoJtKuQrkYSUXvH1jTn+tYYM8lZ6WQMewMGwyEqEgThUBFkUYqOMpTOUFrjnKHOC6pqgpWaKMtQSmKdw5rmB9dxRG/Yp2s8aZyweOw42fIhulkgEjXeCLwVTZXsDS5UWF/gZUDFmjTroWRK4WsK7xBIOiiCTHAipigs450R1VqBO2RwyiCcx5UOR/MCgvRwq8pu5sOBW7AiBMqy4KWfvMTVK1cYDod0u112dna4ceMGzv1iq49AuFXJl2VJnue3fknZnPmU5zlVVWNqg7PznWHeNVuohYAA1gb29qZcubxOlqQH5m3NW/PWvDVvzVvz280HvQFXhkOuz82rCL4fpVRRhtUZTmuUM8R5QVJN0FJjsgynJNo5tHEMvSN9j/ng2HHq5UP4LFCLmoERdGwznGu9QYUK5QsSGShjzQ+yHrlMedDXPOwdx5BccxLMiCiUHHb5LfP8YzZ/4YUXPpXmBy/qJEilMaHGOU0IGmsC+7tj9vb26eqIw4tDBoMBWmtAopQiTlOkkEgdg4xwNmCMwRiHFxKlE5TqNHPTrkJ4Q6w8IhW4hQ4yTchWj3HfF3+NwYmT4CqKvX3GN9aZbW5SlVPSYNFBghFEShIpjY8l07JiczJmR3u6JOjKIKQgkgGlAl5ZjDDoJCZNOgTfnJFjvW8O1ASCkDQrGplPv8/HlZv34pxltLfPdDIlms+jW2spyzsPoc732WCdY1YUjCYTeqMRaaeDm19ceVlS3uyt6FwzRDu/QWjOxmkSzxd1njx+gpdeffnAxK15a96at+ateWt+07w/GLChNR6JU4o6TfFC4ufmygYiY4iMQwqJ0wlOdZqH1FUEbzivPH+SCv6LhQ7H04Sd1WP81aFHuHChhNJz8vhhHurv89/tbnOunPKdYNkMEmsEr8zN+7Hk18qKM5MxkfYIEh6Z5vzIFdRBYaXCK0v9GTL/WIo6lMQGqDyUNczKkvH+BJyjN+yTdSKEsIRgcV7igsTfrIh9wFuDqR3GGlQckyUpQnfwaIKvibQijSMUntp5RBKhRcri/Q9wz6OP0z1xCh8kZlYx3rrKpddfZfvim9S5pQfEWOLI4r2kMDVXd/a4Mp4x7aXI8Q1G0Zv0Tt2HGPTxpiDtJpTBkPY7LAwXUUKDB60VtZufFv2ukwlvJrzrYfEhYE1Thd+Eer8E5peQ9/OTpieMRiPStKnOhRDMZjPyPKeu6+YimH8fTVPg5mtrpen1ehw5coThwvDAvHdMa/4euZ8/LK15a96at+bv/cy7zVwJy/Fg+bGX2CCRt5lLa4hqR2QNLo4pkpSgO0g0wtcYrSjjCIfndeepk4j/RqT86MwD/PDbe8x++OdI4bnaX+X1Rx9A/PrD/PreJY7mlv8LuIrlu5El9ZI/NDV6Z4+N28y1uMAXf/eriJ2Mk6uKC7tXKJ0h7H02zA/eUUKDDQ7hoaoF+SxQzGowjm6s6acaU0woppJuR4GOCT5Qlh7vK4QHZz3OBYSCNItBSoSUyCBBRUgtUNrjnaU2htx49q1juruHvHaVvtLE6SKdeEh8+B4OeU9uCmZXSlQ5JhWaWCUUPrA9mXFxf8Qs7dM5doqdK5u8+tPX2ZuWDNdWCJGm20vxkUCmMf3hAt3ekCjeIxaGwhmCdYRwE1X8wmMi33OF/GP4tycQboF673HOUdc1xhiEEM08vDEYa3He4fy7h30FAqUkUaxwzrC7u30Q2vdNa96at+ateWv+2TZf6iikjhE+kJaebG6eWU/kArsKyrl5kBI/N/da4LRHOsuKMTxqPN46nt7bY/rAIrn7Ite3t9ndfYfi5V2+1R9y5EsneXij5NlyzB8LTa0SjvtAfzLj3HvMzZtv8PQ9FYO1FexuYx684PrFmMeX7n7zAxd1Skusd+ChqgS5cJjKkwiJTjSx8Lgyp5woTD+hlzZVcl0b6qrGG0dwzRksnV6XNI7RUTPsKYQAqfFKU3rLqLJsjkqubo9Yn1bkl3dZ2so59uCDrBy5l0NLxzmytoBeXKS/tspk8yL11CG8QMkYJIzLMXnQLB09xYNf/Arn49d58Tvf48Wr36e7tMi9jzzI4sk1+sMBKorI+n0Gi4uo+Bp23nzX+oDjFy8AcQv/g6G/X0Jo5uOrqiLPc6Ioag4qnM2YzWYUZUlV13jnCbf/X6Lpvai1ZmNzgzL/ZHZItea3P+SteWv+0dKat+a/yuadfoKcmx+rDd+sagbGkbnAm5Hm3/e6lHGMnZuHublUmq63PFZZnh2VlNsjXp2bP3nqflZ/90n84govvPVdfvBnz1M9/xr/cO9p7kliFufmRsYsSCjm5v2jpzj9xa/Qj1/npe98j1feY64GA8xPIpJjd7/5gYu67mCAH40xHqoacm+IgE4ckyS6+Q8ceFNhqxl1HSOcwjpHCAIpBbFW9Pt9Ov0OJClWgEajgsLoiFFZs1sEzt8YcWl9i3PXNtgvKkLaZWFUMjh8mMNLJxnt7RCnnuXllOUjK1wTiqq0iCTBBYPznknhGVdw39GTHDt2BrdbcS57CTceo2Yzyr0d0vtPcOjQMirSZGmKTiK8ElSjCuM9t019/0JuzsR/lMsgzH93zjGbzQCYTCa3esrVdU2e5xRFgbUWCEgh8OG2ryCaXnPBebY2Nz7Cd/HL05q/O615a/5h0pq35vCrb55UM07WMZlTPOscC0FwVQp+pBWv9/vsz821AIvGBUWkI06UNU8WgbUbI869j/nx5Xv4vQe+yY0H93nzp5u8+f0Rky8pTGkJSYIKhnCbeblykn+Iz/CN4xXDO5h3Bsts7Wg2p3e/+YGLunvuPc3+pUuMtjYpjSVBkcSaJBFkiUSrgPICEQLeOMqiAqWQOiLWikwn9JKItNNBpSlWahAB6wS1F2yPZ1zYmXBxZ0IRddjVK+xLw76bIopA2Juyu7HH0nCD8ewSk8kK2cP30gvgjAcvqG0gOElZOXb3Z4zzmmJmmWyOCdazevgwqSlJsoRe1iGSEbhAXVSIEDDOUJgS6xwivD/0z6vsj3oZNLHO4nJHWZZIpZqzcubDw+7mkdPv+f3mXYYQzdso0rfm7z/utOY/T2vemn/UtOat+a+yuTSO/7ao0ErhdMQfa8UbOmGaRBSdDi5N0XNz7QSZF3xhPOPszoTJzoT1X2I+mpX87m9+g43ZJcYorPUEL4htwDvJ8DbzE5XleBiTvo95lgbuebwiDO5+8wMXdUfPnEL6itF0TFHnZAhkpOl0IqI0ELxpTm4WEhMEwgZ8gDSOydIOSayI4wi0ovaSWihy7xlPLePRlAtb21yd1NTZENIBl/dGXNoqqPKaWEs8nisXt5HiPHuTfeIYfHWUWTFhOpqSGI+LJEHAeJozm07Bea5eOM/+uGS0vU61s4HyNQtJl0MLC3TTDsIE7LTAFWVzJhIOSUDR7IfxtwB+cQ4+vHsQ9QPn5jbmZr1pwHsH83n2m7gIeO+U/s3Pu/khZZnjXI+lpYWP8F388rTmrXlr3pq35h88d6O5DQJpA2UAG8dspB3KWFHNzWMviYViyXu+MLUMR1MWt7a59iHMTz/6eZIvnKCLpSjeJjKeKJJkAs5Mc96Ym/sL5zk6Lnn9fczjEPi9Zwq2rpS8fpebH7ioSxcHLJ1YY3t3n12zgZvPTwcl8Eo0D50I5C4QO7AOjA8YIxCRaBYQeocKAissE2fYmBVc3pxxY7cgdLuU2YD1ccH5n73Kja1ditwSCY2SKbbusL1ZEaU7LBzusHbkMN4Ytq6tUxUVSRDNEKszFGbGQj8h1TGz8Q7X9kZMxjuIckzXe4bLCwyHQwa9AZ3OAO0F1WSKMxVJrFFCoJA4/B3omwRE02blI+TWAsw7fPovXZwpQGtNFGlmsxnjZMxwMPhI38cvS2v+7rTmrfmHSWvemt/xfe+XXwHzxAj+y0jwA++54B0+CCJhecQZHpoVlJszNnYL1j+E+fBQhwldrFrjm6uXyF6tGATB571n6AzZBzRPegNe7gy44QWf/wyYH7iomwRLcmiB1ftOYU2AvT1yN0VZTxIUUoCQkhpB4QWzwrA3K0CW9LOYFM9CL6PTzSit49LejPMbG+y5Hsce+CIrJ47ywmuv8dLrb7O9N4KgiEVGP1tk0B3Q7w8IchmZDHn0yYdZO3mS8d4OF85foSwcC2lKiCTOFsSp4NiRBXLgytgwrWoKKrwyCA8lDq8ESRSTRTHSS2Tt0NITZxFaKLwGZwMuBN7VIe7WVTGv6j/6aO1HSEApyeLiAt1uF2MseV6SxJ/MEH1rPk9r3pq35q35J5pfLfOv4Pl6LyPrZlTWsbk3482PaP65xx7k7165ypfuMZy4cY2qcERpykIkWbAFyQc0vxLF/CyK2fGS5c+A+Ucu6m5Wmq+9+SbDVCGsx8aK3Bqms5yRtcSlII40cS0QwRNXltIFbuzMcCHQTSOWuhmLvQ5JGrEzy7mwM2a7yFHL9zLQKVfeusDzP32djdEI5ywRAp0olFYgNSZo9qc1ozfPkS5arl66RLG/y4133mDoLbafsB9KfJlT25rKW3bzgu08sG81hc9xdUmRO+KNTfSbb7HlBJ3uBsoLzl84z3Q6xTuPVAoZQEoP7uaQ7M1qfP72YNPvH8GheSulpNPJSJKEPC+wtbl10vUH3YL9y/+v1rw1b82B1rw1/8TTmlsePLRAff0NXrjNfC2UyDJn8wOarzrBb3U3cF5w7TNgLsJHvCquXr3KiRMnPsqntvknzpUrVzh+/PiBv05r/quT1vyzl9b8s5fW/LOXX2b+kYs67z3Xr1+n3+//fNFfm09VQghMJhOOHj2KlPLAX681//SnNf/spTX/7KU1/+zlg5p/5KKuTZs2bdq0adOmzacnBy/x27Rp06ZNmzZt2vz/nraoa9OmTZs2bdq0uQvSFnVt2rRp06ZNmzZ3Qdqirk2bNm3atGnT5i5IW9S1adOmTZs2bdrcBWmLujZt2rRp06ZNm7sgbVHXpk2bNm3atGlzF6Qt6tq0adOmTZs2be6CtEVdmzZt2rRp06bNXZC2qGvTpk2bNm3atLkL0hZ1bdq0adOmTZs2d0Haoq5NmzZt2rRp0+YuyP8Hsky92GUeIn4AAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 图像有 0.5 的概率反转大于 192 的像素\\n\",\n    \"solarizer = T.RandomSolarize(threshold=192.0)\\n\",\n    \"solarized_imgs = [solarizer(orig_img) for _ in range(4)]\\n\",\n    \"plot(solarized_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomAdjustSharpness\\n\",\n    \"The :class:`~torchvision.transforms.RandomAdjustSharpness` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.adjust_sharpness`)\\n\",\n    \"randomly adjusts the sharpness of the given image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:41.842196Z\",\n     \"start_time\": \"2023-04-02T12:48:41.695073Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 图像有 0.5 的概率提升 2 倍锐度\\n\",\n    \"sharpness_adjuster = T.RandomAdjustSharpness(sharpness_factor=2)\\n\",\n    \"sharpened_imgs = [sharpness_adjuster(orig_img) for _ in range(4)]\\n\",\n    \"plot(sharpened_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomAutocontrast\\n\",\n    \"The :class:`~torchvision.transforms.RandomAutocontrast` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.autocontrast`)\\n\",\n    \"randomly applies autocontrast to the given image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:41.983877Z\",\n     \"start_time\": \"2023-04-02T12:48:41.842810Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"autocontraster = T.RandomAutocontrast()\\n\",\n    \"autocontrasted_imgs = [autocontraster(orig_img) for _ in range(4)]\\n\",\n    \"plot(autocontrasted_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomEqualize\\n\",\n    \"The :class:`~torchvision.transforms.RandomEqualize` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.equalize`)\\n\",\n    \"randomly equalizes the histogram of the given image.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:42.129112Z\",\n     \"start_time\": \"2023-04-02T12:48:41.984483Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"equalizer = T.RandomEqualize()\\n\",\n    \"equalized_imgs = [equalizer(orig_img) for _ in range(4)]\\n\",\n    \"plot(equalized_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### AutoAugment\\n\",\n    \"The :class:`~torchvision.transforms.AutoAugment` transform\\n\",\n    \"automatically augments data based on a given auto-augmentation policy.\\n\",\n    \"See :class:`~torchvision.transforms.AutoAugmentPolicy` for the available policies.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:42.571525Z\",\n     \"start_time\": \"2023-04-02T12:48:42.129773Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 15 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 自动图像增强\\n\",\n    \"policies = [T.AutoAugmentPolicy.CIFAR10, T.AutoAugmentPolicy.IMAGENET, T.AutoAugmentPolicy.SVHN]\\n\",\n    \"augmenters = [T.AutoAugment(policy) for policy in policies]\\n\",\n    \"imgs = [\\n\",\n    \"    [augmenter(orig_img) for _ in range(4)]\\n\",\n    \"    for augmenter in augmenters\\n\",\n    \"]\\n\",\n    \"row_title = [str(policy).split('.')[-1] for policy in policies]\\n\",\n    \"plot(imgs, row_title=row_title)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandAugment\\n\",\n    \"The :class:`~torchvision.transforms.RandAugment` transform automatically augments the data.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:42.725218Z\",\n     \"start_time\": \"2023-04-02T12:48:42.572167Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"augmenter = T.RandAugment()\\n\",\n    \"imgs = [augmenter(orig_img) for _ in range(4)]\\n\",\n    \"plot(imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### TrivialAugmentWide\\n\",\n    \"The :class:`~torchvision.transforms.TrivialAugmentWide` transform automatically augments the data.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:42.876787Z\",\n     \"start_time\": \"2023-04-02T12:48:42.725850Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"augmenter = T.TrivialAugmentWide()\\n\",\n    \"imgs = [augmenter(orig_img) for _ in range(4)]\\n\",\n    \"plot(imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### AugMix\\n\",\n    \"The :class:`~torchvision.transforms.AugMix` transform automatically augments the data.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:43.072987Z\",\n     \"start_time\": \"2023-04-02T12:48:42.877455Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"augmenter = T.AugMix()\\n\",\n    \"imgs = [augmenter(orig_img) for _ in range(4)]\\n\",\n    \"plot(imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Randomly-applied transforms\\n\",\n    \"\\n\",\n    \"Some transforms are randomly-applied given a probability ``p``.  That is, the\\n\",\n    \"transformed image may actually be the same as the original one, even when\\n\",\n    \"called with the same transformer instance!\\n\",\n    \"\\n\",\n    \"### RandomHorizontalFlip\\n\",\n    \"The :class:`~torchvision.transforms.RandomHorizontalFlip` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.hflip`)\\n\",\n    \"performs horizontal flip of an image, with a given probability.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:43.261627Z\",\n     \"start_time\": \"2023-04-02T12:48:43.073669Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAnUAAACTCAYAAADode/iAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAADJQElEQVR4nOz9WaxlWXbXjf5ms5rdnv7EiT6yiaysvlxVUG7qGox8xTVgQAJbQqYxyLJ48oON8YORhYyFQAiDhB+AF8AGyVzLAmOELvc+4A9s11fYZVN9ZmUX/Tlxut3v1czuPsy1d0TZxYftyCi+qFgjdTLzNHs18z/GWmOO5j9ECCHQSiuttNJKK6200sozLfJ/9wW00korrbTSSiuttPLk0jp1rbTSSiuttNJKK98A0jp1rbTSSiuttNJKK98A0jp1rbTSSiuttNJKK98A0jp1rbTSSiuttNJKK98A0jp1rbTSSiuttNJKK98A0jp1rbTSSiuttNJKK98A0jp1rbTSSiuttNJKK98A0jp1rbTSSiuttNJKK98A8nV36uq65sd+7Md4+eWXee9738sHPvAB/sW/+Bf/l5/5iZ/4Cf7tv/23/8tj/9N/+k/5R//oHz3R9f3tv/23+Rt/4298zd/9iT/xJ3jrrbee6PittNJKK6200korT0P01/uE3//9309VVXz2s5+l1+tx69Ytvuu7vgtjDD/4gz/4u/7eWstP/uRP/p6O/df/+l9/ty/3q+Q//af/9FSP30orrbTSSiuttPIHla9rpO7NN9/k3//7f88//+f/nF6vB8CNGzf4h//wH/J3/s7fAeBXfuVX+MhHPsIP/dAP8S3f8i38u3/37/j+7/9+fuZnfgaAyWTCn/tzf45XX32VP/bH/hh/6S/9pXVk7fEo27/8l/+SP/7H/zh/4S/8BT74wQ/y8Y9/nLfffhuAo6MjvuM7voOPfexjvP/97+eHfuiH+L2MwL1x4wZf+MIXAPijf/SP8qM/+qN8+7d/O1evXuUf/IN/wM///M/zrd/6rVy/fp2f//mfX3/uL/7Fv8jHP/5xPvShD/Gn/tSf4vj4eP27H//xH+fll1/mE5/4BD/6oz/Kxz/+8fXvfu7nfo5PfOITfPSjH+WP/JE/sj53K6200korrbTSyu+Ur6tT91u/9VvcvHmTnZ2dr/r5t3zLt3Dv3j1OTk4A+NznPsf3fu/38qlPfYrv+Z7v+aq//cmf/Em2trZ47bXX+MVf/EV+9Vd/9X96vk9/+tP8vb/39/j85z/Pd37nd/L3//7fB2Bzc5Nf/uVf5jOf+Qyf+9znePvtt/nFX/zF3/f93Llzh1/5lV/h05/+ND/xEz/BF77wBX7913+dX/iFX+CHf/iH13/3j//xP+Y3f/M3+dznPscnP/nJdeTxl3/5l/mP//E/8tnPfpZPfepTX5Xa/bVf+zV+/ud/nv/6X/8rv/Vbv8VP/dRP8X3f932/72tspZVWWmmllVaeD/m6p1+FEP/Lv3nllVf45Cc/+TV/91/+y3/hn/yTfwLA1tYWf/bP/tn/6XE++clPcv36dSA6jqvPee/5sR/7MX71V3+VEALHx8d85CMf4c//+T//+7qX7/me70FKyaVLl9jd3V1fy8c+9jEODw8py5I8z/k3/+bf8HM/93NUVUVRFBwcHKzv5Xu/93vXUcu/8lf+yjpi+Uu/9Et89rOf5ROf+MT6fCcnJ9R1TZqmv6/rbKWVVlpppZVWvvHl6+rUfdM3fRNf+cpXODs7+6po3ac+9SmuXLnC3t4eAP1+/396jBDC78kxBMjzfP3/SimstQD89E//NGdnZ3z6058mz3N++Id/mLIsf9/38zuPv/peKQXEesBf/dVf5Wd+5mf49V//dfb29vgP/+E/rCN1/1f3EkLgr/21v/Z7ridspZVWWmmllVaeb/m6pl9v3rzJd3/3d/ODP/iDLJdLAG7dusWP/MiP8OM//uO/p2N8x3d8B//qX/0rAMbjMb/0S7/0+76O0WjEwcEBeZ7z8OFDfuEXfuH3fYzfz7mGwyHb29vUdc0/+2f/bP277/iO7+AXfuEXWC6XeO/5uZ/7ufXvvvu7v5uf/dmf5e7du0CMLv7mb/7mU7vOVlpppZVWWmnl2Zave/r1Z3/2Z/lbf+tv8cEPfpA0TVFK8SM/8iP8wA/8wO/p8z/xEz/BX/2rf5X3ve993Lhxg2/7tm9jY2Pj93UNP/RDP8T3fM/38JGPfITLly/znd/5nX+QW/k9yXd913fxr//1v+bVV1/lypUrfOu3fiv/+T//ZwD+9J/+0/z6r/86H/7wh7l06RLf/M3fzGg0AuDbv/3b+bt/9+/yZ/7Mn8E5hzGGP/kn/+RXNVK00korrbTSSiutrESE30vb5/+NxBiDc448z5lOp3zyk5/kp3/6p5+qY/Y0ZTabMRgM8N7zAz/wA1y6dImf+qmf+t99Wa200korrbTSyjMmX/dI3ZPKaDTiu77ru3DOURQF3/d93/fMOnQAf/kv/2Vu3bpFURR89KMf5W/+zb/5v/uSWmmllVZaaaWVZ1CeuUhdK6200korrbTSSiu/W9rZr6200korrbTSSivfANI6da200korrbTSSivfANI6da200korrbTSSivfAPIHbpTw3vPgwQMGg8HvmQy4la+vhBCYzWZcunQJKZ/cf28x/7+/tJg/f9Ji/vxJi/nzJ79XzP/ATt2DBw+4evXqH/TjrXwd5e7du1y5cuWJj9Ni/uxIi/nzJy3mz5+0mD9/8r/C/A/s1A0GAwD+0B/6GGdn58xmC6RQ9Ps9trc2GQ77uGBIdUKv28MFCEHgQ0BKgRASQiAAQoBAgAiEIICACA68Z9WcK6VEKokU0UMV8UPN5wQICY33KiAeu/kiACF+xjfHEyIgpEcpjRAS7wNCyPUuJQDBg19/03zhH30J4r0gCIHmWgVCKEIQCAFKgtLxokIA7+I6CDTOe3xwIGrqYspifIflYkltK6z1GBMwVjIc7rO3fwWls3jtEggWCHjv8c21+fDY90BV1/y3X/u1NVZPKqvj/D++7dvImvmzUjTYNHisvo/gaIKPn3W24vj4HrPpMYn2JIlAa0WqU7q9Lv3NaySdIYQUKRRKSgIWIQJSRYgJ4Cw4H9dSiEAILuqLiOsdCHjfYI589CVYf8lmDVf70agnHikFIXicswQvG10EKUTEtvl8PFfUu3XruPdRYUIgEM+/0l0fPN55vI+LIYQAKQlCNfoSIAgCgdVpEPFavA9IEf9GCVgsF9TWoETCZDpnNBozny/wwTEY9NjZ2eY3fuMz7zrmrZ0/f3beYt5i3mL+7GH+B3bqVov16ns+xOc//3lOTyZ0O5ob16/xvve+yqWLBxTVkm4n4cL+Ph4NSHwz71Q+BtjqBSkJeJoXqLME37y9AaU1Wmu0UuuX6loxpEJKTRAC7x0ihPjC9x7nDM7ZCIYUVFVFURQYU4IIDIYDOp0eSiUkOkXpFBC4IHDO45wHFCIIrH1cAeI5lIzX473Dec9KqwUSJRN0KklThVRRUfACZ+PvrbUYV2F9ydHd1/nKF/5/nB2fMF8KitKwWBjKEq5f3uUj3/QxLhxcBanxITozHotzFuc9zjmstVhrWRYlVVWxWBb8t1/7tXctnL46zoc/+AF63Q5ZntHNc7TWJFojVXTGlNJINEKo6Ox5y8Oju/yP3y65bY7Jc0Gvl9DJE/rdHjv7e7zygW/n4Op70DInURlaawIepQPIgBDgXaCuHbb2OG8IrLw7UDLqQQgB5118mATByqnTWhJEABxKyfglovU4W2NsjXOGolgwm84gSJIko9PpkGUZzgecB6U0SiUIGZ2+IARSKkQIeG/x3q0duNVDyDbYuGb2MEIgZHw6iMf0fv3gatZ7dQwpBOCRWB4eH7MsDJ2sy4PDQ7705df54hdfoyotly/t8Op7Pshv/MZn3nXMWzt//uy8xbzFvMX82cP8icmHj47O8E6jdQetE7I0Z9AfsLW1iz09QWvB1vYGQqTRs3c+gijlOlKyVoqV9xsCwVqCcwiiV68bJVBKPVIgIdCNMyGkahTIx+hOCFhbYU1JWS6pijl1UVKVC7y1aBHQiSRTDulLnC0JJqHbGzIYbCB1imuADx5EUE3UKToConE0RBNCct7hvYUgGyWVKJmSpJIk1SgddwB4hSB6/t47jC0oqgWTI0UvCSxTh3cCGSS+ltiqZjk7Rfiarc0hOu1SG0sQHuMqCDZ68y5EpbKWXr+mqmqy6exJ4f2aEnduA7IsJUtSkgYbqVY4ahKVIYIkTTS2XnD8oGYxO0ULQydJ6WWSPBN0UkcvCXRSxd72Np2sR6I70VESgYAD6QgEnA2Y2mJqF5260Oz8hEdKjZIx8hWdKQj+UXhOSAjCISRoHR06b2tmswl1McV7g5SQKYdJDNZ4vCmpwgLheyRpTqfbJ8+76CRH6wwvRLODk0gCwTt8Y4zrKN3vMFDvfXxOKIXQuonCRbXyj+1k486yceqUbKKSNWdnIxKt2draZTZbkKYZWqdoLfBOc3R09lQwb+38+bPzFvMW8xbzZw/zJ3bq3nj9HnXlWM4DplzwldffIEtSgks5Pztjc6fDjRuBTkcBEi99XMQm7BoICARSinU+TNpAEAIar1kqSaITlNYoJdeh3iZYi2giLs0yI4OnrksW8wnTyRmT8SmL+YTga9JEMRwO2NrcoNPpAILZbMz5+ZiyMui0S3+wxcbmDv3+BjrJY+RJCNzqpgXI5lyrdJsIzfmlj4oqorIqIZAiIEPzQbHazdDcs6SuA1U5x1QW7SGTAicDEgfeMp2MOB8dU1Zz+lkG0qFkjEKFkBBkwInm6kJAkiIDmDR5Uni/pnTShE4aHTql1FcZ6GrXpRR470AIymrB+eiY2eQcvEWiSKQmkwLtwVSWqligRCBJJFr9jp1IAEEgiIASgqAV0nt8iDuvEAQixstXLhzNJqrRk5i69DicsSyXJfP5hMn4jPl0hDVL8ixhe3uTwaBHP9+gKApGowmT8xknxiFkSq+/wcbmLsONqBtJmuNR64sUIp5fCQUixBSq9Egh17rp3coRbXR3da+NfjzSaggy/kwqCXiKInByMmF8VrCcWb782uu88fqbTEYLjE04PS6YTu49FcxbO3/+7LzFvMW8xfzZw/yJnTpTaepCgM8xxjIZLbhz+yHTkWA2m3Lp6havvPIyvW6fNEmx1sUIiw/44FFCNjVIj0KzMr4Z1x69VBIlJUKKdWRDavXo5dekvqJ4jK05OT7k9q23OD89RAlHnmm0DEjdIdWePBF0MomxFiEMUhiqcsbp6SnG3KY32GD/wiV2dvbZ2tqi2x0iRAJ+pbiPwsyE6OmrRplVU1O2zv87D8gIeiOq2cl4HzCmoigLlMro9jcYJIrReMp8cU4IFXVdMxqPWBZLBlvbaCkfrZ1vasiadQghIKTEAzJ5OoYvk4QkTdFJEhVdqfWOS0qBkAJkQOsYYVoWS0bjEXVtkIDWCcPhJlubQ5xxKJVRlAXGVEgR0EpCkDjvGoRFvMemmE6EgJYC0LimfgJErM8QglU923rnJUEIQ7mcMhqNODs75vjhAxazCUkiGPQzuvkAKQxaORKtCVaQKo8MBlcVWL9kfH7K3du32N69yLUbL7G/f7EJ70tCo7daSpBRR7zz8dGkBEootIo7W2stXgQQMbpHc4/xORixlUIimvoQrRW1qZmMl7z+5ds8uDdiMBgynhxFh84ICDl1kSCeEktRa+fPn523mLeYt5g/e5g/sVOnZR8rPCIs8X5JWVgeHo6ZnmvKskRKxfnJjIsXdpDaI4Nr3NpYW74qDgxhXbkY8/FCoFSshVpHgJqCfKUVSqoY1vUhFmvi8MFhTM1iPuH221/hs5/9DKZccOnSHp10SKI0WnkkjuArnBE4axHBABaJRYQaayrOT+dMxiec7ezy4o0X2L9wjay7/SjMvHIcaOoBRPy5kCK+rJsOAe8F1kFAEusrE8DhiWlD5w2VWeKCZ//gKlkC3V7O/QeHjKc1alxQV5bZbEZRFgThY7Wmj3n81c7m8YJQvEd4H+u2noIIKZFKIbVGNYa6cupWTlRQAqQgeE9RLpnNZlhr6WSKXm/A9RsvcfnSActFSWXABUdllnhv1mHv4OMuMGCxzuKcX+tMwDe7IxWjeDQRulUxbWOfq78tFyNOHt7h7VvvcHZ2irc1SkKqMyQKsBAMzhTIoAm+QgqLVp5EBawzLOZTHjw45s7duwTv6OQxepcksblDoNZOrRQCJx3OOUSQhGYn50TUBbzDB8+6CnalR1I2zSbELWBwyCAIznF+MuPo/pTD+zNGeU1RjSkLS3ASKTKU7Een8ilIa+fPn523mLeYt5g/e5g/sVMnkGidoJTG2Rg0LUuDrSq8k0zHNffvPuTmy5fopElMMDXFlauuw+Bd7AwMcRGFlAgZixGJUd6mZfGxLxkzXEFAsAHraqpqSbGcc/LwiK985Uu88/YbdPKUnZ0+iCF5N6fbzUkShfeOolwwny2YTGbMZkvKskYKT5bAsqypy5LxyHJPOsqy5sLlmwwGQ5ROIAi8azpvZKMEIsZiQ/PCXnn2IgR80ymkZAw3++AROLw3lOUCYw2D7ga9rqbbz5gtS9I0iwWjOIqyxDqDUE3dGDQh4qZRoDEUhCBY29Q0iP8Jak8Kulg7dklT7PqoUDbWmQWiZyIEWGcpyjJGs6QmSVOGm5sMN7fRumKxNJxXcR2ct7hgCEHFurgQDSUWyK66qeIKxGiWjPVyIf4uuOjgSRWN0VnDbDbl6P6bnB3fYTw6wZRLtJJkSYoUjrJYIoIl2ApbD+gPegQPSaLpdnN8gNLMqaqCs/NTivKQbqfD1tYmexcsnW6fLOuidQ6rTl3BqlyDxuNsWq9ABhF9Oe9j3ZyPGMY1bFIUgvWDhOCpy2hH00lFVQhMXWGDpdEAlNJolfFYUuHdhby18+fOzlvMW8xbzJ89zJ/YqVMagpMoqRFNyNU5Hz3eoCkWJXfvPGAxe5mNfoYSzQvYg3d18//xK9ZENd6okM0LT+LxiCBirr1xHrxfUVAEqqpmOjlnPjumrmsmkzPKcoHSgm43JU01zplYwO7BWUdd17jgWCwWzOdziqLAupU37KjLOcY6hHCcnhjOxxMqq7j5ynvoJTqC0KT34j+PaD28AI/HBxuVAE8ITbekit2hwgtko+CVKahNweF4ipKezc0ek9GI4JtOTQneOlKdkMqE0vvYZRk8gsdat5vaLW8dTqwoM959CULF4yMQSoNS0RhXRh0EeIkOklRqUq3x1qGkQilJ8I7J+TmEwHi8wHmJ6A2pTAEyOmWr3d6q28m5VZNBDHNLoVAi1joATWv7aofT1LeJwLIuuHP7bW6//Xm8WVBVJWWxJNGKTr6BEAJrDUVhEMKjE4nUEiUUzjqCJzY5OEOaajrdjNpainLBZHKGVJCmKYPBPoONXToyxYuYLo5phK/uhI263kTovAfvCM5H4w2xJV4IgZJpTMcKCd6ymM24e+cBxaICr3HB4og0KiIIlNRoJVH66Th1rZ0/f3beYt5i3mL+7GH+xE7doN9lHhxagzQgFSglwHkECmMqTk7OGI8X7OxskGXpurvDNS+7FX8XRE6vdXTDi/jSw6+9VhkkIjS5NQNVVXJ6esrDwzss5sfoRCGBra0BxhywsTFgZ3eXVMfaq9o5tPU4Yajrmto6sk4HqXWjJB5nLd4ZTFkig8MWSwo7wtBlY2eLa90Oic4QIuAf1TPGgn1WxZ6OEGz8hQh4mhd4iHQbUgmkFggZMLakqhYsRg/xvmYxz1jMFtRViQZSKUmVYtjt00lyTFGAj6lHmlRjIO4cXAAfBASFFE8M79cUKTQEhQsSF29vbQCCVUt4QHlBJ8sZdAakSpHKGLKuq5KHR4fMF1MWRYWUKT2tMLZEyHhAt9IRFx0djyfyuHliqlIiUDFNu0q5NqJ0XF9jK07Ojnnz7a9wdniPjo5dTaaqUJ0cJaHbyRBNCjlJEmrjmC9K0jTFW0/tHN4H8ixnZzdlWVt6/Rlb2wOsLXh4fA9rHL3+hAsXa3b3dsjSPO5E1+mEhr8uxHoJ5z0u2HhfwTfJ40iZEogGLZ1HKoGSUFWG8XjByckZxlgEKYEapQQugHSgNSSppN/vPhXMWzuP1/082XmLeYt5i/mzh/kTa8b2zhBTz2PIUjm6vZRhv4+v+3iTEKShKArOzk+4emWHLEuBgMcCj5QgeshNB00T8fE4RBCPFjfISEsRYqVUXdacn55w7/59To7uUlcT+r0uGxtDdra2yFOF1gKBJ1EJSsXie+MsSkhqaymrSI0hpEBpjXcWKWN78nyxoCiXZGmGRfHg/jscXLzAxYMLdDpdXJNvj9cfIi1aw2orvYCw6sNcKYrHBUcAtFQIEXnKvIsvfKUhCRJrCkxdIIJFK0GWanrdPv3BBlpniFCBF+gsZUXrsYoIrVKUQkqkfkpOndYNTxs4F2I3UMMTt2r/rqsaESRaZ/QHG/S6fbJUo5VDBIupC6yRZInGN7s971YkwgIfHNa52EHLo4eEIBqbRKwbEgKeIDwhxIJbpQVKBRZFyf17t3hw/x0wC1zlqOoK5wNpliJl7MSSSoMU1MYgrIxUI1JGXqNmd5V4hbGW3a0hm4MB/d6Q4BzTyZT5YkmaFxjjCc6wvbtLmqdNKnr1gFg5pQGPW+O2uqvV96vdosc2VRtQVxVnZycURUGSJqQ6RyYKmdZM50tmrkZIQZYlbO/0nwrmrZ0/f3beYt5i3mL+7GH+xJohlcR7gRIpUiRsbue8fHOTTA9ZTgPn555yWXN4f8zNl0o63ZyABWEIOJwPeC8QQsV6y0CTbw8E4bFYhG+iMhAdCCzOlIzOjnhw/xZHD+4zHZ0TfEUqt5DDlF4mkE5TLJeM5xPKPCPrZmR5iugPyHtd8jxFCoG1DilVDPUuC2bLgvFswel4jPOe7eEGnX6P8ekRt958jfe8fJPhYButEgi24bjxICwxC/ioayY4h3e2Ce+qNWmt0DoW6ctAlvYRJKRpjsaAF9RaIIQFFcjSnCsv3mC4u4vMM+pxwLmAQCG1akgSXQyZNVxsEvFV3TnvpkRnSEQm7LXiK0RDPhxcdPZqH5B5xsbeLldevMHZ2dvgZghhSbUgT1OQCZYEQUKW9kmTHlpmVCGmJYN3BG+JkyNiTV4kqBSNHgVEQ0QZQmQo10oTQs18fM6tN7/M+ekRm8OEyXzB+XQSiYp1Qn9jiM4yNja6MTLnXZxykSV4aymLJbP5jKqsqZYVZVmRpjmDbpdOJvChpC4mzKcjxHyCc3MEUwQ32N45QCU5Ho0Pq1aOuEtF+Ea/YdUrsXL8In4ChG/4nQKLRcnhgxF1Jdg/6LG9k9MddKis4803pixmASVSvF/RnzwFzFs7f/7svMW8xbzF/JnD/ImduuBjx4gSsVC70+lw85UbXL30Iod3J/yfn3qN46MpDx6cMJnOGW72UToSsCKbQkoiyNE/EOvCSfArsrH4IgwxZhOCo1jOOT05Ynx+gjcLCCUxhWUolvNIS+EMwRpsXbG0sQvGmQ5KCqTW5CpB6wytIc0yQggY63jw4CHzxYLFYol3gVSnCJ1QFUvOTk84OT7hwsEN0ixD66S5Edek0+IbOtbGP6oIXUVppHf4ZqeSJAnCejp5Hy1Tlia++AkuevpKkuaCvL/BtRs32N7ZiylP73DeEvAooVkl8BCPOneC5Ok6dVI+Vkz6iF9NConFxoYHr9FJwvbOHtdu3OCdN4eU8wKlYu2EtRaExKLpypRO3idRKVonsZbAxfD2ehQMK12R0fBUvGcpRKytC4rYaACmthwfn3B6ekpVLCjTLvPlkuW8QCrBvLugKCquXBmwtb2LEDEiFpU6UFc1y8Wc5WxBuSyoqxrvA4lUBGeoqwJjLc6bqKehxJsF4/MTsjSn0+nT6SWE9RicxzvCfFQLHztlRQjEm4mjbmIEMqYunLVMpnMePDhlOi0Zbvb5wAde5uLVDe7ef5v7d0/RKuqBQMRalqcgrZ0/f3beYt5i3mL+7GH+xE5dr9en31fMJucomaJVh1T36OQDuh1IdI41jrOzEefnY/Yv7NJROgIbrztedGjAJ3b+QWj+pCm+j6/5JqThqMqC8XhEsVyQKEG/110Xy9dVTS/v0svyqForB8JLghOIoMALbOXW4VVbm1jHZWM3oq0tSiqyJEUrjTEGpaCqS87Pz9eFnVI2kZhAvLamQH413sk/Pn8uNO3aInY6KpngpUUKhXWBoqxRoSK4iqKqYou4EHS7XXZ3d+j1ekznRdM48Kgg/vExK0JIpIy1XEo9pWJaFcd/PTqfXF/DStw6dQq9Xo/d3R263R7lQuA9lFUFMkGogBOC1IWG4FGhZEx/RsfmUQOEaGrppFiFwlf3HZ06ITRSaOK4Ls/o/Jy6LlEKjDFoldDJu1hXY2tL8CEW2VYVSkq8ax40wTct5orgmqYPoVGZpt/r0x8MMM6xWCyBQK/XRUpBogTFcsF4PGJ/vyDPh9GpE6tIXYzQrUQKERPLzXMu3kOzhkESkFSV5fx8xNnpCGscic7pdjfo5IMY1VQdlDQoqen3h/R6naeCeWvnz5+dt5i3mLeYP3uYP7FTN58tYhOfl1gL56dzHtw/Y9A5oCw83e6QJMmZzwqOj8956SVPt6tBSCQ+1kMRX9LrF7hsctjrF1x860WSwADBY0zNcjGjrgo2+h0G/Q5lVXF+eoYpCvp5B6ETvAl00i5GRjJDGRTBSurCUizqePzYZkhRlEwmU8pliTUOLRPyPI9tyD6QphprK87PTqjKgk6nvy7gjxxqodHRR+3Rv1NEw2MmmoHF3kNRVFS1a+bpKbyPqUQhFUqJSO4rVUzdEb6KE06uiAmbLiIpZawJkHL9s3dbpJSxTb05/+prdc7Hfw6x4iJ2vqrYKSQDPkisF0il8Ggq4yiKRvGlio0QUjTRp999DdFfFAgVd5dBepSKTQnBe6qy4OzsBGsr0jTiJ6Umz3PKImCNo1yWnB6fYSpDp5OvjRgimWSwEhkUiUwhjePQvPHY2mKsYTw6xzjH9u42eZZRV5bJvGC5mGFNHXOrNN3AEf3GqROIQDOwOTbBCgSrbifJimVdYuqa4+Nz5vOCJMnpdoeUS8/ZyZwH9844P5tjLXgdcZ/PFk8F89bOnz87bzFvMW8xf/Ywf2Kn7t79B6iwiVIJSqbMZ3PeeuMui2ng5GjGZGyxxsWIw9kYa2POXWvdFIwHgm8oIIg59lXPiRCxGB9Ye/ayGcWEdzhTU5UFvqtJdMpyYZjPpgx7A7qdDp2sQ2hmqKVpHtNfQuJqWJiCsi6oa0MgetzT6ZTz8xGT6QxrLCLEdmIrJEkSh8DXVcHJ6TGT8YRefxOpYkelc7FQVAqFd9HpWA2Xt87FO2gIDaWQBCGx1jEaTfjSa69z6849lJuRaYvwFcG6qFCeuA7EMHAcwRVHc60dKlh78aufhcBTM/z1ecUjh+7RRIn4tR4btuKQa+5/RTReG4cJFaGCyhqOp4HNnde5evVFdndzgojHj+H5VUeVAFys32v0QopIXByNA5T0eGeZjCecnhxTVwWJEjjrsdbjI3Mk1jgOHxyxnC/Y3t5iOBxGdnMEaZqQpx1EEKQ6J1UpK6oUrTWD/oCiLHDGMF/M2NwckPQ6lIVpHg41wbvINSdCrJlDsk5SN/Qlq9Fm3scCXImIzzvUerdnbeD8bEJVWqyBO3fuM5k8ZO9gwNHDe8xmJUr2USphMV8yXYyfCuatnT9/dt5i3mLeYv7sYf7ETp01BiE9LnhQiuWy4vbtB5ydlCwmBmMV3gWUsozOJxTLiuGwh9YKaG40RI84Fgay9lhjeWBTs7WOdkTvNkk0WZbhnKUolggCk9GEsqi4uHvAxQsX2d7aZjFbUJV17MyUsbCxquuGEHfB+fk5i+WCcrFgcjbm9GTEcrkkNAurhELJgFcBnKWuPIvFjMnkPI6JSiXWNZMDmmuHJgrjHNZYjDMgQGmFCHF/IoSkNp6HZ2d8+bU3uHX7PpqSfibIE0+mPCF4jIu81SuusxUlhg8BVm3h8hGth1JqTfz4NJ061Th1v9OZW12TD49oSXjMKTPGI7ylrh2VM5RmybwKWKZk3Tf4pm/6BMONvUbxY+2dCw5nbdzh+UjQK5WMTpADFwKr1nKUwNY1k8k5i8WUuqqQWSz+xQW88XjjMc5QLytsaVFBkKuUXq9Hr9tje3ubTt5DK02Wpg2/UkwnZ3lKb9DjfHTGnbt3OD49ZTKKzRdFEUPpWZaRJgmsnLhVHWDjGK52rxHD+H0IqzqN9SrjrKVYVpyfTyjLgqLUVEcl56eO49OE+fKc5bIiSzdwIXZLWW+eCuatnT9/dt5i3mLeYv7sYf7kTp0FIUNMqxmFc4LR+Yzp2KLpoHRG5C1zlFXNZDJj/8JOzHStbiysXn6CFSVG9IIlrPLz8CjPjUDrlDTNUEpRVhXFcsnofIK1jrzTod/vs729w872HkIotNKkWRzmWxuDD46yXDIanTOeTjg+PkaqhPmypihKqqrC+4qqqslsh8RJdCLxXmHqunmBe5T3zZD2mGZzwtEw8bKisYAYbPbe40QcAe98oDYWpVJevvke6nrJ3bdf5+TshGFXstlPEcFjPdR1zarVeXUc33j5UkZSR6XUOi+vlIrlW4/VuL2bsjqvko9y/CsGbCnj7sU3jtyqoDQET13XWGuR3hFEYDIvmC49neEeL7zwCi/ffA9SJdTG4pqdnluR97IqPYvHWjuKIqzD/N7FzlLvPEURd23eRzJLazym9FRFEa9BSvIso9vrc/HiZV584Qb7+/tsDjfY2tomz7tIoUiTBOcsdVViXezCDXgqU5N3OljrOD8fEfCx+1epqJc6iVccYpVw1GmIw6qb+xENhQkrXENjK755OAomkxlVVcf6RCFjV3FVMVmMcL4AUgQxrW1twH6NVPW7Ia2dP3923mLeYt5i/uxh/i50v8YUk0BAkBA0zpvmwgIBi1aS/qDD5uYw1jeFJhXWkBSuBrHHokDxmIcsEULF4EZTZEgAgSIgqGvLYlESfA3esSxKtNIkaYaQCudC7IyRikDkUet0uwx0jKLUpqTfH7C5mLO7u8/2zh7dwQZvvfkWDw4POT0fsVyUdIOgIxKCUAhi3jxJUgCc8+s6rDgjzsVoUqOsUkoUKiqDiMpgraU2BqlTNrf2+OQnv4OrV6/y//3//BJf+O1zlqWhlyex1sCFpvOyedE3nv3jdWvr7tAmlAsrt+HpySrHv57j91hxp2x+tiKjXBl8VVUYE9u6EYJlaTE+4dUX3sP/8//1p7l+/WX6/SE+RM44a22TthUoGQc+x91KY2Teg4w7PZoiXOeiTiVJul4v4y115SiWhuWyJE00u5ubXLp4wEsvv8T73vMKBxcuMOj36ff69Ho90iQH4rSJ5WIRk6Mi7pqcD0ipop4JybIoUVMdawFVSl3bZvemCCiEiNfeqDkhREcurpeKhbChuY/GyK01hABJqtncGNIfdKhMhbFxTa3z+GaSBCHugFfM7k9DWjt//uy8xbzFvMX82cP8XWAwbG684QuLhX2rmIpDacHGZo8XX7rCzZsv0R908cFgXWhCigpkLAqPL+/YLSOI3X+r0GYzHSp+RmhCkFS1ZTyeY01FmghA0O8PGA43kUqzWCxiLZJ1sRZqOGQrBAa9AVLAclkwGo0ZTcbUdY3WCRf2DzDG4RBM5ktmiwqVWLKQxOMo6HQ65HmnIaetm9y+by6wUdJAM5tUI1Xcvaxy/dZZEh8517rdAVmnS1GV9Ic7uCApa0dlPFpEJatN3USdHo2bWtWtSSkRjTE97mAF+7TTr19dB/C4U7f6+WpkjPeeujYYY3DOIxHY4ClrhxMZ/eE2Fw6usLN30Iz+ih2y1lmEiCHoFV2KQEfdCAGCi7xBjV74EHAiEvvmeYdOp4MPq05cqIylqh29Xo8LFy9y7fp1LuwfoHXCZDKlKEpMbePDqJfgA8wWc0anp8ymU6y1aK3Ico2UmuFwk35/wHgyZjYvqE1AJxlVbYGG1DgoaJjA4zPMQ1NfJ0Wc5RxUIAQZdQhPCA7ranwQDAZdbr7yIkXpsP4eo9EUa5qajuYhI1Y8UE1t4dOR1s6fNztvMW8xbzF/9jB/F8iHY+hBiUCiFVZJvBP44PHCMej3eeXmVb7pYx/i2rUDut0M50x0ABpqDNF4zJGTJb78PAJEfP0hIt1DzF6nCDRJ0kEnXYyD2XSBVnEuXKfXZ7CxgfWe8+Njjg6PKYqCjeEGBxcvIdMMleUEW3N4/z4Pj08Yj8dMJhN0miDTlG6vx97+PocPjzkfzQlCo1SGxJLojO2tXXrdXjPxIPLLCBGiLguBFP6xe4qcPR4XR60HjXMSYx2z2QzrQaeKNOsyGOyQpH3qRYmxgIopubqyVGWFdSaOJ4F1lEw3OfcYyY7K4dyKF+fpUZpotepmVesdhQC0Ul91HV54rDNUZUVdxXSoFWCcwFhJ2uvTH+6SZF3KqsbWDi3B2phulEojhSGuZnwwEASB1bw8t+4ijUzlcXfY6/bY3trh8F5G5WqU1gRhAMlgOGRvf59ur4exhju372Brw8bGBrPNKWVRcPGqQuiUyXTG4cOHHB0+YDKd0Ol0OLi4z3BzyGBjg063z/HpGctlgXWB4WaGTrpo3UXITnPNMRkRGkb1OEFjRc8SR3yFpjYjpi/AO4dzgW4348WXXkSnXYQQfOnLb1GUE0LwSCFIlCTRCiXiQ0aqp5OWae38+bPzFvMW8xbzZw/zJ3bqYjrJgfQIHUARvXwEvW7OlRuXeN+HX+GFFy4y6PcQwhFEDUKiVBI5x5AQGq9Uxtisb2K0oeGFiX57/LcUkm5vyOVL17i7f4tiXlCVC9IskOd9BoNNBsNNsrSLlAnz2YJut0O338MFT1mVVIsFk8kC5wNZ3iFMZ8yXBco4nIcs79Lp9uJwdyVItAI8nU7OxYMLZGkKrgk5yzg8fvVCRgaUWL3MPULQzEaViKChSeNNpwvmy3mTT4dOd0ivO6RenGBMgZYJ3keOteVySV1VBB+dgxgJUkil0avWa8U6Vy+lRD8lw9ePNUdEp06ipY73qXTs6mx2dsE56sqyXC4xJjp1UgaMiUS/ve6QbmfAbLpgOlkghaDf7ZPnGqV1s9PzyBDiOJngo2NHwAeL966JTcXi2+ADMkiyNOXgwgXefjPHmAWyaSeXWtLp9sg7XZyHxaLAmZosScnyDtYHJpMFvY0ZWS/qS7ffY3tnh7zTZTDosb27Q5qnDBYFWaeHdYGqcmR5j/39y1y+dI1ub4CUGtekhR8lVx+lWiWAlIhmJxxLJgQiSLw3IDxap2xu9lH6IpUtmRYFi2XFZFqBCKAEQgeCjM0cT6nUprXz59DOW8xbzFvMnz3Mnzz9GjwEj/ACERJAE4AkFVy+vMeHP/g+br54nZ2NAUIJXHD4IAnN2yfyccUQI6IpGRerbkDWaarmr+M5pSDr9rl0+Rov3XyF8WzC6VEkkO31ejGvvrFJtptx6eASRVHjnYtgKQmuxNQlQsLW1gZZ3mF3f5/FcslsvmC+XKKThOFwQJZrtIzlkULmDDd32L9wKbJHC1BKIkRolHfVFBC9bEFoaixDjDpJiQixqD3L+mxuZMyXfY5Ojlks5mRZyv6FixSzh1i3xPvY+uycpSwLTFXjpY7K1jgBSghCk+r0IaYtRROxeepjwlgRL8YwuxAC1ezOfLMW3jmMMZRlEXccCLwXWCfJ8x77Fy6SZSlFUdDt9TnY26ff7TVFrbNYcyEUuFVhKbGejlWnqGgMTDSUIPFRkSQJFw4uMdzYYTpf4L1Dy0CWa4bDARvDDfrdLv1ul0G/R6/bpdvJqcoCU1tMXZLliizV7O3ssLu1i1SKTidFaUVpKqazOf1uHyUlKtFs7u3x0s1XuHT5Glm3HwuCXWj0Nl67b/RDBPBx6OH6IReIDwqCiztEGYmWlVCkGwNuvnidYlEzH89ZllOMAdCIkCB8pEl5ukV1rZ0/T3beYt5i3mL+7GH+xE5dqjVmIUh1B+EkVVii9Zz+QHLl6pBXrmxz0M1jSq1hkI7Ax7FOccBvANG0Q4vYdSKRyFiLiAw0YdzVWKqAEIrt/Ut84KPfjBGaW699AVeO2ez16WUZvSyn3+sjgsL2ieSGywnGLpGhJvgFQhiSJGFzo8/e7g51bZjOZpyNRjw8PaGXZ3TzNDomXrKzc4mbr36Ui1dukHY6rLp31i3cDegxDx6/F6uokgdoCAUTyDqKbqdLp98hyTMePrzP7u6Aay9c5ej+HcppINEgpUMIQVUsKZYFMu/jQkAGB94ggkQIh/PNOBLvETSkjjy9+qrVOYKP9Rc+hDjUOADeEILDhciz5oqSqlg2Ri6praKuNflwi2svXGVnd8jm1pALFy6zORySalgWltqAN01MywdW1Lyh4TaSUhGCXD8ghGb9MBGiw8XLL3DzvR9lsrScndxHEOjmKb1OxtZGnwu7e+xsbzHsD0jTBGMqzl2JNYbgF8ggSZEkWZdud4MkSWOqVDhmC0Evy9jo99ne3GHvYJMbr36AD3z042xvHxCbJB5vT3erUF3zgIsPRIGNGBJ1KRYoKwgaIVx8wApPIgUH3Zzyyja3rw04PFHMpgIdumRug4ScyhYkvacz6Lu18+fPzlvMW8xbzJ89zJ/4DZB1UmwhCC6+dBMfPfUseHS9JFQLEmuRpDgpkEHhRUAoBQ0XmSA0ZLKex29BhCZAG4jeM6EpDI+LnCYZB5eu8WGh2Rn0Kc8P2dvda0Y+OQSx1ssai6tNZOoPAVdVscDee2wVO3vSRKGkwLmc+ULjrIm7gSY61OsNufme9/He932Qre0dVkzPrD35OI4krHYpsAbBNyNTfHOPeB9HgwSHVDoSK+YddBpbtZ1XVEaQ+bhPstZg6pq6rkmSgHMOnTwemXmU0gtNpEaEpn7hKUjDNhTvMET+ufhfCaFpBxc+8vq4gDE1pq7jmvqA9YLKQOLj/epU0sk7dDsdpBK4YHHONq3efn1Ov9KDJk2pRKzfizurVes8MWonJZvbO7z3fR9kMp9TLmcsJ+cRL+fw1pClml4np5OnkYiyjPrgvSc4h6sqpMiRSFxtSHSCUjp29TqHkpL93X0+9P4P09m+xOWb7+fixUsooTHGImMgLlKtNDouVk6diBUlEA169bBYReukUgTXrLUUKBcQ1uKrJbpekgWPCdHeIl9fXIOskz4VzFs7f/7svMW8xbzF/NnD/ImdOhMcTjmEDySupo9Bek+/9oSTc0Z3DymGu3R6eQwrimZpBHHY7yrOEogRFiJlRQy4hJjkFzQeczxnLFiMfnOWdbh8+Sq7/Q7V6AiBR+kE6xzWWaz1zGYzlvNlzGwRkDIhUQFnpsyLBVk6IdUJSZpERfCGsiyxzpOmXfqDIe9//4f4xB/+BFevXiXL8jg4vSl8lEI046ni9yG6+V/136gH8X5V0+mikwQpEwSKTh5ndnoPzlqMtVgrENrjnMc6izEGjImcZUE+5riHNdxNoGqd0nsasqqHEF+FSbyO5oYheJz3GGOoa4Nt5ts577HWYWxYd6WCoNMYQprFsSpa6ziqSzRnE7J5GKzC/I/+K5tRLVLEdnDZ6FWSCK5evUrA4+uCL9qa+WyKsbEOw3mz7s6qy4rpeMJ8ukBqRaJyCAnWBZwtWfoS42qQAxAe4xxKJ1y6fJ2Ll18g3z4gHe6SJim26aAlQCB2Ua10HgkihObhJhpd9tHZa3Q9TpxoAntNuN87TzGeMb57SDgZsVM7Mq/w0iBDiVEeJy3mKQVnWzt//uy8xbzFvMX82cP8iZ26qi6bAbglKlT0VEVPQCd4xNmIkzfe5mxjl72NHnq7h5CCysZh6kHp9UtMNJqhmrZnKcP6hqSIbNSyIbsNgWbou45cNZ2UQZpiOx3KYoqzS+aLBc5ayqKkLCoSGaMsUdcEdekp5gVlUSCANFUMh32MKaiqAusc/cGQ6zde5uX3vI+P/+Fv4fLlayRpive+gVOiZOwGXbUmP96mvFICiDVmrnlLPxoNkiCERspHfG7Oe6wP1MZgrEQ27N7WOuraIFPbpOlgFZIVPHIGYrpvNcbk6Zj+ajLCo6HDzfmbyNPatIOPCl0brHW4hpOnNpba+KaF/BFBsZQCpTRSPmrnVs2UCiW+eqfyO7nxVv+/ImwMRIPsdLq8eOMlsiSh3+3z5le+RH/QwVhHVRUYU2AqmE7nnJ+eMRlNyDsd6tLH+oYAghg5XJzOmC3G5J2coqpwQTLc2ifvDFD9bZxKCD4Ohg5SYF0zn1Aqgg8IRQypNxE74SK1ySPDZb0W3lsIPuqID1TzJWf3Djl5423E2Tk7wdNNJAtZUYYZdcjwCKr66Xh1rZ0/f3beYt5i3mL+7GH+5BMl6grpBYlz9ELNZuLpBZB4RLlkdHjE3TffQe9usN3R5L0uTsQXvHcepRVSKmSMzxJQ0cMXLr4EiREYKWJ4F9l0XqoElSQoFcMfUimyTmRmnk+XLJZLqnJJXZUoocmSNHYjOk9R1SxmFcEEgg0UyyXzyQSBZVmXLBdzhIAXX3qZweY+L7z0XvYPLpIlyZoEMKxCKc3/P+5gPK4AKyBc8DEd5wVSr+hA4i4mHip+Jk5QCFjnqI1H6aj03geMsWhr1iHa2DIeKTLkiqUb8Tu6Kd99WdcXiCZCJh+LlrEKV8donTUGYy2rWYDWe4z1WMd6lFjwj+oYYpRNrufheWIHlRKghHy09jxy7FbyuNHRrI2UMbV79dqLZGmHS5cuMhsf482C5WLOfD7B1xXzyYJiuSTYQDCBxawCkZOnCVJJAnE24XS2pKxzrAcvM/p5n6yzQVBxXi3KExKNDzEt6r0H79BCxXB9aMzXNZxOjUGzCul7i3ce4WPHVSoUZbnk/OiYu2++w+jwCFEW9CV0U8iEZxLiLtShsE/JqWvt/Pmz8xbzFvMW82cP8yd26hLnSLyj7yo2lGegHamPhYTee8x8ztHt2yTbA3Q3I7+comXsihF4hAwItbrwCHgghnIFnlWXSRw/pRFKI2T09JXQaK1BgnKgkDjv0MUEnCVNBVKkeBNTfUkiyfIBSWrBBOp+QfCOYB1FsUQnkqIuqU3N5tYWF6+8zP6lFxgM90iSFOcswrvoeAQgRMBWNB2rFKBoYsurXQRCILwDHwhNNErJlYPC2inyTX0axK4X5z3OxeYCF4ghaGvicYKPayQlIvi4bjIS+7pVWPupOnXxUh9PfUZDiGS4q1Fe1sbJEJGbMo65cj4OgQ4rByf49RqEJkKvpIz1CMSwvZZxqgSNgYlVKFzwWKg8XpSUIj4wRBPal4pet8OVqxkbG32OH7zD4b03qU1JsSwQNlAUS4J1ZGnKsB9b0Qf9LZJEY8yC2jiUFLFZItP4OiBVTpoPSNIBTiex/d9DcBaLa1r8fVNTEmIRhm/SslI29RrEdWg6rmJq1iMBjYDaMj0+5/4bb3N0+zZmPkd4jxISKQNSOrAVzhkQGcY9HaqD1s6fPztvMW8xbzF/9jB/Yqeun0gGCoZSMlCBXMWh7bYh0MN75uMJ977yBt1hl0Gek28O8UrEMU+hibgojSCSEvrgm1qkx19QMnJ6rUK3SjcDfXUExXls8Fgfj5WmGf1uiuh6zo9HLOcLhEzRSR9QKJ0gRBzCHoRjZ3+TvNthXpUIIdne2eWFF16iM9gnkDa59dX8zjg2JPjHw8qh8SPkmt4jNN5+IMQoDD62KDc7gFicKdeAhRCafHv8MiaQJAIfBNY4qqpCp3EOqAjxvJGBOhITrtgs5CqC9RS9utWuYs1XJx+b/SoEIjR0JnUdBy4bF++juS/rRKPkvtkZrQ69clYen1IhUEqi5KNxWKJx7lwIyKbpYFWLFiOIsllUQQiSECRp2mV394BeJqmKMZPTBwQg73aoypplcYYIms2NyLlEM76mqmqW8wVZR7G1tUlQkrCsqZ3GeoENCoGKBb1E50wqHR8aIjpweAnRRY16HSJ2sQ4wcu0JYro2eI/yAu0CxXjC8Vu3uPeVN5iPJ3jvcURdSqWnl0Q6Ge0keaKYPSWm+dbOnz87bzFvMW8xf/Ywf2Kn7r03X2TDVJjDe7jlBClswz0oCF5GJmlrqUfx5bS9sclumkA3jUWWPsQ5ok1PZXQI4lDb+KKWCKFA6ma6QMyj16amLCucdxhTUy3LOKzdTMnUgr2tlI1+hzzN2doSFJmh0+3T6XYJQaKEpygm9JdD0k7Czv6FpvNyBDKl0x2SZB2kTDBOPBoHt+6wDAQkYR06bfLijzk2vvk+rD8LIKI7v64PC40z34R1vScIgfMC4zw2yBjZapwk5yze2TVTtxCsc/CwcmgehY6fhqwdLvko/RkLOR81T0gB3jVdrM41qdaADfG+XKMbzq+G26/uYZU+fLROQjz62ep8Uoh1zQNhNXNmVWcn10W7gSbcHaKDl6iEJOvQ6Q6ZyFOshzTrsLOfsywcdWHoDnoMNob0BkOE8EhRo1Wg003odDqU1lDVNSejBdXDAp2cknU6ZN2cJElRUiGVQCsdHxgCHAERPAi/jmKKZh1liOzqARlT0c4jnMMsa0b3Dzl++xb1aALWxm4yoUD6+FwUllxIesM+Vy9eYZJkfO7wN991zFs7f/7svMW8xbzF/NnD/Imdum/+lo/Srwve+Yzl6J1ZHDguJFIkMTXmA8F7fFEwuX2fe1lO2skZXL4QZ2MKgRSRwC96+RKa4vl4M3F2phCKEASVqVksF5yfjzg5OeHk5JjT0xMW8wVFsSSRhpsv7PGxD73MRr9DpjTdTg8lHaBwtsY4T2mWuGDo9HM2t7ZI0i6T2YRFYcnyIYPhLogkRpNCk2cnsOLWEQDNzM4QHKvW498pIcT7X3PfiMaBif5+BK75JzSODyICXxtPagVuXXPmYwdp0769It2Nu4fVcaPTpZRqClLffZGiOf5j0TQapy7iGUP1q2sN3q3vzVgfmyS8XN9nWDlvjSY3idW1oxfCY+v4NRX70X0LoZp1EOvjhBCpUUIQSO+BhMFwl1F+yqIwzJc1G4MNdnZ3GY9GuGAo6yW6TklUjEL2+wOyTBGCo6oNp2djfutzb/LGOycYn9DpdOn1e+zu7rG3t8/e3h7b21v0uj20VlF/hUbK0OhLiLUnsnmQCAgNUbEMAirL9OiEe198ncnt+/iiiHbkA1KsjidweJJMcnDtIi9+7CPM0g7/9r/+v991zFs7f/7svMW8xbzF/NnD/Imduus3r5LXS8rJEdPZQyZnBmyMRggBqllA7QJhNuf4nTtkgwHXujm9JFnTVMjVCIzQdMeI2AkTFSBGPIqq4vj4mNu3b/Pmm29y69Ytjh4+4Hw8whqLNYZ+T2Hrl3np2i7L3S0SFJ2kQ5rqyJlmK6qypqoL0JB1c2SqmS7nnI0n1EawtbtDf7AFQuG8b5yNpitltftYr4Bfe+5hVfROHGXlAXxY861FIOX6Pmm43WI0J4ahWTkkYpV3j102vhmBtWL8hhgelkLE9GMIrNyhWHhKZNt+CiJUM9Jk7WA1nEOiCRXLuF6ra11Fytb344lNBaxCyqoxrtXaxDB+aNY0znkVq80PSLFe51WN3cqxizx2cv19CDyGX9w5IRW9wRaD4Q6j04ecjacIpZCpJuvmoKGqC5IigTxFK9BKEwgURc1yUTAej/ny61/mNz77JvOFQycJOtFsb25xcOESN268wMsvv8T169fZ39+nk2UIGVPBBIvHPeYUR90X3kYNM47FaMz919/i+J07hNkc7QNVCKhmzSLcEpKE7s6Qiy9f4fLNqxRp56lg3tr582fnLeYt5i3mzx7mT04+PEjJgmD3xctMx6e4yrAoxyhvkEJS4/HBkgZF4qCazDh85w7Z3jYHvS69XicmnoSIZUeByKos44teyljbtCwL7t67yxe/+CU+/7nP8/bbb3NycsyimFO7mhUSziUUZYkPsbtkuSjQ3YQ875CkGms9QgiczPAqoyphUSyYLwpm8yVJ2mNnZ59ut48QEi8ipDEi2gC1QjEQucYChFXdABC8iuHcELsfvY/1ASGEeDzR+PXrOG5YYY8QkZtNKRlHlgQf05jeNx1GYW1gguZy/Eolm/SnlCD90x3uLlmnD+OpGwdNPoo+h+DxTWOE8x5vLSJ4lJZ4ZFOjsPpAXIe4gDEZuWqCwLuGwy0quwxxqkQM4TUUIcj4FVbXs/pXE+0TEESctyqFpNfts7Ozz3wyZjKd4b2j3+uQ5Josz+h0MvIsI89StJb4ZrTLcllgjMWHQFGWTKZjJnOzXoPTk1Pu3zvkzp273Lt3jw9+6IO8//3v4+qVq3TzDtCMfpGPwv6ImE0NxC6p5WLJw7tHHL5zh3oyI3MBSWAWLApJGiQ+RP6mXn/IxReus/viJdLtLl4kTwXz1s6fPztvMW8xbzF/9jB/YqfOy4DXiu6FbS7cuM7kbEI9LxDWIZE4XIxKBI+UmuAM8/NT7r35FvnWgHzYJ/RcnBUqmhezkEgUSisEEls7xmcjvvyFL/HpT32K177yOuPpGOdtrF3SMgIQ4ow0oQQqSfFCUlYVIsyRKqGbZigpUEGQINFWMJkVnJ1NmS9qrIXdC1sMNrZI0hzfpLhoFju46DoQopPwKFG4ShGCW72kETHsHFZcN7E9O3rwTai26XrksVShaAbjJZkmTQRSWpyPXaPeO7w3NKGvR4og1r4BAY8UrEl1n4Y8On7cTYgVg5x45NDFTs+A95FcMXa9xtb1NNdgVKOwAnjUJbRa3PXK+oAPft3qLUSzrlKu6/RCeMxxW19l/EE8umA1oyYgEFKTpILBxhYySZmdn1GUJcsyZWd7SG+Qk2QKlQpUGsPeZVkwW8wp6wqvJCpJEUoglUDpeNOCqIfTxYRFsWA8HrGcz1FBMOj0yS/m6DSSU2IdAkegmb5BnFLhy4rx8TH33nqL+fkpwpm4e/MOcCih0M3DSecZg709Lty4TvfCNj7X+KfEPtza+fNn5y3mLeYt5s8e5k/s1MVQqkDrDpuXLnEwWzCZz5jaEmqDdBYZAqa5cCU8sipY3LvFZHvI/u4OcrAJuUKIDBkEWiiCkgitsbVlNprx4J0HfP43/gdvfeUrnI2OIYH+Vp+t4RbFYsl8McOamkAktBVK0+338XXJYrnETh2lL9BJQlUblos54/Nzjo8ecjqaURpI8j5BJ8gsA62RaFTw0YtpeNWinx8hE3LVgenxoqGoQBBQqFVkaVVbFnxDRRbz9bH7JiIoUAh0o2mGLIU0y9jaGlJXBRaFDeAwhFATvI2h4SBQshlDFRzCGawxcWg8Aqx7Uni/tliHr2tMsyNLkgSpQKFiF2wz/y8ESwg1jhobwJKRdnfoZx1GoylpCgQT7xsdnZ0QU4u+ceZW9Q2xOzx2xQYpcULhgmzG0MT6uyB8EwEL604smp2XErKhHAlN2lggs4ygE5a2xswXLBbg6mXT86oJSBxxTRfzBVVVkXYz0jRHrMaF4dBaopOUfm9Ap9dlNB0xn8w5Gx3z1lcE/aTL5d3L9PINNvY20WmKxCKcxwaHFwFChawdfjxh8tbbLO7dIq0KfPAYLzEhNlo4AnMJpAnb+1scvOclNi9dQusOgoRHTSXvrrR2/vzZeYt5i3mL+bOH+RM7dQERU15BobKM3csXOD2/xHQxoRxPSHzkm4mUZB4VAsIZyvGYk1vvsHv9KhsHl2KUQ6iG90yDji+y6XTO8dExd2/d4ejBIfPFDJkIti5ssrd/AekExWyOMy62DlvBsqhYFhVSp+RZhvMjJrMJx2cnWBeojKFYzJhOzpjO5tROgMpwteHw+JTuO7e5ck0y3NhCy2QNtJSs898rskJPEymi8SEazx8Xuxht0/m5mm8X1nl82UR34p8LETszsyzl8pWL7O/vceHCBQ6Pjjg9PqGsTSyoDLbx3mMHj/Met+KCswZn48xUhMD7p/OC9z7gbQyRBymRImBFgKCRSsVRXUIQmlC9c56yNui0w8H+HhcPDnj48CFJGu830UmzNs3upEnLPmq8iL/0PmCsi8amYnA8coFHUwoNHrKps1tVSkgpIQhUiF2xNlim4yn37t7m8PiUso6M6PNlRV0VzBdLhqdTOr0BWZKglSDLUnqDAd3BBrULax2zFqzzCBx4z2DQp7fZ4+ThQ0bHY+aLGUcPHnD39h02tnYgUwx3Nki0RuCRnjg7EYmvDaOjI05uvYMZj8l9kwoQsUNYCYkjYDXkwy671y+ze+kAlWWsh2k/FcRbO38e7bzFvMW8xfzZw/yJnbq4IDFMGZRkuL3FlReuMz0952FREmrfhDJ9rGmSAYTAmprzsxMe3LvDpVffRxps/JskJSiJC57FYsHx8UMOHz7gwfEhi3JJmqZs723xws0bZHmHe+/cpVguqSuDJ2BwHB2e8IUvvMaF3X2uXroAMsF4wWxRMZ7OOB+NKcsFSoKQGpWmVAZODo85+cKbvPnWPf7wJ76FV9/7Xna29po5pMQh7A4iU1iMmgoRc+WRay3WgQkf7zfmzWNePo69AuflWhFWigMx9JrnGfv7F9jd3WdzMGQ4HPLGm2/yW5/5DADGOqx7NI/O+UheWNVVLCy1cTaeDw4hJc7bJ4f3a4jzFusiL5EUqtmpeJx3CKXW3HORSTs6YgAHBxf46Mc+xs2XX2Y6nTKeTZFSkGdZ0wTR7EgAiOTEQsTRLSGA83F2rBAeJXwM66s4E1bKRwWv60JXYv2cUI+Ika21nJ2f8tprX+a/f/pTPDy6x97OkL2dTbK0g/M159OCk/E98k6P7c1NNocDZJKBTCgrx90HD/n8F17j6PAEUzucDQRnKJdLCJ5rV65yYWeHd9JbzE8WLMolDx4esvPwAnQlqqMY9HuoVBKcwpsaESx1VfDg7m3Oz07wpgKdImTAu1XkM3Il6Sxj58IFLr9wjeH2Jl7JaH+PFde++9La+fNm5y3mLeYt5s8e5k8eqQuxm8MEj1OSTtZh6+IBl168wXwyZTqvsMHHYkIRvWKNJJOCqiyZnZ5SLxexGF4GnAYrLNViyejshNPThzEU6y2dfpdLmxnv+8ir7B/s8vrrX2E8PqcuS4IPyGZMx8nJmP/2q/+ds5MRL9y4wmDQI00SkiQlCEna20RmXZytQQiWheF0POWNt+9x+/Y90tducT6aMxnP+NCHPszBwQFZlsVokAxrhunIAM0qIQ8Qc+XE2Z2rV2wAcGFdNClFrC2IO4Im9Cuid9/tdhkON7i4f4HhcJONjS1MbRiNzimqmqyTNw7OiufGYZpOIWtjVMz7GGI2df2k8H5NMXWNWacyPbENPAaxk9Q1zlfscvXWUVQ13V6fy1eu8fGP/SF2d3eZTMccHT9kOp00DtcjfYpxtzgb0CIiC3fw68q7GOWWSKljTdvjBaQiNA1FYbVlWjdjlGXJ0dERn/3cZ/k/P/UpPve5z1LXBTduXEaolN3tId1OB0Ig0ylap1Recjyac//4nNq8wWy64J3b9/jS629wcjIGYqQyOE9VloxH51y+cpEPfuD9XNi9wJf+x2sIq7HeMl/MOD15SN7XSL1H1uvGtLELCO+oFwumZ2f4siSTMQFsiTxHXkRqYickw60tLr14g+2LB6heh9o27fFh5di9+9LaOc+dnbeYt5i3mD97mL8LNXWxE9EEj5UBLSVpv8vBtavMTseY8RIzneEIBCkgeESAJAjqylGO5sxPx2xesei+xMtAbWsWiwnnZ8ecnj7EO0/e73Dx6mUuXNzlvR+6yWw2ZjI+ZzGbIoBEK5AKrQRVabl954jR+YTPf+FLZHlCmqVorZE6QScZWZaSJpraGCbTBaPRlJOzEdPpEimnLOvPMJnNmc2XfPxjH+fK5ct0O53Ido1qCLFlM/6k4ZYJcbqBCRYfYmE/AoILWO+RWpImkdMsSTOkVKwGBoNA61jPoJRCKk232+Xq1asslx/mjTe+gnWOoqwBFz14v/Ly/ZoXzlrXdIwKamOeFN6vKbUxpEkMn0kvgUd8a5HHKGBtTLlCDFlfvnyZmzdf4erVqwghmC/myGYKhdaaGJmL6yClIkkzOp0u3jvqusLbWD0n1GpdY0eR1hqlH61/IDQjw3zsv2jC58tlwb379/nNz/wmv/apX+fLr73OyckJ3htmxZKj41O2t4YMh/GBURtLVdVYU+GbcHhd1VSlYTpbMp0XGAc6iVQnCIcgsJhNmYzPGfR6XPrIZTLZ5eHhKXm/g3EVZ6cP6Q4S8l6KyDWpTtFSYmrL/GxCNZohKkdCjECuUtzOB4JQdAYDLl67xsG1qySDLkYKaunRqxqPp8Rf1dr582fnLeYt5i3mzx7mT+zUqcbDXbUKGxFQiaa3tcHB9avMj885riqcrWP6KEhkEKRSU1tHKGumJ+e4ZU2+GTnErBTYumQ5HbGYjsnSHv1+jyS/ynve9zK7+5vcv3+XqqiQCLI0wQWF9USy2wDBOCbzJcuiiIAptc57h6ZWK6YIoTaO2liM9fggEc5xdHxCbQymNoBAScn169fROk4LkIqms0U0DS+Nd+89SIl3AmQssAw4gg9onZB3evR6Q9K0A0JifUAQU4pxzhyR3NDHncBg0OfmK+8BKbl1+53Yfek9LqxqyR5FZladOb6hALHm6YTorbE4p+P8VQlrrp7V9QRwQbAsa6SUJFnGjesvcPPlmwyHG8zn8xhJ8/GBEOfG+lhjhkIrjZadWM/atJDXLs7GU1oRRNMgIWQcNaNi960IMVyOjM6md+BdpAl5cHjIb37mM/zK//F/8MXXX2c0Gsf6PARn4wXTecHdB8ekiSJOGBMQQnM/jaE5Bx6MCxjj8UIhHCgZZxYq4ZAIqqJiNpvx8suvoj6ckyRvkiUp3juK6ZTltIetd5FSkEoFvqZaRjsIhSHxgVSrprU+hvddCIgsZftgn4vXrtLb2iBojRXNTlKAkBL1lLKvrZ0/f3beYt5i3mL+7GH+rqRfV6zMiPhykUKhOznbF/bZv3qFyXRCGI1xQaCbWikpBDoIyumSk3tH3JjO2djfJUFS15ZqPGI5OqOcj6lVSdbrM9jaZn9vDyVjumt7a5vFdMHZ6Tm2tI/VUoWYJbcxNSiUBBe7XDyrwbqRJ4YQx3/EOslV0WMcX3U+GvPl116j2+mQ6Dh/7uKli3TSlNCQFK7CrB6wDfdMQIAUSGKBvlQCnSh63T7d7hCdZPEzvinzD/G/QsoYvfVxZpwxBq0Tdvf2CUJgrOXu3dtUVU1RVFjrsDo6VOvJDg0m1jmMfTq7OWMN1mq0/N3nts7FHUhRUVU1nU6Hy1eu8fLNV9jd3QMfqJsi0VWKVK4425p1CM2QZZ1k9LrDhr5OxBl5K248GY3ZNc6hlrJpznjUhaSUpK5rDg+P+O3f/m0+/d8/zZdfe43ReBJrI0RsrnBB4I2ntjWyAESIrfLNvNmYBIi7L+8a3Wk0TTTrHQLoLGVnZ5vtrW289SRSs7+3x9neGcWiYDY5w7uS5TinGu+i9w7oaImxnmo65/juEeV0SRI0ErnuenJBEpQk2xyyf+UKWwf76E5s0fciEHmRVrvLr82E/qTS2vnzZ+ct5i3mLebPHubvQvqVhlQvOrWrYu6QJOTDATtXLnN0fMx0UWKKunEEVAyxSkW5NEyPjlkcP0RfvUhaJ7jRKad33ubkzlsUkwXzKnD5hZdQqoOpSkg1B/sXWS4KlvOKyXQJ1QKCa1Qg0qQFiCA0NV80YLkg4os83gEgv6q8XDSpPUJgOpvy5ttvsLmxwcbGJlmec/HiPjrRMc8eAl42nSlhVSYJqwkJgTicN8065J0+WqeRcNC79d82ladrpmprHXUdZ+EZ58mTDttbu7z40k2Msdy7d7fZiVhSF+eFrq5bSom1sbDTP6X6Kt9ErkKQ66kIEOvYfKN8tbEkScbBwWVefPFltrd2USqlNAVVVa0dO98UoNKsX4BmdxKVWeuUvNPH+kBdFY85MI9hFuIsPWRk6RaAVBprHOfnI7782mt88Ytf4K2332A6mwKx0DU432AmG5cNfKMVDVsxa8680Bh7CNgQLzfyBgUIHoRCpzk7u/tcv3aDg/2LOOswtUUpcKbk4f3b9DPBiV+w0Um4tLtHqlNCVbF4+JDpw2NcUdOVybpdxAWH8QI6kZNu5+pl8sGAkCQEuaJ/ASGjHVr7dJy61s6fPztvMW8xbzF/9jB/FyhNQtO2LJABZIhF70prRK/LxoU9dq9dpTgZ4c0UHyyrN5YUHuEt5eSU2YPbqFevoWVBfXib49e/yOk7b2NFwrKGxXSbvJsyHp+ztbXF9WvX2dzYwgXFyWiK81CXBcYYnGsc5OYrOiDrJV/XXsWVe/TzVYFkAKRWpFoTXM3J6TFfeu1LbG3usrm5Rb/fZXNzGF+oTcdhnAkn1nVNQkqEbFKUSLK8i9I5dR0nE6RpSpbl67Dxmtc6RIWy1rJcFkwnc3wQJIlme3uXq9eusyxKlI7dMN7HgchfXSD/lHJwv0u+OlS8csicdyit2d7Z4+q1G2xv7yKkYlmUzKdzlssCa21TPxDXXDY1dT4uKlVVUtc1ed5B6Zwsd1hvgRhhW5FaBiEIDS1I8MTmDaJzN5vNuXXrNl/+0mt86ctf4uT0GKkEeZpRWxudupWs2B7Xd9ZgGpqoXIjRupVere5cysjTl+YdBpvbvOfV9/HRj3yEjY0hdW0Yj0dUxYLFZMRyfEqSwun5A4bCUV88QGcJdlEwPbxNNTlB+Lrh0YvNHV4IgtYkvT67166ysb9P0usStIrdxyHanZACKcUjvX7XkW7t/Hmz8xbzFvMW82cP8yefKEFAChnnfgZPLHmPg9XRkHR7DA/22djdYVlW+NJgvI18syKghcOXE2bHdzGn98jMAD07YRgMAxE4XcyQMuP04RFZt8ui36eT5fT7fS5fuoJDsSwNb7/5BidHDzgfjaiMwTfv6BVJRgwmxZ/E4s6VF978xbpzJcZrIJB3chKVU1UF56Nzbt2+zf6FPXZ2NsnShCTVsXCSR52ZscgyMmgLEcOu1sZB9krULJdLimVJtxcdGGvsOn0vhSB4h3OWujZMJlOcj2HaXq+HTjR7excoypLFfLoeDEyzqfCPfb+iTXwaEhOfojnvqriT9ffOBwbDDXr9IXt7+wgki/mSxWLB+dkZ89kUY2qcszHV2ixAXddUVY1ONFVZs1wssdbR7XYxNq6j1rEeQoQ4PzDeY4iRsxAQPq5rVdccHh7y1ltvcOv2bc5G5wglGXZ7GAf1bMYj96xZQ9EMeY6qGfWkSb6uRpiF5lyh0S+lFZubG+wdXOLFmzf5po9+jMsXL1LXFdPxlMVsxnw64+T4COlq3KJiq5cxDAY9OyGc9zGTGfPju/hyihYWhMIFj/HRqcs6Gd3dHYYH+6TdLmiFEKq5sjiyJrKOyzgC5ylIa+fPn523mLeYt5g/e5g/sVNX1TWq1yMXCS6sOMMicWxQCpUmdIYDDq5c5mwxZ/JwhvMG3YzX0NKhhMEWY5Zn9+mGAX035epWl8V4Exem7Gzuc1wYHh4exhepVEghyHt9VJJx89X3U9cly/mI8fi8CV8KpIyRFNl0BK5qn+QqsioehUuFYOWqAHGEh5TQ7XVIEkmwcHJywt1797h46SKb25tsbm/RNACx2q74lSIJgQ+e2tTM5xWLRUWqE6rSoJQmywLz2YLR+JytrW2QkR8ndpEGyrKkrAzWC6RO8CHulnywMboVwNQWm1qcdQ2njY1FlcQdwiok/G5L8K4Jy4P3Dmt5lIIlYGrbLKygrGrq2uGsi9x0kynFck6c2RqnOyilQAqKsmI0OmdrcxspNGVlWBQF2XxObQ3O1/T7GZlMWbGY+MbIg4fY9hCNazybcvfePe7evcfJyQlALM5NM2bzAucssMK9qZlrPLWVUycbf080uzUApEdKEXePPnZH9fodrly7ys1X34/SGePJhHIxZ3R+ztGDQx4eHqIJXDo4wI+POdgccnWrS99N8eP7LM9n2OUYLQxC+kYvBS54hEzY2Byyc/UyneEAmSagFIKo1957dJDkIkEiqZ4S1UFr58+fnbeYt5i3mD97mD+xUzcdnbPf75OohtbCrd7n0eM3KpBkit3LB4jllOVyRFjOCMIi8GRasLGZcrDVoSMNoprSpeLCoMvZoEvtHHpnA7eseevuYbxolVFXBp1nVEEhdcL2zja9QRep5ToUu+qKkaoJiXqxjiitc/Q8AnAVtQkBnIsLmiaaTp5hak9pK0aTEYcP7nP58gG9QY88S2ONmRBrvhsZE4B4qSJJITCfzTC1wVpHlqYoGSirktFkTN7pohOJThIQgtFozHR2n6Ks6PeH7O1fYDAcxBC0cyyWc7QM5GqHPIlUIs5Ffrg4Xqupe3tarONNNEwE0RSSOoSLqT/rHGVRcHp6xtHxOUeHx7FTCZhNZ5wcP2Q+n9LpZAz7PXr9bqQFCVCUJeejEcEH8ixnPD6nqmu0ViRpQreXxfWUChViCtaL5l5FQISAFGCM4fzsjMMHDxhNx5S2otvvkaQy1vH5+PW7mwoEqzqKlVOnaBoQmo5Y7x7N9VuF9XuDLts720ihODx6SCYctqwYnY84OjxkdHbCS1cvcqGbYv2cvUGXC4MuXSpENaUjLQfbObPNlIktCNYRkIREk3S77F69yM6lA3ym8CqQEDEPDoKLD91EKbwxTEfnTwXz1s6fPztvMW8xbzF/9jB/Yqfu6POf51KSYHOF0QGNQHiBMKBSiRMOLxzJsMfmCy8xMzVn77xOXU/Z7mdcurjLjRcuc/nKRXqpJ3iHlooN5bnUCbgaFqHk8t42R2cjnAlMzueYyjPcHJB2M7IU+p2cvDNAJAnoJlQpiQOKQ0D5EAkDHRAETjzywlecNCu1kFLSH/QYbAzIe3201vSVIgSoTMF8fMbk8JCruzvoREWiXSEQQqF8inIyFrGnCoJk2NMMM0/AY71FSCiqOQ/PHmJqz2K5pN/v4r3H2JrxbMxkMkUphfcZUljyTBOCwDmNc45ENWOzTHRMIvWFJhCVwRhHXT2dovm68hjjIBFIJQkovJeNPxT5djp5F+MgSzOUEggRWAiL9xXGFpTjOT4Y0lzjvce6uA6L5YzaLrh44QL7+xsED1rqmAbVkiTR6CRFVVHPAuBEHfUmBLQUMJ8zOTxkPj6jMgWdYU5X5A3vj2VgHZWpmU3nkc8O1npAiHqhRBwULW0AFfd8rtEnNJGkEoFMEvLOgH43J5M1VV0yX1ZMxjOKxRJnAr1uzuW9TfL5Ob2u4FInsKF8vC/vGKae99+8xGZHcOud+zw4POV8bvBpl50XXmbzhZdQwx5WOJxwKCTO+KgPUmBlwPqS5dGCo89//qlg3tr582fnLeYt5i3mzx7mT+zUPfjSa1zIc/ovXCJ0MoROSRruGikUWmog4JWkt7vNFf8Sys2Ryw4vXdzkyqUd9vc36fUzJBbjHcF5MgUXBh2WdcViPkGIlO1uh/NFzfn4HEcg66RI6Ui0IxGCLMlIdIZQEo9HyFhArpBIH7PtrhkK4omz1lZpw5UCCGBzc4Nr164yHAzQWqMTHQkEpaKb5QRjmZ4eU4zOyDKQWRajRt43EauUIGOnpJSaLJEoHXP7lpralUzPR5yNTghO0esNSVKFb0apPDw6QkrB9vY225sb7O/ukOUp8/mCYlEyn03p9zuIkEMQq+ASAknwHu8C3oX1SJN3W9zqHDIQlGhat2Nre9MJj6lL5vMS4R29Xk6v30Pt7lAVC+p6yfn5OQ+PlvS6HUIIVHXFZDJmMh0jlKPXTxn0c1KVo0mBOAoLKZtdmQAf8N7glUEKhwwes6woRmdMT48JxtLNc7a3t+OuxzmssfS6PQb9Pnfu3GN0Pnos8harKEKItWyrYLeimUMrBW71180OTicpWZKRIvDFAltWVJVlvlgwGY8Itman10Es5jCfsNNLuDDokCkIziFETSIDw0GGurpPnqX0h0PeOhzju9tcfPklervbVCJqrZY6jmYjkMiAExCsZTE6Y/7OAx586bWngnlr58+fnbeYt5i3mD97mD+xU3dy7wHvpAmXsAyuXEL0JUFCUHHmm1YJUkiCM3RyzebFXXb1K8hixMXNnO2NLmkaOcg8cSyHsxYnJEknZ9DvsVEXnEym9I1hXC6Z2jkqFaSFxvkMZx0SuH7xMov5jLouWSyXKCXQQpAKjVQS432s8VoNhV8pgPerJURJyaDbY2dzmzzL4jiSVCOlppP36CoFznF2fMTh3SHCF2zs7pB1egTVwSiHFY6gVFOPFYcfW+cIOIwznI1HPLh/n+OHD1EiJQSJdYbpZEZVVNy7c5eqqtjc3KTX6RNCYDadcv/+fcbjKWVZsLuzxc6wT2iKKQOhcbb8erSIf0qGvzq2c835hIskwE143FrL6fFDTs9GdPIOm1tDLl26TJJoZrMZr3/5dcbjMVmWcfniJSaTKXDEw4cPGZ2f4IJBS+gkOdubu4Qm5C10JJwMAawKCGL+MQ8BYSt8sWByesbhvUPOjo/AOXYGW3S6jqJc4L3F1JbaGBKVMDodMR1NwDeVeSFAw9EUR3IFUi1JspRExgcLIZIlOwK9bpcXr17j+sXLCAfzyZKiqlhUFfPlmNn4mKEO9NIuYuLZyDSDfoekk+OEBGuR4lHlRyfPuHhhj6zTp7NzgdDZIt/bpVKCsjTINEGrhKBkM7ewRviSMF9wdu8BDz7/Oif3HjwVzFs7f/7svMW8xbzF/NnD/MkpTZYly3tHnCrAW/TVqyQDBWmKl4AUiKAQZopKHBvdnIPL++g6JxeGRAWcNQQR65MeDWX3CCkZ5BkH3YBdLqiD5cwtOV2UPDyuqFzJ/uYeNu2SpglbgyEvXr2GqSrGkzHBOhKtybMOSMmirjiZTDDzOcIGEqFQUtG0msTi+RDAgTOOtJfS63bpZBlSJPQ6g1gvtZiwGE05vi3QyzH1+RabFy7R2T0gdPqYZpSVlhpcwIaAb0Z/FEXF6ckJx0dHnB0fE4LinVt3EEKSp4rZdMzZ2TmHh4d0Oh0uXbrMSy+9iDGGui4xpsQFi/UW7xsCxrAaBmxjLt656HQ9VmXwboojsBpjYqzBB0/Quil4jU6f9RYXLLUpqaqUui4JIeHo6IgvfOGLFEXBxYsXOTs757c/8z8o61jj1s01Qji0CAx7QzrZADopUkpkCCTEdnsbLFIZEmdR5Zzi9IjxwweMz0Ycn5ywGJ0SZIdhb5MsSFKp8cFQ6AoWSxbzJThQKJTSKKVpRknEcHdwoAXdfp+9jQ16aQbeU1YFxlqEVmxubPLS1etsDYbUy5q6NizrJcfjE8ZnJ4jFjE4/Z5uEbRc46PYY5BmiGakmiAW9Pni8dXHcjk7Y2ujTGW5h0yGFFpwtZwhjEHkOUsQUsIJgDHY2ZXb3Lqevv8Xy/iFhWT4VzFs7f/7svMW8xbzF/NnD/MnHhPmAWixZ3L2P1JK81yXr9hCyQ8Bigyc4iXAlylUkQK4dOkBCpGQIzmKdQ/kkDmn3ARlAC0FPaZwSbKUBqRMmheB8VjEaV5wUS8x0ybC3TZYnyCR2qFy7fJnrly+TJRmbGxvoJOXo9JRb9+6xsBbTePvDrIdUKg7StZblYk5VlnS6Pba2dtja3iRLU2QQOANKJoTgsbZC1lPMVFKJmuX8lKxaor1D7R+gB0OclkgncD6SNwqt8ZWlKEpOjk85PT6lWCxwHt65fY+HD88Y9LokiaQsK6oqsk8viwU+OISENEvIuxmijpxkxhqsi0lC6xzGWbyLJIVPZx/3SDwgQmyM8HEL0zQSxIkTUgqyPCVLU9IsQcjYKbssFhhjqSpDWVa89dbbGOOZLZZcuLDDC9evoCScHp+yOdhmb/cSWd5vxoNF/jklPEo7lK2RxRRzfEhx7xbLo/tUZYWZzjDlFJtKFBE3gSZNNTrLSfMOCMVR95gkzcjynG6vj9J6rQ/TKj50ut0uW5vbvHDlChd2d7GmZjyZUJkq1vMZw+HhA7wJcS7s4pzx9ASqJVsa9rIOB92EDekZqqjPWjQcUD6A8zhvcdaglUJoFeceAlY7LCXKzREuEJzEBg84hPR4V1Ocn3H+1jss7t5HLapYa/IUpLXz58/OW8xbzFvMnz3Mn9ypA5R32MWc03u3SbYHJBtDsjwDGRmVBQIdDMpZpFNIEZDeIKVHKwFeYGpH7TxpElDEuinRkMMqPK5akqqEK8MORVWh5zXnyzmn84ppPqW/2SfppM180ISLFw5436vv5aXrL6J1whvvvMPW9ptsHd6j8JZUpUgDRVFSVSXWGkbnCZPxGJ2mJGlGnnVJUk25XFJXljxzlKagXE4ZUKJcQcdqskWJPxaUQpIQECqg+iLy5HoZKTA8VKZmOh1zdnrCfDqmk3fY2tllsSwZj2csFguMqcmynG6vC4hmKoFZ7wyEgNAMua/qGmstUsQRJeuB9jxGxviU5KvOFBr2bOfWHHF1XRG8i5EoH0ekSCFxNiptr9cly3JOTs5IkpQsy9jf2+Xq5UuMzk6ZT8ecnp4wnUzo9IboPEdJEN6B8ChR4ZcT3PER5v5t/PEDssUEGwLKFRhbMrdTbDZEJZqqqkiVJu92EUKTpAU6TcnyDhubm2xtb6N1QpbldDo5PoHa1XSk5sbFK7z35Ze5+cILGGt4+/bbfOm1L3P48IjlckHwgbqoWYzn1OWETFq284RL/ZQrww6pr3DGoOiRAtp5pFLEzbChNjWSgE40Wgms89E+fIkMAmWX6KBxCGzweFuBqalmY47v3uH03m30Yon20Yl9GtLa+fNn5y3mLeYt5s8e5k8+JozIDSa9ZzmecP/WbfT2NnuDPp1UgnGkwpHj0LaCSmKcpS6WpImi18lQUqGEoipLvLH0si7aQ1VZBIGso9ne7lNaT2oV3vTpqJouBQ9mJbPJGfPlBNmNaTSpE6qiREuFKSou7h4wyDrcuHiJ4caQ3vYGGxvb1EXN+fl5JL2tS+7dvced27fiSBERCHiKqmQ0GVEuagSK5ewYNzthuJGQBYMySzKpyasCPzpm4SyiLtm4coOQbCJlQggCYx1VVXH44D7j8zPyNOHmyy9y6fJVhpvbDIab3Lt7l7PTU3Z2dpASjo4OsdayWCwJBKqqoipLnKmZ1TWT6ZR+t0+eZ5GbJ7DuJA0h4NzT4TKK4eAQQ+pCoEQcweJDoCwrJtMps+kUIQSVECipWC4LBKLh3rEcHFzk+vUXODs7Y2d3lytXr/Le97zMjSsXeXDvDl954w0mozOODu+xubNPmtdIHR8gwhqEGTO7d4tw9IBkek5eFQRbUXpLFgzC1YwnC5TRdAee0/EpucnYUjJer4hklNduXOP6jRtcvnKFLM1J05Tt7W3STspkcs7ifMJ2d8Ag63B2dMzh6RHv3L3NrVu3OJuc462J7fJLizSWgYZL3ZyLGx0uDVIOeildLcl1RtbRCO8JVRwGLbynqJZ47+l2cpRQ+NpSFBW1cYhOF5RGu4ocSRAOjEFoRVEuOD58wIPbtynHEzZ95K57uoTTrZ0/T3beYt5i3mL+7GH+5BMlRGwjll7gbWB8MqJz9wH9/Qt08owkOLR0dBNJ5ixhucA5iysKbAi4MqPT76KVRiGoywptBWkzLNiKQJortkSXsqrJlzXJsMtm1mOQ5Hh3ip8uGJUFy6LJOgvFfDRmOZ1yePsum70hG8NNpNYkgw59tUM/S7E6RSlBkiZoJbl4sM/ezhaj8zOyRFEWCxbFktlsjKsdJyc1y+kJSXmGTQZQZygdSNOMzBW4UlKamrJYIJ2nd/kVRNp46MayXEw5PT0GZ3nh2jVuXL1K3uvRH0Rem06e8r73vcrOzg5nZ8eEEOfMKaUIwVPXNfPZjMV8QZ53MHWNtQbvIx9OEM1MUimpjcG5pxOoj8OTPWkSSRSDIJIzeo+xBlPXFMuSsizo9XtoncQpEEI29xLo93u87/2vcnZ6xnQ6RaeK/qDLcNAjvXYVU1XcvXfIyckx1xZTut0M4vhoQr1kfv9t5nfeIl/O6LkK5Qqcr1F1BXWJXc6YjWaYwtMta0pXYXyBENDrdMkSxfWrV9ja3uHGiy+wvb2NdR5TG3rdHlqBU5pFWfLwZMThW28zmY4ZL6acjE45OT9lWS4hOATQFYotpTjo9nhld4urGx02ssAgk3S6KXmekqYK6UEHgbCOamExtiJNU7TU1JWlmC+pyoogBCoEgtJk3tNLBUI6RKjxtaIYTzi5+4DxyYi0jqN9QDT2+O5La+fPn523mLeYt5g/e5g/eaRuVUsVBMEJyumS8zsP2Nu7wFae0Uk1UlgGqaRnE5TzaKEISYazBmcstrZkeUaiNCbUVFWFlAlSa5T0JFKgE02eJCjrSZynn2X0u120DmQ6ICcL7KJiUdUYH7BlSTCWcr7kJMnopDlZlpP1co6PHtDb3CLr9BBSsrExpN/vIa2ln6fUWYqtK8rZjKJY4uoKbyzns2PM/JxhWBK6grDsEhIIiYgz24zELhdMTx5SVxVJf5t0YwuVZOAty8WE5WLG3s42L1+/wdZgwPF4xNHDQx6ePKQsl1y/fpWNzQGdbgchBLPZjKos6XY7mKrm/r0HjMdjXn7pJdIkxfvIVu2agb+u6Uq11q3z8++2WOcwxjZKKiNbt6hRIg4jTpMUawy3bt2OHT/dPlopFssls9kMIQTdboeNjQHeWY6Pjzg+PuLo4TZ7wx77m1u8fP0GZVExW8xZLiawM0QFRzAV9eSckze+RHV0F50nhETifUUINcGUhOWSMJ9jJyNm04pyWZIPB+A0SzcilBVpltLLUvp5irSWcjplPl8wmUwJ3sd5reMR0/Mx1SKG9Iu6pDQV08WU2WKKqWsSKehlKTu9hOsbXW5e2OHm3g4bGtJQkaWSQb9HkiUIBMorpJdY66i8QUhIlEYiKesKZyypVCidIIRCI0iTBKUlUlh8XTKfW2Z3HnB+5wHldEniBEEKpHisA+xdltbOnz87bzFvMW8xf/Ywf/KaOikRMolD1YPFVYbZyYiTN2+xm+ds7m3QwdF1lqzhulFCILXECon1Hmc9dW2QUpGoFGNrymBJtG7mrsUBuVoJQpITyiVKOPJ+lyw7YJAlJPePAcFICObGYJxlOZ/hKkOaZqQqIdGxnfns/IROf0inNyBNEg71/7+9P2u27Lquc9FvVLNa1S6yRg2wFEmIICVSLnV8XnwidP1yrv3sv+Vf4Aj/gHuv77k+jrAlSzJFkWIhgqgygax3ucpZjfI+zLU3EiBoWkxAVjJXi0hkIvfeueacbfS1+uij99Yk2gyPwlqLcxZnLba3ECPOdrTrNXZxRuY7yixR+YD2kRQjNnkkFpEUqXeE5YpWKprTI3SZIxTIFCgywWw6Zpbn9E3DI9tx//iI07MTpBosTLwfpmm6tiWGwPnpKUePHnH9xnVSjATv6doW2/V0bcd8fk7Ttqw2a5x3CKG2BsKBzvZPS+9n4vadOxRZjtZqMJFPAaMN0/GEqizp2m57fS1hPCbFSFPXHD8+4vz0lBgibdtyenJCSoFqVIKC07MTPso0oW3BR/YnE2TWU2QCmRwiBqJtaE6P6Y4fkpbnJDHFa0PCYpMnxYj2kcoHSmtZW0fT9nhnKScTlI+st0mdyTJs03B+dASAd35Yi87Rbla09Zq+6XDW47zDBjf0PrgOoqcyirEx7FclXzqY8OYL13j56iF7RiH6BgWMTUGpskH3CEhC4ohDE2xKGJMhpcJaR/QRIw1aDtIBUQyWOCFBCp5oW1praY4XnLz/IeuTOaF3RGlIQiGkQckv5s1+F+fPX5zvON9xvuP82eP8qZM6KSSCQWhPJEEWFGljWd97xGmZc8gtqpGB2JOIwzFdGLS5JBopAs4OI7smzy6lJ3oCNkEWFSqE7SKQpDyjc47oPZmK3DAZ4yv7SJER1Tn3Hh+TiZ42gU3QeUfT9Ril0UohJWRNwbS3hN6SGbMV9UsYbRAJvHd0XUfbNDjnaNoG3zaMsUxKw2FVMDUGs93VOAIkjwg93lt0sAhvsW1NtD1ojUyCMjdUhWFxfsri9IikJCfLBR89fsTJfMlIakZbyQvveiDSb5MfrRRaKl556WVmkxl5XnB+fsbZ2RmPj4548Ogh54sFMQ7PNqUvTqDyv/6X/7o9Th2swaQUHOzt8cLNW9y4cR0B5HnBl9/4ErPZDC0VZyennBwf07ctEAjOslrOSTGynJ9RR4/ra7TtaReLoalWKUYHh5S5QaZAcp5ke2xbo5wlBYv3HV2IpORxBIQQGCGYGsNhNaINHedNzbxxrMsVVVlhjKGsKoqiwGlDLYaJXRCobal7tVmxWi+xbUeMH08jSS3JtGYkNKWAvSznpavX+P2bB3z9cMS4ykjR4VQg04Yyz8iFwNtAAKwCmwIphUFqRQ3K4q63JJ8wUiFRpDDECSpurct6hFzR147T2w9Z33sEG0sW1HZnrRCoS1/Ezxu7OH/+4nzH+Y7zHefPHudPndSRIjF5Yop4GIiNkOoWe3xMOshRckJKFhcDUUq0UGRZRhQC/DAFIpMemu6VRG2V+2PyECJ5GHwu0QORRZERLaRgiW2LqlsOpOHlg32C7WC9IlqHQJAnSUrDwnPe0XY9Td8RbCB0jtKYwZhdSow2+BjYNDVNU+O6juQ9gkAhEldGmlvjklvTimlmMNuplMjggRqjxbsGHRw6OGK7hH4DuSYmRds0HB8d8/7bb9O3DTJT2CQ4rdecnM+Ze4HtLSbPWK/XQ+9aiqw3Gzg62urCDUefdXPOo8ePafue07Nzzs7PqNuWuDXBE9sety8Cd+/dvzQqRgwmyycnp5yezXnw6BFlnmNMhjGG+XLFpq5RSrGpa0Iaysmr9YoHD+5je8vx8QleA64n1S13RSLaQF5WfOnrX+f1N15nNq5ABOg3xGZJHh0+OLxrsB7klofEYK4yzQy3piNSEsgQsHVHZ3v65QqhNaYoqKoR42o0NOBu9faEELTOsarXrJv1kHyZnDw3lNIgRAIRyUjsZYZbkykvH+xzIAWqXhKwiExhMk2eZWilwEWS90QFloglIgUoIdBSEsTgxhFjADHIqsgkhh4LGwgxkqRCiUSar4e4qltMFEQ0nq1uUvLwK362nxN2cf7cxfmO8x3nO86fPc6fXnx4UOsCPFFEagFaKCZJMEuKaYyYvib6HhETSUqCVggZEVqRZERpjc6GvqGQAj0evBtMhYkkJH0MCGFIQqCVITcMWjTJ46Jnmiu+UhoO5R73TgMPVxvO2p4mgEPitCJlBYkxUWiU0ESf6EKPIGGUIrietW1ZN4O+Dd4zM5Lr04qb44xXxpppljPOFbNKYXI5fHCjkFEgUyL2jhA9pfJk7Ry/OkLlEmkmGKmo8jGn85pHp0eQS8bjCUYoZmbEebvhzv3HpJTYrDf0PvH4dE7n30NKuRUj3E7CbKdvfBzO2r1zW/HCAYInDY4/X4SUiOFjKUQRYBUamt7x6PgELRV5nqO24pNKSbQePF4XiwW9T5ycr2jdRwgxqIQflBNUVByt1tSbNfSRm1eu82YxPDeZPKlfE1ZHZN2cpDx99Mheoqu0FbnUiEyQ5R2zShGDYqxLbk4khxvPo43laNWw7DsIHV3ocLFnYkpA4EIgMfSTFNkIY3Jk8gg8InpM8hgilYTDMufWdMRLV/Y43DNM4nBEIJOnUhqlt+4PUuIT9DGAUsjgMQwTxL2GTIHSElMYvIQUIz55kg/0fUfyYbCKkQKjc6YxMkuK+0nQCvAExgLAPxGPnz92cf78xfmO8x3nO86fPc6fflBCDiVQEQKSRJBDBWKUFewVFRkQbAPBIZIgAtFBIGDKwVNNaYMyCqkVLjgsQ2XDMNhyIIcjK0lgUOISaCRaK8RoRFlUIAUzCZMyUVUwW+acrhtOFg1Hyw1t0iQNCUnEE+Qw3SgGZyt8dKToSb5DxJ5cBkal5tas4tXDGS+UmivakRtNnmnGo+1Eo9ZDA3wajr1EFAQiMnlkt6KdH2OqCsYFmdKUxRgb4HRd4+rIuPfMZEaygbq1NH1PDAFrHT7Aum5Z1+1nUpq2JnEXv3/ia09L7G9A+tSfQ4yEvsduG/VFU3/GTw1fixE2TY/1g15bleeMRIvtLcto2dQ1JkoO96HKR2RKg3f0zRI3P0Z2K2TyBCJZFBgGC5cASC0oCsN4lEF0VAZmLlGWIyZjT2YkatmwCQERe5LTOCEQUhPlYEEWUkJETx49kjgkdb6nFJ7rszFX9yquTiquz8Zcm02YVQVFLCCOkUqQKQAJiK0vYcCmQIZCxYRMEe89ViuiBKMHzboQPa4fKpCutbi2G0SKGSzLiIGMjFlRMcoKonWDH+H2laTUiPTFKNXt4vz5i/Md5zvOd5w/e5w/vaQJDJMyMSJiwCAxIlFmmrzKQCQcQ8lTSTP0YaU4jO72CZlpCINxbUoKKdTQHMhQDZIKRJKXKtEX6qqJoTpT5gZjMlAClwJlkVGUBbPZlBud5XTVcHgyZ95YOhtwPtHblg6FHF8BI4kEdEzIXlIlz34q0BUcjkpuHIy5XuXMJFRakxlDWeSMxyOqosBoQwgBIYcLE2JrNO8jru9w6zV+U5PlDttbzuenHB0/Zj5fEESiXtcs42BS3Cbovds+iwuCxa+QfDHh+Fnk/6/Gp6/ps6894f1g4yKkJFiH32wIRDqZ8M6jkuCoPOJ8fobte2KesJsat15j+o7oI8Rthe7Cly8mtNJURQlRkKJAqh6lNQdeo3LIM8Ms33BWt/gA0hhkkRFzg5dieJNxkbhcUchAnmUYbSiygv0q49bVfa5MK2ZFxqzM2StzKqMxQkFIOGcJwV3ed4xh0LELAdKg7RdCGHoRhUIKTUpDhS6EgA+eaD3Re5JgaymWhuodAikMRZVRZppMpEHPKEZSHCqMX5Ta/C7On78433G+43zH+bPH+dMfvyqJj2lok5QCE8GkSG4kRWkoxyUxF2B7MmFASYRzQxFWCpRSSCm3D1IihcIYA70ixUQMESXjcNYfAlpptBaEAMHHoaFRDKVSLaEkEBRIIyllxl5puDEbsd5WhpKQdNaxsInJq18hO9zj3tFDUm/Rmw7/+BTjekaFYjYqmBSKsYKRkJRZThJQ5jl5lg9aPEIQ0vDhqqRCKwkkvLNob8F1+GaDGnW0TcudD++wruvBrFdA3ztCAIXAwfa5DLuEX0fyP8Rk7tP4Tdd4OTofAn2Ig/kzCa+29byUWG823P7wDt/59tcJWcQ3G3AdeIt3FkjorZhwiEPSpIRAK02e5YTcI2JiZDIKC2WKjDPDtaJkUXc0XcCZHH3jCn5cIPKMl2/coj9dsP7wXfYyQZEZRIpkWjKpcsaFphCCQklGalhvOkEMnhjEYF4dIkortN5WJkOAFBEMBs0kUHJY51LIS38/KQcdP2QgKYFRhswYCBGSRGQ50hTk6yG+TBrK81oObco+JZL6YgYldnH+/MX5jvMd5zvOnz3OnzqpK2dT/HIziKUKgUmJykj2phX7V6aMZwUtER/dVh1aEUUiikSWFWRFAXpb6kQgpSQzGcJkYHtCcEMvEkM1Q5DQWhG8IvlADJ4+OKSIGC2RQpITiSRECuQSqkIylYYkFVmegxDUIqN88QWyG1cYH2Qsj09R8xrhHbMQGOVQFIrcQCnBoBCKYVSbwbszhXS5UCGgC402mgS4vmcUPcFZ+vUKWW1oNs1gLdW1pCS2U40QkSQgbussg33Ix9n7k9pj/6uD/rfBr7v+i8bPSMKjhn6O7d8lBG3X8vjoEc1mjTMBu16RO4uKHtd3Q0Jjhobc4AMxRJJKpJC2x5aCTGmyzFDlMCXQRugr6KqCuoelUqRre4S9ir1rV3jj6k3sdESbNYyShZSwfY+IgSKTGBmREQoEOREZPMFbnI/EJLdTYAKtFEYPenQpRiTbHV8Y4iAzGZnJkFISU0RrjdYalMEKiZWDRZjJDNEHZAjoIqMsRhw4xd5RRXUmSdajhCAKQZKScjb+QjjcxfnzF+c7znec7zh/9jh/6qTu4PpNfH8f6x0ierSMjArDjeuH7O1PUVmg2/Q0mw1UkXExJVc5IQaEHG5OKw1iGNwTQpJnOTL3WxXloSF/yHYHn1EpJVmmIYWtjUbAu0AKAZ0ZCmOGHivvcD5ggBQdgkCZhp1DKSXt8pylb+jthtA30NbsK8ELVcU4F5hCgg7I6ElR0DuPdxYhIfgw6O6wrcQwJC8X+jjBOzTpUm27qzfU6w2L5YLeu+3TG1wAEnLboPpxO+STZP9DCPanwWf2CHzi7y6ODS+qTMPXOu9YrJbU6xVdFgltiwp+eK5+GAy4SOpiCMQwuDuINPDjvcM7i9KSPNNkUlFKDV7hTGSTJWJvmbcbQgn9es6yd4zqjitGUkRw1tNGS4oRE0FGMFJRZoN4ZnAO7xwhgjISreTl+hwmhD1sd7GJYUBC64wsLzFZvtVtYnuEnPDeIqQgywxKKqQQNO2GVdNQac14vMfe/pQb1w/54NEjet8jhCRKRVaUHFy/CfzN587hLs6fvzjfcb7jfMf5s8f5Uyd1r3ztq5xHwdGdD4jeo3VgNC6YzCqETNTthsViReg6tBRIozHGEGOibxvCejNohlUVWmtCDCipwBg6IWk6h9QOszVlHwx2JUZJApHoHEYrpJL0XY/vPRkD0VUR6a3DWot1jiggyIREAxG77Dgj0OUa2/botqOsCmaTEbMMZCZwybKuO+q6paktJjPkWuO8I0sa5/1QalYf67Z573Ex0G7WiKTIc0H0bjiT9w5PHEhPwDarvxgieF6RLu4/CSCSBAQi1ltc3yF9jo6Quo62XtN2HUKqy16MxOCN570npoDzDqk1tm2p5wuqUcZoXDIpKozIiHlCWThdJ46bBq8jnes56x9jUJR5JNASrCdai0igtSbLMvLMYIzB+Yi1npQgL3KU1iQSyhhMbmC4E1zw5HlO7xxN5zDFCGOGpC2EgBTgekfXNLRNg5KSPNdAonOOpmtpuw67WFGqEUpOmcwqRuOCVbchJgV5wcGLL7H/ta/A//X/+dz52cX58xfnO853nO84f/Y4f+qk7tqrr6I7z9nZKa5tMFIzmYyoxgUuOtp6g22GBZAYLDC6rieFhO0dIQZs3+OdYzQaDR+MYijbCqnpnUdbh9SGkC7thpFKIJVCbIUPTaZBSLq2o9uKEGYmH5T5Q4Q4lHBDCEgLyTcoG9EhYvocGxJZZihnI7JphZEBKQYv0Np6lk0/iDFqtRWhVUQhBt21lNDbHjGSIIWh2b9vOozqkZVH+ECMYWgYTcMC2BZkSYhtw+lT8/nMYrj/gV0Bl1OoMSViDCgfEC4Quh7XdHjr0EZC2j73bS+ET0NvQwRc8Ait8L1j2fSQGSaTYa3ETJJFRSkhW0ZS59EuoF2PUpIUBEEPwwsxBBRDr96orIZxdBewzkGCoiwxJrvYkw3rUiliGLgNafjVWUfvPEJuq3jBQ0o476nrmnqzwfU9SipcbhBq2Old7Pps01EXG8pRSTUumIxHPJ7PcVGip3tcff11Dl599QvhZxfnz1+c7zjfcb7j/Nnj/KmTumr/kPzLkqPHx8zrFSK0jGdTdJXh6LG9RUuNMcMknw+R4DwpRIiQQsSGbvj/lBiNRyipSGkws217B7LH5CVIRdzaJgkhEcog9TYZEBKjNDFJvB+aFYdjL0WeFRjTEZ0jRoFL294mCWM0AY3KM4RRdIVhKSNGJsZKEZ2kcZEuwf5kRFHmhBBAS3wKwxl8GqZbJAKxPZv3brD/EFmF6h2u6we6jdpqqg3fD4MUB5IhE3lGgv9zhQDkoHe3nTkaeijEsBNMJFzXY3pH6Af7Me8CSibEtncupYEHFwMhRdCS6ATFqCJKxXyzwbhIFBKhFW2ILIl0haEIE3IXqLxlrDxKenyAuNWsE9udYp4VCKEGEckAUmm0NpiiuJwCk0IglCaJQaMpCglS4UKibnva3hGHPlxECIQYqDc1m9Ua1w89fElB3w27RWU0QkoyY3COIZ5GHl3ljPemiOMcqUoOXn6Fm1/+Cmp//wuhaBfnz1+c7zjfcb7j/Nnj/OklTcqcyYu3ePEbv8d8fQb1OdODPVwKeNcRYqDMcoSOqK1fGyYiIpfn1521g33HZoMUiaIskdIMH4wxYt0g56DUoCGTtlmAVBKV9PCBHgKQMLlBKklwQxk1pogymqIsSUIMTZpKIvOBMLlxCBvI8pxYZqyTRbQNUku0yYkBolCoMqeaVMOUoxymhFwYvOLS9oqE2J6ix+2OYNMg8wmZtdTrDU1ntxVagRAMzZkkEFvJ2GdlO/d5I6XtMWpCpG2lTgiQQ3LXtC11CoytxXaWetPgrCMz+Sef+7ZU7tPAT5TD16pJxco7olDEAJ3znLuexz6ypkCVFTJaRNOiNJiqQAmGd6EQyTJJURQoo/HBD4rlSqGMRmm1fWVQeujvk0ryscfFsG5jAuv84A4hBpmSEBxd29JsaoJz5JmhyDKkUiQgSUBKnLcYI9DbKd/OdiSjmR7sMT08gNEBL/7e7zF58QU24ovxft3F+fMX5zvOd5zvOH/2OH/qpC4oTT6acv3VVzk7uk93PMjkz5cLTOwopaDUGZGAMRlVWaK2Oa2Ig1aZ6TrqC1+2zZoUA9KU+DBMFPogSEmSpCDKoQoSgSQlQg9TJ4IIPg6K1RKkVsP3peEBl2VF2orLaqOIRrLuepq6pbeOVIwp9q8jJ4bl47vkTcvEZ3gLQhSU0xFBJqz16CwDNUi+xpRAquHaxNBDFRnsQDrrGLlA8oGu7qjbjs5a4hPHjE+evQ/l3i/KE+AfJgSAEJf3fNFqCkNO1dshietCZOQD0QU66wgpErdTUVFAkmLY+TEkg5DAaHpryYymnO1DG7AdxJg4c45lVVLceIm4tnSLB8R1TZ15Jnt7VEWOtBHvA1IIyjxHIofg1WI4GpVsxYnFMNq/ddBIchj8SEJu1+uQCPogtus50nYd0bW0TUNwgUJrqqqiLAqk0sNaZegrbFqJiBapFI13rDcbnPSQKQ6uXaO49hLXX32VfDZjWa++EJ52cf78xfmO8x3nO86fPc6fOqnzCaKSlHsTXnzjdfpZRhZb+voMLQTVaMZIGaytUZnB5DkqAWEgCyEpigwpEk3X4r2lb8G3nrpztNaTo0gxoLRCERAiErd61FIMmtJCKqIczrW0Gqo+AY8IAYRAaUUkx8eIEBJHovEWT6QYlfhyxP6VG7z8ey/i5jdY/PhvOH1wTCE0e9M91LQk2gaTVwgJyqhB9DWEYZciJCoNvU9be1CCTUQ3XJN3lr6u6ZuGoQAjMAiEUMO0kFIghp1CjGkrWjuUgf+hTUg9DS706ZSSSKmQUiCkHMpSIaCCJ6VBnDcCXdPQ1zVey0ESxCWCHY5dRQIQqG25HqVJcpgkVVJSKEMqAak4zCrCqqVr1nTtmuqFa3z7rW9j9q9z9xf3OX28QI9KvFvSeEtFgVYaIyVaSvJs4Ju0rdLpIfBhuH65nVRNQhIuwltEFAEl0tBr4iO99azWG4IzaCzJWwqTURUlWZ4h9bBjFUKBkkgBJgRkFGTZCIIb3riiJ5vOeGnvKvmVFyn3JkQ1WJJ9EdjF+fMX5zvOd5zvOH/2OH/qpA4kSUikMcyuXYNKIdsVYp1T4RkVGpoGFRVGD7INERBKEIMkCEmSCqEHwVhhE9Y6WmvZ1B0xJqSSGJkYYclSRERNG3P6lCGJSN8To8SnQfFaSQ+hRsmIkgERE0JlkBkaF4cz9c6SakteKfKbV0iHL5Dl+9y48Q1mv/cdfpoK/urh/5t9UVAVL7DpM1KCrMwoJgXjaUnX1qTekSMIUqBVwqbbWCvoN8MUT2Twt+u6hvnpEXt5hr5+jYODq+zN9piOZ8xm++g8xyeP7TvatmWz2XB0dMRisWCxWNC23XD2v8WT6+If0tvCkzM/T8jxoJSiLAv29vbY29vj+vXrjMcTyrIgywu00Pi+Z7mcs9osWSwXnJ+fMJaJ+ekRXaFIuSRiCC3DtFIusGnEOn+FtRYsYqInIXJDUY7YrBq6dY9tLaKHcWFp2g+Z0/G9t/6Ib/6Tf8HyrOPxBzUHL7+AqBz94w2ptrTCkUxOZQylkWQqknDbKpygTwlkRYgavECHQbYk6pyIJBeWkh6dOjSeJIdkLcbEZrlE+oIyE+TaDNImRpOkIggJYmgcvpioMlqBiqANo+kMX3oyNGlySCynMD5EmuF442NZmM8buzh//uJ8x/mO8x3nzxrnT53UDXKrgBhKpLqqyJSkyDQlDuUbuq5FSNBSooTAb7PXocgqiGloSk9CIIUchoKDJbiOFAOCYRolUxpFho0l6zDlrFb0TYPyAh/ACY3WW3HCXJKLFhUbCiEgSFRSCMAFh2t6aBz5XsbeC1fJb76CMIfkKmc8PeDwpZcoruyzPDpnfr7k8caw7hXjvZzXvnoVOTrkePOY9XJOERIvVTnZSLP2mlUf2fSBQkqcNLRJ0AXP4eEB//T732P/pVd48bUvc+3GLW5eu8HVgyvDiLe3l2Xrtm25c+c2H3xwm9u3P+Dtt3/J3bt3qesav9Vo237mA/wvtZf59GtfrAchBhmQ0WjEyy+/zNe//jVef/0N3njjDV577TXKssQYw6iqyHWGc56T81MeHT/m+PFD7t95j/m9j9jT0AVPl3KcNDRR0vWB1EfWXkPMOW4895qeTkkmVyquja5zujjlzv0zNoueSR64MbbI0FJcP+TgxZcZTw/olufs718hjQV9UbNY3IeFxUmLGmuE0aikIIDA0IdEkCV9LFk1mqZTeA8mebQazK3zquLKqMCoRIYlU6DCUKJP0RN8giCRZAghSWIYyPAXQx8IRIhIKdBSkqTEKfBSUOQFe6OKHEOXjbF5gdeDDcfQmfLFjNLv4vz5i/Md5zvOd5w/e5w/dVInGCwxQgIpBDIKoo+DoKDSuN7hgsUkBreAFLdNiGLbiB6Iflua3FooSSHRKmF0QjuB0RlRVnQpw9qM803JozZn7SekdIgODuc9XuXkBNJixTjruDYaM8scUnSI5BHCImWA0NB3a2z0VMWUw8NDrr32OlHPqEYlWmkOr17nxgsvcP9oMdiGSIE6uMX05iHZ/lVSVtH6OfceLKHb0I4qxM0prg+ctpZF5ymygLAWtd4wF5pq/4DZ3iFXX3qF6y+/SjUaU01GFKOCssjZz/bQxqD1MC30ve/9AXVd88EHH/DOO+/y4x//mB/84K949933WC1X+K3YrpRDg2aMH0uD/H3h4vWkHFrZ0kAhWipmsylf/sqX+d73/pC33nqLr371K7zxxhuMRqNhxF2A9wHvHM462q6nciMO0gFFlZFpOC0y3OKM+WqJWG8I1vI4BLrOs9dZxn1gNV/z7qMV9+sGyjGvza6Tsn2y/ZzpCxmtPIP2/rC2kNx84RZXrl4bfGKrkldefQnpZxz3j2mLgiY20K0oSpBSk4TGUZGExlKw7A3HtWJjC4Se0juFDj1Ga3wwCBuZb9bcLEsOMsikJckeo7PBekcNRwpSyCGQQyTIQcVcCoGQCiG3b65pGN9PCVywZMGRlZo+yCHOjBh+Jg1x+EWpI+3i/PmL8x3nO853nD97nD/98avYnhEnUElT6AKUQyeHMZKoh6MkXMJaiw8BpQxCqe2HuSWGODgEhAhpsFkyWpFrhcGjhMImQ+8yFq3huC85CzN6dYg0JSF0dNEhs4ppKRBpTb05ovMNN8aJg7wkk5vB4il1JN/T2xaERuc5JsuZTmegx2gBKQYm0z2u3bjFafUBma6osjFxdI1Xvv4ms/2KFC2vfGnKlYOXWB4/pH50j3vLmrjpOU2SORLXtjx88JB0OqdRhpAXlAdX+ZLMUKMpV6QiNxl5YWj6mtPTY0hw7eo1Dg+vUJYlo1HFm2++yVe+8hW++93v8N3vfpf/+l//lB/+8K/54P0PqJv6k6Xbv+dK3eXrXewyBIxHI9544w3+4A++yz//5/+Mt976Nrdu3aIoCiAhBDRNzdnZKccnxyAEV65cJaZE09Y0bcvp2Tn3Hjzi/XfeoT0/RfUdVXCIvqVrWwwSHyXZpkeKhlTN+Mob32J2/Raj/QN0UXB1kpGNX2TZ/ZQqW1NlG6QvuHrzBcbTPVIMaAl70wl4wTwv0HlGEoNJdPI5Uiai1LhYYsOY897weCNYxgo5vk4SE1YxEV1DgUGZguhbml7ivafPPXslCJFQQmFgWNd6216cxNaWxg/PMEVAYPKM6AMuuK13LEglUFpijEEnQSYy0CVt0tufvWw0/Pyxi/PnL853nO8433H+zHH+1EldSpGUItFHhE/kOkMXBXlwaOUIRqIUIMBbR0wWbYbJmYtFkGIi+oBIAXkx4CzkMPIsBoG/2iVqF3m87Kj1DD8e0wWFTxGvYJMsyQVUPubWtRtot4c9e8xxfUIInsORQkuJiBJiIDoP2bAYhRrKuLZrsKElmxqKasTe4TWMyelDjxYZR4/v8Mu34dXXXmZvOmVSTZncrNDA+uycB6cntOcLjlYNJ6uWDZGwaPAJnJBMDw9564XXeOut7/KVr3+dg4N98ixDKsHjx4/46x/+FQ8fPuDKlau8/vobfPlLX+XWrVuMx2Om0ynj8ZgbN27wxhuv8/rrr/Ef/+P/l5//7Ocsl6vLMexhdvTvsVLHdtJ0++e92ZRvvvlN/uW//Jf88R//c77yla8wnU63Js+ezWbDw4cPee/9d7h9+wNOT0+4desF/o8/+RNeuH6Tmzdu0FvL+fmcvdGYux9+yN8++DmrszNMimgBKnjGSK6qnO5sQZmmTK9c4/DaTa7ceJEoNOt2w2J1yod37nL0+A57Uwuxx5ic/cNrFNWI4B31ao5wiUwzNLcqPUzQOo+IYTgelZIuKM4awZk3pL2rXDm8gTcFD4/WHC82iBQYK4Mmoo1CFWPON3P6rsMhGJl0qb2nlEYKeVmJiyENFc6UEEEO1mFC4JzFO4sUAoxBKdBbK7IiMwhV4LWh84no42UsfhHYxfnzF+c7znec7zh/9jj/fJK67dQIMRCtQ6SAkhCCJ8aAkAmlFUIMBrreOoYUYJgeDN4PUyeEobk+JaQ06AyisMQkaGxgbgMnPVgZCKHB68TVGzeZTq/RB4vMDFUhGZcKbSec+57F+SmxcZRGUhiNQCKiIEUBiUH4UA2WTOvFnKAi0+v7GFNSjqfkZUnYeGZlolqvWD56j/tuwXp2QJGVrBZzHj96wPz4EfOzu6wWR6wWa5adYyMAPEII8qLg5uSAb//+d3jlpVcotGGzXHHSNdRNzYMH9/ibv/kRd+7cpiwrfvSjH/Haq6/z5pu/z+/93je4ceMGs7099vf3+OY3v8nBwQH7e3v8v0Yj/vsPfsBitcL7L+YD/X8GSkn2plO+//3v8yf/jz/hf/sX/xu3bt1iNKoIMTKfn/P48SN+8Ytf8JOf/oQPP7zNYnFO2za8/vobvPjSi8xfOGdUjSiLikIbXnnpFb79+9/h3bff4eGjU/qu3+5cBOMUmLs1j+19pnPH/sJxstpw/dY9prMDOtuwXJ6zPD2hEg2z0qCtJy9LitEEITW+a1menaKi5PDKFLnVk0sJhnn2oUvNo2ms5GTlWKmKvVv7zF68is8k6sqYwzci0TpylbFabTh5/IjgW1QINH0k70GkQEyCKAQ6K5DSbMfd4/CaQBJDn4pA4NwQJ0IKTGZIShHkxRSVR0kz/Ju2BwwphCEOv8ikbhfnz1Wc7zjfcb7j/Nnj/OmPX8NgvyF8j4g9ItnhFz3Rd3jniCmSKYnaKlAnAT4EtNqasac4iAoy6MKkCFIbpEgolZGixHqBTYbRwSHj8U2cqWgF5HlkOs0RpmLvcEY1NnSbFd1ZgzQVQYxYtQvmdUeVJwwJF8EHECEOxsFJopWmXi1xsSe4l1GpJCvHqLzAHp+Q6Zxv3CgQShPiiu50wyYK1uuGs5NjTs4ec3T8iOXylM5aeiJWDWfiElBIEJpH9x/zX/7v/0zf92zqDZt2w3K15HxxzgcfvM9iuSQzGUVRcPfuPd5//31+8fYveOvb3+FrX/s6t27dwhjD9evX+d//xf/OqKzQWvFXf/1jHj8+4onT0C8c4uKXEFy7eo0//O5b/J//5/+T7//RH3H1+lWMMdR1w8OHD/nlL9/mx3/zI3759ts8ePiAxWJO13VYZzk7nzM/X7C/d8BsOmNcjhmPxuR5zuPHRyA0HknHVqQ7RXyAtu5ZuGNmNmExRAEaj12fkMvEgY5cvapJQZP5FtvUTA6vklXjof3D9azPTslUzvXrB6Qk8O6iHwR8BE/C+cS87li1FWEyQpoKbTTjg4ob4ynNxrE4W5JcoO9WjMYZZcowlSFtJNafYb1DRYlSGVIYpDCEYBEykZIgEJHxY8szH/xgmyPBGEMQ4FLEO4d2HUJLBAohElJEks+QIsITE1WfK3Zx/vzF+Y7zHec7zp85zj+fQYkUkNEiQ4cIHSn2IC0iWohDZquMQcVETC1CDjpiUklwg+CfD4F04Sgghl2Bcx4lBEoYXMrpfUkqDinHtyiyHNHVNIuaR60nIOk2Pa9/+RaZLmiCQ5sDsuIa7fKMTbum7SxJe0IYpnVEjPiQSAlEjMS+xfZDMz5JYkyJQNFvlhSxQyuB0hVBFMSYE5JGOku7OeF8ecz5esHGdoQIQQxepCQQKVLXLR+8f5t6sR40y2xPCJ6UEr132ODoncNah5QSrSUnJ2ccH51w//5DPrzzEd///kO+973v89prr5LnBVeuHPJHf/T9QUojwZ/+2X9jtdoMx3h/x4Xw2/AOwyKfTsf8wXfe4l//63/N9773PQ6vHGKMoWlq7ty5ww9+8AP++3//77z33vucnh6zXC0Hs2YfiTGyWtQcPTghU4Zcm8sjyizLUVLx+PSEum5xKQ4q4oBNg09fbzvCeo7Jc8aFQu4ZdNOQCU8me1TqCL4hhkTf9AhuYHQJSRKsxdYrVD4eNIqSwIdEjHErFhyx3tN5y6bNsLGgLK5hzAExGDJdQJ94/NExJ0dnKCK276n0mHExItmetrP0XUOUgUwYohiqcE4NUyXJQxKDN6zeTptILVFCDRpHKaC0HlTLiUM8RUvyihQTQnqUisSYD5pPXyDfuzh/vuJ8x/mO8x3nzx7nT53UKQQyOWRowdZEVxNjT1QBRE+K23HdbQafAG00Spvth5JEaU0Ig4US2wfjoqVtLSIKpIDOJlaNYOMiOrSMJ4IQI8v1mk17hPeSD99/xNnpGVeu7dGvJd0qsW4V1mk2raXtOlTmCD4OddowCBdqnSFTQvqe0NbYpsVMI1LmKKXxXUN0K1y3ZuMElpJWjll5wby3HC0WnC3OWXc1fUwkBqP5FAerk5TApcD5YkGz3mwX+aBVLeQQBBHwMRFiQilB3yeapqfedCyXa+bzBfP5nNVqxT/7Z/+MV199jXE14sb16/zR979P0zQsF0t++Nc/ou26v7dKXZFnvPnNb/Inf/In/NH3v8+1a9eIwHK55M6d2/zpn/4pf/7nf84HH9zm7OyMum6w1l4eo4aQcDbQy34QcRRiWBdIlJKDq0Tww9i84HIQICRJYAjk1NXoxRG5cCi7Yj/PmOpEGddkdIxNwhQTfNBDP5vM8S5im5bQ1kg18K+VGUSMw7A+gh/sYRrbsW6gcRrfatQ60eqWZV9zerTg9ruPcNahdWRcVswm+yw7y2bd4leRsRPskajE8GbTNg0kj5Hbypwa/F0vfF6FVBitCd7hbBhUzi8mZaMn+nbYDYeOKHMwARkzZPSoLyit28X58xfnO853nO84f/Y4/xzEh4HoibYhdeeE0KCSI8REJBDc8NDb4FAxoo0mK3JA4J3f2j2l7RxvwAWPc25oVk+J3GiM0eAkPmls1Gw2PVEkrhyOKEdXWfctthfU64blasX4oCTJnMZ5VrUlWU+LpXc9WbL4zpN8QGSaLC/Js2LoF3CW2He4vse5gJSazGhi8Cjh2ZtUzNCsnOa4CfRdx/lqzflywaZv8Ayl6JS2LY7x4+w6Ai5GYrSfzLrDx2MGFyfoIVx8NZHi4KPX9z3ODcmQ847vvvUW3/rGmxzs73H9+jX++I//mNVqzdn5Oe+++96wU/pcyP1sCEArxWuvvcq/+lf/ij/+43/O9evXEEKwmM/52d/+jL/+0Y/5wQ9+wC9/+UtOTk5p244YhoV+cX+wHZKKCS6bQ4cnJrbPJlx85/AtnxjNQIAnsulrzpeJUgSq6YRsUnBlUjIxhgzPuvfEAJnRSKlxLuD6nti3xLwiBE+elWR5MfzjPhA6j+0t1ks6p2itp6t7MuvIpKbzPcv1CqMz9vb3yPLEJC8hKk7PapYbSx41PmkSksxohFHE6LDO4kkYYzBagxwscEIaTBSVVigtiSnQ257gJUEpAg4vWxKWGARBGELoEX0OF2+4XxR2cf7cxfmO8x3nO86fLc6f3ibMOZxLOLsGuyIJh0iWlORQfo2gUMToEVuLJamHs/jI8AHvYyDEYQy6cxbrHSJKpBdIo1AiIiVkRU5RVQQEuvRMr0rGoxI1OiQr9ujXDlH26FLw8KMlR/Mj1s0ZZbQkEfDB0fYdrnUoBLnJGVdjCqnpmw56h4qJZAPBRRICEQWx74kERvt7aAwnpy2bJuJRJCVpg8PGSNiS+UTK8QlcJCgXGMyMn5wdvehSi1xkMDFCiJEYW2I8BgEhOlbzc7z1fOet73DlyhWuXbvGP/pH/5i//cXbHB8dcTZf8InZ6M8ZQgyTrn/4h3/IP/7H/4hr166hteH09JQf//jH/Omf/Rf+9pdv8957H3B0dEzb9oSQ+FhJ7eJeJZAITzyz4Ql+fO2JTz7LT35dEEjYOLzRRCXxKDaNZWYk12cVOY5lvSD2YWiqRRBcINmAikDv6JuOQmlG1ZiNyemx2NbR1h1OKxIeGy1tc0aYSyYvXefWizMODiekNiefGGy3INQ9m7pn3nh0EBRUZE2OlKBEHNa5C9iUSDIO9600SiiIYTjSIBFFQiuJUooYAjEmlFKICDE4SB6RIklk+ODBjrfTsl9MYreL8+cvznec7zjfcf7scf7USZ1br4nS4PoGFXqEDgj88ADT4O2pldre23D+7cN2YFdKtNHEkBFjJHSDN6azHuEFMiSIAh0iWkGVa+Q0IwaJGSX2b4y5enXMZK9E5TPWtWVRP2K1OWfVHFP3Z0TRoqRHqUTwjrbusdaRm4zZeMx4NkIaSdc3yBQxSpBcT3QdMXpCAmcdbutPt2k9i02Hp6B1jtPlms4FfNymGU+k7RdyHx+nH5/EJ2tTT9o7Sdjm+Rc/HUKibXuOjo5JKdI2PSEOJevvvPUWBweHvPHGa/yTf/yP+OlPfsJiufqEDcnnDSUlL730Ev/kH/8jXn/9NZRSHB0f8aMf/5g//dM/48c/+Rvu3b/L8fHpZUL38f08mdDxxP9HLr7rSXw6ofuExK7YFtZionOB0+WavazCK8Ni03E4MphS4qzH2UhIEGMgup7keowUyBTp+gZhJJPpmG48Ztn0WOeQdU8c5SgNSnqiaGj6Y1ZN4CB5plf22RvtMxllhF6xXrScnGx4eDanFIqpEhRSoT3EEHG9w/Y9UQmSTqRMYExEFxKTZWgzVO0SQ39fSKCMQUoNWiMH7RMSnq33xKAL1TfEeoNbuy+C7l2cP4dxvuN8x/mOc545zp86qVvfuY188RrGBkBfnplLpZDbhsUkQWoNfihKJj9UHlIIaCGRWYYCQmchCryNRCdwnUe0cLXwFBOYCocIPU0q2WwC50u4+cIhwgc+vP+In3/wiNOjE5pVg+kFN4p9/LiD5YpMOGxr6TcbpPDszybM9qaIUUktPK5dYmOPkpBcA6Gh62tsgoQiRIlNOU2wOJ3TeDhZrdi0PdEnZBoaKS96xeDXpShP4smvxO2C+NUx5ot1FQI0Tc/x8TnOJXzwdH2LkIK3vv0Ws+mMt779Fm9+61u88+77uK79QgQrhRBkWc6b33qTt779FkWRcz4/58c/+Rv+r//7/8fPf/5z7t59wHw+p2l6Yvi42vbJ+tvFIpVcnq3yySrdZ+HjxHA4thVisLeJPrFpe05WK6b5IZXOaYJklDJ8HI5AbYKuX5PlkeQalAIbexbtEqMDYlQw25sS+5bj+Zx+syGXOZmwVHJFNb6CLvZ5+MuGj+7coZoeceX6Gd/80k1evr6PzirOlxvqTSRHUoaeifAUAvrGc7ZoScFjCo2MCaMFWhmqvMCYDCkkyfnBI1EKtNJIKUFrogQVJVJKotBIHxBRI1FIG5Cnc9b3jz9ntgfs4vz5i/Md5zvOd5w/e5w/dVJ3/52/5QUVMFUYmsuDJ+ltpTB9MptNIdI17SDI6vygOk1CbT3kxGAah3cBaxN9GEQFR+2a8aRlnDaIVJPyGWd9xoO7NZWek9Pyg5++w0/ff4D0kj0z5bUrU14c56xWd+lZkqWOvu/oXc/euGCyN8bkBucjzju894jgSCngbUMMDTH1RClBaoSSOJFjCXRJcLJasaibJ6ZtPr7X9KnfPwGxLdOmT3/Xb1oqYmhOjdC2jsScJBxSCcbjCUVZ8u1v/T7Xrl3lzW+9yZ/9+V9w+8OPCOnz39FJIbl18yZvvvkm165dpW073v7lL/nzv/gLfvH23/LRvQ+Zzzd0rSNGcbmK06+918++RiE+NrX/5LN44nsYZidEYjtan1jUDSe5YZxPsSicyJEyBxWJUg68BoG3DSl4hEx43wMJFxImN0z2xiz7mkXdQdeR5R0jluTKMR1PCGcZd+4tueseE/VDFndP+d63vkZHwYO7NRkVBzlM+1NGaUNGy6Zds+5apBTkNpEhIIKICd/19G03NBcjUHroPcmLgrIqEfrj+714JClC8IGEBB9YPHrE/Xd++VTc/jrs4vz5i/Md5zvOd5w/e5w/dVL34MO7fFgYrt6cIv0aFx0UhixTgw9cjEQlib3FNS1N02L7HuccwQ8t8FoOCvrRe2zvUQmcjKySR/lA7zbss2GUFL7JGEVDEvs0reXo9jHNasnygWevv0phBC/sTXlplpOaR/jmEdMqkidLHxpGZc61g30mozFdAm8DeNC9p13XuOjou47MdUTvUTKRZwqjoMfTh0jT9Zwtl3R9h0+RkNL/RBbPlspPF20/43uE+JU/D/6qYruAIn3Xs1xEHj56xE9/9lPKsuRw74AXXniBL33pDb702uvcvX+fYD//wNda8cbrr/GlN15HKsndu3f5i7/8C376s5/y8NEjlosVfedIaTimHXzs0jBZur2XC/ymncfQp/A/DpCLg9uQEj4Fur7jbAk3Jjl9KOjxGCXIhULJRPQe5zr6rqNdrjAqp+g9oHB9ICWYjMZcO7S4eI4LDbmomFYldf2I1FznpdlN8IYHZxldn1je9fwy3KOazjCtZZY843ZO3j1mlBYYNvRuQ+stwSj2pKBMCts71osF9UYPUgCXSZ3CGEOW51RVialKZJ4hw+DDiFJYG1h0jlYaovacPFrx4MO7T0/wZ2AX589fnO8433G+4/w38PkPkPOnP35dbvjw9ofEdJVJnmjaNctg0VqQa0WeZUQ9LAgVINOK3IwhDbuA6AclfGctLiW0AKkVMQpWfUseA0IETGzIEQSf8H3EyQ3oPejHqJC4WVTcSIo8C4xkiz/5kGjvsV+smGQeu2mRKrE/nTGppoQoaLwD66DztOcr5g+OkZnEtT19P5zVE8MgtKgkbYR523GyXLLpezzbSertaPeQYAydTkN1aihRPUnkp5OYX2fYm9LQGK+U+vh7LkrBYugL67qes7NzMp1TlRWvvPgyk8mYm7du8sYbr/MXf/UDemufluJfQVkUvPHGG9y8dZPVasnPf/4zfvbTn3Hv3n3Ozs7pup6Uhib/ISrSJ+4jhEAI4ROL/bOex5PP5clneLHLGXaOQ9KXGHgICTyw6XuOl0v2JzmTSYHWmixE2GoKaR1wbU9zviLaiN4/oDyYYu2gLWSkZFxNuboXmK+WKFpGoxGZXdGf/AKZrbimrzOajuitQhQB5T1icU7lNuR+QRbPGHPCWK+JsUGIQOM9fUxMy5JMS6QAkYY3QpNlCCmRWqGUBvFxwDeuB6WQPtBbS+8D3ie8yojlhHW/4e7tE9bLzefON+zi/HmM8x3nO853nD97nD91UhedZz1fcjYSTF88xEhDPT8nBMvh/oxxUZKUwuQ5hc4GkUIpCd5jbT+YlceItwabGYy1eOsRMdK5DSlAjAIZPIVyRNUS7DGuXxHFBMp9tCmYFpLoHH19Rmg2CM6p8pr9KiJjTRKe0XjMbLKPVCWbrmMdLEXnEI2jPp6zPl1Q7o9wztP1HV1r8a5DikhUmqWLHK03PF6u6FLCxoQNfjh751M9Y08kM0UxJBV9318mNDF+xlm7EAPRKSGFIDOGIi8wZhDkdd7jXD+oeG/r4V07LIQP79zhr3/0Q27eusGX3vgyr7z6CpPphMVq9bQU/wom0wmvvvoK09mU9z94jx/+9Q+58+GdIaFre0AgxJDUaSUxJsdoPYxvO0fXd/QxXooq8msCQUp5GQh5nuO9p+u6oWH0iW+/7FFIAx9aGJSEx8sVe7OK2f6UfSmR0eNdR9c1SJXhnMe2Pe28pjqeUxUlrnd0bYdSGaOiZDYBHz0ueEpZk1eS+foBzXpB4CFZGjMpD5GFIaaI6Dpo5xRpzcR0TExHIRxdGI6iOwu9EghdUFUSnWnyLCPLM3SWgZRIpQbhZa2HhuMY6bzFeY+IsOl65vPlcI2H17EJzo5PWS+WgwfiF4BdnD9/cb7jfMf5jvNnj/On16nbmvdulmv8lSk3DvbRfUPTrslMRqY1qhg+oJQQQ1O7FEhtUEYO5VzvQQzHZ5rh+CnPFVoUiNhj+4R3EZlFKm2RwiNVw9Iv6JoH9CGRfMQEgaYhzyKTCoxyaBWJIZDpDCk1q9rSdy2brqaTgcPD67i6p1lsaNsOMy1xMSL6nqZt6WyHxxOC4qxuOF1vaHzAI3Ex4lMkIj6jWDssgKtXr/LNb36Ta9eucXJywv3797l79y5t214uhE9m7kPPWp7n7O3tMZvNyLIMpRRd17Fer6ibhrbrhvHoEOn6jtVqzbvvvsu7777Lqy+/yv7BHtPJ5Knp/SxMJxP29/fwzvHuu+/y3nvvsl6t6fqOECIChdKasigYVRWTyZSiKAghYK1luVyyWCzo+564nea8eA4XkFJSliUvv/wyL774IlevXuX4+Jif//znnJycbKdpP/7+xKAL5FPExYhB0fjA6XrDYd1QRk/C09mOpmlQOg38hUjbdjSLDe6wp13XnJ2ds4mKcTEiLxRK5QjhUSlgVMeVscSVgXWzou8lwlb4RQItyZSgUJGZjuzpSKEiMka8S9g+IaJB65w8r9CZR2calRl0bsjLAqmHwQip1HBfUaCSotAFxntC6gfbmSyjKidM9/a5f75is1wTfYD4q8nx54JdnD93cb7jfMf5jvNnj/PPwSZME4Kl2Tg26w1yf8L+bEZRKIwcKg2ZAKmHBkUEpO1i0Nlgah6so3OONqzp+kDnOoJV7JmMkIZz+XXbUY0KTCbRMTFSFqU9LkIIjhASSmQYDUoFjBI46+nrHmcjbeNp2prezumsAxkpphUiJDpraTYNTW8pEvgkEH3A+zB86IeEcy0nXcf5usYlQRQKT8THIaHYFmk/XgZCUhQ5b7zxBv/23/5bvvrVr3J6espf/uVf8u///b/n9u3bSCkvS7iC4ZmkNAjSzmYzrl+/zuHhIVVVAVDXNXmWIcU5IQR6G0gRbG9ZrdccHx/zk5/8lG984xvMZlP2ZntPS+9nYm+2x3RvyoNHD/jJT37K8fEJq/Ua29vhSFQOu5LJaMzhwQH7h4eMRiMAmqahKApSSsznc3rbb3c0w70LIYaeMeDmzZv8m3/zb/ijP/ojrly5wjvvvMO/+3f/jvV6Td30HyeD2+ceGdwovBr4cSkxX9eczNdMioSRAh8i3gdcH/BJ0Cdo+oH/zlpEANs7Vqslx3FBkRnyTFJVOSEIjGvJi5yyUpR5IgRwfkNIFqUEShmMhEJptB7sc2wXWbcdtveURqFMRrAdSxMoEATVk+kKUxSozAwNtCltm5MTJJDRQxgELzNlONjfoyzGxJTYrDfUm5oQBILsC+F8F+fPX5zvON9xvuP82eP8qZO6kAZ/TNdaFqslbX/AflViSgU2IKXAh0D0fmtOrjHbIzWtFCIlEArjPLmzhNThcYyyQBgn2iYRYk/nLW1MaKUocomOjty54Rw/BiKKhCQGj/Oede3YrFo2q4ZN3Q+6MymijcLkmtGoYjwdMxtXhBiorSXlOWY2I6smKFWSgqX3sImDufuy6WhswCWwCXwCISUp/qrasxAwHo958803+f73v8/LL7/MZrOhbVv+43/8j3z00Ud47z8xNZO2PWIXWf21a9e4fv06k8mEGCPL5RJSwlpLZy0xRbx3w3l827JYLHj06AEfffQh16/fYDabPi29n4nZbEpZ5Hz44Yc8evSAxWJB17ZbgVyN1oaiKBmPx+wfHHD9+nVmsxlSStbr9eUupWmetAzbPoXtn7XWHBwc8Pu///t873vfYzwes7e3x5//+Z/z/vvv07T9pRbjULge/iukwiewEZSA2gaWTUed5Wig95CCRqsSUU3IZjPS8YLaWkIMTMcVdm/KRkrquqfvLXUdmC9atBSMRwXjacl4GigKQ6ElVa4QCCRhEBlWg3K5loboI11MdN4SYs+4SJSjxCgLGKMwRUZeFZiiROUFJjMkMcSMDwHvh/VM9IgQhgpmUVBmCiky5k3PYrWkbltSyAjp8zGJ+TR2cf78xfmO8x3nO86fPc6f3lEiRpyICAJN27FYr6nMhLzQKKWQEqIaeqy0yTCZQSuFFIAYbJDitmFQ6wyTR2IMGGkpTGJlNDEJsipDZAovEoWSFCYnz7Yfml1L3UbWtaNuNrRNQ71p6DuPkoZMV5RGU5SaamzIC4UWg2ii71tscDDKybIrjG7ewIymCFMBHa0VrCL0zjPftLgghgWXJEU5wuSK5XJOcJ7L40ABWhtu3rzFN7/5Tfb29gZngBi39iDuM5ssgcsP7dlsxpUrV7ixXQQ+BJRS1JvNZfkWJCkJYkw479lsVjx69JD79+9y7dpVijJ/Wno/E0WZE1Pk/v27PHr0kM1mhfOeGC+OUIdeuCzLmIzHHBwccHh4iFaKUVURvGe5XDI/P6eua0L85ETPxbO5sFOJMaKUYm9vj29+85v8xV/8JefzFc7Z7VZq2Fkpo5nN9ocJVu+JQuNCYL5pmY8UuTG0dqhmKVMhR57RzRtkqxpMhg0O37cUEsaHE/zBjL4LNBtH13qC87S1ZbM+Jz/TjMYVZVUxqsZMxoaiyCmKEqklQkhiBBsCwihMlVFWkpEQTKeGLDdIk2PyDK2zy+pcBISQSAVaKpDDm5u3EaEkJjdEMxhM951jsV7TtB0uDA3KPv1qb8fngV2cP39xvuN8x/mO82eP86ev1MVIlEPG7RM0XUfTaaQpkVphcoMwhqQNShsEgugjPvrh/D4EbNfT1g1NU9M7S4qghaDIBXGSEZOmGuVIJXDeQhrM10NINI3l9HTB6bKlbgIpOJQKKCnY358wqmYUeUlRGKQKRGlxoSF1FhEEwVlMlXPzy68RSJRXDumlQiVJTIrOwyZEmt6xrju8H475hFTMpjNGszFd19BurZwuDgSNMdy8eZM33niD8XiMEIKu6/jggw9YLBa/0lh50SFmlBp60cqScVUxHo2oypIQAk2ekxmzPZ4UpAhx60CSUsJax2Ix5+TkmK5rB3eCLwDaaLqu4fTkmMVijrVu8G5Ng+7OkFcMx6jGmMv7UUqRYmQ8GjEqS8qiwChF+Iyd0cVO5vbt23RdhxCC0Wg0TN3evMm7770/BNP2J6UcdkTXr91gs9ywmi+IIeGBdd2x7HMqOfAZk8IlSZCK8vo1XlQKhcBoiM4inIWYMEVGNas4nMyIQdF1jq5v2TTD+Pu6blmsLELVjCrFlb2SK1cUVZmjVMIHhwsOqQWjUY7tSqTwFLlAiMExom1aohvK7ilC5sPQTycFUmqUHHayQUmEdyTn6HqH84GmbWm6bthhKkUIaatz9/ljF+fPX5zvON9xvuP82eP86W3CwoWBryAgaK1lVW8QOqLKCmcEIiSij6TYEfzFxGNCDI1QOOvwzkEElRRCQq41UlbkRQQpGW3Pob21NK6lt4nz5Ybj8yXzJpAZw7RUVFVJWQiKTDEqC8q8QomcEDzWWaxvSa7DkJiWI7zR6FHOV7/8dYrRiAcnJzxe1YxTRfQa6wUbEk0a/NJDiLgUccLTdh3Iwabp002VWmtu3LjJzZs3McbgvadtW27fvk3TNL/yHAVDvUmqQZ8sz3OyLENrjdZ66+KQYYxCa4WUCiEUSihcHIyUiYm2bTk/P2e93mC0eVp6PxNGG9brDefn57Rti3ODlAhJDiV4MVyf1gpjNJkxaD3s9LTWZFlGnucYY5BKIdzQvfDpxK6uaz744APatsV7T5Zl3Lx5kxs3bqC1AZ58jokYIpt1TbsVwyRFtIhEr9ikQcvOekHwmqYN1E3NjWtX+No3vk5X1zx6720KoxmXOa2tca5j2HFCVpTMpiUhSdpeULcdnQ203fBGdLZ2PDpfs//4jGsHMw5nY7JMoI1CG82kqgbjmBjRUhJjoveRlAYBYm8dVjhSECAvpueHhl2lBUIKpPCkOBzJ1m3DqmlorSUghnUYEy58MUndLs6fvzjfcb7jfMf5s8f50x+/JohCojWDz1r0tBZklxFTj1+thyM0n9BSM6oqptMxmdGkGLC9p+96hJAczA62jYNbrZgEcXg6CAG26+lcx/HJOWfzDfPa0kaBqiZM9yfcPMgZlwqNRatIpkFLtz3Ks1jXgIhM8pJSDuXWpsgRCaqDA9RkTH38mEePTrhxZYSMiqgNbVI0bpiU9DERYsATWCwWLFZLfBj6u4SQpDQsCK0kWTaMPbdti7WWhw8f8sEHH1DX9WeWaoUQlyPiQghCCDjniFv5j3TRPA8M/WOA3Oq0xQQCeut5+Ogxt+98SG+7p6X3M9Hbjtt3PuTho8f01hNiIiYQYngzEPLJFtN0ee0xxkGkcuthJ6VEbe/1088jpXSZ1D18+JDDw0OyLKPve4wxKCUvX0MISUxDKfzx48ekmJAxIQEvEz5EGhcRaeAzJcVmWfP49ITJ5CXM1UNknkOEqsipZmOKVtDGSB891tVolciLDCM82kBeGHzI8WRs2gDnHafzDaebNXXTsphnXNkfc/XqAXleDObV5WQYekjDelZCEhP01lK3DX3bQUpkuUZKhXWO1WpD3TT46JF6qEZqnVH3ntZaUhyElbVWdGKIxy8Cuzh//uJ8x/mO8x3nzx7nT53U6aQohWQqIoWMKB3xAs5az72F5fz4jNR13Djc44Ubh0ymE/JM4m2HtRZQFNWIoiioSoMRHu96WheIUiO0ASVJIRF8ok2KeRc42vT0CKqDKeXBIeU0I6sUmcoYC0EuEil5kkhEAUkkhNSUWcEoG6OVIGmBCFCKHKNG1KnkdCn46IMHlKLg8OpVvI5YG2lbh0sRnwJpK07oQyIGwbBF4ePfgb7vefe99/jP//k/8+DBA4qi4Ic//CGPHj2ibT/Lw204rkxACIG2banreiuaaPHeX/7uQyDGgPcWa/ttjWtIbLrec/feI37wV39N3/ZPS+9n4vjxCcvlirv3H9H1fquiMThHWNshRCLGAh/ioAVnLV3XXWr71HV9qTeXGJK7OJT6Ll8jpWGX8ujRI/7sz/6Mruvouo533nmH995/D9v3F4+NJIbgCCkRnEWSMNuxdJ8SLkna1mHKiNcRaSzzkxM++uABh9dfpo0lI5WoZM4mAPmIUlWYkKjthtZ2JJGGHVVSZKJgpDV9EmxSIssspckYlwXtuWA9X2I3PbIsGSdFoTNSliGUgBCJ3qGiJzMKbXLyVKCLkq5rCb6na/uhmpnlTKYTmt5xdLzi6HyBKAoOrh1S5RItEkoPcTcVmiAkmyR+ha/PA7s4f/7ifMf5jvMd588e509/MK8UWgl06JHBIjHYGDjZNDw8WeHWDdeqktl4ynQ2QxlBEgFloDQF2pQoXaK0JgSHbVr6fo2XGlOWKCWHKUA33LjODOPZhJGLFFnO/gsvUh5eYVQmjLBEJ4h+6FlS0RFSj48tUSZUpinKMUoWtNHSxoBAUqFIMieIjLb1rM6W9DdbwhVHUA4RIqELBIbFhBy01dI2mbloqLwgVqRE17X8+G9+zP1795jNZoxGI87Oznj8+PFlpepJJNJlJn8xGXrxS8pB/6dpGvre4qwj+O2UUAyXUiAk8D4xn2+4d/cRZV48Nb2fhfWq4fjknPl8g/fb5yCG3cWQ0AWC9zhr6XtL0zRkWYaU8vKe6qah67rLyt1nWYGFEHj8+DH/4T/8B/7Tf/pP1HXNcrnk5OyUrmsRKZHExXPfbgGJJOJ2NyhIQhCA0AWkjwTlCMnR1y2rsyVN6wgiI8lASIoeQRcDJYrC5BQKLJ4oB+sYrUqUyInSDIMNOmFMYu8gx7TQTibMzQOU7RnPJujMEGPAuR6NQivwIdC6Dtd78nyCKqcU4xGmyAm+xbt2uA8RUEYync3Y2zgenm44Pt1w0gduXZ1ytUrDxG2w6CDRyoD6gkp1uzjneYvzHec7znecP3ucP31SJ0EqjUuWEDQpabxLLM5XzOcLRtpwdX/GdDpFa83lZGRRIIVE6gykIfhh2tG5QBQSpXOUqoaP6tAjoiNTEVEIwl6FLHLKGy/wpT/4J0xfehlCTztfsHr8iPr4mL7bUCSPThKcwCiJUZqYSTZdz/F6xZmOjMjRvUNIgZEJpRJReZxw6DyjyCtSHDRyfIyDuCKQxPb477LA9HFSAYNlynK+YLPeYLbn6BeOCJ+Fi/qKD4G6bVmu14yXS4qqImwXV9N1dBc+eyFshxOGn7t0ZwCybVPnyy++xI9/9pOnpvjTePPNN7l7/x5nZ+eXf3e5U0lAfGJB9z1N16HqGoDFYsF8uWS1XlO3LX4bEJ/QBHoCF0ewFyPjzg/G0Zf3exmIT+AimUsRkQY/VWc9MQmKvELnGVZYovIonTAyIaRgYy0Pm4Z6veLQS65NpuhCUoQMhAcl8EbSCUEnDLEYM71+jen1m5T7e6ByVvfu8v4P/xvt4wfsF4pxITDKQ4yIIBAqR2lD1JHoIr2LGO3IlCErDESIXhFTxLqAjwmtNNPJlKv7NUdNzXw+p1KJfTPBoAlB49IQh0j3uXJ9iV2cP3dxvuN8x/mO82eP888lqUNJfII+Qmeh7jpWizWEwHg2oawMQnhS8oQoCUkSLzLimIje4WzAeYfKMsq8QOiKiCZFi9GKIjMoIjZERG7QomD/y1/llW/9PqOXXiUmiat7Vif3+ejtn3H64TvYxjMGMjyZ8cQoaZ3l/tmce6uazbhArh6zNO8wfvVLiOmE6FqKUU6XHMWkYm+2jxIa4mBkb8O2/+szs5D0iccSU8K7IQu/IOrX4aLWFGPcKk2vWS6XFMWQnQshqOv6UtsthHB5HYMp8PBva6UZj8eDNtze7Knp/SzM9mZcd5aPPvqI1WqJjfbyGtnedwgB6xxN07Bery/7CObzOcvlkvV6Tdd1l1NDv+7JxBhp2/ZT3q/D833isJaPw2gLcRGbQ78ZEZQw7M32KSYVXfIUo5xoW44++oi0WvOzd97lwYPHRGk52XTUtuPFa/uUSg2q6SbDmowNBltNufLqV3n5699ievVFzChHiki9t0+/OWWuPOPUMckgU5KAJEQFQqFNRmYMyefYPuK8g67HZAopExFBJBFSIISh8iikp6wM41FBfT7E16o0VEVOH4djZpT8lfz2c8Muzp/A8xHnO84/zdzHj2XH+Y7zf6icP72jhAafAiJCbwVNnWhrCy4wyjSTQuPaNe1GMqoU6IwUE10XibFHRAg+EkJCKCjKwf9SSIlMEpRBaoHSkRj8kCi4yMIHNudz5IP7TJQmK/apshnZ1Ve4EiONa6nvdahuRSE0mcppY+J0XfPhYkldTKheeJWze8f87G/fZr7pmN28RjKa0bggGoEsMiazPUbjGSabkwlHGxzJB1J68tjvk5CfWiH/I/KfRCJdEhpjvLTVcs4NEhh+uH/nPSGGX9F3EwiUkphMEYLj/Pz0aaj9tTg/PyUEhzEKpSTCiU8cn15cm3MO69xQYdtq+Vws4Isk7+K+fxN+xTiZ4X5/VQyFbQPqUK0TWpGVOSYZxqMpk9kesshIWjAaF5ze/4g/u/MBy0fH3P/oDmZsOHzhBVZ3PuTDxZKizHlxPCJTAiE0LYK+qBi98DJXvvoNsquvUJPRzJfYbs76wX3unc/xPiC1IteSzBiM0kgviWnY3QohSVKSxCAB0Dfd4EihJUnCYKqRIEWCs7SbFa5dMy40m0yDC7QrCyGjtwIXE14GxBejdLCL8+cwznec7zjfcf7scf7UHwFKS3wMEKHvBY0IuD6SC4nONZmIhK6hWyvcJGdcDFmytQ7b20GjKyS00VTjEUWWoc1Q9hRCgNREpemiZ9l7jpcd90+XPNr0NHfPOThpeOFrX+Pa9de5cvAi12/uoff3mdy8wfr4Q+wmIKJAyQwkrLoVTdIc3HqVr/3BP+V29jY/+i9/xo/u/zdGB/u8/s2vsf/yTSazKcoYysmE6f4+KnuA35rv+pi2ycQnF4C4JP/p+prSttLV9z1N02ynPRV1XVPXg2RHby0xxE8mRGLQa9Nac3R8RNd8MRNS7777HkVVoI1GSnG5y7lY7DFEemtpt70Em83m8p6GPoL+453JU+GiRC34dMoXUoQEKkQ8EZUZJvv7lJMJyhimexNE33J29z63f/429fmCajTmO2/+U15/8+v8sk/MP/glqy4gpjlaDkbU1gdinjG5dQO9v8+itxw9Oub0/B7HR3d48Mtfcv7he1R2w61xzgtXZlybGWZVRpZpTAAiJCLKSETMCL2laWo65xFKII0iyzOyzCBTxLUN3XpN6BpyIZnkBh88rouQAn0vcBE8AaW/mFLdLs6fXF3PR5zvOH/yke8433H+2+Hvm/OnTupG0ylxucJF6C000WGAKsvIcz28QIDoenxfY22GCAofAikJpBRkWjGZTKgmFeQFXoBGo5LCacOys5y3iduPl3z06IQPHhyxaHtSMWJv2TG9epWrBy+znJ+RFZHDw4LD69d4IBR95xF5TkiOECPrNrLq4Uu3XuaFF94gnPd8UP6YsFqh6ppufkbx5Ze4cuUQZQZTep0bohL0yx4XI08cff8KLk7if5tlcFG3CiFQb3vQ1uv1paectcPQwYVuGySkEE94uCcQg9dcCpGT46Pf4ip+M06Oj3jxpZcwxmwnhD4OCLkdXHC9ZRkX2L7n7OyMLMsQQlyqcNd1fTkg8duGzP/oWac0dEO4GOmbnngwQecZZVGgjObKlSu4xTnd+RmqbshDZFaNeeWl13nhhTc4vnWXj37xS9ZtxEdBSBIpDF3XI4Tm8No1koD52TnL+ZzkPKuzM376k5+xePwY0dXslTlvvHCdV25GXr9RclBK9osM4x1BGDyCXEGuoJCS9WaNjYN2nb0YfQ8B39UEZyGAVjDJDb2XEKBpHL0HlyApwWg6hQe/5QP9H2AX5//za+834VmJ8x3nn8SO8x3nfxf8r+L8qZO6V15/jcVHH7E8OaZznhxFnmnyXFDmEq0SKgpESkQX6NoelEJqQ6YVpc4Z54aiqlBFgZcaRMIHgY2C01XNnbM1H56taU3Fub7GQjoWYYNoE2m+4fxozsHsiFX9Eev1NcpvvM44QXARosD6RAqSrg+cL2pWjaWtPevjFclHbly9SuE68jJnXFYYaSAkbNsjUsIFR+s6fAiI9OuJ/jg9+W2XwQAfPKEJdF2HVGrQytlWwsKF5PSn/nuRVF30nhmjL8/vP28URYExGkiXr8f2Wj7e11w0ynrquh6+TzBoyl0cvz7lDmio0F2khZ/eZW1/pSemTaNFpIFXQsJIw6yqUPt79EXP3pUrJBdZH6/oaseqsZxT012DQkmET8QowAUUgs1qze33bnP08JjpqGB+NGc+37BuBSlOQE4419eQtuT0g8e8ejjhtcMJV4pBTR2lkEmgiwKVhoSt7h2tD9gQcLaHEIg+IFNCCUGmQOYG6RWuVzib6HwgGMXscI+9l1+Bt3/6lM/1V7GL84/xvMT5jvOPseN8x/lvi79vzp86qbv1xqvI2LPcrGhtQ4lAGk1VGUyRSNENys1C4pIYPhgTFFlGWVTkmSLLDGiFjRIrFE2MrDae1XLDnZNT7q8ttpxBMeXufMlHJy19Y8m0JBK59+EpUtxmvl6QZRD7W9Ttms1yQ+4iwUiSgNWmod5sIETu37nNYtWxPH1Ef3aEipa9fMSVvT1GRYVwCb9pCW036OMQkCQUQwXo4/b+Xz2D/22rTxdjzEO/6SANwvac/TJ5EvDpU8uLn7v4lq5rCGHMwcHeb3EVvxkHB3uE4Om6dvv624Kd+HjxXy5NweVR6K/0xT1x3X/Xo9hPvspnf1UCW0c9EoEUPaHtcJsW4RKjouJwb4/w+Ji6XnN0dsTiL/+c2ZU7bM4egrPUG8+qrpmM9hFInA30yw31YkUsBfPTY9575xfsT/a4d+eU5SKyXAasjyz7BjW2VIfXqVvH6qMjzudzXrtyhemsYDrWVEKSxYjSGXmp8MphbcC3DZ13yJBwSRCQRCEQSpAZg0iCdQRrA22CrMw5ePEGN9549e/0HP9nsYvz5y/Od5zvON9x/uxx/tRJXbE/5eClm5yeLzh3R4Tt+XRSgqiGD6MkEk1IZAF8ABcTzgmEGY7jQgyoJPDCsw6Oo7rl7nHN4/OWNBrRlVMerVpu/+JnPD45p208RmiULPC24vS4xxRn7F2tuHn9KtE5Th48om978iSGEmtwtK5mb5JT6Ix6dcaD+ZL16gzRrRjFyOxwj9lsxnQ8paqm6Cjo1xuC68kzjRIChSQQP4P6AWk7ufjb4BOyIL/ua78OArTWGKOp65pVvmI2nf5W1/GbYIxhuVpR1zXGDOPd1n3aWuU3X/f/6H5/E9Llr89mQnCR1EmUEOSZJnhLv96QR4GqphjbI2YzHojESb2ibjekpmGyWHCoPC9fmVF4S2trbBgjlQEkfdvz+OEjDl+uuHH9Ku+/n/Pw0RmnJz3eVoQYaV3Hatmxeec2x/MFr79wnZvTK9y3HQ/ee8SNg5KXr424PiqZKIFOkdAHNjbSRMHaCTqXMAlsgCYknJAEOTTPJgWBRFAaYQzT69c4eOkmxf4Xw/kuzj+9/n7343zH+Sex43zH+d8F/6s4f+qkbp08+ZU9bnzpVbxLMJ/ThA3KR/KkkAKElFgEbRTUrWNetyA7JmVGQWRvXFKNSjof+Ghec/voiHkY88JX/4BrL93ihz//OT9++z1O50tIikyUTMp9pqMpk8mUJA+R+Yxvffcb3Hz5ZVbzM+7cvkfXBvaKgmQkwbdkheCF63s0wL2VY9NbWnqicogIHYGoBLnJKE2GjBJpA1pGstKghSJqCD4RUuITaczlqthm9U97svh3QkIpyf7+HqPRCOc8TdORZ19Mib7rLE3TIYRif/+ALNtwejYnhL+/m06wfeZP7K62L3+Z0AmB0RItFFlpMCIgbSBPCmMEwWREKehEoCGwUQFJj+gbblWCm4cVFRWZEQTpEaZEBknXBu58cA8zu8Gtl1/mW53lz/7z35KkZDoDIVcIuWLVzqmblg8+ustytST77u/zB9/8Q47uPeDH7/w1H3604fUb13llb0ShFU3dsti0dEjWrYXoORhpRBRYBFFKvEzY5Oh9oAkSijHT/X2uf+lViit7rJP/Qp73Ls75eHFtF9vvepzvON9ix/mO82eI8986qbvINH/+zjvMCoXwEZ8pGu/Y1A1L78k6QWY0mRWIFMl6TxcSj89qQkqMCsPBqGR/XJEXhrO64c7ZitO2QR2+zlQX3Hv3Dn/1t29ztFwSgscg0LlCaQVS45JmsbEs3/mAYt9z/6OPaBfnPH7/l8yix09yFqkjdg3WW/roOW9aTpvEwmva2BBsR9sEsqNj9DvvchIE1egIFQW379xms9kQQ0QqhUwgZYRwUZK9yMafyCj+HhfAxctKKamqkjzPaZoWbz/2WH36KdOL1xr+ndOzM5qmIQkYj0ekFJHzJd5/MWbyv/6C2D7vxJPJ3cXdSimQUiGVIsbIerPhg9u3SQmCTDT1nMfvv8OHR8ccb2r6SqHS0LNx2ntMLzioSlqpWTQtsqjYiIKH647l4xM+PF9T7h1wNF/wi3c/InVTQtIgNUoPRs19H3F4jpdL/upv30bkI/ZGM476wMOzRxyfLnl8OOVwVNF3jvmm4bxuqTuHEoIbhyMKJbBNSxIS2yes89gm0XeaOMqpMsU6OFYP7rPsvhjOd3H+/MX5jvMd5zvOeeY4F+m3XBX379/npZde+m1+dIe/Z9y7d48XX3zxqf+dHefPDnacP3/Ycf78Ycf584ffxPlvndTFGHn48CGTyeRTE5A7/ENBSon1es2tW7eQ8un1y3ac/8PHjvPnDzvOnz/sOH/+8D/L+W+d1O2www477LDDDjvs8A8HX5RT5A477LDDDjvssMMOf4/YJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwPYJXU77LDDDjvssMMOvwP4/wPtJTdgJWfZKQAAAABJRU5ErkJggg==\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"hflipper = T.RandomHorizontalFlip(p=0.5)\\n\",\n    \"transformed_imgs = [hflipper(orig_img) for _ in range(4)]\\n\",\n    \"plot(transformed_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomVerticalFlip\\n\",\n    \"The :class:`~torchvision.transforms.RandomVerticalFlip` transform\\n\",\n    \"(see also :func:`~torchvision.transforms.functional.vflip`)\\n\",\n    \"performs vertical flip of an image, with a given probability.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:43.405688Z\",\n     \"start_time\": \"2023-04-02T12:48:43.262307Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"vflipper = T.RandomVerticalFlip(p=0.5)\\n\",\n    \"transformed_imgs = [vflipper(orig_img) for _ in range(4)]\\n\",\n    \"plot(transformed_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### RandomApply\\n\",\n    \"The :class:`~torchvision.transforms.RandomApply` transform\\n\",\n    \"randomly applies a list of transforms, with a given probability.\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:43.542135Z\",\n     \"start_time\": \"2023-04-02T12:48:43.406323Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 图像有 0.5 的概率应用列表中的所有变换\\n\",\n    \"applier = T.RandomApply(transforms=[T.RandomCrop(size=(64, 64))], p=0.5)\\n\",\n    \"transformed_imgs = [applier(orig_img) for _ in range(4)]\\n\",\n    \"plot(transformed_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# RandomChoice\\n\",\n    \"The :class:`~torchvision.transforms.RandomChoice` transform\\n\",\n    \"randomly apply single transformation picked from a list, with a given probability.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"ExecuteTime\": {\n     \"end_time\": \"2023-04-02T12:48:43.684558Z\",\n     \"start_time\": \"2023-04-02T12:48:43.542863Z\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAnUAAACTCAYAAADode/iAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAADzPklEQVR4nOz9WZBlSXrXi/7cfQ17jjkyM3Kuqqypu6tn9aBWS62rA6dBEhwDyS4mBoHJZDzpQULoQZgMEzIMDENghh6Aa+cCEtiVrE2AEEf3cM49RwK1utXqSdVdXV1z5RyRMe157zX4cB98rbV3RGZVZXdWFqhjf2mREXvvtX2t5b4+97//v0k45xwLWchCFrKQhSxkIQv5Ey3yv/cFLGQhC1nIQhaykIUs5MFlAeoWspCFLGQhC1nIQr4DZAHqFrKQhSxkIQtZyEK+A2QB6haykIUsZCELWchCvgNkAeoWspCFLGQhC1nIQr4DZAHqFrKQhSxkIQtZyEK+A2QB6haykIUsZCELWchCvgNkAeoWspCFLGQhC1nIQr4DZAHqFrKQhSxkIQtZyEK+A+QdB3VZlvFzP/dzPPbYYzz11FO8+93v5l/9q3/1pt/5hV/4BX7jN37jLdv+5//8n/NP/sk/eaDr+7t/9+/yt/7W37rnZ3/mz/wZXn311QdqfyELWchCFrKQhSzkYUjwTp/wx3/8x0nTlGeffZZms8nVq1f59Kc/TZ7n/ORP/uRdx2ut+cVf/MX7avtv/s2/+XZf7hH5nd/5nYfa/kIWspCFLGQhC1nItyvvKFP3yiuv8B//43/kX/7Lf0mz2QTg0qVL/ON//I/5e3/v7wHwe7/3e7zvfe/jp37qp/jYxz7Gf/gP/4Ef//Ef51d+5VcA6Pf7/IW/8Bd48skn+f7v/37+yl/5KxWzNs+y/et//a/503/6T/OX/tJf4j3veQ8f+tCHeO211wDY2dnhU5/6FB/84Ad517vexU/91E9xPyVwL126xHPPPQfA933f9/GzP/uzfPKTn+T8+fP8o3/0j/j1X/91Pv7xj3Px4kV+/dd/vfreX/7Lf5kPfehDPPPMM/zgD/4gu7u71Wc///M/z2OPPcZHPvIRfvZnf5YPfehD1We/9mu/xkc+8hE+8IEP8L3f+73VuReykIUsZCELWchCjss7Cuq+8pWvcOXKFdbW1o68/7GPfYybN2+yt7cHwNe+9jV+9Ed/lM9//vP8yI/8yJFjf/EXf5GVlRVeeOEFfvM3f5PPfvazb3i+L3zhC/yDf/AP+PrXv84P/MAP8A//4T8EYHl5md/+7d/my1/+Ml/72td47bXX+M3f/M1v+X6uX7/O7/3e7/GFL3yBX/iFX+C5557jc5/7HJ/5zGf46Z/+6eq4f/pP/ylf+tKX+NrXvsYnPvGJinn87d/+bf7zf/7PPPvss3z+858/Ytr9gz/4A37913+d//bf/htf+cpX+KVf+iV+7Md+7Fu+xoUsZCELWchCFnIy5B03vwoh3vKYxx9/nE984hP3/Ox3f/d3+Wf/7J8BsLKywp//83/+Ddv5xCc+wcWLFwEPHMvvWWv5uZ/7OT772c/inGN3d5f3ve99/MW/+Be/pXv5kR/5EaSUbG1tsb6+Xl3LBz/4Qba3t0mShFqtxr/7d/+OX/u1XyNNU6bTKadPn67u5Ud/9Ecr1vKv/bW/VjGWv/Vbv8Wzzz7LRz7ykep8e3t7ZFlGFEXf0nUuZCELWchCFrKQ73x5R0Hd+9//fl566SUODg6OsHWf//znOXfuHBsbGwC0Wq03bMM5d1/AEKBWq1V/K6XQWgPwy7/8yxwcHPCFL3yBWq3GT//0T5Mkybd8P8fbL18rpQDvD/jZz36WX/mVX+Fzn/scGxsb/Kf/9J8qpu7N7sU5x9/4G3/jvv0JF7KQhSxkIQtZyMmWd9T8euXKFX7oh36In/zJn2QymQBw9epVfuZnfoaf//mfv682PvWpT/Fv/s2/AaDX6/Fbv/Vb3/J1dLtdTp8+Ta1W486dO3zmM5/5ltv4Vs7V6XRYXV0lyzL+xb/4F9Vnn/rUp/jMZz7DZDLBWsuv/dqvVZ/90A/9EL/6q7/KjRs3AM8ufulLX3po17mQhSxkIQtZyEL+ZMs7bn791V/9Vf7O3/k7vOc97yGKIpRS/MzP/Aw/8RM/cV/f/4Vf+AX++l//6zz99NNcunSJ7/7u72Zpaelbuoaf+qmf4kd+5Ed43/vex9mzZ/mBH/iBb+dW7ks+/elP82//7b/lySef5Ny5c3z84x/nv/yX/wLAD//wD/O5z32O9773vWxtbfHRj36UbrcLwCc/+Un+/t//+/y5P/fnMMaQ5zl/9s/+2SOBFAtZyEIWspCFLGQhpQh3P2Gf/wNJnucYY6jVagwGAz7xiU/wy7/8yw8VmD1MGQ6HtNttrLX8xE/8BFtbW/zSL/3Sf+/LWshCFrKQhSxkIX/C5B1n6h5Uut0un/70pzHGMJ1O+bEf+7E/sYAO4K/+1b/K1atXmU6nfOADH+Bv/+2//d/7khaykIUsZCELWcifQPkTx9QtZCELWchCFrKQhSzkblnUfl3IQhaykIUsZCEL+Q6QBahbyEIWspCFLGQhC/kOkAWoW8hCFrKQhSxkIQv5DpBvO1DCWsvt27dpt9v3nQx4Ie+sOOcYDodsbW0h5YPj98WY/48vb/eYL+TkyULP/8eXxdx+8uR+x/zbBnW3b9/m/Pnz3+7XF/IOyo0bNzh37twDt7MY8z858naN+WKy/x9f3u4FfqHnf3JkMbefPHmrMf+2QV273Qbgwx/+IAcHhwyHY6RQtFpNVleW6XRaGJcTBSHNRhPjwDmBdQ4pBUJIcA4HCAECAcLhnAAcwhmwljI4V0qJVBIp/KQl/JeK7wkQEooJTYBvu/jBAc5/xxbtCeEQ0qJUgBASax1CyGrhcoCzYKsXxQ929iPw94LAOYprFQihcE4gBCgJKvAX5RxY4/tBEGCsxToDIiObDhj3rjMZT8h0itaWPHfkWtLpbLKxeQ4VxP7aJeA04LDWYotrs27uNZBmGb//B39QjdWDymLMT96YLyb7Pznydi3wCz0/eXpetvPDP/SDXL9xk26/jxSKleUVzpw+zcbqCiZLaMR1lpZX0FiMAGudHz9Z9G1R+lIIgXDO9zEgtAFdjrlDqQAVKKRU1ZgL/Dg5KRBKIqT07yFxzmGd9WPsRPFsCWzRIdIZpDNEUVQ9C0IqhJQgJA7fh/5ZBVuMqcT6h8FoJKCkf06cf8xwQiJkgMXfU6QgEM4/vwKMBSdDjFRobXA2R5qEZHef3je+Qb83JEnGpDontZYkiNm4+Ajnn3gSFddBOAIJTmsEFmNMdU/GOYyx/r5xjJMpv/GZ33jLMf+2QV2pIE8+8Qxf//rX2d/r06gHXLp4gaefepKtM6eZphMa9ZBTm5tYAkD6zhai2lGKsi0hkDgswg+80Thrfc8CKggIgoBAqeqhqSYDqZAywAmBtQbhHEI4nLUYk2OM9gooBWmaMp1OyfMEhKPdaVOvN1EqJAwiVBABAuMExliMsYBCOIHW80rvz6GkKh4ug7GWciYTSJQMCSJJFCmk8pMDVmC0/1xrTW5StE3YufEiLz33f3Kwu8doIpgmOeNxTpLAxbPrvO/9H+TU6fMgA6xzOGewaIzRGOsfBq01Wmsm04Q0TRlPpvz+H/zB28awLMb85I15OYH8p3/3Gdr1erWgWp3hLLhi8XLWkKcZDgtFnwgHOI1wFmmtH6Ny9bOmGmvnLNZoRHGMb9ghMSgcUjiUACUgVH4BkQKUc36RFyCLldnZHGs0Js+wxmCtAaux1qK1LhZG62d1W5wLh8ChsEggEMUzim9fKokMwiM6UD6/8+9RPd0zsXN/u3scVSaUcnb+0/JDyzyAmf/x3/Ur1DDJ+FP/7//zbVvgF3p+8vS8bOej3/N9TH73d7m+fYdOo8Uz7343n/zuj3Pl0ccZDg9ZimIuXb6EC0OcCrDWFqBuBsiFlB6LO4ETxXOaaaw2uAKAB2FAEIXIIKiOpxh7pERI/3eVca141p02uEwXz4nEjsckoxHpeIQwmvb6KuHSEiKOIQz9ZsDvJXA4P07FvdoSMTvwm40ZIK2AvCiP9/clZ2pP8a2qCef8c4nOufOlr/DF//X/xc2rNzjswzBN6SUZIxfw3vOX+Z/+7P/CpaeexkqJsQbhDFan6DxFG02uNXmek2Qpw+GQ8WRCbzjkNz7zG2855g+cfHhn5wBrAoKgThCExFGNdqvNyso6en+PIBCsrC4hROR3c8bOBn7ugZJF57tiV+K0xhnjJ1UpvdIHAUqpIw9QEARIpRBSFZOGRQiHdA6tU3SekCQT0umIbJqQJmOs1gTCEYSSWBmkTTA6weUhjWaHdnsJGUSYQtmdBeGUn/+LxUNI5x9c4Z8YYw3WanCyeuCUjAgjSRgFqMDv+rAKgd/tWWvI9ZRpOqa/o2iGjklksEYgncRmEp1mTIb7CJuxstwhiBpkucYJS25ScMVCZZyfSLSm2cpI04x4MHzQ4V2M+Qkf83ICaTYatBqNCmSYPMRZNwfqLHkQekBnC9CEA2eQznlg51EgwhjfjrUI698zRhegr3gPi3AGWYC6UIISglAJlBRIIQpQ5xByBsCs8WBO5wprcqw1OK08qDOy2An763PO77iFf4o8gMSDOkpAh/OTeQE4yj45Au78H3O95p/VkrWg3PnPwTpRwMbyOGtt8T7Ve85anLNHQNxxQIcDa+zRa3mbZKHnJ0fPS3nl+m1yERE1OoS1GrV6k9XVDU6fPUd6LScKJJubm6hazYNQbTwAk2qmA1J6GpOiT62FTENegCSpIAwgEnNqI478uksK5hfjcP0RSbdHOh6iuz1MnhM5Q6Ak9TwnHE/Jxwk2jgk6bVSnVTC/HNPThyPOOlpBzJIRDIzFCIVSEUY5siSld+MmTKdsbqyhGjXSJEcKyNMhNs+wxmKcI8ty0jRhsrTMZDqhebB/X+d/YFD38os3yVLDZOTIkzEvvfgycRjhTMThwQHLa3UuXXLU6wqQWFnsjAuq3eEQCE/fls+EdjghoNgpSSUJgxAVBCglK3q/mhpFoYzFa+ksWZYwHvUZ9A/o9/YZj/o4mxGFik6nzcryEvV6HRAMhz0OD3skaU4QNWi1V1haXqPVWiIIaygVIIXAlDctQBbn8g9bgfIRBe2vkMJPUEoIpHBIV3yxZAEKeh8hyTJHmozIU01gIZYCIz1TgdUM+l0Ou7sk6YhWHIM0KFksOS7ESYcRxdU5hyRCOsij8EGHdzHmizF/Syk2wnPzcbU1rt4VSKrxqoCQREpPSMkKJMmiXyVgq34TZT8KP+JSyAKMFf3qDWXeXCLsjPERYIWoFulqJ86M5TtCoTH/uhxnKjB1fzIHvMoeOL6WiCOHVseL2Yt7M3McBXfls/gwZKHnJ0/PP//HzzNJc3qJZTLu8fk//CK1uMHURdy6eZMLm0u823rzKUHg79PhzZzFNfo35joU5cc8BCGFp9wDSsV+S/HsrsP2hwy3tzm8cZPhnTvYJKUWKDbW11nZWEe22yAVemeX3Tu7jNKEsNOhdfo0y1tniFZXoRY8fHBnDNNenzS3BC6kKWNyZ1C5RaQ5B7dvs33tKtNel3bjFIF0KAkiCHHSuwtoY8o9BkoESCRJPbmv0z8wqMvTgGwqwNbIc02/O+b6tTsMuoLhcMDW+RUef/wxmo0WURh5u7OzOOtt5EpIPym5GR0vBaBEtYuTSnpbd7FDFwJkoErVK3a6urgiS64z9na3uXb1VQ73t1HCUIsDAumQQZ0osNRCQT2W5FojRI4UOWkyZH9/nzy/RrO9xOapLdbWNllZWaHR6CBECJZqQahMMM7v7lQxgSkpoTQ1OLzhnZnfAXjbPcJTwHmeMk2mKBXTaC3RDhXd3oDR+BDnUrIso9vrMplOaK+sEkg56zvrKht8OdkLKbGADB+O4i/G/OSN+ZuJmJ/DS5QkCn8Y59kvgSuAWOEv47zfE856UxpUple/oFowyi+awnq3qvI5kBIpBBLpF33hKuCnirMJXSwgSGTgFwXp5AwYgWfrbGFyceV9lACpBE7+mZ3/7jwjdm/GrvS/mls43Bx+fJP1xJZmJuc8y3gM2FUXf/y9hyALPT95ej4lZuQkOmphhods73V59puvcHvsONjf4+lLW3z0uz7MueVlhJr5OnrLtQWlin6hGHcAP74IAeEckLsfXOXpXSY3tnnpy1/m9iuvorSmHYaEztFqtagZ6+cWpXB5ikgTVJYwPdjn5o2bJF9/juXNTS4+/jgbFy8Qb64hatFDA3bOGIbDPkGjydLmJuuBJNzfo6dv4yZTpknKzvZtBv0u7a0NghAwmjAQWBtUY27D0HsUKoXFEt4nkH9gUBfIFlpYhJtg7YRkqrmz3WNwGJAkCVIqDveGnDm1hgws0plya40tKG9rZw6UAIjCvKIkQSBRpa9FMZmrQKGk8lS+dd5BF4N1hjzPGI/6XHvtJZ599svkyZitrQ3qUYdQBQTKIjE4m2JygdEa4XJAI9EIl6HzlMP9Ef3eHgdr6zxy6TKbpy4QN1ZnpgVX7qxLRsC/7x9e7ycEYK1AG3BIvzkhBAwWB8JibE6aTzDOsnn6PHEIjWaNW7e36Q0yVG9KlmqGwyHTZIoT1lPb1vtulLvZeSdgCrNWtXt6m2Ux5idvzN9cxJH5WdxFf4mCgbMzVk1YhJN4p2eBE2aOofFgDOHNouU7d03BYr59V5xVFONz1Nwyz9JJIXBC4GTBIBYMmSj5xjmw5OZA1vx7Vd/P/f3W3fQWx82d64386GaY8yh79zBkoecnT89lcxkZGFx/gBUDhtOUV27e4XYWMx6NkDLk2q19ts6f80Ei5eMnAKR/rQuTa/lsSgqTbHHc/YI5wGmL2e/y4he+wP/1v/0Oaa/P4xcv0N5YpxbFRNagsgymU5wUkKWQJog0RWY5MknIxyO2u112r13l7IXzPP2+D9B64gq062+7ywLOYZMEY3Iuv+vdNIBWq8HLL7/MnSRBjcZM8oz9wwNGgz7O5AgFyHJzIJF2fpMITjuEkR5E34c8MKgTSIIgRKkAo/2kmiQ5Ok2xRjLoZdy6cYcrj21Rj0I/cRYToZ+sLM4Wfi6Owj4vEdI7oOKZfYoN+OxH+p21K25am4w0nTCdjNi7s8NLLz3P66+9TL0WsbbWAtGh1qjRaNQIQ4W1hmkyZjQc0+8PGQ4nJEmGFJY4hEmSkSUJva7mpjQkScaps1dotzuoIAQnsKbYuctC8YuVxFmDLX1hnGcgbBEd5qNr/G5MYLA2J0nG5Dqn3Vii2QhotGKGk4Qoir2TMIZpkqBNjlBeMxwUZgFPAZSTI0LgtC78WB7OTmQx5idxzAVvDh/m2CtXAKNil84c+yEoGDcEsmLNTHkEJcvnHdaPMl1vuRgUjB3zZlY3D+j82mLL+7F46sgW58NH7N11nw7v3zZ/qjm/OpgDd0cWuaOsXgkemT9u7pj59ksgV/raVT50xw8sP3sIstDzE6jnKiSsxQRBSIYf89E0ZTKYoK3izmDKN158nQ8+8xS1KEBYZnpZBh9pU4YC++tUAbMIg/tQ5AJUM06xvT67r7zKH/3+7/PVL/4RnVqNrdVlxPoarWaDTqtFFIWQZ9DPSLp9Dg8OOOz3GU8TlDHUEQynE5LxkJ08oZ4bzkynrH7gvahm7W3vSzMYkCZT1jY2WIojmvWY9VGfWqOBCmOc9kA+yxIIJATgjEPowD/0yqJU6IG7EhgsUsmC5n5reWBQpwJwRqJkgChodmOs3+W4gOk44cb124yHj7HUilGimLCsd2p2xY7M2WJCKItcCOknUiuxWITzu/GS7vVRN37ySNOMQf+Q0XCXLMvo9w9IkjEqEDQaEVEUYEyO1rqIXjZkWYZxhvF4zGg0Yjqdok25AzJkyYhcG4Qw7O/lHPb6pFpx5fEnaIaBfzRFuVD5nZUsFN8KsFis04XZxeKcxDmBU9KH2luBLCa1NJ+S5VO2ewOUtCwvN+l3uzhrUEr6zZs2REFIJEMSa7HF5FKGgXul9+Ytqw1GSJxQDzq8izFfjDkApcP+0WlljkkqAg8KF6jZcUdMhaWp1PMQUhSflWya9AZUYUXB4NlivbfI0sRa9D9ijr0TZdQauGP+c7IwZ91TRAmU5li4sk1X/Fd87ubWonnm7F5BEwK/6Lq5948cd6wtU7BZZf++GUv3cJbye8tCz0+enofOkcsApSJcbkA6cm0RBpwI6Q8mPPfCi4wOPkatWfcbMIPXkzSbC5LCm6ZVgdKDwO+b/B5vJsceaFeYW/PdQ6bXr5FOJuzfvM2oe0gkodOoUY8C8jQhy1IcbUxukNMpVqeMez16h4cMR8UYBxKR50y7XdI8Q+Y515OXuLV7h6fCgIsfeC8iCt5WYJdPhiTjIa/cuU1gNZvLHfZ2dnG5JlSKEIHVljiqI8IQnMHYHGczvBoU6X0CgRQBLhcYCVa9Q6Cu3WowcoYgAJn7wBalBBiLQJHnKXt7B/R6Y9bWlojjqIroKSezcjcK+Am4nGet8KkPsNVELp30TIAQkEOaJuzv73Nn+zrj0S5B6L1qVlba5PlplpbarK2vEwXeATEzhkBbjMjJsoxMG+J6HRkExcRgMVpjTU6eJEhn0NMJU90lp8HS2goXGnXCIEYIh535sOJzFJUOvgbndLFbcVisvxdncE4glUAGAiEduU5I0zHj7h2szRiPYsbDMVmaEACRlERK0Wm0qIc18ukULD7Hj/MzvUNUeXisE+AUUjzw8C7GfDHmxc0yY4rKt8od9Twwcq68PIDCT47q89KkNbPC+N37bAF1xQIqcJRBEyVQ4ygTV7YhqFg6MX8OMTtD9d0jNzT/+9iN4eY+Ksyi1cfH++G4Cbb4rsQDGknFXlXHuVl/4cpI1xlovheoEyXaOHbuh8XULfR8fohOhp6vLrVxE0NYEEM+jZBAOwtBSJJOuHb9BnsHA9ZObSLqkb9O43O94SyFTdqLkGAcpBaIihQjbqa4czrmADJN/9YON577Br2rrxKFAQo4s75K8sglNtfWOH/+PDUVYhxM85TAhOg0ZzqdMNU5jXYTFQVkWeaDDtIeJklJxmOktqT9EaOd26SdNiunN+hcvPD2YTrnyKdjRr0u/ddfxyYJvUaTXm9AMp4QiYCaEtTDOu3Vdc/U5eCsQgWqiMZ3OCmwFnIgFwInA2QU39clPPCTsbrWIc9GnqZWhkYzotNqYbMWNg9xMmc6nXJwuMf5c2vEcQQ4LBqYKb6fpGepAJyzWIzPdVMqlJM4YfwGG0eWZBzu73Hz1i32dm6QpX1azQZLSx3WVlaoRYogEAgsoQpRyueEyY1GCUmmNUma45xFSIEKAqzRSOlD0kfjMdNkQhzFaBS3b73O6TOnOHP6FPV6A1P4WPjrdzgBRX4FZME2zButnLMYZ3BAIBVCBAjhqX7nHCqA0El0PiXPpginCZQgjgKajRat9hJBECNcClYQxFHFoFhrsdZijE/yKaREBg9J8RdjfuLGvLoff1Nl9s65sfMLn3M+5YR3OHdz7NLMny2Us1xzOOcjvoxPvonzjuk46UEdvr1qgSm+69m+0kTlkNL/LZVfiYX2LJ1zDqE81JNSzkCGmF1/gTLe+J5LU+I9wJP1t3aUjStoPekkRjiEE7Pn/QhrVzrcuypvmy3O58GRH19Xpjs5xggej4p9u2Wh5ydPz8+d2WR6+xAlBYHTrDTrrGyuMm2tkNgYNU0ZjkbcvnGVK5fOImuRN7XmmQe2xoIxvq9U4HXaWhA5aEAWueOkoAgb9mIdTDP6N27x8gsvcO35bzLd3WFlaZlT6+ucO32WZhARSYEwjjgOCaRE65QsC7GBIMlzxmmKNTlSSsIoROd+zI3RdLtdhoMezUaLLJC89OxXufzoJd5z5hQirr1tNLg2PhVRiENKRT4akg6GiCwnAhpxzNLKCrXVNn4OkCACZC0sshn7NEXa5uRG+/yPgXrnAiWkklgrUCJCipDl1RqPXVkmDjpMBo7DQ0syydi+1ePKown1Rg2HBpHjMBjrsFYghPI+L8UOF+FwwqLRCCsReLpZCodEY/KE7sEOt29dZef2LQbdQ5xNieQKshPRjAXSBEwnE3qjPkktJm7ExLUI0WpTazao1SKkEGhtkFJ5en8yZTiZ0huO2e/1MNay2lmi3mrS29/h6isv8MRjV+i0VwlUCE4XeY0sCF1s8meRUs4YrNEFpe8zXDsnEEFAFMRI6YijFoKQKKoRkIMVZIFACA3KEUc1zj1yic76OrIWk/UcxjgEChmoIjGmKXZAxkcKIo5EZL2dshjzkzfmR+QIiTUHLCrz61HmrmLpSnat9KkrdutOOJ/GwRXRrKWPmywXT1G55MwHOwhXMnczNq70zSvf95c786mjPK74rivpPQRlIuK7brdgGu8FnioSUs4xdk4W5yh8/JyYXctcG8ejaOfN2Lhjv5m1PzvPfB+//bLQ85On50Gg0FYgozoqjDm/1uJDT2wSr2ywP3Fc37MMh1Oef/02H3rfmKVWA5ElkEw8ILHghEKEZakNUWygAJP5fHVBAEEIooiUzS1uNGL06mu8+uxXeOWll9i/tQ2TCfUzZ5H1BstCIaM6o/6And1rjBp1Go2YZj2G1XXay22a9RpKCrJcI4OA6TShO9zlYNjnTnefm3duk1vNmc0zdJY77Lz6Ks/9wR/y+Ac/TP3sad4WVCcEcXsZGcbUWy3CVEMyZSrHyCwDm9FoLfHUM0/SWu0Ajkzn5HlOUA+RofTPmQRnPWMthU+ufb9s4gODOme9eUSJgEDF1Ot1rjx+ifNbj7B9o88ffv4FdncG3L69R38worPcQgWF07Gk8KPxiu03Q8UEKAGsp+lxIAoECzhnmE5G7O/t0Dvcw+ZjcAngMDZnOhkRBgHO5Dido7OUifaRTyav++SlQUBNhQRBTBBAFMc458i14fbtO4zGY8bjCdY4oiBCBCHpdMLB/h57u3ucOn2JKPYOpf5GfIRWlZKAwremSujgJ2dpDbZYqMIwRGhLvdYikBGT3AEGnE9loJQkqglqrSUuXLrE6toGxvkdqbEah0WJAFtS19WCJ3GSh6b4izE/eWNeiqjIrRJwHbVSemA3Y8Bc8Z3KNFqxTWUULDgpUVJRlKiowBwIhBXHzK/+Xo9mdp/Ze6vjynRnbvZdcFR5z0QRRFF50c0Bo2MvoWSY3hg8Oetv0h9S+omJ4veb9OfxD0tzdmkBPnbeu4AdDw3TLfT8BOq50baIRA4J4gatVpuPvP8Znn7vh3j++gH/n//9v/LazT2ef/UqB91DltaWwOR+HJ1n6ISSEHiW3ftJFsDU+Q0PVjBLDAhog+52ufXaK9y5fgPb7cFoiHMWnU4ZdrvUghCXZNhUk48T+pOErFFDt5sooVCRoh2vEtWbhHWoNxo458i05qXXXuOw16U76GGcpFbrIaOA6WDEzevXObxxi62t02+bCTbuLBPVWgysvzdyX3EnUJKaDGhtrHLlPU8TNmq+z40uLBXgd6iFpUN4VlapwLslqvvzo3xgUNdstmi1FMP+IUpGBKpOFDSp19o06hAGNXRuODjocnjYY/PUOvW5WGgh8A9qtZstd/AlHVCYPhCVeQZnSJMpvV6X6WRMqAStZqOo/efI0oxmrUEzrvnpxPmM3FiJMwLhFFiBTk1Fqess9/X6tM+zpDONkoo4jAhUQJ7nKAVplnB4eFg580oZYF0xmRdmqXIilkJg52sOuiJEX3hnSCVDrNRIodDGMU0ylEtxJmWapj4tgBA0Gg3W19doNpsMRlNfPsbMtGLeKVwIiZR+x6/u8yFYjPlizO9XHMfNlseBR0mRzViksg/mo04dAlOYUH2KiHuzZGWbhbGS6tkQUFWtKM1keDNmlUZjjuk6zpCVLNrxM4rZQfO3eOR7b9AxVODSzb5fmSDLkM7jvnccZe8qGpGjzOTx874DfOxCz0+gni+vrrKaKvZu3UZFNYJ6m3pnldbqBq2hIGo0SXPNzds73N7Z5cKF8wRR6DdyosgvqELf937I/X/FBst7OjiPh03Rp7kmHY7Yub3NsNcnkgGry8u+Hywkk4TlU8sstVYJ1AE4SZ6lvtKICJBhDWRElvs8ea54TrQxhSkUskwThDHNWp0orpGmKYGAyWjI7u3bbLkP8LZplZRkzjFMEoLJBDsaM5pOMHj9X1rqsLy55vUaigo4+kgTQvi0P2U1G2fsfY/5A4O60XBcVAaSaA2H+yNu3zqgXT9NMrU0Gh3CsMZoOGV395BHH7U0GgEIicTi8EqNE5XiCln4LVQTq58pZ346ljzPmIyHZOmUpVaddqtOkqYc7h+QT6e0anVEEGJzRz1qkEvfadIpnJZkU810nBWD4M81nSb0+wOSSYLODYEMqdVqPvTcOqIoQOuUw4M90mRKvd7CFnspYyzWFr5FZhYSf1x8WL9AFEWqrYXpNCXNTFFDUWGtt7MLqVBKoJTP3VR43FTldKroPqjK65R+Q2KuHt/bLYsxP3ljDlSs25H35lil6n7v+eXS787hnMRW+GcecB1riJLh8/5LojxfhXvmzY8l4HNVm/Otleeuru9NgJKYZ+rmQNhRduzusZ5dk6jAZCXWlvTk3L3N98nRayt97mbH3qNX503fD0EWen7y9PzwsIs2PrNfagU3dg958fptOmcP6I4zOqsbxI0mh/0Br1+/xfs+8AFazdiHShsDxuKE9FE1zhaO/4AsIkydBFThjGqrNCj5NGFweMh0OGSz1WG902Y0HrF9a4dkNGGls4qMFMZAq7NMlmU4HCoIsapGksPwoO+JrsIsMBgN2dvfZzROyXJLFNVottqoMMI5Rz1UZJMxO9dv+Hqy9eiB+88BaZoy0RodBrhAYaTASIUMQkIFQRh5gFZs4KSSxWuqTaFUPudfoFSxSZXvHKi7ees2yi2jVIiSEaPhiFdfvsF44NjbGdLvaXRuSFPN4UEPrb2fRRAEWIqM6VZ4pcH7VZRxRkLImdtIsZuTRZJRrMHkGWkyxTYCwiBiMs4ZDQd0mm0a9Tr1uI4r6uZFUa1YECQmg3E+JcmmZFmOw++yBoMBh4dd+oMhOtfewVkbtJCEoUQpSZZO2dvfpd/r02wtI5WvDWiMdw6WQpX1yvHpCowv+UERnk6xexUSrQ3dbp/nX3iRq9dvosyQONAIm/rCxX6O8/1QMCQewSufjb1QbgnVgJfvOcdDU/zFmJ+8Ma/8urib/Zr3/SpNr9IfXH7bz1fOISwFcyWwFXo6FqRwBNsVDunCVrt+V7RVmU9FeQ1lapCyGYvDFO3Pgg3cvD/a/MkKnz/fcPF3UbXC2hlTN28CfYPOwgFal4XHj/0U+drKzPFAxS7OQ7fK3FwEfBwxwzKDfA8L1C30/OTp+QsvvoTrnCaMagRRjb1el89/9Tm2+5pXbh2wO0lJc81Qa67f2kYb5wFbGEKW4ZwGhPcNBZ+LUjADdaVvhJBFgmLACZw25NOU6XCEiWrEzTr9JONgb5eNtdN02ku0W22cgzTLqbfafsylRLuA3mDKeNj3SZydxVjD3v4et3d22D3YL1LYBOjcIpUhUpJQSqbDITevXiUbjqjVVo4x6feQkrWFAoQdPd7mmq9+8ct87ZvPExx0aeQaOZlitfYB3467EkcrFUBEpdDl3CIDSRAG3q8SS3CfwTEPDOp0niOkxThPfU4mKdeu3eZgL2Hcz8m1whqHUpruYZ/pJKXTaRIECjBzO1UoQ53LiYyyCp/wUVJFtwGOMAyI4xhjNNPpBIGj3+2TTFPOrJ/mzKkzrK6sMh6OSZMMKX1haCElaZahjWaajDk8PGQ8GZOMx/QPeuzvdZlMJji8MimhUNJhlQOjyVLLeDyk3z9kc/MMKpJoYzDGVJMw4M1NBa2amxwEqEAVyU39pJblljsHB3zzhZe5eu0WAQmtWFALLbHyETS58Q6n5aRvrU8XYIuFh2OTviqQPQ9R8RdjfvLGHAqmqlqICyZsHmjMVukjIubfrFiouffd/HFzX6puVxSLpqt8444cX5JjlKTdMUbu6F1QJdM7xgyWlqISzs1AU7mpvnf1iHmm0RWL1JF2j7N7RXLmiqx6g36De5hejwG7hykLPT95ep5kGYExWAxBHNLvjnn2+Re5ujdkt5eSy4DcOEKbcXN7m/5wxNJqBxGWGaQB53nHauchhS8fVgK70reydHy1hjiKaDZb5HnOcNBDOMvu3gGTccLSo2ucffQK7bPnWe8NyaZTZBghAoVVEpNMsWnCuN9l+9Yter0uw2GX3Ttdbtzeoz8c4JwlCENCI3FWYYUlN5qpsfQO9hnvHhCvr9yHX52DvNC8QJRulZWMh0M+/0d/xLMvvkA0nrIiAlra0rAWZwxpFBYs7mwja5xBO3PkLKXeB0phlAJh73vMHxzUaXxtPBUgcoUxgu7hkEFPE1BHBTFC+DDyJM3o94dsnlrzY1k+zF7rix1cMYELWfihyErpZxO2IAgioihGKUWSpkwnE7qHfbQ21Op1Wq0Wq6trrK1uIIQiUAFR7As4Z3mOdYYkmdDtHtIb9Nnd3UWqkNEkYzpNSNMUa1PSNCPWdUIjCUKJtYo8y5hOpxhjUUXqAR9+LnzxZVeaXyo3V79jtBYjLAow1pHlGqUiHrvyBFk24cZrL7J3sEenIVluRQhn0RZPNZcsRNGOLRYYKX0iT6VU5YuhlKe372myeRtkMeYnb8yP+tJRISjnjgKjypftiC1ztqmt3kbMBV34+rBVU6Jg/KSfM6WoIACeFSmAoPCmPYebMwvPsYdzUlkzvQ23/CpHbK1CHHF7K0HePJF4PFDBHe+T6o+j43Dke8Xn9wLEDo728z3keCqTh8XULfT85Ol5bvw9h3FEGgRoJ7m9e8CdYY4I2oTNOgKJMZrheMLu7j7nL531Y2cMWFuUwy2qYMjA52KTqvgtZnpo/I+QElWrUa/XCJRiNB4z7A/Y3t0nM4ZWu0W8toI4t0XtYkgtkBBJqAFS4LQFY1kepmxu75Ht3mHn6lVUXKM7nTAYj5hMppjJhPF0SlM3iQNLpARWhSTThMlwxOr9qpEQRZLlo+4UAEEU8cGPfZTpoM83Pv+HXL9+k40g4lStDsaSC0EynWL0DMSVNZ7vfSpBEAY4/Q6COmfBFbQ6ToILiuzIFqUcDk2gJK12neXlDlEU4JxFa1uhVSlksYMvc1CVD61ElGHPhWOpt7YoHIIs04zHCc76HDmTaUKgAsIoRkiFMT5VgpQKh0RKRb3RoB2EgCPLE1qtNsvjEevrm6yubdBoL/HqK69ye3ub/cMuk3FCwwnqIvSh2nhfiTD09ndj5jJoC4dzxqdkKCYoKSUK77zp2QRvMsjyHBlELK9s8IlPfIrz58/zf/zvv8VzXz1kkuQ0ayE4S26806efJMEVu7lS6X3GfFc9ACVVf7So0dsrizE/eWNejf0R8+sbHcMMvBwBLsX3rcOJcjdfmEaLPG2zpUpUTFv56gjjd/RslD5ZJTtUHTn/97FgjArOFaZWUYJRR5UAWThbJAKdL381A1Nv5mM3L8dzzOHw0aBz7bg51nJ26+Ke5zhijn1IoG6h5ydPz60TCB/FgRMSJ0OMSzGZJpCWUGcEQcDqcoczpzap1+IilYlPwAwFi6gUQsnZZqqs/TrvFlaMOTrESckky+iPR9gkxeWawWhEFNeoNRrIIPTPiXdK82AqAEKBKHLyik5MvNYm6m7x6KVLbF44z9LGKl/+ypd56dVXuXH7FoPxiFw62nGACwSiHmKBqB4f34e9gQhQDt4AYNVbTb7/Bz/NE08+wb9y8Hu3/wP9LGUpriGsJUkzJtMpxs5AnTGzDcJdZ1OCQCisVfcN5N+GDIbFwy4KJ1jpcxv5R9ygAsHScpNHHj3HlSuP0mo3sC73tniHz5wtJT63k/CKKsDHxcmKzkYWfe7wpTOcJM00vd4InadEoX96Wq02nc4yUgWMx2PSRKO1IQgC2p0OK87RbraRAiaTKd1uj26/R5ZlBEHIqc3T5LnBIOiPJgzHKSrUxC707Sio1+vUanWMsRjry+HMfH6Kicn5CU2oAKn8jrX079BGE1qQMqDRaBPXG0zThFZnDeMkSWZIc0sg/IBneUaW5dXu1zmHlLLyvRDFBFoVxxYCpx+mKW4x5idvzCsS7T4OLBc5Kh+72cI3A0beSllGPc5A2Tx4K9eE+avwTfqkvv50rgJorvxXtFnxiBUQnQd5x9o+ztTNm2Kr98QR08lxxu6o4fXoMUc6sgS8xybq8vvzgRLzgLDkAB8WO3dUFnp+8vTcmwklFiWEr/tbstlWEyI5vbzCh9/9FB//ru9iY20ZkU1x1vjnNAgQKvQMXVk9Auczhx+/ZIFHIJHCSck01+wcDsgnY2pS4aRiZXWN9dOnCaII1++j0310nhNEMcHGCmKr7Vk7HCQOd2eA3d3FTBNqtTqXH32M1Fi0EOz1ehzu7xFkGY1YkWlDiKPd7lBvt+8P1JXm5Df6WAikUqyeOc3KuS3yQDEaT5jonMhJtDWkSUqe5UcminuNZ8XsS4EK1DvH1Elf8A8lHGGg0EpijcA6ixWGdqvF41fO8/4PPsOFC6dpNGKMyaubl0Igil2Sz8NTsJveuQVZ/haq2I1HCALCsE4QNsgNDAdjAuVrAdabLdpLS2hrOdzdZWd7l+l0ylJnidNntpBRjIprOJ2xfesWd3b36PV69Pt9gihERhGNZpONzU227+xy2B3hRIBSMRJNGMSsrqzTbDTRxmCLnEJCOD9/CYEUdu6efJ4mi/GpeVyAMZJcG4bDIdpCECmiuEG7vUYYtcjGCbkGlPezyFJNmqRok/uSNMVDoJSaRcdANSEYU+ZCejhh74sxP3ljfjdUefPjSqauhFAlELHOYYqoQoub7e6Fd5b3wM7/ni91WMIz347vD1sAwmJJBWeLmqKza5gHd0cv842ZRvATamUyruyws/4G7lqIqyAKfBoMO3cC75d1NGCC4jl3RVsAai5Nhl8FbdV2eR+lea68noclCz0/eXoeSF8rWViIVOCrNjiBdQZBzmpzhY8+8y5+8H/+AT7wrqfotBqYJCFQAoLQg/QgAFX4TpRl3yTMIeO5h0xATaI6S0SdDimWg/6ASAg69ZjO6gqrm+tgMsZXX+Hqa9cYjcZsbJ7i3ONXiBpXEJt1SB3u1Tsk126wf2eHvd1dolqIqod0lpe4cPkiL197ndu9Li4KCetNAp1Ra3TYOn+B+lLnbkx3z53fPV6Xh8/pYhDHrG6dI15eJhlNSQDhDMZZpmlGmmbMz6lvBNhKYFcG0NyPPDCo8w7EBqRFBM7TqwVl32zUOHdpi6ff+ziXL5+h3WoihMGJDIREqdCbOZDgip2I9Hy8LXh5V0xyfgr0/0shaTQ7nN26wI3Nq0xHU9JkTBQ7arUW7fYy7c4ycdRAypDRcEyjUafRamKcJUkT0vGYfn+MsY64VscNhowmU1RuMBbiWoN6o4kMJEoJwkABlnq9xpnTp4ijCIoyPkjv5+MXLUA6lJDFrtr6Z1oIEBLhAhBeWQeDMaPJqJikod7o0Gx0yMZ75PmUQIZYC3meM5lMyNIUZwU+os/nr5EqICjD7RWVf4aU8r6TFS7GfDHmby0epAnKKNcyoagrTC8W5WxRq7XkxxzCmep7ZVoSUXlR29nfc8ELZfkvX3zAFc/WzCfZmwMdAuvNYtb4v0vWj6OA7Qjsqagw364TcwmJ59o/+vxRHDObZK21c22VTXuQMkfk+fPPsXnzjJ0HahTA5o0n9eJgzxKW7OOcWe5hyULPT6CeC8BopNCEoSMMBWnhCrfcbvLMM4/zp/4fH+Uj732a9dU1RJ7gssxraxR6lwIlZ0EE1nmzaZkGRpUnmTsfEK4uceXdz/DIs88xGPqgh5qDxsoyrVOn4NQpGp0lzkV1xr0+rU6HcHnJM5kaGOXY7gDrLHGrhd3f43A4IMgjtLM0Ox3aSx2kdAQS4jAEZ+i0mjzyyKOoev3odc2Le+OPjh+W5vjtqoPm8ipL66dJbtwmHQ2J4wbaOZI0JR2OSys+WOMTNr/RkBQ6HobvUJmwMgu8sALhQiDAAWEkOHt2g/e+52muPHKRtaU2QgmMM1gnfVoB8Mi+yL5O4VfihMO5yp248q2selYK4kaLrbMXePTK4/SGffZ3UpSUNJtN70uxtEy8HrN1eovpNMMa4xVUSTAJeZYgJKysLBHX6qxvbjKeTBiOxowmE4IwpNNpE9cCAuknUiFrdJbX2Dy15TOGC3yCQOGKCWvma1QxFaKYgIX3kRBOoVRAHLdYXooZTVrs7O0yHo+I44jNU2eYDu+gzQRrfbi7MZokmZKnGVYGfoLBTxZKCFyxk7fOFwH2NTAfYsmoxZifuDEXBdiqwJgz/jkonKNxFuVmn/vnpDi2AmoFaHK+PeHcDAQWJlSf1sIvpOVnAuu/L0qgVz4WJZAzHmSW1+eKcxdjUhS/KFKZQAUiha1Ma2J2o0hkASBnfSnljP3zx3k2zhUsXmWCndvdyzmz7N2Azi/SHtQIynq28yZiD6oKIFnqyjEz8sMEdQs9P3l67rTBSg8srYhxYYQTjlogefzSJf7UJz/Jx973IU5tnPLXoFOcLMyfQviAiFLRS2Uok1Lawgx7lwhEM+LC00/x/o98iJ29bW58c0ggFSvLa9RW1xGn1hCxYunRcywl2gdYUKDNiYVRghSOxuY6jXaLpUvnSQd9Rr1Dev0eUS1mY32NZhQSWt/HstFk/exZzl95DBE9OBQSCGqhI9EwSXNajTqPXLnC6Oo18n4fowKwPg9jMhz6eVNJnLPYY9Gvd7ftn4f7kQe+kygIyMeCKKgjjCR1E4JgRKstOXe+w+PnVjndqBFI0EXWcK/syu/giiLgiCIEXvhII4lEFs+CdEXQTGmaEA4hFKubW7z7Ax8lFwFXX3gOk/RYbrZoxjHNuEar2UI4hW7hE1pO+uR6gnQZzo4RIicMQ5aXWmysr5FlOYPhkINulzv7ezRrMY1ahDWG3ErW1ra48uQHOHPuElG9XpAC807jrmCbRWGycf7BwxW79yKJZAhxXdGoN6i36oS1mDt3brG+3ubC5fPs3LpOMnCEAUjpzTbpdMJ0MkXWWhjnkM6AzRFOIoTxjpfO4IrM+jO25O2XxZifvDGfgyPMFrjSuDr32pXBDkeDEo62M2PtfF1IN3f9d2UJOCbedCuc8+bWgp2z5UI7B3rskYLo89dc/H2PazsejiE4alYp2bI327nPg7Ej/nZHJuUCIFDqxizFyX3JwwRzhSz0/OTpeaQiuhNJXGtjpMSqPnF4yHoz4AOPnOYTjz7N2fYWEokwPnJXBAGEAQQ13wEW0OXmyviNk3oTlqkA9rXzG3zXn/s0aSz52u99Dr2zz+bKBmGzA7XAB0VEEhoFbBk7GGpIxtDrQjqBeAmxskx8doMoNbQOeqzdvsnN66+z3GixVG+Q65w0UJx94gof+vSnWX/3k55ZPK5SJRN/n1K6adQCSdCMOX96naff9TivfOObjGxAjEHlGUIIpsMRNs2RjdgDTGffqvn7drV4YFAX1yP0VOCMQyIIrd+dxc4SZBNcOibUGkmEkQLpFFY4hFIgCmdZypQElvnHVrgyKs2bPwSeehZFFFUUxpzeusB7RcBau0VyuM3G+gZKSqwxCHzEkM41Jsv9g+gcJk19MWZr0amP5opChZICY2qMxgFG534HWEz+zWaHK088zVNPv4eV1bUquzfV7s0WxbjF3OTtB8EWZXJscY9Y68vBOINUgU+mWasTRD4831hFmgti6/fGWufkWUaWZYShwxhDEIpiQfOLpzvy2/eZvB/OeDHmizG/XxEl7JpNLlUKkzkGozSBcmzxKU2YVMxcyXpRsHIcW7DmmLcC/Dlm4G226B4DdMfA3RF2q7y8I/c19/exz9y9jism+3slIPasWgEQ72FyrfqM8jo8AnRFmpa3Gr03B4pvryz0/OTpebvTYNgT6NzijMROFTJRdOoxjYmDUYLIS7Zc+EoSZa1XJWdAyFIwdG4WIPFmz6oQCCXpXDjH9/zwD3Fu9TTjl25w4eJFhAx8+pOy4EPZvsIr0STzFgNtIM1x2iJCX2JLtJqEtRidppgi6TMIltfW+cj3fJL3f+8nCJaab6xH30Y3+6AgSRQqoriGCQImAlrF5k2nGdkkwRiDBLTOCe/Dmi7uijS5tzwwqMudwSiDsI7QZLTIkdbSyixu75DujW2mnXXqzZqnkksLiKAI6S/I9+IhEaXhQxSLgPBKU/pbljfnLSmCOK5z9ux51lt10u4OAosKwqLum0Zry3A4ZDKa+FyHOKQMCZXD5ANG0zFx1CcKQsIo9Mpvc5IkQRtLFDVotTu8613P8JHv+gjnz58njmveGbtwdpXCOw876ypGADjy2+u+v19VRDcFYYiUIQJFvVYHPCNrtCbXGq0FIrAYY9FGk+c55DnWGnyKgXIUZqkgSsfu0lflYchizE/emDO3mM0uoQRdrqjw4IqyQMWsW3x+NGnwMcBWLvPi6HuzH4ugqOUqvCm2LKk0qyBRAjb/vmfmih9nvHnDzurBHgViYsYavtm9i/mX4p6LQAm2qnQox8yps25zs55wDunkPcHf8bbf7PXDkIWenzw9d1ITBA6TWfRwStzXbKZrnJ8u4W5Zdl7c5dEzCXGrjgi860LJIHr/VGa6IoU3x5a07FtJcV+dM6d45k99P+bpLlIbqMfeJ6/skwSYUEwPAuKG9wTZ7eG6A4LmIa52GhF7U7BJpozHIzJtqLc7rGys870/8D/xAz/8QyydO/NwdEl4dGudI8tz0iwllYD145/lGVZ7C4LRGveWqG5OSd5CHhjUpVlSFD1OUC6lqVKaAurOIg667L38GgdL62wsNQlWmwgpSLX2Ox8VFNdaJiIVqML7RkpXPcTeidjnIgK/VigZIGXg8xPVI9pRhK7XSaYDjJ4wGo8xWpNME5JpSihDlPI+IUIIssQyHU1JplMEEEWKTqdFnk9J0ynaGFrtDhcvPcZjTzzNh77rY5w9e4EwiooyR34CUtKHm1cmH3tsoSnE4ryvaLHb89EsIUIESDkrb2SsRVv/IORaIouM7lobsixHRprSxCWqRVFU/egj5crSNQ9H9RdjfvLGnOLcHoj4BbRkxDxQKpkFD7r8Vcz86IqYx2JZLyBN6T9XMXJzJltXbscLdk6Uka62On7GzJXvcWRMPNgsGMTyOueOm1F2ovpfiNklVPddfXAffSQEZULduxi6+b/mznHEvFuM68zsd7Tt40zd0XbfXlno+cnT8+l4AJnEDR2qN+UiNR6N11m3EeKW4foXr/HEqTtsrW3BCiAlLstxgIzqBTNXDG7pQycL5H4/UgA7sdRAthow0tAfQ38KWQzjBCYaak2IfD1dpACbMB2lTIZDVpA+1+BKBzcckg2HZHnG6sYG7/nwh/ng93w33/3nfpDW1maVK/JhiANyo9HGkmQpiQRlNdoaMq2xqcYZh7Mlm/1m/cJ9s4YPXlEiS5FWEBpD02Ush5amA4lFJBO62zvceOV1gvUlVusBtWYDIwzGOqyxRf4VhfScPA5V7HINooiUkUIihaf0kT5fi1QhKgxRyi8VUinius/GPRpMGE8mpMmELE1QIiAOI6QMMMaHFI+HKS53OO2YTiaM+n0EmkmWMBmPEAIeefQx2subXH70KTZPnyEOwyrx47xTdLnLnine3Y7MxlmkA2cFMlC+TI0qlrhykXRFmRjr0MaQ5RYV+InOWkeeawKdV4ufTxMgfGLrMmcXAlHkknpY6/tizE/emM9YtZKrmwdfsx9XBlHMAaUZeKNasGaLVgmu7FwbFItb8V4VNFGCRmbnZ459m/+ZA5xVAQrKj+8xg1ZE5NyOeO6w+RQib76glj5Xb3zMPF853/a9j3yDs8x/51738zbIQs9Pnp5Ph1P0WGAONGfSiCdrm5yzdQIyxDhn55VtvvnFFwjPStZr68hOA6lynM29+TN0vnIEFEzdt3khQnjzajOAvoN+HwYKRmOIatBoQogHjVMH4wycxFpJOhgR3tmDLIVRj/HhAQDv/9AHWbp0gQsfei/Rauehs93WWl9mzjkyrUkxRMJHfxtr0LkhMBZXVC156z65v/M+MKgLjSG0hpZJWVKWdmCIrCuyHFjy0Yida9cIV9sEjZja2YhA+j2/wCKkQ6jyYfVK7vD0vU9ZIKvs2oIAoYKiIK5EicDnbpGgDCgkxhqCaR+MJooEUkTY3PsqhKF3AA0jDbkja/mkiU4bptMJQSiZZglZnrG8ssKZc4+xuXWZdmeDMIwwRiOs8VE/DnBeSa11fvcp/fWLYmEod44IgbDGZ9KXPqGjKvLSOAdS+mgm6yzlsmet39kZ42MHjcObHXTu23G2KgwunPX9Ji0SgSlNGQ/pmV2M+ckb88othrlUI2WppCIC1ZVRqCXbIDwAKO66aGGekfOh/yWTNwMnc5/j06Q44QGdOMJyFQtg2a6YBULM5D4Aj6CIyJ0BOlGaCd1sPMH/bYus/2/cnrjrtG92FUdy15Xt2gKG3gdge1hM3ULPT56em0GO6hk2JjWuqHXOh8u0rMFojTGOpDvh1a+/THw2IOoELNcaIGNEVVXCjysFw1jJt3O9Ao9QGjFkGQjlTbFWQW6gFcAS/rddoTFIcLnF5QluMEAEEj3ytWJPbZ3hzAc/QPzIOYiDh+++UFoLpMQ6D/xzZ8gFOKXQzqezibR/dqx+8+jXsjvuRx4Y1LVCSVtBR0raylFTgjy36CJpItYy6vW5+dLLNDoN2rUateUOVgmctX4uFsIrND4RpXWF34yYtzNLkD7ho9+9BUUR58ArorFoZ9HWtxVFMa1GhGhYDne7TEZjhIwIwhagUEWixOl0ihOGtc1lao06ozRBCMnq2jqXLz9Kvb2JIyr8KWRhNvAOj87OmxIcQpa0fWEiKU0l+JXLYv0zL+bKwFg/AYjC5OJ9LPxPnvs8QdYJdG5I05QgyrDWeOZCUGQd98kJS7Avjy8Qb7MsxvzkjTkUTBdQMWzF78rLbp4pqwARBcibA1/H048wM8OK4jUUPjol43YkmvYo+0bR1zhm11K8f09Sbh4rlTd1xBlIFP9KpnHmQ/dmgQ+ist36Ba26lmNDIkq+s9SDYz/ef3Cut8tm3uC8D0sWen7y9LyuQ9bDDhdq61wMVlgKFVlySE7qgakxHO4e8s0vPE9nrUm7tYJaqyFEkd5oXq8eVMq2ogLMNRo+YGKnD70+1JdhKQInEHEIKmAwGuGyKfUzq8hOCzs6BCXZOHeO+NHziEg91DnyyOVbb1rPdU5mLIkzxNJhBGRaM51MCadNbK4RNnrrBu9THhjUPXXlEZbylHz7JmbSRwpd5JsUOCu9J43WZN0+u69eZXVpmfUohEbkHWutQ0ifGcrvjgXC+ULGDoEPdVcgA6QKfBkZIMszkiTFWEOeZ6SThHQ6RecDYjVmYyViqVWnFtVYWRFM45x6o0W90cA5iRKW6bRPa9IhqoesbZ5CKoFxXZAR9UaHMK4jZUhuxKwEoCjr2TkcElfR5SU74ZVaCFGUNBRzkzLMdt+VvYeZM4/fwTkhMFaQG4t20psznMMagzEaa3TltiBEyTCU5xBFBJl4aKVkFmN+8sb8OItWwBJmYMshnPU/2IrRwJWMXcHylQCtqgZR3EPZL0cAn2fnEMXxxf2W+fLKa5gHcqUT+VxPH5F5n7fqvbljy7xxpVs/Yv6IGQibdYs78veRz6o+uvsa/O9Z2/NjJ4QoCrjPQEOFdd/gvA9DFnp+8vT8+z74Yc5PV5GvJMjBFCUSMpVjA4NzAcZZyBzJ9oSrX3mdM5tn2Hz3Fq5RbNq+jUdxPhrcWl8/N01z8iRDJjn10YRaLUZ0WtBUIFchcbBUALQQWBbIlRZLa0uoeI3g8iWc8LVrRL1OvL7m68a+Q4AOfFfkRqOFI3eOzDlyAbmzBVOr0XmOzjKkq79t531gUPfRj32AVjbl9S9rdl4fkmufKVyKECf8IDlrsdMp/Wu3uBnXiOo12mdPIVUAQiCFT9roFwAJtshFJYVXehEghMI5QZpnjCdjDg+77O3tsbe3y/7+HuPRmOl0Qihzrlze4IPPPMZSq06sAhr1JkoaQGF0Rm4sST7BuJx6q8byygph1KA/7DOeauJah3ZnHUToO98VEzaOMp+SAFB+h+eKCLt7iXP+/ivHZzHb0c8WNP/P+104EF7Zs9wSaYGpcmxZjDGYImT/SJQds8WiLDPzRlnqF2O+GPNvVfyEXThu+7sswFPJzs1BH+tAUjEO/n1b1IF1/vPy7wqQlOBsLnACR0nJOeEKE+m8lMfN/q4YvyKfXVmpolyUZwCo6Efnihq0s/usgJ0oObW5M94DQJUlvqoxqf4/CjarY+YWsXmgMP959bzMne54IfeHzdQt9Pzk6fn/83/5Qc4lq3zjd77K63/8DZI8xUqBlDWclRjncMZiBjm7z+3yYvMF6q0a7cdWcVHp63f/wMk5h9aWg4M+N2/e5sb169y8cZ3Dwx6j4ZCWc3zXxYt88rs+QrOzArHyYK5JUZ0CP59MDKRjmq0a4swpaLdgf5csy6htbKK2Tr2TeK64LIt2Bisgs4apNdSEQ7vCr84UZm1tfIqdt0keGNRdvHKeWjYh6e8wGN6hf5CD9o5/QoAqlCYwDjccsfv6deJ2mwuNGs0wrHxWZFn2xBURUcJHP3mlDzydnqbs7u5y7do1XnnlFa5evcrOndsc9rro3KPeVlOhs8d49MI6k/UVQhT1sE4UBWjjyHVKmmSk2RQCiBs1ZBQwmIw46PXJcsHK+hqt9goIhbG2MpeUHMDRkHJbTbzOuWoBc0ifV98WKRaq9Auyuk/PRBRmh8L0UGwVcaL0tfCRVdYJH2o/l79ISE/Hy2O+RN7ZmDctPbIY88WYf6tyL0BV5ZqjmNDtHFgrZ1FXAp0SAB4HdUWEawnsii2/qMya7iiyqi6k+HwOBFZX42bX56rrE5SmV29ms7NWxKzxI6Cu/MIbSJmepHhRLcLzFzwP2I6Ctrs/O3rcG572yPkfliz0/OTp+ZMfPsdGuky2u8/+wWskNweQRuC0P7f20cChjnD7hqt/fJXGWpOn209Sj5eLnpxnK+8tpd4cHvR5/hsv8aUvf5mvP/ssr732Mnd2t0mSnCxN2KjF5B/+KO89f5Hm6fMQRtASPmedxZtjE2CYARmiVYNQQG+fbHeHREg6Z88ilprvKEsHIJSHV074zCs5lsw6tHNYIXxZOONwRnt3hbdu8b7O++DJh9sRsROsP3KWQW8fk+aMkx7K5kghybBYp4mcIjSQ9odsv36deGOV080GzWYdR5EPqKw24qT3qRASKUNAMUmm3Lh5g29843m+/rWv89prr7G3t8t4OiIzWTXxGhMyTRKs8xFFk/GUoBFSq9UJowCtvZOzkTFWxaQJjKdjRuMpw9GEMGqytrZJo9FCCIkVxQ5ZUBhkSmUq2AknirQJZf4scFZ5Ct+JKl+WLrPbFwPs5lmKufw+QvgyO0pJX6bGWazRfldpHda4alIVFJdjy8EunLulBGl9Qe6HIIsxP3ljPotYLc2v/u8ZMzWLVvW+cX5x9AFwpWmmNLuaOWBXTmbu3ucqu2vutiqucG4RrADcfKDEDG0dvZcjjN18u6I6j3fmP+pLdy+5X0h1HLQ5d+8Ixje6ttn5in/OPVRABws9P4l6HtQFcklx9pl1ruw8hp4Y+uMBoTFIKUlIMTal4daIdcR4d8Irf/wajXNNLi8pap0OMwrtDaTYDGxv7/P7n/0c/9f/7//mq1/9Y25cu8pw2CXNp5Tsv6vXGI36GGd8sMQggagOdWYlx2pAI0A0Ahw5rn9IMhwyHAyIlpapndtEPKT+ejMRAl9tQwqCUBE6ibAak+c+z6I1GO2jX+8Lot/nLTwwqLPSYQNF49Qqpy5dpH/QJxtNEdogkRgMFoN0FikDnMkZHe5z85VXqa20qXVauKa3fTshEcXuRqJQgUIg0Zmhd9Dlm889zxc+/3leeOlFeoMexmqkEgSB9ErnfF08oQQqjLBCkqQpwo2QKqQRxSgpUE4QIgm0oD+ccnAwYDTO0BrWT63QXlohjGpYoao6hkhwRvhM3o4i7c5sT16uUaawEUmENzW4Mr+RLcoL+dnNgW9EzJZFCrMEAsI4IAoFUmqMlRjjsNZgbe5PZOdMW0Uzfs9p8TWVBQ8rBc9izE/emBcjTwXaivuZJQ6ueqUyu86DKjHfYYW5CTtj5ypGTTAHzBxVAic3Y/DK887nyJtdwhsBu3sAs/Ii3ez1zBw6Z4ormynYBTf/ex5cFazeG4G1+d8UTJwo3yt/5o/hHiBvzix3z3t6G2Wh5ydUz0NH62yLy888yu6tQ6aHKSLNkTJAk2HIkc7XxnW5oXtrj29+5Ru0N2ucXWkgmtGbAhCHY9hP+Ox//Tz//t//ez7/hc+zt38Ho3MCJYgCBU6DdQQCT3LWax7kTibQDSAIffoUio4KfGCVHXTp7R/QnSZkQrBxegM69XecpfM36sG3klCvhdRDQZBlaKnIrfWVTXTm8zra+9Dj+1T1BwZ1nj4XBEGd5a0tTg/H9EdDBjqBLEcajXTeURDrUMIi0ynjm1fpr3bYXF9DtpehphAiRjpBIBROSUQQoDPNsDvk9uu3+foX/5hXX3qJg+4uhNBaabHSWWE6njAaD9F5hsM7IQoV0Gi1sFnCeDJBDwyJnRKEIWmWMxmP6B0esrtzh/3ukCSHsNbCBSEyjiEIkAQoZz3dYPCKW/rqAEL6Cd04ixUS5wr/CZQvviu8z4UxBuNskXm8zHBf+ssIBApBgJ9dcuIIojhmZaVDlk7R+BBoQ45zGc5qv9N3/oGxxrMfwuToPMc6v0xyH2HSizFfjPn9SQGeiuAFCVD0gxTgLU8FmCrYDYRfLP0Eb6sEwBjfHyUYE85HD4JfzEzB7ClRvF84qiMcVrgqgMFhPKgpojGtc2CN/ymvhWJBLM28BQiSRRFyV/n3+eOkVARBgBJFISY3S2RczqkloLPHQR3zLNwMoFVpO0oghn+iZjG2eJDHbC30zF6ZbHYmlaO+EMVi8BbpVR5AFnp+EvUcRCiRrTanHpc82n2Uve4uB9kedmpQThA4SeoyMIoAiZo4+s/d5M7mJqfOnyda5w3z0zkHaeL45nM3+D/+8//Nl//wS+zuXCeMLafPrrKxfpre4YDe4QHZdIqxGq01IgpgdQnGKQy6kNdgKYZI4rSDwz7m9g57r7/Ozf09xjhqK8usho6HvNO9t3haFZGmNANFs9ng9Poa0+GQLIxIhUNnI2wS4PKcN8R0rvrvvuWBQZ1D+Eg3p1BxzPrZU+wfbjEY90l6fULrcww5AQiLcg5hcpJej72rr7N+8TxLp7cQSJxQSCl8rbdAkjvHYDBid2eXG1evs3N7m9F4iAwFK6eW2dg8hTS+OK7JjQ8X14LJNGUyTZFBRC2OMbZLf9hn92APbRxpnjMdDxn0DxgMR2RGgIoxWc727j6N169x7oKks7RCIMNKuf06UGS5L+hhi6fiy653xW4P4x1KtTG+2HhR07B0L/e+FjNHbCEEoQqJ44iz586wubnBqVOn2N7ZYX93jyTLvROt08WOzUdtmQLxa60xOsdo7RchIbD3g/4XY74Y8/sV62aTjPA/Pi8dlBGtojCJFhYnql4SM5ZuZoad+TRVVSjcXABG8d0q4MHNvz8z+5amsXmZEYVv0h8OChvX0ePeRpA0D+TAm3UrcvNelScKUOjm3iuB43HwJgQgxUMDdQs9P4F6XiqtCgiaIeeunOHc9VPsdrcZ3xmjbEzg4gL8WkIEQmtGd4Zce/YVzrzrAluPtBGBuout88EicPt2n2987XleeelV+r0uUSC4eOEMFx+5jM0kvd0eWabJrCVGMphOGE0muHqAqIew28Pt3cHeSMmNJkunJAeHHN66zd7hPokE16ihswm3bt2kcfY07TObD1VX7upGIYjCmEatxhOPP8rlixe5fPkyr7z6Mtev3WCSJuR5jslSnM5RxwNfynnWd3NlpbgfeWBQ55XAU9NOSTqrK5y7fJHB/iF3pgkus8VcbnHCJ3JECHSecXiwx+2b19l68mkip/0xYYRTEuMs4/GY3d07bN+5ze3dbcbJhCiKWN1Y4fKVS8S1Ojdfv8F0MiFLcyyOHMPO9h7PPfcCp9Y3Ob91CmRIbgXDcUpvMOSw2yNJxigJQgaoKCLNYW97l73nXuGVV2/yXR/5GE8+9RRrKxt+5y7BCYczYPG7JOdACO8f4SddH0nnKxoVYcuFA6RSyrMQVlbKPxsmz1DUajGbm6dYX99kud2h0+nw8iuv8JUvfxmAXBu0mdUgNNYnrEyz1DsTa18P0TqDkBJj9YMP72LMF2NeXfW9f1zRMUeqRFQ3On+sB3Klz1EVDTvXK9XSWIJAT7P5j+be87nc/LnsPUyQR0y4R9479vexr/r6pTPOrGrl2zFzzplaERTFKkRxjxUnV/nbVUEWhRn3zc44C8jgrsXz7ZOFnp84PS/3XcJgA8vK6XWeeOYKuzf3uDp6DZuUZdE0VqQEEpzNyJMp29du8Ppz32Tj45eIGq17Nr/fHfHqq6/z6tWXGYx61Os1Lp+5woc+/AzNpTZf/+rzjPpDpqnPi5dYw6vXb/AHn/scmxcfoXP5os9JJxzpZMjO/j7bO9uM+j1C5xCxQtVqTIFrV69x/Ytf5PI3X+RP//kf5sITj4CS7xiwazSaXLp8mXMXL3Jq4zTr6+t88Utf4v/7v/0ODkdqDJk1xfw1d03lvGmgiKjxbor3OQU9OFPnfARP7ixGSepxnZUzp9l65BKj/oDBKPUhvIIiK7wjQBJLQZokDPf3ySZjsAYnHSYALTTpeEL3YI/9/TuefreaeqvB1nLM0+97ks3T67z44kv0eodkSYKzDlmUZtnb6/H7n/0jDva6XL50jna7SRSGhGGEE5KouYyMGxidgRBMpjn7vQEvv3aTa9duEr1wlcPuiH5vyDPPvJfTp08Tx7Gn36WrcnD5rN9UO27A+0fgsFYfWc4wrnKUlcL7k7i5XAqimPAbjQadzhJnNk/R6SyztLRCnuV0u4dM04y4XvMTrS1zGxnyIjpMa40xtshkLciz7EGHdzHmizH313okHx0+c7wzVJUgnMUZg3RzQRFzgK80VxVVzQugNs+w3QPglSCOEuq5YlWdfeeYUZRiJPw7bwXE7gXoSpNquSTPmVfvNzih8pGrEo5RVEqY+9z/Vb2+Z8qTAghWvvJHyET/nZK5eRiy0HNOnJ4DYEGbFCMzau0aZx7Z4vH3P0F3v8de9xClDUZorPJMUugkDREzGWfs39wl66dEm0dBnXOO6TTh5vUbDPoHaJOytNJmffMKn/rUR7h86Rx/+IU/ZOfWbSbjCc4WLhJSce3OPr/+W7/Nre093v3UU6wvLdGIa9TrdawS1E6tIZeamCTBCegnCTf39/niN7/B1154kcaz3+D2QZcf/vM/zLs/9F6ievSOADspBZ2lJTY2T3HuwkWiep322hppkrJ96xajyYhms47BkhvN3F4SNJBpn9C5AHUuze/rvG+DT53ECUfuLFo6AimJWg1OXzjPcL9H3puQD4YYHE4KvIkGQifIUkPSHTHa77F8ThO0JFY6Mp0xHvc5PNhlf/8O1lhqrTpnzp/l1Jl1nnrmCsNhj37vkPFwgADCQIFUBEqQJppr13foHvb5+nPPE9dCojgiCAJkEBKEMXEcEYUBWZ7TH4zpdgfsHXQZDCZIOWCSfZn+cMRwNOFDH/wQ586epVGv+wznqCIJujwSJeecQwpH7jTW+bp93q/Ioa1FBpIoDKnXG4RRjJSqKhINgiDwPixKKaQKaDQanD9/nsnkvbz88ktoY5gmGWD8rs2WOzuv7MYYtDY+87cVZPn9PQSLMV+M+f2Jm/nFFaYB7/9TArtZkIKoIlereE1EAQS9L10Z6Vcsfm4OnBXgquSiBFQAz93rvSpQoqQZmIHBeUau+MwxZ8q8C6QVoE4cBXL3+pmXI0mJi2fgXgEQRxeTo+bXuz+/9+Z8PkjiXt95u2Sh5ydXzzObktkJkYLaco1Hnr7M4e0eye4LpHsTDBqk8mXUXEgsG0xzGB+kZHdS3CMOEcy5EFjD7vY2t65eJc8NSyttHn/6cZ547AKf/J4Pc7C7zc6tbbr7B0gniIMIlCAMIsap5uuvvsbO7j6/+/u/TzMOqdVqhHGEikOiRp1mvUE9jJimU3Z7fbb397m+s81er4cMd+imY3YP9/mLvR/lY9/3Mert2kMHdkEQzvIKBr4E3sraKp/81Kd49stfJtUZg+kYoQ25Kf2ABUVdMchznDGgNWiwSXJ/533QC1fFrqYMD8+FQ4UBzZUlTl88z2j3kN00xegM5wTOSaQTRDIg0waXZAz2DjGTjNqyBanQUqCzhMmgy3jQI46atFpNwtp5nnj6MdY3l7l16wbpNEUiiKMQ4xTagjHGz925oT+aMJlOvZIqVfk6OD/jemdnC1luyHJNri3WSYQx7OzukeU5eZYDAiUlFy9eJAgUUgmfK6jYifsgp+IBKeu9GQHSO9U6DM46giCkVm/SbHaIojoIibZ+ARTCFrUF8Qktrd/9tdstrjz+BEjJ1Wuvk2SpV/LSH+eYecmH2RucEOj84VD0izE/eWNeJf4tQdS8b5x1M+bOuoKAmwE3B4VTvy4YPA/sZOH07e9qBgKt8+ZX/xt/YmtnjnKiBJVFIWw3l5bXn6y4rhkT6OYAXfl6NqX7k8wDNlMCRffmDN1xfziUN8GVYKsMbJgPlCi60QO/e7B11eu587i5U+COnneeBXw7ZaHnJ0/Pi4cS6wzOaVKXEoaKlc0VHn3XoxxeHXB1/Do69/3pECgZUJeSaW6wE0Hvep/lD5z2aUSKDVo+Tejv7DHYPySqt1hbW6bVforv+e7v4sLWJi9+4zkmwwnSSRq1GrlSJFajjde9qcnZ7ffoDweARQXS5z+UPmhISIl1FuMc0zxnkmdkxqCFQOQJr1x9jUmaMJ16Bvfj3/cxaq34oQI7pZRnfudcdoUUnL10HhVInvvas4ymY6w2mOPBHCUNXIA6J1zxvL61vC3m1zL830en+Rp/Qb3G6qlNNs+foz/o47o9jBME+DI9UggCJ0gGE/Zu7nBpMGJpc50QSZZp0l6XSfeAZNQjUwlxs0V7ZZXNjQ2U9I6qqyurjAdjDvYP0YmuNt0O5z0jtMU56RM1GkvpUu1LdPjcQLjCsORKE4+fXI21HHZ7fPOFF2jU64SBrzl4ZusM9SjyZh43o9YtoIt8Qw5vepFIcMKH5oeKZqNFo9EhCOPKdFKaqgTF5OwA6+sE5nlOEISsb2zihCDXmhs3rpGmGdNpitYGHcxKC83v4LXxNecehizG/OSN+YxNK8Aas5QOsno9B/Kq+gflGDiEM8XnhrLigyjNVCX4w4cuFD1atODNv+UCW5lHRQnCZilN7mLSnKtSVFQRsPe4u/nv27KMFSAdVT4y5o65S0pmR8yepxLIHf8pc9QVuY/vn20TdxOLD3NRWuj5SdRzfAoRifcdFAYVBIStkDOXz3Dp6R57e7uY7QxtJREhzkVIKYiA0X7K9W/e4vz3PoZszDYb6X6fwc1dJvsHTGoTmkttzpxa5+KFCwRYTG7ZOnOW7kGfm7fvkGV5tQmzzqfOSa3DCoVURak5azFYtDW+T4qdkncKcTP3BwTaGm7vbPMHn/8DljodwjDg45/6GEEUzJT/bRYhvRneWoctnlGBB6Cnzp0lzTNeeP4bTJIxo+m0KKvn+x9FFbXr8zJmpOk7xNQJQZFIsdisO1/s2IUhtU6btXNn2dndZTBOyKcZgfRXLIBQKpJJzmBnl/HuHYLzZ4iyENPdZ//6a+xdf5Vpf8wodZy9/ChK1cnTBKKA05tnmIynTEYp/cEE0rFnCopJexaoJ5DOO7tSKKhxAlMovB9ReWSi9zS5BOcYDAe88trLLC8tsbS0TFyrcebMJkEYeN8K57CyiEaq/H8oJkO/3CmliOI6tXqLIIh8kklrqmNL01WZnVxrQ5b5+oe5sdTCOqsr6zzy6BXyXHPz5o1i96mJjKxy3JQLidZeIe/lQP52yGLMT96Yz19zWbe1BHoVW1ZEv1Y1M0sgJaolF8/ImeJzD9d826YamYLEohzX+b9L3zoxl2m/KuPkmHtvzjeuvGxXtnHMdFqcpFz8PVAtr+tNmDqBZ3OgWkDmQd0b/VQdemwxectEx3Mm6ln6vnvnxXs7ZKHnJ0/Pq4F3klJLnQBiSXO9zbmnzvPq1dfY690hGVkiCRAhkdSkYjQccfDaHsn1McHWEgKBHaVsP/sS1778DQa9Ll2b8+QHniFWS2STKTIKeeyxxxkMx/RGE3YHA0a9HFnmKK/ILs/2SllGiHvwpp1nkctZhyIfYHU7UhBIBRb29+/w5S//Iac3N1nf2OCJZ66gwrdIlvxtirUG6wy5NmRZTtSsFd3rx/L8pUukWcqLL75Ikqbe1KoUVd1CKUHKOZb27ij/e8nbkNLEFaHqAulAOh/erYIA0WywdGqD9Qvnme51sfkA63TV4VJYhNUk/X2Gt6+hnrxAIKdk29fYffEb7L/+GlqETDIYD1apNSJ6vUNWVla4eOEiy0srGKfY6w4wFrJk6sOETbEpKn58Tix/tcBssofSplTcTLl8gAwUURDgTMbe/i7Pv/A8K8vrLC+v0Go1WF7u4FyZ36hYQKwoItwkQkqEDIoIP0lca6CCGlmmSZIpURQRx7WKeahymRfIXmvNZDJl0B9hnSAMA1ZX1zl/4SKTaYIKfASUtb4I9tGF4CEqPIsxP4ljLo4vIq5c6T3zVu6cnTWUfnOuAHaUwM7qwmyrmY1Wwcs547kxwQw8ytltOfDAq2TwnPPYsgJw5VfLhLBzAQ5iBvzmAd3c41GwAviC5VDljZJHwNOcibZsSd7NzJXJi+eZuvkC7D5y1VW3+lZyPFijGPy59966jW9HFnp+8vQcvCJJIXySaBn5nHmhJOhEbFze5Py7LjC6NsakeVHPtoDP0iF1xvjOHt0Xb9J67xLUHPr1Plf/67Pc/OoLpLFiQErv7C6tZszu7W3OnDnNu9/zXjbPbKGV5PreLjmCZDgmTRO0FpQ8vqnyANpqfOf1Q8hy3ijnEn9XUS0kDmJIM65ffY3f/+x/Y/3UFquba5w6t/5QGG//nAq0seS5xuQWFcpq86eU4sKly4wmE0IVeFNrKaXJVpTlAu//+h68ogQOKaQvB+QsAeAzhysIIGw06ZzeZGl9jUmSYpOc3Grf8cIRCINN+gx3b5Dv3yTO2wTDPToupy0c++MhUsbs39khbjQYt1rU4xqtVouzW+cwKCZJzmuvvMzezm0Ou13SIpmfH9MyRULZMZ5pKBcpVx5RRSuJqkdr9RqhqpGmUw67h1y9do3NUxusrS0TRyFhQd26InVqMb1TZk0XwlPtWjtybVEiYzKZMJ0kNJo+FYPOdbXTlkLgrMEYTZbl9PsDjPXUfLPZJAgDNjZOMU0SxqNBVQy6XDft3OsyVebDkMWYn7wxv3sxccxRYBXIKM2hs+jXWaoT/7pMYFwYZcUcSDuei64YGr9bdxXwKqtYVAuem312BPxUv4+9d68+cpQwy+cegyIp8lGbp6v+He2Ro2zcvc2uVRuufOY4MleXrGJ5zBuNZAlky5v+ttKt3Ics9Pzk6XnZqhAQGEGI8r5hQYgDaksN1h/dZOP8Af3xAWaYkJoJBAohNBEa3e/Sf/E65199HNZC1I0pG0mdVdfk5sEBqum4/urrNDpNVldWaTXbLF1Y4fITj/M/K0k/nfDVL36Fay+9wvb2bSaJQePdPJQVqCK/hyzM/Zi5MTfGTz2Fj2Xl5+Ac7XaTuN1iOhhy6/ZNnv3a13jk8iVWVj9O1AjfdmAnhcRqjc5TkukU46C11KZWCypgV6/Xeezxx0mGQzgyq/hnGevdXYSUd2+s30AeGNSlWYZqNqmJEOM8VS+l9I+dUqgopN5pc/rcWQ7GI/p3hhibExQlVQJpUCJHT3tMDm7RcG1aZsD5lQbj3jLGDVhb3mR3mnNnexsBKKmQQlBrtlBhzJUn30WWJUxGXXq9w4KyFgV7KXwRacodr999l/Oq3+QVPi6Uzsm+bIuU0GjWCUOJ07C3t8eNmzc5s3WG5dVllldXkJVvTGH/LicPIbDOkuUZo1HKeJwSBSFpkqNUQBw7RsMx3d4hKyurIH1OJFnQrUmSkKQ52gpkEGKd3yFbp/2D7CDPNDrSGG2KPEbaO9Lid4WlGeDtlsWYn7wxLwxfFYiqdsfFb8+OGZw1WOuZuLIEWMWtFJOrYx70wQzJzPzqfF+WFk43GztHlWWiNKnOA6G7f1dob+4+jt1bcZj3+ysjeUvjHbMnpGhjzu+5WghK4KYKp/3jgRJ3g7pj1zBnMXozkHbUrOwKW+TDWeAXen4C9bwISIrDNk5mSKeQKvQ+o6FD1iTt9RaPPv0IN/uO3ekN8nxEJCLAEVlNkBnsnQN4cR/WVlF7KZeXz9DdHKAPJGcvrHI1O+D1V15HIAmDCCUVrZUOQbPOd33v95CMxwy2b3Pnlq18XJWQBEohpZrpiHNIJBJRJDMq/CFxuNI1whp0liEFLLXa1FSAAa5fv8bz33yex648woXHz38rZFh5ai+VgaF4ozivlB4QOwej8RgzmZBh2QxXCNSMuZcqwCHIM40K8f6ieQ5p5oMkPKzDmvsLjnlgUDfoHrLZahEq5R9aU07KfpeXK0cYK9bPnkZMBkwmXdxkiBMagSUOBEvLEadX6tRljkgHNEg51W5w0G6QGUOwtoSZZLx6Y9tftIrJ0pygFpM6hQxCVtdWabYbyEDOLRVeAaUqaHArZhP4bC1gbjoF/ORgjFeiKAyo12LyzJLolG6/y/btW5w9e5pmu0ktjnzpFiGqHEey8MixxaAKYDQckmc5WhviKEJJR5ImdPs9avUGQSgJwhCEoNvtMRjeYpqktFodNjZP0e60/dJoDOPJiEA6amqNWihxrihXY413ynTedHBf9eQWY74Y8/uVivWaZ65mLz0W8sCvDIQAz8D55dBVU28J9Nzsi5TlwI4uxv5jIY7dl3/givPOXc88Yzh3rffqlcpkU+K+AiAZV5ZB80ydwFVm1jeSo7nmZn4z85+X5yzTuBwfqruu8RhYO36f8wzpw5CFnp88PZ90R7CxgQwUSoU4oXAohAUChZVj4lhy7omziF5Cv7eNOxhjdIbQhoY0bNSXONtagcTC/hgxhaXOaS50DpnmU+JTm+ip4EsvfwOEIKo1mSYZYTNkGjiCWsS5c1u8uLJEECqqvJPFPyVFBbZdAdgNGorE0RU9ag0l76/zHJvn1KKIdrNBkjum2Zg7e9u8/sprnD63SdyMZ999C3HO5xPU2hEo4V3hHGjrKF30glCBlGzv7LD3zecZjsesrK9x6fJlVlZXcEJgtGbQ7xM6R/3cJeKghjC6SGfiy8LpIqrXuvu7tgcGdTtf/zpbYYiuKfLAESAQViByUJHECIMVhrDTZPnyowzzjIPXXyTLBqy2YrbOrHPp8lnOnjtDM/I+OYFULCnLVt1hMhi7hLMbq+wcdDG5o384Ik8tneU2USMmjqBVr1GrtxFhCEE5EeOLUjuHKnK/CAM4gRGzndcs4adXFCklrXaT9lKbWrNFEAS0CsSd5lNGvQP629ucX18jCBXGOowQCKFQNkIZiZMCFylwkk4zoBP7xUxbjZAwTUfcObhDnlnGkwmtVgNrLbnO6A179PsDlFJYGyOFphYHOCcwJsAYQ6g8JZ/nZaJViSPA4SeAPDdk6f05Vi7GfDHm9yMlMJstmSUtctTESgXsXJGUtgBmc6Bw5m833w5HcNO8S1SF9sTRHXG1kldNzSHMeUB3FIsevam53yUDZin86ZzDyTK1xdEviYKL9Jcyb2admVbLPGdHbqq6p7t5w8qSWF7yESA3A62zrn94oG6h5ydPz6/93gtcqJ3FRRmpGxKKJYSteZNnKMjzKSafUlutc+r9lzhID7n5R18j2R9xttnm0XMXOPPko9QfexSMgtxAGCNsjbN00LJFb5TzxNYWr+7cIM0sN27vMZyknNrcoLVUo4FgudGmvbpK0IxRY4HCoqQA4attBC5AWAVOARYtHJnTOCGLaWHm1hEoxdrKMuvrq3TWlgijiLUwxDlIxgO623cY3u4TPbb5LQUdKQkyFNV3xsMBmXGsrix5XzhryaYTdu/cZnd/lyCMcEkDpTXtegMrBNoYjDbUhPQ+yrrwSw28s4PVOVr78ndJ9g4xdbeff4FTtRqty1u4eowIIsIiX5EUikAGgMMqSXN9lXP2UZQZISd1Hj2zzLmtNTY3l2m2YiSa3BqcscQKTrXrTLKU8aiPEBGrjTqH44zD3iEGR1yPkNIQBoZQCOIwJgxihJJYrDerS4FCIq1fSExRCMZSmHfE/E7O9+fy8hIXLpyn024TBAFBGPgEglLRiGu4XDPY32XaPSCOQcYxAunD2I3AEeGkwDqHlAFxKFGB9+fQZGQmYXDY5aC7hzOKZrNDGClsUT7nzs4OUgpWV1dZXV5ic32NuBYxGo2ZjhNGwwGtVh3hauDE3HroQ72tcVjjqjI2b7csxvzkjfk8qyWsQ9gcYXIwCdIasIbQZr5ahM6RJWgTPp2Jj1abFVEqOazSd83/9smNZYFqhCsD2QTSek+iwh7rAY9Mj7BxuMJcVrQzY+D8x7JouawcIaEwlRQXYIzvW+s/NyUQsKBkeX5RtOUKE5+o/GNmJtfisCM/vi1rHVYUZuy5BaTypxPe4FuaDz3rNKtya4zFGjsL2sBVwR1vtyz0/OTp+au//xKPNs+x8kQb29RILEoGXmkUBFENrMEozfK5FZ784FMEgyHq1gHvOX2RtXPnkafWEI2aB3RGg3YIp6i3Nzk9GdDf3UXWA862N7mZDNneuY3B0Go1CIUhtpqYiHq9TVSrE0TebB1IgUIQmIDAhj4IQfvycRqLlRV3T7nLE0KwubHBu9/1NOvr68RRTBQFvjxcELLUXMKmhsH1fdbOrUP97pq195LSj7MEkHkyZXfnFtqFNBoNanGItY5ur8vrr76KVJKtrWXObJ7i0vkLNOtNDrpdBsMRBwf7rC91oL0CMizOYH2evyI9j68Wdn+btwcGdXs3b/N6FLKFpn1uC9GSOAlO+Tp/gQqRQuJMTr0WsHxmnfXgceS0y5nlGqtLDaJI+PBffCkWozVGSMJ6jXaryVI2Za8/oJXn9JIJAz1CRYJoGmBsjNEGCVw8c5bxaEiWJYwnE5QSBEIQiQCpJLm1JGnmE2O6uR209a6wEoeSknajydryKrU49iVoogApA+q1Jg2lwBgOdnfYvtFB2ClL62vE9SZO1cmVQQuDU6p4qHzBa20MDkNucg56XW7fusXunTsoEeGcRJucQX9IOk25ef0GaZqyvLxMs97COcdwMODWrVv0egOSZMr62gprnZZP6lpO7tZP+GU5mfsNgV6M+WLM30ruMmm6MiBi9rtK+nskSKIALJWvC5TJg8URCq30HCnem2PQxBxLVzm9i9l3K76rcrabI8SqRbFs2c1OWdp3vUNMcS8zBmzG9M1m+SqVSNHi/DRbMXUVWVdWfGDGGM3fS3maIx1dAOg5c+3RcZhnJMsxeTiy0POTp+fXXrzOs7Wv8nj2CKuPb4DMoZ5DFPngmFrdm2XTjFZL0r50gfWPCrjdpd1ag86S35cYDQgP7HINykGrRjNdZmOQc30vYTmL2env0qVLo6boLUVglzC6iSTi3U+8h+7BIdPxmMGgT4AkQBFHdZQMSK1mPB0xzTOfgBhVDLlFOK+fgVCsraxx9sx5Ws0m9bhOLQqRYUSrvcxS2IbcsfPaVc6sb1C7uIboyLvSoryROOewWnP72lWuvv4aKmxipeTc1ml63R6T0ZTnn3+ByWTC6dM3WV5ew1rH/v4+L734Iju7e4yGQyZbZ9ha2Sw2pg7nDNpotLFeb+ZqDb+VPHhKk0nC5OYO+wqwmuD8ecK2gijCSkAKhFOIfIAKDUuNGqfPbhJkNWoiJ1QOo3Oc8KHmZSZ15yxCStq1mNMNh56MyZzmwEzYHyfc2U1JTcLm8gY6ahBFISvtDo+cv0CepvT6PZw2hEFALa6DlIyzlL1+n3w0QmhHKBRKFsZwazFlTUoDJjdEzYhmo0E9jpEipFlvEwuDHvcZdwfsXhMEkx7Z4QrLp7aor5/G1VvkymdhD2QAxufRsUW5l+k0ZX9vj92dHQ52d3FO8frV6wghqUWK4aDHwcEh29vb1Ot1trbO8uijj5DnOVmWkOcJxmm01YUDqTdB+ALQ2vtfGOMzkz+k6X4x5idvzJkz9ZWYx6d6KIMnZkEUVWJhKIIdbOUTV4IqX4arSMw6z7aVYLACP8dn1hki8gBnxtJVMg+imLPSli0UL8ocb5V/Wnn+GbLz78zbRIsTVGD12OUdLw1WvXevCzn6zbtuo/zuEWA3Z5qtbv0hmV8Xen7y9Nz0Df0X+9yQVyE3RE+HRKebiEZQPNcOGdZhfwR5H9nepHPxMjQ3IbU+iihNwBmI5OyZNwYhBWFzmfMuIj+8Q5JPudXX3Bjd5vXkkGnS5eK5x5nWNY16ndOrp/nAu99POplyZ2cHmxtqcZ1Wq40LBP3JgOv7N0m7ewitiEQNFQQ4Y3HaYrT2EexGojNHbbXJ8vIyrXoLoTyo64ga9nBAb3+bA/E8W3cuI06vwqUmdAp7wluAu/Fhn+uvvM6Nq9dwKuSrX/86MlC0w4iD3T1u3rrNK6++Qqfd5vHHH+eDH3g/aZoyGQ1JJiOMTsmzFGsMWIuzmkzn5Ln/yfLcm2ntO1RRQlmHGk8Y37iFDCS1ZoO40UTIOg6NdhZnJMIkKJMSArXAEDgI8RO+MxptDMqGSBkgrUM6CISgqQKMEqxEDhmE9KeCw2FKt5eyN52QDyZ0mqvEtRAZ+qikC2fPcvHsWeIwZnlpiSCM2Nnf5+rNm4y1Ji92eJ24iVTKF0/Wmsl4RJok1BtNVlbWWFldJo4ipBOYHJQMcc6idYrMBuQDSSoyJqN94nRCYA1q8zRBu4MJJNIIjPUJO0UQYFPNdJqwt7vP/u4+0/EYY+H1aze5c+eAdrNBGEqSJCVNfcbxyXSMdQYhIYpDao0YkQmkFOTaDzb43WJuNNb4xJQPz7NqMeYnccyt8wuMLACcceU5C6bOWnSRfFg6iyy8msrUrxWfJhwSW5Bxs9QcYg7Uzei1mfmsqgjALMfb3RDofmRmMrnL1+2NWnQUyK5Ivjv/FnMM3fEziaNXeXfbs+9UAPReRx0HdnMX9rAAHSz0/CTqeWRDgp6g98I+UlqanQa15TaBVTgtMDrFupBwlCImfYRoga7hHSo8KCHLQGdgYwgj/NOgiwjaNqEQnKKBite4IzrcnghuTw+4NhiTdHNWVs/SatYIY9DW8O4nnuY9T7ybRr3FqVOniWo1XrvxOs9+82v09YipzKgHLVabGwRBgM41eZbRO+wxGY1otjtsbp3hzJkzvsavU0xTA8qbSNPpBHkwJA32cNMYboxgcAHe3YLlN0d0Vhtu37zNjes3GXUH5Di++s3nefXaDdaXV6mFAePplEmSEtXq9Ps9H1SCo16LaTXrCGmRSpBkCTr3LiU6z0mzBFPU+7XO3BdzCG8HqAOUNejxiP2b1whX24RLHeJaDNJn0RYIApejjEYahRQOaXOktARKgBXkmSEzlih0KKTf4RtbnMNi0gmRCjnXqTNNU4JRxuFkxP4oZVAb0FpuEdYj72cRhJw5dZqnn3yKRy8+QhCEvPz666ysvsLK9k2mVhOpCJnDdJoUCQ5zuoch/V6PIIoIo5ha3CCMApLJhCzV1GJDkk9JJgPaJCgzpa4D4nGC3RUkQhLiEMqhWgIsCCuRUmAspHnGYNDjYH+P0aBHvVZnZW2d8SSh1xsyHo/J84w4rtFoNgCB0YY8y6vdoBDgrCHLUtIsQ2uNFGKWcHXu38OSxZifvDGvTH2VmbJIZVKZYEvQV1SXYC6liTjOQ9kj7c6bUe8Fao4ZIHnjLF33eLe01paRqfO2T8r3S/Zw9t5RrCSKs4rZd4vICXH0sGOtc0+wB29A2L3J8N0LOFY995CA3ULPT56ehwSERpIfJtx87lXi9ZB4s0GzuQpWYoyPAA7THJE7CMf+IUwNGOF9QqUEbUBPoCFARUAAxoILQVvy/oBaDZ7qnGU0HRFN97jVPeTG6FV2l7usbi5RbwSe3YtDHnv0cb7nE9/Lo089jgwULz//CptbW5x+ZYuRGVKL25AFjEYjJuMRWZZxu3abO9s7xPWYqFaj3mxSr9cY9oeMJglhvYNJJkz2t1kfGYJmgowsjC3Iob/uJyNYpmApj/aVc450knDz2nUOd/dot9qcPn+O3njEnb0Dut0ueZbRaLRYXlpGOEee5yRphtUao7Xf9GpDMh4zmYzI8hwpJcaayipinZnbAL+1PHiZsGIiltYy6fW5dfUaweoqG+0W9Uh6ClcYahgCnUIqyY0mm06IQkWzHqOkQglFmiTYXNOMGwQW0lQjcMT1gNXVFom2RFph8xZ1ldFgyu1hwrB/wGjSRzYClAqQQUg6TQikIp+mnFk/TTuuc+nMFp2lDs3VJZaWVsmmGYeHh2RZRpol3Lxxk+vXrvoyMkVpo2ma0O13ScYZAsVkuIsZ7tFZColdjsonxDKglk6x3V3GRiOyhKVzl3DhMlKGOCfItSFNU7Zv36J3eEAtCrny2CNsnT1PZ3mVdmeZmzducLC/z9raGlLCzs42WmvG4wkOR5qmpEmCyTOGWUZ/MKDVaP3/2fuvJ8uyLL0T+21xxNWuPURqUSJLZlehq7u6G9IwGEODtDGM2ZB8ghlnbGzMaAQf8Yz/gq94ATlGM5LgQDRggx42BBtdsquqS6SMyJCu3a86ais+7HOFe0RWZXVkdoMM32E37vVzj1537/Ptb631LfI8i26vEOMJrIuDgFtXqP4U27XNnz+bBx81/KPGXKzHGP+F6GrB4YNFBAvBRC7tiXFwXeFtwca5S67OiAFXbs0ldFpmHkTh0bBET2vB8O1uFgkS6y7cZcD5UnZkHdi1+2xXjzUYF1pYvi3uDmG96PaV8bWVF/sETRBZjc+Sb/l02nU/f/76uSAmEEkvGR+PeecnvyC93ePlTUFfDglG0kHScxoxt6AKaAxMGtAJdHLQKSgDsylYD8NdIIOmAi8g02xubeBcTUfv4jY9/c4mw8kB780OOT08Y3xxhMwcOlHoLKeYlaQ6Zz4pePWlN9ju7vKVN77K3t4um7dG7N64xXxe8+jhI+qqpCjm/PxnP+cnP/pxq20Xe/dkPuHg8CHjcYlHYo5P8Pcespft0q2ASQ2pgImEu/MYD/h6Cjf1E3F2IQQe3rnP4cNH9NKcv/L2N3j1S19k9/Yttvb2+MXP3uHB/fu8+MJtlIQP3nsPYyzj8YTgLUVRUEznmLLmtKg5Pjlhe3OXXq8XbREE1lqMjdImxv0FuV99O2OVXuBt4OL4nM79R/T39unkGUlwaOnoJpLMWUIxxzmLK0tsCLgqo9PvopVGIWiqGm0FaVsg2opAmis2RZeqbsiLhmTYZSPrMUhyvDvBT+acVyVF2UYaCMXs/IJiMuHxR/fZ6A0ZDTeQWpMMOvTVNv0sxeoUpQRJmqCV5OaNPXa3Nzk/OyVLFFU5Z14WTKcXuMZxfNxQTI5JqlNsMoAmQ+lAmmZkrsRVkso0VOUc6Ty9259DpO2szFiK+YSTkyNwlldfeolXXnyRvNejP4haRp085a23vsD29janp0eEEGsLRgFDT9M0zKZT5rM5ed7BNA3WGryPGkhBxBgmKSWNMTj32Tw4rm3+/Nn8UqzZgjVokyTEWhLFGjRqt1rj1cQqGUIs0VdoH7KreqYQroDBS7++NVi4iI1bsHBrCRLtkkVIzyJb7ckdh7Xv4ivIlolZ7mMVI7fuCl0c5xKB9pTZ/CWZk0tbXllXrABpWOxYrNjAS4kYi4Mt0eun3677+fPXzz0xwUGS4Jzi6PEZd9+5x9ar+ww6XXKrSCykMgMDXNQR1E3r+APuVDAaQNoFWcO8BgpQPZAZBItIBMmwj640aZnw5VGH/c3bbHe3cfcddvyQx/MLJmYcBcG15uzghIuTMe/99H32N26yu30DmSk6WymbeshmZ0g3daRakmcZida88eorvHzzNo8fPaSf5cwnY8aTC06PDrEGjj66y+zRY7JHZzTbGaFbgjfQtZBbOBNQTeEceHsPXspZ+hxCwDaWBx/dA+P5+pff5vW33iLbGLI5GpAlikG3w1/9nd/mhdu3efDRXd7zDq01SaJxNopQn52dcXF+QX84oipr6roiy9O2//mY6a0Utqkx9i8oUWIx0PggCE5QTQrO7j1id3efzTyjk2qksAxSSc8mKOfRQhGSDGcNzlhsY8nyjERpTGio6xopE6TWKOlJpEAnmjxJUNaTOE8/y+h3u2gdyHRAjufYec28bjA+YKuKYCzVrOA4yeikOVmWk/Vyjg4e0dvYJOv0EFIyGg3p93tIa+nnKU2WYpuaajqlLAtcU+ON5Wx6hJmdMQwFoSsIRZeQQEhErNNnJLaYMzk+pKlrkv4W6WgTlWTgLcV8TDGfsru9xRsvv8LmYMDRxTkHh485PD6kqgpefvlFRhsDOt0OQgim0yl1VdHtdjB1w8MHj7i4uOCN118nTVK8jz+ORYyT874tX+OWMRmfdru2+fNn80VSxKKCQVjUXwx+WZfRE9oYuhXTtkRq4nLh+cgI+EXsNVzdbgWZlsePUiaeVY1YsYSOV3HSZbHf9aOuY6DLcXVCCnyQIPzyvGNZrMulvi7HuLVO46e4RtazWC8xiuvrLN5bNOpXCK4N41sDrFfOY3H+8jMCddf9/Pnr51K0mZ9B4EPKbDzl0bsHvPzaKfvdbdIkQxkBqo/IuuA1JAq63bYCggPjoZtDlkNVQ1FAlsT4OpWASCDZRGQG3ISBhV4vZTQckeLpItDnhg+bORflnDrMaeY1GEExLriX36Ofj+j1evQ2cj764AM2bmyTDXooJdnb22VrcxPdCLZ6I6ruDFNUzIsJ0+kUO29wjefw7IT60THbY4eXhjCyIMrIPs4nIFK4mBLuXEBZwO4XEB2WXbmZzRmfn/HSrRf4wle/Tra1QXF4xJ0P3uPu3Q+YT6Z85YtfYHdni0G/j5KS05NTZtM5o8GAqqx55533ODw64pvf+CbdThfvA/PZHOMtIXhMG5NaNwbzF1VRQkmJkEksUxYsrjZMj885fv8uO3nOxu6IDo6us2StvpESAqklVkis9zjraRqDlIpEpRjbUAVLojWx1l6khLUShCQnVAVKOPJ+lyy7wSBLSB4eAYJzIZiZeAOK2RRXG9I0I1UJiY4p7Kdnx3T6Qzq9AWmS8FhLdBJvRdM0GNNgmoambsB7TFNRTqc0F6ektqKTBrrWoW0sYt4Ei6RBBEWoDW48oZSK4uQQ3ckQCmRw5KlgNOwzyjLqouBxU/Hg6JCT02OkimVrrI0ZVFVZ4p3j7OSEw8eP2b+xT/Axo6cqS5qqpiorzs/PKMqSyWyKsQYhVFs02lE19bOa99rm1zYHovvVe4EMHhEcIThWGa+e0H4OIbpoRRBL5ikOgqGNbWs/s4i1i59F8OtpA1eP/iQ4atHZcne/0vn5SYBPjJuLbFgsdRVJPNG6XhbHbs8nrFXEIII472NmJwGEjJpui9NfxiR+zFUiaCsXrMXJicvrXgaXcrnss2jX/fz56+dKaZTMYmJGEJgycPpwwr0/fcgL3Zt09vsIo6HJ449aKRAKuoBuEySsjwBPp5D3oLJg5nGyJNsYuyCh20fUCUwmKKPYHu3y7dfeZjsbkN3NCFJxoE45ry6oGsPF6SmmcXTyC/K0S5bk5HnKgwc5/a0NhpubZHnG+6kiTVMIUJUldV1SVTVVUYKDel4zPbmgfHRGdxoYMmBkeqQuBRegnsRqGLoPtSGcTPCJRD1+FV7Nl30y0Zq9zS12Oxv48ZxZUfDBBz/n/r2P0Eow6vcxZcn9j+4xm06xzvHowUPuvP8hr732GsEFjHHMpnPKeclsNuPR40dMJxOOz06o6xKhNDZ4rPXMyvknsuEzgzopJIIoriiCIHWKMGuY3n/MSSdjm1t0ewn4OsbjCIF30Skj0UjhME1M006ylFRqfDDUOJoAqVco59qOLwlZSmUM3lpS5bmRpPR3NpEixasz7h8ckYqaMkAToLKGoqpJlG5965AWOcO6wdUNaZK0+i+BRCeIANYaqqqiLAqMMRRlgS0L+jQMOgnb3ZxhkpC0A6zBRVrZ1VjboF2DsA1NOcc3NWiNDIJOltDNEy7OTrg4OSQoyfH4go8OHnN8PqYnNb08Q0iJNTXgqcuSk+NjtFJoqXj5xZcYDUZkWc7Z2Smnp6ccHB7y8PEjzi4u8L51eIXPTqDy2ubPn82XNUYvAbiwjIdbumMXbtorns5VDNyTrtVl7Ftcs124/ne7wjKG7pOHil8FPJfds+vLW6ewaLdZS4R4Ikmh/X59P6vyZGvsYFgxcEt39BVgtzgpsZ5lcTVeb3GGa0zhgi0UIhb7/izadT9//vq5khJBgg8a4RM6doNwHjj5+RkPeh+x/bmcJO9BGcDKOPkJsmXfFCDAluAbyFPIBtDMwMyIbtgOOAkiA6mh46EqwFQIm9Lv3uDrN/rIvId/3Odnd94l112moaTEMC+njOczsiQnkylSBjr9jJ3iBrZ0dLIc6ywhBPI0RwZJ09TM53PGkwlNVTOZXFBPCzYryVa+wQu9m+yko1i/VrTnX/uo0VcaROlQhUecV/BiBkmrgZemDLKcowePOLrzAK889w7u8dN7f8bDs0M6vsuo20MoiSlLhPPMpzPuf3SPVMeJyFe+/BX29/bp9fo8fPCQBw8e8sGH7/POe+/w6PARzsfasN57rP0LYuoIHh8sPkRvvEQjPYR5SXN0RNjKUHJACA3GO7yUaBGRtBcCbMz8kUETC2JLlBQ4Aj5YcJ7M+RiLrWPnzfMU30BwDb4sUfOSLZnw0tYmrqlgOsE3BoEgC5IQ4mBjrKGsaoq6wjUOVxk6SULwASkliU6w3jEr5hTFHFNVBGsROHIR2OlpbvU73Bp2GaYJSfsw8wicD3jfYE2BdgbtDL4cQz2DTOODoiwKjg6PeP/nP49p1KmiCYKT+ZTjs3POraCpG5IsZTqd4lyUjpjOZnB4iHMOYx3GWObFGY8PDijrmpPTM07PTpmXJd4vGBHxmQlUXtv8+bN5cBZciIXEWwmT4Hxk7HyUMhDr7N0CxLRJCovYthgXtdhp+98vyeq6kl/KOuIJLWr6VTzV0x2fLXiTLCtYxJoTYe1EW/FgubY+XGbbwjpYi+kPIqyi+7z3l2rA/qq2cC1/nOTKYl+LrF0hQMrPxhV33c+fw37uPTbUWBoMFiWyWBpt7CnvTnC9Ocl2DqUHG9oUaQmdJL47E2VNVFuZQakW+DWRvVMeQg5kkMjI5nVzqOL3YmZQ05pb2TZf2n8DM5sTThp8VSOFoqsygpD4IKjqkmI6Y1wkWCOwc+jnPYIPMTknazCu4Xxyxng8ppqV+MYgvacfEl5KR7w5eJE3RzfYzTdIggZ8zN4NHso5jCtEDdQCjucwGcFWIAhw84J7d+7y3f/4XYrJFJVAheHB+DEPjg+QJqEqSvJOzunJSStTYzk9P0PcibI1tbHUTcP5o4e8e+dDpvMpDx4+4MHD+4ynY2xUf0KKmBH7Sdqziw8TiIV0LV545iKqOA+CYBQUQ+9J6jne1ggfCFLitEJIj9CKID1Ka3SaoLTEBUdNLDWUKNXqXUlq7xAiIQiBVglZQtQfChbjLcNM8blOwrbc4P6J49FkxmlZUzgwSIxWhDQn0McLjRIabwOVqxEEEqVwpmbalEyLqGmEtYwSyf6wy81+yst9zTDN6GeKUVeRZJIsTdEopBfIEPC1wXlLR1nS8hw7OURlEpkMSKSim/U5OZ/z+OQQMkm/PyARilHS46yccefBASEEZtMZtQ0cnJxT2feQUrYClG32U5txZX2Mr7DGtIKVsX0cI/FptGubP382Fz60wM23sXXx84rBW0X4LwHJ1RNboqvAIjniCf/i6kfGIvNBLCtFXKX/frlTdZkAcXl3LGnE1qMqxKq2axASZJtdG0KMV2vrmD0N1K3OoE0BWXO1xnMQTwC0lSbd5cu9uv4lhvBSfN5ivaewiJ9iu+7nz18/DyIgRMxgt6LmQpSkMmfLD9gVN0jtAC4szEsIOgKgpAJvQQvwVZSlyyRoCbaCZhIlT1TWIpQAdh7FibWANI9X1DTQFNBUbGrBb3Zu8MK+5Kd2wHtnH/FgfsKEmlpDrSEMurjNfbxQSJVibGA+KxBArhNMU3I2P+H0/IhiNgcr2JN9Xh3u8mZnn6+ke+x0tthUXXZ0ilYBkXdAty7l4NvzaWIyyOMZfDgBNYCRQKqM4dY+Dy7Oee/OL5CpZWN7m0zkbHX3eXR2xJ++/y4hBM7Oz5kHxweP7jP7ToOSKooLOxdd6sYwLwqMNRHs1fVSgPrXtfqzJ0rISHsL55AEnAQlBL00ZyPvkgKuKcAZRBB4YoKJw5F0Yh09pRNUopBaYZyhwROsjQKWQoKEJjgkDkmkeDUSrRWi16OTd0EKRhIGnUC3C6Nxxsm04Pii4HA8owyaoCGGZ1ucBKf0IsEM6w3BW4KtEL4mk45eR3Nr1OWV7RG3O5odbcgSTZZq+r2UPE9JtUYgUKGdQXuBwyODRVYTyvMjkm4X+jmp0nTyPo2Dk+kcM/f0a8tIpoTGMS8bijoqSzeNwTqYzkum8/KpBl1nCZ747lkN+0vatc2fQ5t7H+uvet++QgR0LWMg1vTr4vnBJSkR1kDRIr7uEtprZ8dXAcryoloUFiL7t7Zkud5V2ZKnEYAxEbU9pojMl1z6iuMGMviYAbtgAVfZHJf2vzifeLDV5wUoW7haP148OO5DXDnZp4O01aB+2Q0rP6vk1+t+/jz2cylioXosCrDSoFXCRneTncE+ggzGJ1AbEDmRm7YRpHXSWCh5Aei0AuHAldC4CN4WiUimAqti8oSUEfAlAjYSxGiTVDj2RMEwwFA49rsZ98Yb3Bufcuf8gGniCUHiswxDwGiLSUCpBCk8jW0I1hHmBbKs6TjYTPp8bniDr+29xueSfV6sM3pZl06aMuzmiDyNWbtCRtaRAGIOrgBj4GQOHx3ASCC6A2SaMdjYpnCWB5NjvK7ZpGGDTYKRXJQF42KKs46qqmiC52w24ez9ycquV0IzlvG0Txj5k1v92SVNIGZHeY/wjgRJIgKdVJN1UxABQ6S5lUzaAc7HdO06IFMNTrblhhRSqBgQSsA7h1Qgglwqg7fl3Qita6STJSRJCkpggqOTp+SdnNFoyI2q4WRSsH18znnRUDUOYwN1U1KhkP0dSCQeh/YBWUu6wbIZcnQXtnsdbmz12e9mjCR0tSZNkqgE3e/RzXMSneCcQ8h4YkII8AFvPaauMNMpdjYnzQxN3XB2fsLh0QHn5xc4EZhP54x9LExdBqitWZVeAkJ48oHwdMbgL65d2/z5s7kKgQQZXYxhwdqFCIh8zIZd4CXv2jFREuO9LoGOCKhWDsqIxsQq6O4pbX35Ir82Btgv1xBRvuTjvFKX5rmhPbclyFzn2yJolKI975YhWxKPYVXGTIqF7Mfa1V0BZwtNscsuWHFlm8vLlgkXRNdwjGFsr17KJ9y/n1VM3XU/f/76uSfmCnjnEN6RCkkuNMNOh3ygEThopjGeLkvjz9b5mOXqa8h0jJVL0wjqdApJAsHEzFgdJ0tYB03NiqlvKyZkXejmCBHAdsmzDq90u+zu7PB6OebexSG3Dx5wUE6Z2YZaCOZlwdxa1O4AoR3W1qQ+QVU5w0Zzozsg7cLt4T5vbO7xSnePPQaMMuhkHbrdDmpzhOgPYsautaB1y9BHm+OA2RxOLYz7YPr4subxwwfc+egDHh8c4IXl7HRMZh+TyJwpBUVdtklmcWDyT4mpvWTzT8Hsz+5+VRLrQwyNlYLEQxI8WSLJOwmdfgefCWhqUhH97sKYSLxLgVIqKig7F7PFhCJJEqgVwQe88yjZSic4h1YarQXOgbMego1p/SGgJXRwOAUykXRkykYn4caox7SoaawnCBkzaZrA4JXPkW5vcP/wEaFu0LMKe3BCYmp6uWLUyxnkir6CnpB00ixK8WQZWZpF/SUhcC1LoaRCtwjfmgZtGzAVtpihehVlUXLn7h2m83ks0Cygrg3OgUJgoL0vcZD+uI79l9Xhl8e/tvlzZ3PhY4mwCOgWQCx6UnxYMG+XtmiZrkWyAcCqLsNi/Se2of2Sdei39r0QT1m/PcC663NtBrx0ugqx5s5Yb5fXX0mmrLs8V7wiob0OIRHCL/f9lLO6xNStGLaPYRHbfS/c2EvgG1agdD1JYnF+8spd/LTadT9//vp50GC8RZCQSk3uUzKv6GYJOlPQz0H2YW4jAFJAHSDYGD+ndXx3FpyKgsRZDtrEccO69nsfs2RTIlOHiMuMjfF1OPAW4SRSdBkoT7eTspcNeGPzNifFlMpZvBLMqpLDMGf7W2/S2c/56bs/hiqQzDKa+zV5AaMkZa83YltnbIkuQzUkqgx6RK+H6PRb1lBFujkQ5Ve0jh6EooKqA3MJ5wVh5qknU374p9/n9PwU4yxBBGxZU1qHpqEWNT7EmFop5cfGQX7aNn9mUNcZDbHjGUEIlBAkIdBNJBvDLps7Q/qjnBKP9aZVBFd4EfAikKY5aZ5HqpY4bEopSZMUkaTQ1DhnQCkkxBkjAa0VziqCdXhnqZ1BCk+iJVJIMqJ2lgiOTEI3lwxlQpCKNMtACOYipfPCbdIbO/S3UsZHJ6jzOcIaRs7RyyDPFVkCHQkJCqGI6fkIZIDgwnJwAofONTrRBMDUNT1vcaahnk6Q3RnFrODx4QFFVRLCamT3LfvgW5X5WDJmhd6fFo/zl9mubf782dxVVbShN+Ad0niCdzGSrAUhKrTckpAIoZAiQjjZMl1KLMqArb+3yQm0MWQQMzqj33N1H8QC4qygnmhLlLUrrFaD5fLV/2KFjtrvFyBp2X7JRPnj3GHrDJxYXm8sZL5w3caM2qts2sccKURX9sLBLIR4AgisRKAh8OslYvw67bqfP3/9vL/fpz62hAYSochCwjDrsbO1Qba3Af0u+BTKJsbOJQp8S8v3utDrRFQRPFHvRUPejVmu8zpWlUhiZWBcG5Ob6gj+jI2xa3Ud6X6pIqPuNbgMZRw90aGrMraznKAFutfBS8Es93S+8AbpizlbHc/RgxOSixxRw54dMRSSnpLkQEqGSHuAh7IkIlMdXcMhgHNgBKQZpAkBD0WBaEZQOjiewHnJfDzm/Q/eYzqbEBAxkYUI3i1RZw4u2zWEcIlt/yxs/sygbmv/JrZ+QGMNwlu09PTyhBv722xsDlGpo5rVFLMZdD39fEimMpx3sfwOoJWOY66Pg1+WZsjMtsrZUUk8DlxheVPSVENwbekUhzWO4Bw6TciTBAI4azDWkQDBGwSOToizxY6UlOMzxragbma4uoByzqYS3O526WeCJJegHdJbghfUxmJNg5DgrItaS0SqGuKgvtBEctagCUuF9Wo+Yz6dcTG+oLaLch/x8RQlWxdOoCeN/Z9DZ19v1zZ//mwuoi8uBsT7FpCFeCVLLqs9ZSHkCni1YGyJzdbWW0Gu+P0Csj1RyutSMsAaIxZRWdyq/RzC6nw+0R0Ml9dd30Y8hVJbfwhfBVPryQ3r9WNFCygXebqL7OCnJVwsANsTmnZX2cd1ZvEzCqq77ufPXz+//fpL1MWMqjIIJGkIbHRzbr54E7GzGRMf5hPC+VkcE3a2oJu1dV/bnSTpIo4hxmH0+tAAlYuMFzKyYIH4w5AigkPT1oe1DhoLOMgzyKPir6ibyAAiyWsBTiFa4JUpjX1YcjE+pDg/xYxncG65IfZ4bfQCqdCgHMLMwTiC8NDUhKqKbLuxkLZg07TSIQJCC+RD08SY4ibAtIGzCbPzUw4PH1NU82hZ0Y6GSrbXJpZ9eb19ZqoUbXtmUPfyFz7PmRcc3vkAby1aO3r9nMGoi5CBeTnj4mKCqyq0FMhEkyQJ3gfqssBNZ3S6XfJuF601zjuUVJAkVEJSVAapDUmiqeu6LaosSZTE4fHGkGiFVJK6qrG1JSV27m7uqRtD0zQ0xuAFOBmQxNTlZlxxiqPKNE1Zo8uKTjdnNOgxSkGmAhMapvOK+bykmDckaUKmNcYa0qAx1kb3gpJL9461FuMd5WyKCIosE3hrYhyGNVjarJYAixihq46o/5zbtc2fP5tLH5A+4D3IsAB0IEM7kC2YqdYtufK5rjFwsIae1hm2xUNvsQ2XgN1VQNfCn3jMAALZEnG/4gEpVg/W9bZwqa75ONtTbBnE1aLlOX3csdaB3gKIrcjB1cz96vahFTJe1/9b/M3i/K7cuyVo/IxA3XU/f/76+Zd+66scmId8+KNf4K0iC56NQU5v1I0A7OyIcHwCszIyaamI7tUAFBM4v4DhIL7SJLpltYY8BzWJmnR1BGIUJXTT6I5dyKHUrq08ISIAbCrQOWRZBIeVgqqKgsbCxslCqhGuTz0rOLT3mKUTyqLATR39fko6GiBEDsJAGQjzQ+x0Tlk2ZFlGOuzF+L5MQSMicEzUUtrEGIc3FfnpGJIR0IEq0MxKqqrAYFZhHYvsHEEsD/OXANqfGdTtvfIKurKcnp5gyoJEagaDHt1+jvGGcj6jKWKnD8SyJ1VVE1ygqQ3OO5q6xhpDr9dDaR0DlaVESE1tLLoxSJ3gwrLENFIJpFKIVuwySTUISVVWVK3wZJpkaJVECt1H2t45h2wg2ALVeLTzJHVG4wJpmtAZ9UiHXRLpkMJjGsO8sYyLOgpwaoVxtnU1CFzwuBDQi4dPEAQXsMZSFxWJqpFdi7AO710MEr402IeWqRB/Gfb/c7Vrmz9/NqctCSZDlPtoZUaXg5gPRG2y5fUsYdzy7yUICVF8aR2nCLkGrrwgiCgnsiCkniTqYgUDxDrzt2DvWKqfXK3MsERul8DiavFVYCd+LQM9uz2D95dw5xovydV4wOV3/rP5EV338+evn2987QbJPOPBw/tUkyMyrWLJrUEH6mkEbfO6LSXmYTaDeRV/g3WUq6EooybdxigmTAhAKUKagqmhLhDZgGWBZUkEUKmC0OraJUkEe/N5dJF28gjqsg64E/AQgkVYBUESXI3yhtR5sm6K9pZOntPf7MJIRXeqU4TKY5uCi/kYKVPyRIIpQQcQeXS9LvTghAChCE7gagOzCooe2AScxluLC7a1eQwliZqLIV6P+8sx+jODuu7mNtmbksODI87nE4Qr6Y+G6G6KoaapG7TUJAlRTdt5nLEE56NhnKdxVfw7BHr9HkoqFvHYZW1A1iRZB6TCC4kLrYtHJUi9CEKWJErjg8TaGKAKASkVWZqTJBXeGLwXmBDwzqAk9NE4NCpLEYmiyhPG0pPIQF8pvJEUxlMF2Bz0yDsZzjnQEhtcjLtoBVdl6wZadPyqLBFpF1UbTFXHLp6olrkIywBnB/GHHcXP/7Nv1zZ//mweWoFhFgNY6+ZcJkKwYupgyW/BJaAHSxKDdYfUQnNt5Z6Kd2sBHFnlLKwBrsU+FskRiwzYsAbOruZVrM5xzR+8dsarE2tZupZe/ERushbwXr7CdQaxrThx1Q23WBZoXdtP3/f6NmH5IAmfGRtw3c+fv34u9hQ3fvNlbn74CgcXD5Bzy2hnhMhEFOOtqljzlTbmzQVoyug2RbVZohXY82jkjY2V7hsBU5VoLRH9bgRxCsBHd2yaxJMIoWUBWxavqttUbECniP6QMCvicdtyftQlqQhsJkOarIvKDVJ7yqzA2kN0GCF0F5Rk7irmVOxtbJL0utHdqgS4GoKL2a+BNoFD4r3ANp4wmyPm/VhCbB7XValCapBeooLGEXCAEP4vzdzPLmnSyRi8cIsXvvQW59NTmJ8x3NrABIc1Fc47OmmG0B7V1ugj8bFmNjFmoWqaWLJlNkOKQN7pIGVCEBLnPY2xBARK6Xawj/BeqngjQwht7EMgyRKkkjgTqXMfPCrR5J1O1LdSkc6XWeykcmYQjSPNMnwnZRoaRFkgtUQnWRTLFwrVyegOunhn8RKCkhgXhVhDe0YL1jX4dhY4K5DZgLRpmE9nFFXTsvLxYSEXg/mi5ND/j0znrm3+/NncVTVOSYj1AHDerdyTQiJlm+W5AHGL2DIuwaVfuz0RX7fWrkqaLJDfgqFTYpGOQSsjt0heiNus3/nF8mXm63KNNRfKU2KhFpUkIra6DLyeds5X46lWrrrYnhZvswJwV48RP39Spflft1338+evn4cU0jdz3vyrX+Tg+C4cXbC9vwW2gNk06rV1erEMWJrEJAjfUuOoGA9XziIQOx/H6+73o/tVCqy3yKZGStUmQrRuTiki+KNF/G0sI3kavzM2HltaSFPEcEBUww6gFELE6EXVOKTRdLc6uLzitDxFTM65KW+hui8CEp8odC8lH/YI1gIGlEdYA8ESZySLJCxB8IG6bqjGUzpbG1AazPmYcTnGE+NHF/8k4NpSin9ZNn9mUOeUJusN2X/lFU4PH1AdaUgV5+MLEl/RkYKOTvE4kiSl2+mg2nmM8B7nLElVRTVlYyhmU4J3yKSDdT7OzpwgBEmQAi91LBMCBCkRWrQDXkyRlniCBKlVW04kdqpOp0uQUWdLJwqfSKZVTTEvqRtDyPvkm/vIQcL44B5ZUTKwKbYBIXI6wx5OBprGotO0FeISkXqVKp6biJkvnlgCpmoMPeMI1lHNK+ZlRdU0+HaGvc5swOrB9J9797+2+fNn8+BddA2KdSBy1d3aMmNCPMmQXbnAFZ+3YPxWTV5NrrjqKl2c05XtLu1/Gfe2fq+vALmrJ7nc62qDpX7eAgiuxQKu60otYuGeFi93ebsn/34iq3X9+GvLw9pxluf6y9i9Z2zX/fz56+cADGH3qzd484MvMn/nI3Ti8IePkLM6xsv2RlE8uJPAcAQyi6DOh5i9mqYwHkNVwulZBGPDAXiLVxonFEolkWRbSKAs3LBJG4dRuSh54tpJjs7i98EBHkYjhJYRhCUpqAYzv2A8mVBWGr8p6L02QmY5Rz/5iHzWYaf7MogE2R8yGGUILE0xJ8nTiIRkyzRKGZk7PHgTS8QFy7wqyGxAWqjmNePphKKuli531QK7GFcZ2Wv8onLOX1x7ZlBnA3gl6WwMeOH116hHKakvqeenaCHo9kb0VELTzFFpQpJlqAC42EERkjxPkSJQVCXWNtQl2NIyrwxlY8lQBO9QWqFwCOHxrQa5FFFHXEiFl3Hw0yoWunZYhHMgBEorPBnWe4SQGAKFbbB48l4H2+mxuXODl956AXN+g4sf/iknD4/IhWZjuIEadvBNQZJ1o+B0ohDeE5yLM1MhUQvmIoDw4JqAN/GcrGmo53PqomhDCAQJAiFUzBBTCoRvhQoD3rtl2Zj/3DKkrm3+/Nk8uBDdaGoRCL7uPBWX0FUsBL8G7NpLEVwGdyu37ZorV7Cq8CCid+WSW/TSSV0GR+tfPyHwuXhfA3aXGbUr+7nC/F1egzVXa/uwbl/eP2m/p8kXPPVzCJeuQSxiCnk6aBSL8/iMQN11P38O+znxd6f3Ej73jbeoB3060wb74IxUprC7A/kmjM8hI8a6iTS6YW0botHpRFfpFKhmIGZgDKGumDcVuRakzhLdtTa+lGrLjLUuXRUzoFs9oMgGuhboiRAlUDqdqCmnNMGVlNWYxjf0Bn2aUZ/d119m6/O7lK+8ifif71J9dIcsHTLcu4UYQJjM0MNBnDRoRXABLICMgCxEJlEEgfACG2KdX+mjHt38Ys7sYorwkChNRoJQmkQHRCYQweKtx/nQloGLE2P/Gdv8mUEdSIKQyCRhtLcHXYUsJ4hpRhdLL9dQFCivSLSCEGLRayXwTuKEJEiF0JoszRBNoGkMZdMwm1d4H5BKkshAj4Y0eITXlD6jDikSj7Q13ktsiCrnSlpwc5T0KOkQPiBUCmlCYXyMo6gawrwh6yqymzuE7duk2SY3bnyJ0Vu/wY9Dzncf/Us2RU43v82sTgkB0k5KPsjpDztU5ZxQGzIETgq0CjThQ5pGUM9i5pYn1jSsqoLzk0M2shS9v8fW1i4bow2G/RGj0SY6y7DB0tQVZVkym804PDzk4uKCi4sLyrKK8R5tW/9d/MUPC9c2f95s7pxrXYOeICJ4WaTAhjZWzPsF+FkBnlgUfcFoxe1FaAOMxNNYDbF0eS3ZsDXMuA69wqJEWcvKBYjly37NFhbgrSXKxOUvl8dYNO/C0hYLEHf1falBdoWFuwTm2v9CYG2btStcy8J9WhbsIhnks5NIuO7nz1s/XzSRQu+VTXpZGgvZdzeh0ZAOYGKjCG+i29+jad2oAVSIqCIV0O1FN2ZVEooaM5/gvEOqlhEzITJxiSCKB+oI3uZ1m4kVImhrGhhPwTUte0cEdHkvxsG5CmqPKBVdHei82CV84Rbp/g3kay/Sf+0Vym6f7/2f/5/c7L3M4M0vcywa7H5Gr58z3MjY2OpRXFxABR3RIxNDBF34oaGWCUUtyZJuLHWmoBifcXDnHvvZBukLObdeepX9/X12dm+wtbtH0knw3lAWBbPpjLOzU+7cucPhwQGHR0dMZzOMdUsLr9v5WW3+zKBOrsWpSK3Q3S6pkuSppoNB2YKqKhEStJQoIbDtjCUS623mHGJZnkcSwDU4Uy0FTrUQpEqjSGl8h6kbcjpX1EWBsgLrwAiN1q0gZSbJRInyBbkQ4CQqKARgnMEUNRSGbCNl4/Yu2c2XEck2mcroD7fYfvFF8p1NxodnnJ+NOZglTGtFfyPj1c/vInvbHM0OmI7PyV3gxW5G2tNMrWZSe2a1I5cSIxPKIKicZXt7i9/91m+y+eLLvPDqm+zduMXNvRvsbu3EtH7bLF0VZVly586HfPDBh3z44Qf8/Oe/4N69e8znc6xtdXRW4/ulB8Bn3a5t/vzZ3HvXFphuXbDLmK74WrFRLagTi3NduQ19tHzrhlr/x4IeW4K4dai3WLa69iV0vDQCLs/pCoO3vr/QIqkVA7bmql0d5okm1oDX00DcLwV1Vxi2ywkStOE77fdPqVCxvt0lprNdxbvPJqbuup8/f/182YRApBJGfVA9SLehBiY1TM/i71QmUVzYmQi4hGKpRL6g5WUr6luVuNkcb038HUsNqhPB2XADP+oxtzX1dIqeu5g5rQMdLclVQrq5iZzNYTKP7ladtXpwllBV2NJBpel2JP2XhqivvAI3t1o3KujXb9C91ePowUMeHfT5yXzCvWrKjb0Rv/lbX+GN27vcrw44Ox8zcD1eH+Ts9PrY1HFqS85tSV922e4IBDWzZs4LN2/y3/yv/z6jL7zIK299gVfffJ3RxlasmtL2Tecc3jnquubD99/nF7/4Be/+4hf88R//MT/5sz9jPB7TNIZFWsVVm8Ovb/dnBnUxPFLgQoyFkV7gbVQ5T5XG1AbjGpJAmz0Xaxou6ujhHN62dLSL6fxSSLQKJDqgjSDRKV52qUJK06SczTo8LjOmdkAI22hnMNZiVUaGI1xM6KcVe70+o9QgRYUIFiEapHTgCupqSuMt3XzI9vY2e6++htcjur0OWmm2d/e5cfs2Dw4vYqkYKVBbtxje3Cbd3CWkXUp7zv2HY6hmlL0u4uYQUztOyoaLypKnDtE0qOmMc6Hpbm4x2thm98WX2X/pFbq9Pt1Bj7yX08kzNtMNdJKgdcwQ+83f/Cbz+ZwPPviAd955lx/+8Id85zvf5d1332MynmCdi6EIMj6mvF+PJfrs2rXNnz+bV1VFnmhQIcbCtExbLIsZQZIXIBagp7U5oq1dSiCEWDVAtVv4ZYUJEEhiJYkIBIQIIOQSHC3YtNjiE8/7y+7KpUv0Chu2AHKL9Nl1QBffV9m2i+fRklUTENzCbRYB24K1vArm1j9fBXMLNu0SuPPiCbeqD3H2/kQM4ZXrWmT6CiGo3GfD1F338+evn69o4PYHIET0wysJmYT6Aqpp/N65NuZNREDnAePiy7UsnJAtsAvo4MlEQpJ3YTiEfEjo5Ngk4c7JhHfNlCYE+iKlsA2F9GyTMTCBF7KMmzc30XsBUTSx6kRdQWVgPKU4PacyhsFul/T2TfjybUhZTEvQ2yNufe4N7h28hxMCkQqyV19g+5Vb5K/tYzdyjmXg+++9RzLxjDdnfPu1N6nMBferE46aY3q2QhRd9MWAA33B8IUddm69xtYXXuHGay8x2thESs061691hFh5p8Pb3/wmb3/zm9Rlyfvvvcd3/uRP+Bf/4l/wne98l6OTU4yNSRqaxSSYtTHvk7dnd78uZu0BVNDkOgdl0MGQJBKvo+4QJtA0Dda5GCSpFNYYTNPgnY8FnZ2HEGsZJlqRaUWCRQlFExJqk3JRJhzVHU7diFptI5MOzlVU3iDTLsOOQIQp89khlS240Q9sZR1SOSORHhkqgq2pmxKERmcZSZoxHI5A92O9Ye8YDDfYu3GLk+4HpLpLN+3je3u8/MWvMtrsEnzDy28M2dl6kfHRI+aP73N/PMfPak6C5ByJKUsePXxEODmnUAkuy+ls7fKGTFG9ITtSkSUpWZ5Q1HNOTo4gwN7uHtvbO3Q6HXq9Ll/96lf53Oc+xze+8Rt84xvf4N/9u3/P9773fT54/wPmxfwyXf8XMZu7tvlzZ3NjGuqmQigRx2kpYkF2IVaAzcUHe2izMRdsnWhlIQI+xhwJgW+z1RZwRK6DrsXDhLCMgVuMbWHdD9u6WuNx1h5GS/dvbH5Bv4UQE/VYZ79WMXRiuX1MkFgA1OBDzIRcsHBrn71zl4De4rUAdE8weN6v2MKI+y6xe2Hhml5cZvtxFRMYP0kpl9nFzWelh3Xdz5+7fr46GICAboBKxooQish8CaKWW1nFrNRFObi6iXVbjQXTRJCHjnFpOkUnOVltUDqDLCF0FRa4M53w7+wJR8MBut+nvJhTJp58e8i2VuTzCz46P+aLZpvPb94g35WIyTlc1IDHlyXlZEJINUmnD90UkRKzZtsmsoTeGy/T/8FD3KjPSCaIt27xu7/7Ffa7Gg+8/XvfYP+lV3n8zgOm757ws5P7+OKQB2rMI3VCM33Eu+8+wj9OmGQ1pi8ZvrTHN3uC7Rf2LodWhBhr6Z1DJ2nUXWz7bt7t8qWvfpUvvPUWf/Wv/TX++f/0P/Gv/tW/4nvf/wHjyXg1NsUd/dqme2ZQF9r0XW89wgYynaLznMwZtDK4RKJapVLbGHxo0EnMllp0/OAD3jpEcMjWUSKFjGnuIoo6zk1gbjwH44q5HmH7fSqnsMFjFcxCQzAOlfW5tXcDbTZoTg84mh/jnGW7p9BSIrwE7/BtWRChVHwBTVXQuJJ0mJB3e2xs75EkGbWr0SLl8OAOv/g5vPLqS2wMhwy6QwY3u2hgenrGw5NjyrMLDicFx5OSGR53UWADGCEZbm/z9u1Xefvtb/C5L36Rra1NsjRFKsHBwWO+/73v8ujRQ3Z2dnnttdd5843Pc+vWLfr9PsPhkH6/z40bN3j99dd47bVX+YM/+Nf82U/+jPF4cjkO6TOOxLi2+fNn87quqROJ1BIhBUkSNZxiTVNPCA7hHcE7vLdLwOECCB8FYhURgEkpluNtWHutYvTig0MsEJdYPWMW76uNeMK9ud4WBNfSHbwG6i4lHCz/b8HkcsMViFsAuOXfa8u8c7j29TQWzy3XWwE+2vNYfLe+7KqrdpEBvABzUrbJKID5jEDddT9//vr5slkikEsE9Imu16Zl7BYxAJWBUMc4t04eqzKUZZxsGddm2gAoUBqRZIjGELnHhsZM+Whc8W5a0+zmqKEkdB0kgWZaQMeSbmzwyhdeQE8qzu5P+eDihNftiFxHchApwXhsYxGZhrQVMYbVGBGTmclubZN2OpRlQa/j+eGf/Zj/mAa+9tbr7A779LOEV17aJlSOn94/4Wf37lIe3OPD8Ud8NLnPeRjjxoFaOGrl2Hlhn7/z9c/xzW//Llt7u6wzdMF7fvaD7/L+u+9x64UXePG1N9jd3yfNO8u+rJOE1z/3Of77/+F/4K0vfpF/8k/+CX/0//53HJ4ct56O1u3+a9r80wF1baYQ3uEbgwguVv1wFu8dQgaUVggRiybbxsBySBI4a2OmEa6doAekTNApeNHgg6BoHOeN47iGRjqcK7A6sHvjJsPhHrVrkGlCN5f0OwrdDDizNRdnJ/jC0EkkeaKjm8cLQjtldwGE0kBgenGOU57h/iZJ0qHTH5J1OriZZdQJdKcTxo/f44G5YDraIk87TC7OOXj8kPOjx5yf3mNyccjkYsq4MswEQHzAZXnOzcEWX//ab/Dyiy+T64TZeMJxVTAv5jx8eJ8//dMfcOfOh3Q6XX7wgx/w6iuv8dWvfo233voSN27cYLSxwebmBl/+8pfZ2tpic2ODf9Hr8Sff+Q4XkwnWfrY15a5t/nzbPL5H5uZJEAKXBrUQhyLpFmzPKmEiiFg+KSxkHsTlbZf1U5fLVu7Iq3ju17+OXz5ELq7J+8vu08V5fdw2l9m2NSC3xvL5JVN3Gbw9LbP1KkBdnVcsCC9agCpYFRL/tNt1P3/++vmyc7SlV3HtZ4A6RHkS35b+6qgoW1I3LZUu4rtp4jbWQpBxcpTlgMNV85hoZSpOKPmwOOehbCjDgDSxvP7Ga+xs3cD6W+R9QV9ohommPu9zt6l579Fj9MTw5k4X2QJ3ZEKQsRKFDwvgCVQhJmMMJAhB0u/SHfZxxnNjmNE/mXLvj3+Ee3jK1t4+ebfP4cND3vvZOxx9eJfy4UPGjx9zcvoRR80p50wQdcwG6/X7vHHzFn/jb/8XbO62gC4EnPNY03B+csgf/pt/ww9/8AMGoxH7N27y1bd/g2/85re49dLLS+ZOCEGn1+Nv/Z2/w61bt9ne3OGf/bN/xuHJEc2fM1b22d2vLpZcEbZG+BoRmviixtsKaww+eFIlUa3qeBBgnUMr3cbQ+CgkSdQCCh6kTpAioFRK8JLGCpqQ0Nvapt+/iUm6lAKyzDMcZoiky8b2iG4/oZpNqE4LZNLFiR6T8oLzeUU3CyQETFszWDgfi0UHiVaa+WSM8TXOvIQKHdJOH5XlNEfHpDrjSzdyhNI4P6E6mTHzgum04PT4iOPTAw6PHjMen1A1DTWepnVPSUAhQWgePzjgj/7tH1LXNbP5jFk5YzwZc3ZxxgcfvM/FeEyapOR5zr1793n//ff52c9/xttf/w2+8IUvcuvWLZIkYX9/n7/5N/4mvU4XrRXf/f4POTg4vOyF+qzatc2fO5svWKiFXEmM8VlohLaMjl+5KiFO6BfgiDW3oluO/yKWHROCINdcF09cyZMAJxJp4gkQFOU91vYgViAwAskn79OCuVvE0okAeH8pOWJxD666Wq+6Xddj6xbu1OU+fglo+3XbKg7wM5TFuO7nz10/Xx6koQVmQBmgBGY2igpbEyVFtAYrABmXpWlkzryPgE6oJdsd68NadNZBqJxGCEopSG9tsbmt6fRTfE/QDZ7dgSTrdNjpQCpioszRHEzW4Uw6Ppqesp9WbIgAweJCwCAR1lFbT9reoXBqoKgQgwEgEL0c0c8o757T6yj+y72XEZ0B1UxwcXHIobvHwekJhx99yONHdzi4+yHnR4+ZlzPmYUaj6hh+giBRARLF3TsPsfY/MZ/PmE4mjMennBwf8fjgId//wfc4PDwiy3L6/QF/9rOf8f3vfZff+vbv8Fd+69vs3LiBbIGd0pq3vvZV/uH/6R+Sas0//4N/yft37q7Jn3xyq386iRLBIX2DdBXCVQRfg2wQvoHWFaOSBOUDPpQIqVAyqoZjosijdY4g2vJDIs4EjbEoIVAiwYSM2nYI+Tad/i3yNENUc4qLOY9Li0NSzWpee/MWqc4pnEEnW6T5HuX4lFk5pawagra4NvBZeI9t5QmE9/i6pKlnuKaBIEmSDgJFPRuT+wqtBEp3cSLH+wwXNNI0lLNjzsZHnE0vmDUVzoMTIgbhhhhTNJ+XfPD+h8wvpjGzp6lxzhJCoLaGxhlqY2gag5QSrSXHx6ccHR7z4MEj7t75iG996xG/+Zvf4tVXXyHLcnZ2tvmt3/oWUsbg8n//H/4jk8ls+YD6rDr/tc2fP5sXZUmqV+5XaxVKCXSiEK0Cu3MOgoVgVu5L3wK6EBAhxtR5JdFCxJqatNV4gmIhb+LWXIwI2sSMJ4GQWwDGte+C8ysXbdv8GpBbxOutCxovznUZK+da0dMr7NnTgNtTgZx7krXzawzd1bbOAC6C4T+OFVw5XdeuL3yGiRLX/fy56ufLWZAN0eU6AwoiqKtMjJeTItZm9TrO6hIVq0HoVkTY+5gNG2R0vwoBxkPdoFWCSnPqpMeZKTnqgd5/iY2NLvPygoNHY2ZTA4ngpds5b9zooZXAKNBbW1TDHQ6OHnM+14y0habEe4f1PurHeb8aMGaGMC4QYRDPK01wOqM4PqdflGQY9GhE2ushs5REBOoqIM4vOD98xOHpQ8blKcZ7jDCLgYLg4GI64wc//BEXp3OsNVTFHGMN3lnKuqBsSoqqoKgrtFIkWnPv/gPufnSfn//iPf7sz37K3/393+fzX/4ySZotx7vXv/A5/g//8P+IB/4v/+P/leOzs1Zk+5Nb/ZlBnUIgg0G6Epo53szxvsYrB6Im+Ja7bWdtAdCJRumE4ANCSpTWOGdx3kPbGYxvKMsG4WP8TdUEJoVgZjzalfQHAuc94+mUWXmItZK77z/m9OSUnb0N6qmkmgSmpaIxmlnZUFYVKjU465fZOUJItE6RISBtjSvnNEVJMvRImaGUxlYF3kww1ZSZETR0KGWfiRWc1w2HFxecXpwxrebUPhCQEEQbMB4HFhMcZxcXFNNZO7BFeQgh48DnAesDzgeUEtR1oChq5rOK8XjK+fkF5+fnTCYTfu/3fo9XXnmVfrfHjf19futb36IoCsYXY773/R9QVtVnOpu7tvnzZ3PTNDRNgvLtAxtH8DGeTorISEVQ5xDBx3i4FihFcBcrAnhA+OimiTIXbYzdMt5qBWpCCwKWCRGsxZjRLl+yYAvXcFi5WNeSK8ICJC3AnFyrUtHux1kb3aTWwcJ1+hT36HrSg1+us87IrYHMK8DwansaeLsE8q5+GZ72x2dj+et+/vz18wCxP8wDXDg4t1C6yMjN5xHU0bo3F9UdUglZFrdTAlINRka2zsR4WkpLKMvITCGYV54PZmf8LEj60y22tMRVjtOjU6blHRqhyPOM3377NV59cYfTGRx7OHSKi3rOSXDc0o6saqK3IMhod53EcwGoHOGibKtEEMuJJSnNZI47mVGdnHEuHdWgw3Szw7FoeFye8PDgQw4P73I2O6b0FV6oOF4sKn8FqGzDw8MDLs6mSCGw1hK8RciACx5HoPEGGzxaWESomMzmXEymHB+fcHBwwONHj/iv/v7f57d+9/fIOqtYu5fffJ3//X/333J0eMw//1f/kmkxa23zFwTqgFj+oykI1RnOFahgcD7gcTgTO1rpDMp7dKJJ8wwQWGNxwcdYGykhOIyzGGPwrY86SzRJEn8kNmgar5nNarwI7Gz36PR2mdYlTS2YTwvGkwn9rQ5BZhTGMpk3hMZS0lCbmjQ02MoSrEOkmjTrkKV5jBExDb6uMHWNMQ4pNWmi8c6ihGVj0GWEZmI0R4WjrirOJlPOxhfM6iKWBxHRLQTEH8HiFgHGe7xvLmNut/gslpmAzq0G6+Bj7cS6rjGmiYOiNXzj7bf5ype+ytbmBvv7e/y1v/bXmEymnJ6d8e6778XZ8adi3GubX9scTGNomgbtFUpJApLQsmtexpFuHdQRFpmwYZko4QlI0d4jEa9dSYGUok2qa5cpcRnUiSdBXbxpa0kHISwrKyxB1ALMtewcEJXihYCwDurieVpjYsKDidmaYZ198/5SgsUyVu4TuFSftnxde+wqO7c8r/AkqAtPALnwJPD7NNt1P3+u+vnivLmo4NE5jJsYm4aO8XS1iexcNYvVH7IUunnsU41rGTrXZp4GQlNG+REREF6QZCmkGU4Ixt5S6g5NU8A48MLmiI1XXqKwM4ogOD0Zc3J6xu0bQ1SaUPmG87IgK+dMnaFWnqxssE2IoDMRZP1erDUbgMrDzMTrSYjSNWmCqw3aaF7euMF+KjhOAndswXx2yqOzezw8vMP55Ajj6xgyIAMg2riRsAzlqL3B1ZNlchXE8I/4vWg9BAK75jd3VU3VHFMUBXVdEwg4Y/grv/XbDLa2ImMnBG997Sv8t//9f8fDx4/4k+98h8o2n9h8z14mzBiMCZhmCs2EIAwiNIQgI+XuQaFiRlwISKWQOsZfeOLsxXqH8zH1vTINjTUIL5FWIBOFEh4pIc0z8m4Xh0B3LMNdSb/XQfW2SfMN6qlBdGp0R/DoozGH54dMi1M6viEIh3WGsq4wpUEhyJKMfrdPLjV1UUFtUD4QGocznkAsD+LrGo+jt7mBJuH4pGRWeCyKoCSlMzTeE8MaVwZ+ckCG9dDHhTZWWP7VBhuxiD+K+kTOe7wv8f4o/ra8YXJ+hm0sv/H2b7Czs8Pe3h6//dvf5qc/+zlHh4ecnl+s4iM+5XZt8+fP5s45nLUxiitIpNLtwB2zC5cMWCDWO2xdrgumbsGsBQJOrAZGL0BJSbLmEl28roK6xf2EFgx5v3a8pwCr0GbQtqm2QaxXX5Cr9VpQtxAKdW7F1Hkfs9CEWHpfaPHir/VgFZd+I+35xF9bXCblkztcYLungcL4BYEnf3OfVrvu589fPw+OGE93dg7Hx1ABtYhCwd5BUJB0YqZriOW1ULTBtXFShylj/2kaKCe4ukSoHCm6cX3nURL6gw7beyP8QDCUDS/tSLb7G/S2N0l6ivMLQzfxDPsJ7x2UHDy8x3j8kC1XEjw409DMDXUd0DKh0+uQbW1D3gUD1AoZEljv8lJiiwZnLaP9TZJMcXd2zLmtMInAK8e0nlK6CotfgtM4wRKXumjAYy5NquIgEaCNKVmwutHmAo8LAuc859Mp7u5dhIzSJ8ePHvO3/97/iq0b+0tX7G9++7f4/d//u9z58EMeHj7GfkKTPzOoM9MpXiaYukC5GqEdAhs7TVBIKdCLgr0+xjxY1/qIpUQnGu/SGHRceerGYhqLsALpAniBdh6toJtp5DDFO0nSC2ze6LO722ew0UFlI6bzhov5YyazMybFEfP6FC9KlLQoFXDWUM5rmsaQJSmjfp/+qIdMJFVdIIMnUYJgaryp8N7iQmQpTFuTcFZaLmYVlpzSGE7GUyrjsH7N5RMWJl4h+8VX622B6GNbe8jEyKN2nbi1c4GyrDk8PCIET1nUOB/dFL/x9ttsbW3z+uuv8jvf/m1+/KMfcTGeXCo982m2a5s/fzZ3zmGNBQIKiXOijYlu7dy6JResXKCNIfNrSKhNlvCL4OkQCFKA91i5BuZ8C6KkXCbVLWfCi/sYAtKHBX23XPa0JloR4yeSJBZmuBIDF9m/JwHi+mYBLjFrlxi3S2vBUmzv0jldFpL9ZWzf+neLOrUinkC8D0I+sc2n0a77+fPXz/249TFOZlBMwSYtqHOgO7EcmAC6ChobM2EXcXNSxmSJTg6uABfZ/aZ2COmRGFIZ4y8zJbnRH+K2upQDwUh53nytx96GjFIlwH4voaorZpMjxo8OmR89QpkpAyXIVKwhPCsayqqkk3XZ3tpBbQ4RiYzxgE6CSiLAW5BtwdPUhtpLnFacm5rD2Zimp5jWJfdPD5g3NSb46GUWK/y8AnWXrb76KxCWkzO1WkXK6LVALie4NgSm8zl37t7FO890OscJyd/6O3+H/RduI4Sg2+vy+7//+/zhv/1fODg5xtpPZvNnBnXTOx8iX9gjaRygl3ESUilkiEGqQYLUGmwkooN1MRbFObSQyDSNYL9qwAts4/FGYCqLKGE3t+QDGAqDcDVF6DCbOc7GcPP2NsI67j54zJ998JiTw2OKSUFSC27km9h+BeMJqTA0ZUM9myGFZXM0YLQxRPQ6zIXFlGMaX8fKI6YAV1DVc5oQH2POS5qQUbgGozMKC8eTCbOyxtuADDF4Ng7A0dhXS3882da/8e0g8GTQ82IscQ6Koubo6AxjAtZZqrpESMHbX3+b0XDE219/m69+5Su88+77mKr82Afds7Rrmz9/Ni/LEoVHJyoWUA8W75M4lqs4+HkbZ+oyuFgZIfhYEH3xeHOx7qvwDtcyeYo4GfbWxOsWrStW0CZKtH+I1T1aXJ3yTz5Mpbgy0AqBcDF+bylcfCUxYT1GjkXmbrveqtTX2v7WXKdPa5Inv/9lcijrn6/G3136jF8loKx9Z8WTv59Po1338+evnxc/OiW8voswOaT9WAoMQKcgkqhJJ3yrBafAJzEMwocYP6eyKHVCBpUniAmNa/AhUDUl0jtuNJ6ezHhR5oxnNfNUcJ46HleGHZkhA5wUhp8cnXHv/hHHB2OKM8lI3aSXBG7Lip63lGVFcXqMNoLtnS2SnS1ET4Cp4MQh5m3li8LBUIMnegmSBOMVVbfDpCype5IJBR+dPOR8PsUGkGiMty0oW9l85WN4sgVgKQsQLIg2E/gKv7cA+wbBeF5y9+EjaucwzjCdT/iv/zf/O3b29xHAa597g7/5N/4Gf/zdP6GZGcInSIp6ZlD34J2fcls5km4sDeKcJbR1fgmXB93gPFVRUlcVxtioNE5AtXUDRSwUiDWOpgnULgpJ9sop/UFJP8wQYU7IRpzWKQ/vzenqczJKvvPjd/jx+w+RVrKRDHl1Z8gL/YzJ5B41Y9JQUdcVtanZ6OcMNvokWYKxHmMN1lqEM4TgsE2BdwU+1HgZy5wIJTEio8FRBcHxZMLFvFjLsFpda7jyfqmJFvGHq2v9quEhPty8h7I0BM4JwiCVoN8fkHc6fP0rX2Nvb5evfuWr/If/zx/z4d2PcOHTn9Fd2/z5s3ldNSggsRKlY0mv4ANSCJSOzJp3DoFH4VhURpALiZEFCAie0CYkEDxuMXM1LCUihFxMcOUKgMmr90oQC/KseLFFPEpcsBYz12bRBhFZO64QZys5lBY0XdF9C3Gl5f6kvMyMLc5AtH8sNPb+fKDOr85tkfCxlGmRS0/0+nYNnw1rc93Pn79+fvc//piXuYGyRJsZD2FR+moZDxA/+wDTkjCfQ920OoYBoZKWnVIEoWlcoDIVc9vgG8Hg5JjB7V1uZ0PmJqH2krHy/OzAkHUzxLnh3/7oF3zn/rvYSpGpHV7UO7zUH5GohlF4QKduKGclRTllv7dBZ6MPWRJdxE0T4/vqNlt3amBfx5stA6QKIXvUXU1pAzMaPjp9yOHFEY2NMjgiqJjY1U4+EYLwNFDedvqlzRdeCOBpIL5dqZ21ChwwLSvC4wOEb9AStra2+C9+/+8x2twizTN+5/d+lzf/72/yw5/86SfSK3xmUPfw7j3u5gm7N4dIO8V4A3lCmqpY+897vJL4usEUJUVR0tQ1xhicjRlEWspYOshamtqiAhjpmQSLso7azNhkRi8obJHS8wlBbFKUDYcfHlFMxowfWjbqXfJEcHtjyIujjFA8xhaPGXY9WWioXUGvk7G3tcmg16cKYBsHFnRtKadzjDfUVUVqKry1KBnIUkWioMZSO09R1ZyOx1R1hW0fTL965hbbVTmCp65zhUmA1t0kFw8LT13VjC88jx4/5sc/+TGdToftjS1u377NG2+8zhuvvsa9Bw9wzaff8a9t/vzZvGkMioBzUZJBtUr9iZZxEBTgvUPiEQvmqL1HIgRkez3LygzeRVHaEOu/tjl18dGxJOjWgRmXUERMqlh9L1tAt4rJWwA4EWmQRcKEku0AvWLGWNu1CG3JsvW2BqQW+4aFQHI8l3VX7KXzXmuXlz3NxRva/ODV8Whd2L+MlVGfkS7tdT9//vr5O3/2Pq/me9ze7SFPx6haIbJRjIWzAeEcSNsmIdQwmcC8INRNBM+tLqCQGl9H92tCythdcNpMUDahPD9icL5PVwleEH3GvqHqwLSu+OG54OTxGb84MJT1S+RI9ns7vJoPGJ5P0OM5+5mkc1JTjidsdPrs3noRubULWIKRCBIwijC2UE0RxRb4HFxAEegoTS4082ZMYSsmxZyHh4+YzQuaUGODJeavei6PDk+16K+8p08bD2LYhEAi8c4xn885PHS89/77/OH/8of0+wP+9t/9e+g04c0vfI5vfv03+OnPf4ZtPRq/rD27+3U84+6Hd/Fhl0EWKMopY9egtSDTiixN8ToOAspBqhVZ0ocQZ37eOoL3mKbBhIAWILXCe8GkLsm8QwhH4gsyBM4GbO0xcgZ6A+o+ygVu5l1uBEWWOnqyxB7fxTf32cwnDFJLMyuRKrA5HDHoDnFeUFgDjYHKUp5NOH94hEwlpqyp6xifgXdRXFNJSg/nZcXxeMysrqPodoh++gUpKxbOJgGL2kTrnffq4PxxRZpDCCil4sNzsc5ihtQ+QKuq5vT0jFRndDtdXn7hJQaDPjdv3eT111/jj7/7Hermk2fNXNv82uYf21ow5mWb6BCe1F1bZJxeulZoZQwWf7U02QKoLBIpFkCLlZ6ZaPXqAEQsn0BoqSohBF6I6AZs9xsQEci1x1omkcq1k4lLljPq0H6Ok/GF61awRonFWrfI5eCsWqbu6kAtWjs9jZR76rL2v6X3dIFo23spW+ecF/5jfzPr5/Npt+t+/vz18/OjC378pz/FvbrHtpeo0xJZ3kcJyJMOotOJ8XWeqFOXZLDVQwRIGxPds85DWSGCJUWidIoViuPJmK7LwFnEpAJZsGkVr89zGj3j/tGMi16HBsegGiHmCUNpuV0bth4fsl0WbCvHduUopwUqSHb2b5Nu74MEX80QdRdqBScl7u4xSIcuTNTdaxyy8XRUQqITphgez0746PgBZ8UYQ5QgMd60rlYWLoDVe/jz2dz7gNYKrTVSylXCVhAgJM4aZkXJg0ePyLIuw/6I119/k8995ctsbm/xta9/jf7/6/9BUc1/pQ2fGdR5Y5mejzntCYYvbJPIhPn5Gc41bG+O6OcdglIkWUau0yhMKSXOWpqmxjsXA6WbhCZNSJom1nHznsrMCA68F0hnyZXBqxLXHGHqCV4MoLOJTnKGucQbQz0/xRUzBGd0szmbXY/0c4Kw9Pp9RoNNpOowqyqmriGvDKIwzI/OmZ5c0NnsYYylqiuqssGaCik8XmnGxnM4nXEwnlCFQOMDjYuK1m2XXHOdxP+UUuR5jtaauq4v1Ye82lbxOxHFp0lCnuUkSYIQAmMtxtRRub31gVRl7Px379zh+z/4Hjdv3eCN19/k5VdeZjAccDGZPKuJr21+bfNWQFdESQaxqKoQr0uIgJBrPs2lB3SV8ycBpCC08UnL1cIaYyXamxhiUoMIfunSWu6oZfCCiLEpQURJlGVrjbIseN/G0l0ZehdDNushMgsAqqRcMXg+tG7hFQO3YAQv7XGNqXva8idbm1QRIo5bxGtdJvNWAPZpgsTr5/NZtOt+/vz1c1t5Tg/PeaQcOy+8RJoPmDx6iKnm7O7eIBtsgPZRyiQfxpquUkY3Z1HEmq8+QJ5DXpGXJb6xCFsyOxcEF/BCEeqAqD26bNh3Huc9fWWYm0Cdw2shYV6WyOmEPQE7vmYnzNinQV1MCcaRbm6T37wNgxF+NqYox2R1TtJozEFBcTAl20zQtYF5DUWNK+Yo57CZ59jOuXP+kA9P7jMPFaWvKU3RMnULGM8qFjdAkiR0u13SNKUsS6y1NE3zS2wezS6FJM869Ht90ixFCEnT1NRViXE2hqsEx2xe8ODRI/If/Sl/9G//LbdfepHeaMSrb7zGzvYWR6dHv9KGz65T1xZsno2n2J0hN7Y20XVBUU5Jk5RUa1SeobSOsRWiFRvVCSqJiNVbGx8UIaBjKg1ZptAiR/iapg5Y45Gpp6sbpLBIVTC2F1TFQ2oXCNaTOIGmIEs9gy4kyqBVZBhSnSKlZjJvqKuSWTWnko7t7X3MvKa4mFGWFcmwg/EeUdcUZUnVVFgszilO5wUn0xmFdVgkxnts8HiuZsXEz0opdnd3+fKXv8ze3h7Hx8c8ePCAe/fuUZbl8odwebYWfwBZlrGxscFoNCJNU5RSVFXFdDphXhSUVRVT4p2nqismkynvvvsu7777Lq+89AqbWxsMB4NnNu+1za9tDjH71StBMBHcmSZFSkGSKLyLwEprtWS4JDGoXrTvUgiUknghqJxDxAixqFlGWwWACBh5SjDwYta8AmutN1VJdJYtAWQIMbBdS7Vcd8m2LGbbACJKIYs2XgZAt9UQlGq3hTgzDy04FU862C5VprjyvnLXrrZa2P9Stmv7IPch6vgtXMPrSOKqe3d9mVSfDai77ufPXz/HS5xxnJ5eUO7cYuPGq4gLQ3V2gs67kObQ1ZC1cXbCRcFhqWJ2rA1tVqxDOElwMUyj198gPd8CEahbmQ/hQFSG1FTcljU90TArA3NbI4wk8V1EPaUnLZtSkNQF2lmCcXQ6fUSaUxcl5XTO5PyYuT3nxqsDNueB8qxgNi+Qwx65axDzGUwK6tmYxpRYAw+nR9w/e8y4mdFoS+UbGmdwqynfmskDWmtefPFF/vpf/+u88sor3Lt3j5///Of89Kc/ZTKZPMXmcVMlFd1WTHpnd5dOHsH8bDbj7PSE8XTMdAbe1Fhrmc9mnJyc8if/6U/4jW98g2/87u+wubHB7s42vPurTfgplAnTONdQzAyz6Qy5OWBzNCLPFYnUeO9JBUgdg1KjCyUOADpNIlXfGCpjKN2UqnZUpsI1io0kxYUYizEtK7q9nCSVaB/oqQalLcaDcwbnAkqkJBqUciRKYBpLPa8xjacsLEU5p27OqRoD0pMPuwgXqJqGYlZQ1A15ABsEonZY67DOU7qAMSXHVcXZdI4JAi8UFo/10V2zyPBb/hiEJM8zXn/9df7BP/gHfP7zn+fk5IT/9J/+E//0n/5TPvzwQ2TLCEQZBNGyu4EkSRiNRuzv77O9vU232wVgPp+TpSlSnOGco24cwUNTN0ymU46OjvjRj37Ml770JUajIRujjWc177XNr20OsIyFE1FLA2ctzkqssQQVQV2sDMFSCgCi7ImkdcEGEEiEkBFMEQAXCQy/eHyGJVNxKdNLrO7VAqx5EQHc4l4i1sDX4iUF0kdGD7nSmQoEZLjstpRKouTKRSJa9268pKcDJ3kFYK1//jhQd1WwOAgRhZODX8q9LB4M4dIPbGmNS399kliuP0+77ufPXz8XJFjTMLlomJyNubkjyPb2yBIJaafVo9MxNlWvZacTQGRx5lTXUM0Ip2cEK5jPL7C15kZnD2NmlLXFzMak/R5CdRG+IWlKdsyczeCwdY1zHtUdkqiAdAYRBME4mqKitoJZ7ZicnzB3h8zriuBq+sMUETRUDXZSMi6npCFhIGnr2FqMtcx8TTWb89HskEfjE2rpsFpQN5Ym2HbqIVAIHG2ihJT0ej2+8Y1v8I/+0T/ixRdfZDab8Sd/8if843/8j/nBD36wTKCK2pZy2YezNGNvb5dXXn2VF27fZjgcIqXk4uKcRw/6PHz0ENtYChtlgcqq4uT0lLsf3eXf/dEf8YWvfIWdnW32929+Ihs+M6hzwdNYiykbLiZjynqLzW6HpKOiD1sKrHN4axESkkSTtPEEWql2pqxIjCUzDS5UWAy91OH6gbIIOF9T2YbSB7RS5JlEe0NmTIzd8A6PIiDxLhpuOjfMJiWzScFsXketoRAlGZJM0+t16Q/7jPpdnHfMm4aQZSSjEWl3gFIdgmuoLcx8DBUYFxVF4zABmhAnJULKGPR9tXMI6Pf7fPWrX+Vb3/oWL730ErPZjLIs+YM/+AM++uijWFokrD1m2vigxUxub2+P/f19BoMB3nvG4zGEQNM0VE2DDx5rTYzBKEsuLi54/PghH310l/39G4xGw2c177XNr20OtGDEiaiuLkQrRuzaLEdJCALvVQRPARCyZdNaBkcIZIgBZEKsOLqVX3URo7JgsjzerwLBlyCt/Vu2blW/qN0jFg9PcWV9sdK7k3IZtydpRUHX4tGkiO7DBVMnhVwqjH0cqFsHkU/9fu27dS27Sy8hYtycp31oxhbZSbEItbp0VNEqIS+A62fRrvv589fPrbeUzlHXY46OD3n19oxsMIBERL03SUxVbyx4CWkGSbp6eRHBXtODqo8oatJasWE9NgQmzuGKCVXVIfUboHOQKaJxiLpANo7EBEKSxomCaQjGUVYV40nJ+aTgbD7H+PjbSBNNlgg2hxtsbA3ojzbBNFTFGN+BZK8P2xswyPGVoxCBM+Y0wXJUjBmbkgpH6TxNsAglYzLIlVxXIQRbW1tLli5NU/I85+233+bWrVv85Cc/oWma1WSN1eSs2+2yv7/Pqy+/zGuvvcb29jbOOQ6PjsDBvJwzL+e44KgrgbWG2XTK4cEh7737LvfufMitF15kd3f7E9nw2StKeI8RHoGjKCsuplO6yYAs1+3gCF7FAGadpCRpglYqSr8IiQ8uzk4RaJ2SZHEwT2RDngQmicYHQdpNEanCikCuJHmSkaUJ3nqqqmReeqZzw7yYURYF81lBXVmUTEh1l06iyTuabj8hyxVaRKFMW5c0zkAvI0136N28QdIbIpIuUFE2gomH2ljOZyXGRdGGECR5p0eSKcbj81haaBlMBFon3Lx5iy9/+ctsbGyglMJ735aEMU8NsoToXurkOaPRiJ2dHW60Hd86h1KK+Wy2pOxXD9MQZyCzCY8fP+LBg3vs7e2Sd7JnNe+1za9tDrCsg7qIEfHet4XZY/ar0ioycS0BF7wnSNGCI9ECpgA+ZsfFcmIB2bpGjVtTa/et7lVbWiywcruqRTydiPVGVZCti1eujqXUpWxYwgJcyehaaWOigpCXhm6xZB1Y7WvBg62Z7ckECVomcQVT4elM3dPA3/p6l2b7S7ZucXCPEpL1o/wyQPms7bqfP3/93HhD7S3SNVzMJhRnR6RbCpFq0CJ2cOGitm6nA3kW660KTatGvmS2RKdHcJ6032OrtPRc4CRVeAVpriAJEBrQGSS9WLPVBcJ0SnCOsnHMz6bMJhMuJlPK2qLzLp2NXYZa0M8Ug0zT1ZB6MN4hpnNCNSP0LN2XenTf2Ebs9GCoCLMuUwEnYk7RFBxML6iEwClNE2q6wxHdbsLxwWNME2tFhDh4kKUpb775Jt/+9rdJkmR5v5qmieW+nmpzgZKawWDA/u4eL7740hLUGWPRWjM5H9N93EXreP+ClDgfwf3Z6Qnvv/sOd957n1dfe51Bt/OJbPjsTJ33eBlnWTZAUVUUlUYmHaRWJFmCSBKCTlA6QSDw1mO9jTEbztFUNeW8oCjm1KaJ1UeEIM8EfpDig6bby5BKYGwT/dsqwblAUTScnFxwMi6ZF47gDEo5lBRsbg7odUfkWYc8T5DK4WWDcQWhahBO4ExD0s24+earOAKdnW1qqVBB4oOisjBznqI2TOcV1hKlFKRiNBzRG/WpqoLStaKbrTGTJOHmzZu8/vrr9Pt9hBBUVcUHH3zAxcXFE4GVi2DcRCk6eU6v06Hf7dLv9eh2OjjnKLKMNEnagV8QFlqpIT4YmsZwcXHO8fERVVWik0+ntO+1za9tvu5KWhw7AjsXJUicWCU9+KisHjwIveYKBYRsszUDiODxUq1ATevo8pedXYsTWMXDhcXf8c91QCTgiUSG+LldB9qs2Zj5GpAs5EDX3bZLt+gigeGX3RuuMmnLAz9l0So7bp1VXNyDaOdAfKh7QlisH5ctkjbW9/dZgbrrfv789XNjLQ6PUhKLYzabMkw6qEE3smp5AlmnfU/jlfkATdWmCzsoariYESZTfDFbhlzkEja7GV4nZL08ss1VEfty2iEEMGXF/OiIw8mEsbH4ukZbQ4Jgf3uLjd0b5KNNsjRF2RJRjvGTU3zpEEIRygrRVex9/VW8r0lvb4B2IBUhkcyC48xOGVcTTmYTTBAYF2MCd3f22NvfYD6+YNKC82hyQZplvPHGG9y+ffsS8/7OO+9weHiItfbKnYzbZjpl2BuwMdxga2OTrdEWG4MNjDFMemPyPI+1tEXUrFv8zrz31FXJ4ePHPLr3Eb6qSJL0E9nw2cuEuUXRZoFDUDYNk/kMoT2q08UkAuEC3nqCr3C21VMWbakbH0u1WGPAgwoKISHTGim7ZHl0kfTa2APbNBSmpG4CZ+MZR2djzgtHmiQMO4put0MnF+SpotfJ6WRdlMhwztKYhsaWBFOREBh2ethEo3sZn3/zi+S9Hg+PjzmYzOmHLt5qGiuYEShCrIjinMcEjxGWsqpACrx7UjVaa82NGze5efMmSZJgraUsSz788EOKonjiPraPHaRSJElClmWkaYrWGq01QgjSNCVJFForpFQIoVBCYXwsno0PlGXJ2dkZ0+mMRCdPHOfTaNc2f/5svgR1MeBkmfUqZQRnMgkt0At4EcCHpSSJFHLFnIV4rbHahMeL6LFx1sa4svZ3EtpMWbmIN14HaWv3bikzotQTUiNPAzvLBAjAh7Z+7GK/a+7dEALe+RZKcakU18eBsuXn9fv2K+7rOjsXgl/uM8bePSmPsJ5RvAzE1p/RA/66nz93/byyhr4EVMCKwLScUiLp+QFisBk16oIk+AxmZTsexDJY8TZpqH10zwaF130EHpVqGG3Sc01MrBiOIrtXGMKkwfozzs/PuH90wIEp6GQZ22mX0aDDQHbpaEXeHyJGPehkiMZAOSdMJ/hZgQwd8o1tSHLoSdK/8jr0IJzOMeMj9OAmDkWJ4DxMGFPgvMRYx9zXVCoywaenEmejCHlL6EMIpFnGa6+/zmg0Wt4r5xw/+tGPGI/HTxlrotW11uRZTrfTpdPpkGZpnAxJQZ7nZElCkiQopRFCI2SCDwYTHDjPdDrj8aPHnJ+fk2V/QaDOBvBCojWxtp63lA3IKsWHGjuZUtex3IqWml63y3DYJ000wTua2lJXNUJItkZbbbBoqw8U4oDfxkDTVDWVqTg6PuP0fMb5vKH0AtUdMNwccHMro99RaBq08qQatIyI25iGxhQgPIOsQ0dGir3IM0SA7tYWatBnfnTA48fH3NjpIb3C64QyKArjsc5jfcB5h8VxcXHBxWSMdXVLJEgWSvpaSdI0prqXZUnTNDx69IgPPviA+Xz+VHp+oTm1zNpzDmPMpeDq1WZRPysGf0d1fwTUjeXR4wM+vHOXuqme1bzXNr+2eTyy93i3glPeOjxx4JdEXTlrLUKJaL8l4JKIhSszQJAxc1AEiZBt4fdLIElceV86Gi/xZSFE1k8uGDrRxs5xmb1af5dCxpI/LfBaCiKv2WVdCgWIenpXgNrqnC7v/5Nkv0Iss7V+zNC6Wn2Qq1g52bKFV6pbXLonC1D3GakPX/fz56+fW+9wWpFqTSYV3tTMmCJzQaYkzVlFWZTIAJ20QzrcRGxtQZKAMWBKKCpQCeLWDkmnC0hwC9FcF19CRtHiWcX4wSMenZ/wuJwykw693Wdna8Tr/Q1ypZF1A221Gqp5ROBFBdMxOIMebIPuIzY2oZ8CAXoCNJTVhMO7H3G7vwkhwaeCqTaMXY2xjsY5rDM0tuHw8JDjkyNsVUQOX6oYUxkCiVLkWba0F0BVVfzoRz/i4uLi6e52IVFKL/UIrbE0ddNOghYlx1Y2V1IgVbS5b9n5oql574P3+dMf/Yj5UyYMT2vPDOp0UHSEZCg8ufQo7bECTkvL/YuGs6NTQlVxY3uD2ze2GQwHZKnENhVN0wCKvNsjz3O6nYREWKypKY3DS43QCShJcAFnA2VQnFeOw1lNjaC7NaSztU1nmJJ2FalK6QtBJgIhWIIIeAFBBITUdNKcXtpHK0HQAuGgIzIS1WMeOpyMBR998JCOyNne3cVqT9N4ytJggseGWAIpANaF+KBbxLyIlZHquubd997jD//wD3n48CF5nvO9732Px48fU5ZPq9sXH06BOAMoy5L5fN4KZTZLPRxrbQxO9g5rG5qmXkQd4YOnqi337j/mO9/9PnVZP6t5r21+bXOgZadakOERBC/wLgoRuzbz1TkXBzK/eAgGhGgTDqRA+hjHFkGdj1IhwRGCWgK5FZiTl0U6edLFuQBwsABtlwHWJbfv4vu118Ia63ZZZ85Yt5e4bLtFPuQiEWSF8tY2WTvcYhvRepaXywIIpSJL1yZ8RDd3BHuItfMT4ol7ADFr97No1/38+evnKmQM1Iid1NNzgcQaGi15ZKaMz055dP+IMDe8tv8ir7+wAVsbMRN2NoWyjGLEowH0BzHernGtfl0JqYRcR6bOeXASqz2HdsaHxQmlaBjujhi+0GeQSzINsrOBkAMIGuoGvAFhCThIE0R/FzZutKUALaCgM4gxfwgujOUn79yjM7jBxot7GDGldJ5p3VCFmiZUqBBLGzZNyyK2k1RodTJDoCwKvvvd7/Clt97i85//PGma8r3vfY/333+f6XT6hMt9wcxCwFrLbDbj4uKC+XxOt9vFGENRFNRNgzG2rbhSUpcFIUR3sfeeadPwk/feI/uX/5Ki+GRA/tl5e6XQSqBdjXQNkoTGO45nBY+OJ5hpwV63w6g/ZDgaoRJBEA6VQCfJ0UkHpTsorXHO0BQldT3FSk3S6UTfvnNYE3/sOk3ojwb0jCdPMzZvv0Bne4deJ5CIBm8E3rYuGW9wocb6Ei8DKtXknT5K5pS+ofQOgaSLIsgMJ1LK0jI5HVPfLHE7BqcMwnlc5XDEAQTpl/FD6/WLli6YEKiqkh/+6Q95cP8+o9GIXq/H6ekpBwcHuLUMt0ULhOXsraoqiqJYvhYPt6IoqOsG0xicbTPD2pnEIiDc2sD5+Yz79x7TyfJnNu+1za9tHq/4MpzwPg580rOMrXPWopAEIXFixVIJuYh5a/ekdHTXEPAtmNFKsSiziI/lsgKXXZtX21XgtlxOlCNYxOl50SY+SLmUDIkmfJLNu8SqibWH+hNcXYyU8m0EoERGcNEGVz8BvlpwF1mfRQWLFQaMrtbF9yImSrSyGEtXUHttcf1wad+fSbvu5zxv/TxoQaq7pMGgqjkytxQ2cH884d3jA6qp5dX+LXb2bpLvbcf7ZYsIqAYd6A9hMIhJD7WJbNrpCaQBZBdMCiZEGtg6dKrZ2B6x4Sb0e4obX3iJ7KUtRsEjywAkoAYg+hHUzScwOwVfx4zcjU3oDwjVGb45RYptUKuJVlnVHB9eUE5KBqaiaS6QTmONxAoDOKRw6GAxwRF87JSxd4el7WeTKf/m3/xrfvbTn7G/v8/Gxgb379/nww8/fEo8HQRi9nJVV0xnMy7GF4wnY8bjMUoprHNMJhPmRUlVVbG0nlnY3i/DOBoPB2fn/PSd9+n3+5/Ihs8O6iRIpTGhwTlNCBprAhdnE87PL+jphN3NEcPhMGZ4EGfqaZ7HGbxOQSY4GzDGYIzDC4nSGUp14yzb1QhvSJVH5AK30UXmGZ0bt3njm7/D8MWXwNWU5xdMDh4zPzqirmbkwaKDBCNIlCRRGp9KZlXN0XTCqfb0yNC1QUhBIgNKBbyyGGHQWUqedQk+6iJZ76OgJhBEG9AcWVJWkT7xYeWcZXx+wWw6I2ljJ6y1VNXT0fZiXLbOMS9LxtMp/fGYvNtduqeKqqJa1FZ0rtW2itstZvcAaRvI+9ILL/LDn/zomU18bfNrmy8BzxJABNYfeMt4Ou/xvpUcac/vMqMGUioiPPEIr8D7WMVBtFhPBvCL+x3v/SIzdeVqfdLdubgviz9XMXeXr2VRI0Csr7y4xvX9ERnHj42MW/pAF0BuBeie5GqW8O2J+3f1Pq9LnywG97UzWvv/8h4/9Xbdz5+/fp54VKKpg8EkKSHtYILh8OiEx4cHbGRDXty/yeb2NqRprCahk+j2VBo6KaQ6zk6qMsqfqADdLgw34kGKAqoKnAAl2R6NUD1J8vl9+v/VN5EvD2OJt7FBfFTB3TO4OIvuXd2AcJHlTXKCamB+zPnJfU7dRwx7L7NV3UAzamtOe5yZUFUX6OwFBoMNvFTUjcM4i3PR3R4Wqt/LwaMNkWgllqwxHDw+5PTkbBkT2TQN8/nHle2K+6mt4WJ6wdHpMVtHB/SGfWyIIHA8mzCfz6iraHfvVs6BZVIakKU5b37uDb78xS/xP//hv/mVNvxUQB1KYkOMj6wamFcVk4spOEd/NKDTTRDCEoLFeYkLEr+YBfmAtwbTOIw1qDSlk+UI3cWjCb4h0Yo8TVB4GucRWYIWOZtvfp6Xv/I1ei++gg8SM6+ZHD/go5//hJO779AUlj6QYkkTi/eS0jQ8OD3n/mTOrJ8jJweMk3fov/IGYjjAm5K8l1EFQz7osjHaRAkNHrRWNK5lDp42cq8tkMRAbNui74WhPq4tBm7vfasuPmU8jtkxEAf7+XxOURQ0TRM7fnseghWboZWm3++zv7/PaGP0zOZ9aru2+RXLrW7L/7/afAWirsZ4xYEoxtx5HAIr/FLnLSZMxOuUCzCW6FZ8eJWIkKYp3jmCjyIiS8bDt7E0LOKSVNSSkiIK2S/qw67Fml2CSgscegX4PXF9T3PdLnbYnusva5di5Nb2t9rFk5IHSxbmyvbr266vc+WML7uHP4t23c/X2nPSz5VH6EBjHKVwzIJnXJQcn47BBra2+4zSBGFqMEmMUVUqatNJ1WbC2lg2rC6ju7W/C8NhBH91BdpATgytcwKV9dnu9eG3Po/42nZk4EjhdoBXh4R3UvjOB9DMEEFBk4HxMaO1HPPw4AHvnN/lrH+B+uCEV76j+dpbO8hhQmYD/V7KvBmjBxm7N2+SpF0IEYwHGYFbFPm+Ovtr2dn2/xA8TdNgjGm//tX9zznHbDbj9OyMo6OjZVJQFB++YDwdU9ZlFHEPvh2mVjZPdMLW1havvfoae3t7n8iGz15RQoMNDuGhbgTFPFDOGzCOXqoZ5BpTTilnkl5XgU4JPlBVHu9rhAdnPc4FhIK8k0aNGymj4rtKkFqgtMc7S2MMhfFcWMfs7Bz58AEDpUnzTbrpiHT3ZXa8pzAl8/sVqpqQC02qMkofOJnOuXsxZp4P6N5+hdP7R/zkpz/nfFYxurlHSDS9fo5PBDJPGYw26PVHJOk5qTCUzhBsq4Ifnj7blldGhU9ifGA12w8ruYjFj0gIEWMvjIlp597h/GWqXxBLMSWpwjnD2dnJs5j2Y9u1zZ8/m0eZklYcWAS8b6s6+IAQAd+ea9SMAyUlTiyEdrnk6lSImFyBxLfMVpIkBCXx7nIGKzK6JhdAa1ntQUqk8KuSXgsW8Sle0kAA71d1Ytvtl7F1a4kalxIvEMvKF+HqgM/HA7EnPq8zimvg7up6Hw/gnmqRFlF/wtX/HO26nz9//VwlniY0CBwzoZgEzaQMYCSbaZ+tpEt1ek6lOiRaQSeLbNbcwrwAdAR2LgAOenkEewtGbwGafQNNTagc3tVMbYl/fJfe4z7pjSGkMSuYjoC3NmC+T5hPoK4RSQ+6CcFbLi4e8dPDd7jYFoy+9jIP7p7y+D/8MWezCXuv7hNSz0avgxcNItWM9vfY2Nklv39MJ02ZNRJvPL6NpyTI1Uy1vfMLCfKFRT6ZzS//Rnzrfi+rirqqkFLGRJuqom5qrDNYZ66MKbKd9GhMU/L44YNPZMNnBnVKS6x34KGuBYVwmNqTCYnONKnwuKqgmirMIKOfx5lR05iYCWIcwQV0oun2e+Rpik4i1S2EAKnxSlN5y7i2HI0rHpyMeTyrKe6dsXVccPsLX2Bv/zV2tl5g/+YGenOTwc0bTI/u0swcwguUTEHCpJpQBM3WrVf4wjd/lw/Tn/ODP/oP/ODBf6S3tclrX/4Cmy/dZDAaopKEzmDAcHMTlT7EtgWXrQ+4p7hPxLLDP9tIG0KMwajrmqIo2pRnxXw+Zz6ftz+EppVcuBxbE2twag6PDqk+YWDlr9uubb5+y58Pm8fH0pVKCCHWgZUiuqy893gXvSoE8GpVnDxikOgKjQK6ARkCQipQHq013q0YDRbvIeDDguWTKCWRciVfstD1+mXuyKXDM3ikiAXIl6AOYhUMFhhvla27zLcNHv/ETsMl1+0TbenGWYG6xTaXYMFVWnF9+48BeWH9g+DXAIK/Xrvu5+uWeT76uUoEjavBe0oyJkbRWEVXdciyQMdJzKRgrif0ez1EmgEhMnBls0iZhjSBjSFkOSgXRfeEhkxAJgiNJdQFs9kBd48e8l5xwOSR4tbkA9789pe4+daXyIY9pBSIVBBeGuJ+EpCuQYkNyFOg4fSkYpw6bnz1Lb75v/1b/PTf/4Q/+B//NX/wf/tXbN4Y8vVvf42bn9tjY3cLoSSD7Q12buyh8ncxk5rGNTTB4YK73FeBRY2+X65S+fFtnaFtjKEsSyaTCXmeo5XiYhxj7GazGWVVrhjadXsoSZal3L1zh9nk41y9l9szg7recIgfTzA+xjEW3pAA3TQly3Q8gGuL1dZzmiZFuBgoGEKcOadaMRgM6A66kOVYAZr/b3tn1hzXcR3gr/uus2EHF3CRSUllV0l5SJynVJKqPOWX5he4/OK4krzYZcVOtJuhLAGEAIIYYNY7y127Ow/33sGAu0CKJQP9VRFg1cxdZg5O39NndXGMQ+56jJOMQWzYPR6z/+SU7x53GcUpJmyxNk5Y2d5me+Mu42EfP9RsboZsXr/GY+GQJgUiCFAmR2nNJNZEKXywc5dbt95HDVK+a3yKiiKc2Yxk2Cf88A5bW5s4nksjDHEDD+0I0nFKrssF/kWqXYd/LqL6pvqplFrE6ieTyWKOYJZlzOdz4jiukjMNUoilB44BUc4XNEpzetK9wF28Givz81wFmdcPNCHKofNl5w1TTo6oc8lMOcNU5RrHc8rFXZeJ/g6cectcSV0V4AhKQ8eUs1+lMDiyCjtp0KastEWKqrDAVOFYg8QpwzG6DI7K6lyLd5iyqV7pgatep5pWgVl40YQoDTu5lDNoYOn/ArMYGFbt1F9iSD0VoK7y9FikZT13nmt1H8qc/aGJOs/nmQvU1zeLY38MrJ6f5yro+frWBupUk2aKeSqIdI4vXFYaHVoe+LggfNQ8wwzHZRNizynDrbX++CFsbsJqE1oukJ+NE/MLdDIj0RP2Th/y9aNv+d+9hxzPB5i1kOuTY7beu8atn0ORFri+U+rBdpvULY3BTrMNiQadMyxyehT84uN7tD7+gA9nPp/+5nNUL8UZw+xoSPvj2+zcvg2OpNlo4DddtJszn2ekOkdVebvPIECauin6xaWeFznj0Yh9oNfr4VQtjeI4ZhxFTCcTsjwFU3qCdb0fNAphNIHvowvN/qP917rqGxt1792/x2h/n/HpCUleEOAQ+C5BIGgEEtcxOLoMY+hckcQpOA7S9fBdh4Yb0A48wmYTJwwppAvCUChBpgW9aMZef8Kj/oTYazJwrzGSOSM1RcQGM5wy6A7ZWO0SzfaZTK7R+Og+bQMq16AFWWEwSpKkisFoRjTPiGcFk5MIU2hubG8T5glBI6DdaOJJD5Qhi1OEMeQqJ84TCqWqoeQvivScuWzfZEdXqAI1VyRJUvW0Khs7GmNQdZvxp34uIv/VAu957iJn421jZX7GVZG5WfJSLDx1mjIkqylHd1W9l8ow7dI/bRZjxqQwGCMRizDk+dCnqapUweA4EqHLCRC1R0pW7VPK8Gg9NJuqQnQpR63eJz/t7aq3z/WOeCkX7+wNLD5n2Svs2T51P4xlD9zzz3Su/9xiURfnD63uaVER/HShyFvG6vkZV0XPP/7lx3S/OOR0/5hpGtMkoOkGtBpt2q4m0BrPOGW1d6Ex86TMgfN9hB+W4dawXebQtRzwAaNAKozIyaNTuv1HPOjtMV1xOLqzytG0Sbc/w9EGM4w4Ohpw66BPdzTi9r2bbNzdBiHIC4ODKMO9rkOWwtF4TC+ZkqSGrJ+Bcrh/9x6tKTQbAesrG4R+E6kEqLKNUpJMmcxG5EVe9sukChXDUx7459ax/yAMpVEXTcZMZzNc16l63ZWbTqXU0t+WOftVF0hVuh4EAZ1O57Wu+cZG3c77P0PqlPE0Is7mNBBIz6XZ9PBCg9F52a1bSHIjEEUZTgl9n0bYJPAdfN8rhaQlmXCYa000LYjGU/ZOexxOMrLGKoQrfD8cs38ak84zfFei0Rw86iHFLsPJCN8Hne4wiydMx1OCXKO8srIums6ZTaegNId7u4yihHHvCWm/i6Mz1oIWW2trtMImIjcU0xgVJxhT9sWRGBxKr4A++/af+U6ebiv4utSl62WOsSkHmle5FYuFeznc/9Rx9VuSZI5SbTY21i5wF6/GyvzqyRwqI4el0CiizJsqY5RlKX7lJ9NVNaFSCuXIqnFxNbNVl21MhFnMQSp3rwLqKQp1UYbWGl1VoLEw6uqJrC8akXU+b+2ssevLF+hFxZlYMp7gmfzp+rt/3rSH53EmR7H4/jh7blSevJcbaLWxsXzd+nfZD+vtY/X86un5h3/3ATJLORl0mSQxHdPGCVqsyCahSVBJjBKKXGoKaZC6ACMQzVbZysRvg98CT5btThyD0RlFNmfaP2T38AHfxD3mWwGq0+FP3+zzycG3TKMZbb/BTLp8/vAxTvMLnvQO8b1/YOPONmauiIYzWsqAU+rldDRkNBhiVMHeZw8ZRRknj/aY73Vx44wba+vcuXGbtdUtJD4kGh0X6CxFFxlCl15jjUGhq3zh8zI31O2VfrjUz8tco1VGoZZeg/MbzOXjKEcaCmOYRhHFxhY7199RoUS4vsLGnZv0BiMGeRdV5SQYR6AdUaqLMMyVwVdQKMi1Ic8FwisXeKUVjhEUomCicrqzmO9PZhwPYkyrRdJY4UkUs/vnLzk+HRDPCzzh4siQImvSO0nxwj5r201uXt9G5zmnj5+QximBEaVbXeXE+Yy1TkDo+syiPo+HYyZRH5FEtLRmdXON1dVVVtorNJsruFqQTqaoPCXwXRwhcJCoqjfV8ygfaRfbyS0eEs85/JXJmQJc18XzXGazGVEQsbqycqH7eBVW5ue5CjKvPV9nVZyVmaHMYmEqiqKMsxqNkrI06JSiKCS5KIMYjhBoR1ZGXem5gyo3Toiy4a5L1avJnHXcrz6vEGeLHvqsgGJxn1UOnnhBEcNLqaOd1W793GP9mcW+fvHpHnln13tuIYU8m4yxXOEonnOup25t6cKmisadGa4/BlbPz3MV9Lx9rcGtD65zePSEo/SUXGlyCgwFSuYUUoFQRDqlSUCIS2oMTUICWSCKpMpZFRij0FlMNDniL6Meu6MBZt1jstbmQe+QP/z3v/PN9wdEcYrQPpmWyMTw5cExXqfB3Vur3Ni5UWZM7PfJ5xnSaUCRQlqQjU643mzSCt9j/LjLw9N9+ocHiN6M9aLB9esbbG9v09m+gdjcBOExH8wp4oSm7+NJF08aCq0ptxBLQdi6WKIyyC4UfH2FzF/WgxNRtq8JgoDxeEyv12N7+x0ZdRNTEGytceODn1HkBoZD5mqKU2gC45T5N1KSIYi1YBbnDGcxyIROwydEs9Zu0Gw1SArF/nDGbrfLULW59fO/59qdHf701Vd8+uAv9IZjMA6+aNBprLPSWqHTWcHITWSwyt/88iNu3r1LNOyzt3tAEivWwhDjSVQR44eCW9fXmAMHUc40zYhJ0U6O0JCg0I4g8Hwano/UEpkpXKnxGx6ucNAuqKIcbXRuKuDSqluvu++OMlS1vr5Gq9Uizwvm84TA/3Fc9FbmFVdA5vWik1WJ2/WoJGHKfBNZ7Sil1DiFwtFlPzCFQAvJNM3wjSHXqpqhKlCmylIzGokpjcBCl/l5pmxIbIxGaYPWVCNzlhD19heE0DhVI+SF3VR585ZHfkkpkI5EOrKaSVsZQ3W/lTofSFSfSJ6d8JmmxLzAYDMsZd49i6hdbeL5Xr5Fn7yXeBTryR6lC7E8xyx/dVuNi2D1vBbO4tu/tHpeM0j7tG6E3P/be2Q5cFQQzUa4Jqbl5jhIcFoksiASOaM04skkhumAjbBLy3hstddpdJrERczD0SGf7X7BUSfg/X/5R+5/dI9f/eev+dXvfsv33SdoXITbobN+k7W1bVa3tkjWr1OsrfBP//rPrN3eohjOOXzwHfNcs90KMI6C6YSm1Pzixg5jM+XP6YjBvEs066LTMcJsMVURSipE2ISGV1bS5xAUmkYg8d0AbQRFVSihEctmHQjz1Gbq7fJCfTUGV0puXrvG2vo6SZYxns5otn/kiRL1DX318CGroYMoNIXvMC9yprM546LATwS+5+JnZSK0nxYkynDcn6GMoRV6bLQarLebBKFHfzZnrx/Ri+c4m/dZcUMOvtnjj18/oDseo1SBh8ANHBzXAemSG5fRNGP88DvC9YLD/X3i0YDjb/+PVV1QdAJGJkEnc7IiI9UFg3lMb24YFS6xnqOyhHiu8LsnuA+/4VQJmq0ujhbs7u0ynU7RSiMdB2nKBxiqdsjW1nido8M7Vfr6slJKms0GQRAwn8cUWb7o9fW2Fnsr86sn88lkAsC/nZy+xrtP3so1LRdjMpmcGzh+UayeXz09r8/zH5/8FzdkC6FDsjBjnA8ZRBEn+YxQJLS8kMBJEUrTyJpMdcruaEBuCtYbLW62N9lZ2SAMfI7GXT7rP+L78SHio3uE4ZTP//hbfv373/B4/IRcZYCgGXp4nosMPXTDp5/M+d2n/8POasF7X91mdtRj9/dfci1vkzWv0ZmBGc/I4phZPuMoOubATDn2j5lGT8hnM6Z5TmPvAd4n69wXY9p7N5Ai4MGnX9MfDtBKlXNZ0TjaAbXkpQfqpsPv2oivL+U6DiudDs1mk/FkQpb2KV5T5sJc8K/i8PCQO3fuXORQyzvm4OCA27dvv/F5rMz/enhbMtdac3R0RKfT+dHCfJY3wxjDZDJhZ2fnbG7tG2D1/K8Hu7ZfPV4l8wsbdXax/+nzthd7K/OfPm9b5parh9Xznz52bb96vK7ML2zUWSwWi8VisVh+OtitvMVisVgsFsslwBp1FovFYrFYLJcAa9RZLBaLxWKxXAKsUWexWCwWi8VyCbBGncVisVgsFsslwBp1FovFYrFYLJcAa9RZLBaLxWKxXAKsUWexWCwWi8VyCbBGncVisVgsFsslwBp1FovFYrFYLJcAa9RZLBaLxWKxXAKsUWexWCwWi8VyCfh/omoeyS/FlU8AAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 5 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 随机应用列表中的变换之一，p=None意味着各变换被选中的概率相同\\n\",\n    \"applier = T.RandomChoice(transforms=[T.RandomCrop(size=(64, 64)), T.ColorJitter(brightness=.5, hue=.3), T.Lambda(lambda x: x)], p=None)\\n\",\n    \"transformed_imgs = [applier(orig_img) for _ in range(4)]\\n\",\n    \"plot(transformed_imgs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"DL\",\n   \"language\": \"python\",\n   \"name\": \"dl\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"varInspector\": {\n   \"cols\": {\n    \"lenName\": 16,\n    \"lenType\": 16,\n    \"lenVar\": 40\n   },\n   \"kernels_config\": {\n    \"python\": {\n     \"delete_cmd_postfix\": \"\",\n     \"delete_cmd_prefix\": \"del \",\n     \"library\": \"var_list.py\",\n     \"varRefreshCmd\": \"print(var_dic_list())\"\n    },\n    \"r\": {\n     \"delete_cmd_postfix\": \") \",\n     \"delete_cmd_prefix\": \"rm(\",\n     \"library\": \"var_list.r\",\n     \"varRefreshCmd\": \"cat(var_dic_list()) \"\n    }\n   },\n   \"types_to_exclude\": [\n    \"module\",\n    \"function\",\n    \"builtin_function_or_method\",\n    \"instance\",\n    \"_Feature\"\n   ],\n   \"window_display\": false\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 1\n}\n"
  },
  {
    "path": "HW03/README.md",
    "content": ">  ML2023Spring - HW3 相关信息：\n>\n>  [课程主页](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php)\n> \n>  [课程视频](https://www.bilibili.com/video/BV1TD4y137mP/?spm_id_from=333.337.search-card.all.click&vd_source=436107f586d66ab4fcf756c76eb96c35)\n> \n>  [Kaggle link](https://www.kaggle.com/t/86ca241732c04da99aca6490080bae73)\n> \n>  [Sample code](https://colab.research.google.com/drive/15A_8ilH-6-T3HOmSFrKbjDinBJl-s-16)\n> \n>  [HW03 视频](https://www.bilibili.com/video/BV1TD4y137mP/?p=30&share_source=copy_web&vd_source=e46571d631061853c8f9eead71bdb390)\n> \n>  [HW03 PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW03.pdf)\n>  \n>P.S. 即便 kaggle 上的时间已经截止，你仍然可以在上面提交和查看分数。但需要注意的是：在 kaggle 截止日期前你应该选择两个结果进行最后的Private评分。\n>  每年的数据集size和feature并不完全相同，但基本一致，过去的代码仍可用于新一年的 Homework。\n>\n>当前文件名后的 tag 分别对应达成了 kaggle 的 public score 的baseline。\n>  \n>Q1 文件夹对应于 Q1. Augmentation Implementation。\n\n- [任务目标（图像分类）](#任务目标图像分类)\n- [性能指标（Metric）](#性能指标metric)\n- [数据解析](#数据解析)\n  - [数据下载（kaggle）](#数据下载kaggle)\n- [Gradescope (Report)](#gradescope-report)\n  - [Q1. Augmentation Implementation](#q1-augmentation-implementation)\n  - [Q2. Visual Representations Implementation](#q2-visual-representations-implementation)\n- [Baselines](#baselines)\n  - [Simple baseline (0.637)](#simple-baseline-0637)\n  - [Medium baseline (0.700)](#medium-baseline-0700)\n  - [Strong baseline (0.814)](#strong-baseline-0814)\n  - [Boss baseline (0.874)](#boss-baseline-0874)\n- [小坑](#小坑)\n- [参考链接](#参考链接)\n\n# 任务目标（图像分类）\n\n使用 CNN 进行图像分类\n\n# 性能指标（Metric）\n\n在测试集上的分类精度：\n$$\nAcc = \\frac{pred==label}{len(data)} * 100\\% \\nonumber\n$$\n\n  # 数据解析\n\n- ./train (Training set): 图像命名的格式为 \"x_y.png\"，其中 x 是类别，含有 10,000 张被标记的图像\n- ./valid (Valid set): 图像命名的格式为 \"x_y.png\"，其中 x 是类别，含有 3,643 张被标记的图像\n- ./test (Testing set): 图像命名的格式为 \"n.png\"，n 是 id，含有 3,000 张未标记的图像\n\n数据来源于 food-11 数据集，共有 11 类。\n\n## 数据下载（kaggle）\n\n> To use the Kaggle API, sign up for a Kaggle account at [https://www.kaggle.com](https://www.kaggle.com/). Then go to the 'Account' tab of your user profile (`https://www.kaggle.com/<username>/account`) and select 'Create API Token'. This will trigger the download of `kaggle.json`, a file containing your API credentials. Place this file in the location `~/.kaggle/kaggle.json` (on Windows in the location `C:\\Users\\<Windows-username>\\.kaggle\\kaggle.json` - you can check the exact location, sans drive, with `echo %HOMEPATH%`). You can define a shell environment variable `KAGGLE_CONFIG_DIR` to change this location to `$KAGGLE_CONFIG_DIR/kaggle.json` (on Windows it will be `%KAGGLE_CONFIG_DIR%\\kaggle.json`).\n>\n> -\\- [Official Kaggle API](https://github.com/Kaggle/kaggle-api)\n\n`gdown` 的链接如果挂了或者太慢，可以考虑使用 `kaggle` 的 `api`，流程非常简单，替换\\<username\\>为你自己的用户名，`https://www.kaggle.com/<username>/account`，然后点击 `Create New API Token`，将下载下来的文件放去应该放的位置：\n\n- Mac 和 Linux 放在 `~/.kaggle`\n- Windows 放在 `C:\\Users\\<Windows-username>\\.kaggle`\n\n```bash\npip install kaggle\n# 你需要先在 Kaggle -> Account -> Create New API Token 中下载 kaggle.json\n# mv kaggle.json ~/.kaggle/kaggle.json\nkaggle competitions download -c ml2023spring-hw3\nunzip ml2023spring-hw3\n```\n\n# Gradescope (Report)\n\n> `from PIL import image`\n>\n> 什么是 PIL？\n>\n> PIL (Python Image Library) 是 python 的第三方图像处理库，支持图像存储，显示和处理，能够处理几乎所有的图片格式。\n>\n> PIL.Image 模块在 sample code 中用于加载图像。\n\n## Q1. Augmentation Implementation\n\n需要完成至少 5 种 transform，这一步能让你熟悉 Data Augmentation 到底是在做什么。\n\n直接看代码部分，调用了 transforms 中的函数。\n\n![image-20230331210628055](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230331210628.png)\n\n往回追溯：\n\n![image-20230331211403647](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230331211403.png)\n\n可以看到 transforms 其实就是 torchvision.transforms。\n\ntorchvision.transforms 是 pytorch 中的图像预处理包，提供了常用的图像变换方式，可以通过 Compose 将多个变换步骤整合到一起，你可以查看这篇文章：[torchvision.transforms 常用方法解析（含图例代码以及参数解释）](https://blog.csdn.net/weixin_42426841/article/details/129903800)进一步了解，最好是自行组合 5 个跑几次实验之后再偷懒。\n\n下面的代码可以让你看到 train_tfm 究竟做了什么变换。\n\n```python\n# I want to show you an example code of Q1. Augmentation Implementation that visualizes the effects of different image transformations.\nimport matplotlib.pyplot as plt\n\nplt.rcParams[\"savefig.bbox\"] = 'tight'\n\n# You can change the file path to match your image\norig_img = Image.open('Q1/assets/astronaut.jpg')\n\n\ndef plot(imgs, with_orig=True, row_title=None, **imshow_kwargs):\n    if not isinstance(imgs[0], list):\n        # Make a 2d grid even if there's just 1 row\n        imgs = [imgs]\n\n    num_rows = len(imgs)\n    num_cols = len(imgs[0]) + with_orig\n    fig, axs = plt.subplots(nrows=num_rows, ncols=num_cols, squeeze=False)\n    for row_idx, row in enumerate(imgs):\n        row = [orig_img] + row if with_orig else row\n        for col_idx, img in enumerate(row):\n            ax = axs[row_idx, col_idx]\n            ax.imshow(np.asarray(img), **imshow_kwargs)\n            ax.set(xticklabels=[], yticklabels=[], xticks=[], yticks=[])\n\n    if with_orig:\n        axs[0, 0].set(title='Original image')\n        axs[0, 0].title.set_size(8)\n    if row_title is not None:\n        for row_idx in range(num_rows):\n            axs[row_idx, 0].set(ylabel=row_title[row_idx])\n\n    plt.tight_layout()\n\n# Create a list of five transformed images from the original image using the train_tfm function\ndemo = [train_tfm(orig_img) for i in range(5)]\n\n# Convert the transformed images from tensors to PIL images\npil_img_demo = [Image.fromarray(np.moveaxis(img.numpy()*255, 0, -1).astype(np.uint8)) for img in demo]\n\n# Plot the transformed images using the plot function\nplot(pil_img_demo) \n```\n\n![train_tfm](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230525110043.png)\n\n## Q2. Visual Representations Implementation\n\n下图是 Top/Mid/Bottom 的定义，你可以在 sample code 的最下面找到完成这个问题的代码。\n\n![ CNN architecture](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230525110040.png)\n\n根据你的模型修改其中的 index。\n\n# Baselines\n\n> 为了方便理解，我将原文件重新分为了三部分： Medium，Strong，Boss，每一个都可以独立运行，并相应的达成 baseline，你可以查看这些文件来帮助自己更好的掌握知识。\n\n## Simple baseline (0.637)\n\n- 运行所给的 sample code\n\n## Medium baseline (0.700)\n\n- 做数据增强\n\n  RandomChoice 很好用，另外，lamda x:x 可以返回原图。\n\n- 训练更长时间\n\n  根据 PDF 给出的参考训练时间，simple 是 0.5h，medium 是 1.5h，那么在这里我选择的是简单的将原来的 epoch *= 3，也就是 24 个 epoch 来进行最终的训练\n\n## Strong baseline (0.814)\n\n- 使用预训练模型\n  这里你可能有疑惑：不是说不能使用预训练模型吗？\n  是的，你只能使用预训练模型的架构，不能使用预训练的权重，下面是不使用权重的参数设置。\n\n  - Torchvision 版本 < 0.13 -> **pretrained=False**\n  - \\> 0.13 -> **weights=None**\n\n  模型对比 (160 epoch, 10 patience, ReduceLROnPlateau，使用了相当于原数据20倍的transforms，单纯修改最后一层的输出维度为 11) ：\n\n  - 初始模型：0.80000\n  - resnet50: 0.732\n  - vgg16: 0.64733\n  - densenet121: 0.76533\n  - alexnet: 0.61866\n  - squeezenet: 0.64200\n\n  我觉得这一项的主要目的在于让你认识这些预训练模型的架构，因为可以看到，不使用预训练参数的情况下，实验结果并没有变得更好（使用预训练参数的话，以resnet50为例，仅使用预训练模型就可以轻松到达strong baseline，你可以试试，但不要用它来当作你的kaggle结果）。\n  <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230406145717.png\" alt=\"image-20230406145717393\" style=\"zoom:50%;\" />\n\n  但既然PDF中的hint仅仅只是使用预训练模型，我相信一定有什么地方可以调优，使得仅使用预训练模型架构就可以达到 strong baseline，简单对比了使用参数和不使用参数的情况下 acc 的提升情况，发现同样的 lr，使用预训练参数的时候上升幅度更大，所以我想了下：\n\n  1. 有没有可能是我的 lr 太小了？调大试试\n  2. 会不会是我的transforms不够，因为在我的代码中，5%的可能性不进行transforms，也就是说，20倍的数据增强。50倍试试\n  3. Medium baseline的工作没做好，加TTA（Test Time Augmentation），将train_tfm用到测试集上试试\n\n  但上述方法都没有得到好的效果，最终我直接用最开始的CNN模型跑了200多个epoch完成了该strong baseline。\n\n  PS：可以将残差和的思想用于模型架构中提升基础性能\n  \n  ![image-20230408113446125](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230525110050.png)\n  \n  因为佛系更新，所以我开始慢慢打磨之前的代码文件 :)\n  \n  我在代码的全连接层增加了 dropout，并跑了一些实验（100 个 epoch）来寻找较好的 dropout_rate，简单分享一下，也许可以节省你的时间。\n  \n  ![image-20230424205151073](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230525110053.png)\n  \n  对应的 kaggle 得分：\n  \n  | dropout_rate | public_score | private_score |\n  | ------------ | ------------ | ------------- |\n  | 0            | 0.78466      | 0.79266       |\n  | 0.1          | 0.78800      | 0.79266       |\n  | 0.2          | 0.78400      | 0.78333       |\n  | 0.25         | 0.80866      | 0.79666       |\n  | 0.3          | 0.79866      | **0.81666**   |\n  | 0.4          | 0.79000      | 0.79466       |\n  | 0.45         | 0.78866      | 0.79800       |\n  | 0.5          | **0.81666**  | 0.80000       |\n  | 0.55         | 0.79533      | 0.79000       |\n  | 0.6          | 0.77733      | 0.78466       |\n  \n  仅从 public_score 考虑，接下来都片面的选择 dropout_rate=0.5。\n  \n  可以看到，在仅增加 dropout 层的时候，100个epoch便能达成strong baseline，虽然很勉强，但参考时间所对应的 epoch 是大于等于 160 的，所以在此便已经完成了目标。\n  \n  注意一下，预训练模型直接使用：self.cnn = nn.Sequential(*list(resnet50(weights=None).children())[:]*) 后再加全连接层的话会出 shape 不匹配的错误，应该使用 self.cnn = nn.Sequential(*list(resnet50(weights=None).children())[:-1]*) 后 flatten 处理再接全连接层，这里说起来可能不直观，可以去代码中理解，如果你不需要完成 Q2，那不赋值给 cnn 一样可以。\n\n## Boss baseline (0.874)\n\n  - Cross validation 交叉验证\n\n  - Ensemble 模型集合\n    相关视频: [ML Lecture 22: Ensemble ](https://www.youtube.com/watch?v=tH9FH1DH5n0)，如果没有科学上网，这里是两个相同视频的链接地址：[bilibili](https://www.bilibili.com/video/BV1qx411f7eM)，[学校官网](http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2017/Lecture/Ensemble.mp4)。\n\n    关于stacking，这里有两个非常不错的链接供你学习：[Kaggle机器学习之模型融合（stacking）心得](https://zhuanlan.zhihu.com/p/26890738)，[Introduction to Ensembling/Stacking in Python](https://zhuanlan.zhihu.com/p/26890738)\n    \n    但其中的细节对于当前的 hw 来说其实有一些问题，不能直接搬运。\n    \n    1. 有一件事困惑了我很久，在做 stacking 的时候，为了严谨，我检查了同个模型跑出来的结果，然后发现导入相同的模型跑出来的结果竟然不相同，将代码精简后也无果，最后我检查发现，是因为 train_tfm 让其每次的输入都不同 :(\n       那问题就明了了，可以将 kfold 分出的 valid_set 用 test_tfm 来固定它，具体实现：重写 subset 类，传入 tfm 决定使用哪种 transform。\n    \n    在做完 CV 和 stacking 后，kaggle 的分数卡在了 0.853，有一个提升方法是在 strong baseline 下修改 Classifier 的架构以获得更好的初始结果。\n    \n    原本只打算每次训练 160 个 epoch 就更新的，因为 epoch 到 120 左右的时候（patience=20），Classifer 就已经 early stop 了，但实际上 ResNet50 和 DenseNet121 的性能仍然有提升空间，思考了一下，还是决定重新跑300个epoch（patience=30）的实验并上传对应的模型参数方便大家复现。\n    \n    不知道是否是我的原因，但 TTA 在此处的提升不大。\n    \n    下表是各模型在 epoch=200, patience=20, dataset=merge 下的 kaggle 分数，& 表示stacking。\n    \n    | model                               | publicScore | privateScore |\n    | :---------------------------------- | :---------- | :----------- |\n    | Classifier & ResNet50 & DenseNet121 | **0.85333** | **0.84200**  |\n    | Classifier                          | 0.84200     | 0.83133      |\n    | Classifier & DenseNet121            | 0.83866     | 0.83333      |\n    | ResNet50 & DenseNet121              | 0.83666     | 0.82466      |\n    | DenseNet121                         | 0.83666     | 0.83133      |\n    | Classifier & ResNet50               | 0.83400     | 0.82066      |\n    | ResNet50                            | 0.82600     | 0.81000      |\n\n# 小坑\n\n1. 注意你的 lr，我在做 cross validation 的时候，不小心将 lr 设置的过大，导致一开始学习的很差，还以为是数据集划分的索引问题，折腾了半天。\n2. 如果你将`train`文件夹和`valid`文件夹下的内容合并成一个新的文件夹（为了做 cross validation），那么在做 K-fold 的时候，序号一定要 shuffle 去打乱，你只要默认打乱了，就不需要考虑太多，否则就会出现一种情况：验证集的标签有可能在训练集中不存在，那就意味着，你的模型可能几乎没见过验证集里面的 label，如果完全没见过，那 acc 甚至有可能是 0。下面是我当时疏忽导致的 bug:![image-20230407205208218](https://blogby.oss-cn-guangzhou.aliyuncs.com/20230525110018.png)\n\n\n\n\n# 参考链接\n\n[Image Module - Pillow (PIL Fork) 9.4.0 documentation](https://pillow.readthedocs.io/en/stable/reference/Image.html)\n\n[TRANSFORMING AND AUGMENTING IMAGES](http://pytorch.org/vision/stable/transforms.html)\n"
  },
  {
    "path": "HW04/HW04_Boss_0.95125.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Boss Baseline\\n\",\n    \"You can search for the “Boss” tag to check for changes (Ctrl + F or Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"C_jdZ5vHJ4A9\"\n   },\n   \"source\": [\n    \"# Task description\\n\",\n    \"- Classify the speakers of given features.\\n\",\n    \"- Main goal: Learn how to use transformer.\\n\",\n    \"- Baselines:\\n\",\n    \"  - Easy: Run sample code and know how to use transformer.\\n\",\n    \"  - Medium: Know how to adjust parameters of transformer.\\n\",\n    \"  - Strong: Construct [conformer](https://arxiv.org/abs/2005.08100) which is a variety of transformer. \\n\",\n    \"  - Boss: Implement [Self-Attention Pooling](https://arxiv.org/pdf/2008.01077v1.pdf) & [Additive Margin Softmax](https://arxiv.org/pdf/1801.05599.pdf) to further boost the performance.\\n\",\n    \"\\n\",\n    \"- Other links\\n\",\n    \"  - Competiton: [link](https://www.kaggle.com/t/49ea0c385a974db5919ec67299ba2e6b)\\n\",\n    \"  - Slide: [link](https://docs.google.com/presentation/d/1LDAW0GGrC9B6D7dlNdYzQL6D60-iKgFr/edit?usp=sharing&ouid=104280564485377739218&rtpof=true&sd=true)\\n\",\n    \"  - Data: [link](https://github.com/googly-mingto/ML2023HW4/releases)\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"gtKxUzSgXKj3\",\n    \"outputId\": \"3f59402c-95a7-4fbd-a39c-57606590a89c\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partaa\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partab\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partac\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partad\\n\",\n    \"\\n\",\n    \"# !cat Dataset.tar.gz.part* > Dataset.tar.gz\\n\",\n    \"# !rm Dataset.tar.gz.partaa\\n\",\n    \"# !rm Dataset.tar.gz.partab\\n\",\n    \"# !rm Dataset.tar.gz.partac\\n\",\n    \"# !rm Dataset.tar.gz.partad\\n\",\n    \"# # unzip the file\\n\",\n    \"# !tar zxf Dataset.tar.gz\\n\",\n    \"# !rm Dataset.tar.gz\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"U6Y1cfpDfpON\",\n    \"outputId\": \"6ba26637-5c7b-48a9-be0b-1f10ba76590a\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# !tar zxf Dataset.tar.gz\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"id\": \"E6burzCXIyuA\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"def set_seed(seed):\\n\",\n    \"    np.random.seed(seed)\\n\",\n    \"    random.seed(seed)\\n\",\n    \"    torch.manual_seed(seed)\\n\",\n    \"    if torch.cuda.is_available():\\n\",\n    \"        torch.cuda.manual_seed(seed)\\n\",\n    \"        torch.cuda.manual_seed_all(seed)\\n\",\n    \"    torch.backends.cudnn.benchmark = False\\n\",\n    \"    torch.backends.cudnn.deterministic = True\\n\",\n    \"\\n\",\n    \"set_seed(87)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"k7dVbxW2LASN\"\n   },\n   \"source\": [\n    \"# Data\\n\",\n    \"\\n\",\n    \"## Dataset\\n\",\n    \"- Original dataset is [Voxceleb2](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/vox2.html).\\n\",\n    \"- The [license](https://creativecommons.org/licenses/by/4.0/) and [complete version](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/files/license.txt) of Voxceleb2.\\n\",\n    \"- We randomly select 600 speakers from Voxceleb2.\\n\",\n    \"- Then preprocess the raw waveforms into mel-spectrograms.\\n\",\n    \"\\n\",\n    \"- Args:\\n\",\n    \"  - data_dir: The path to the data directory.\\n\",\n    \"  - metadata_path: The path to the metadata.\\n\",\n    \"  - segment_len: The length of audio segment for training. \\n\",\n    \"- The architecture of data directory \\\\\\\\\\n\",\n    \"  - data directory \\\\\\\\\\n\",\n    \"  |---- metadata.json \\\\\\\\\\n\",\n    \"  |---- testdata.json \\\\\\\\\\n\",\n    \"  |---- mapping.json \\\\\\\\\\n\",\n    \"  |---- uttr-{random string}.pt \\\\\\\\\\n\",\n    \"\\n\",\n    \"- The information in metadata\\n\",\n    \"  - \\\"n_mels\\\": The dimention of mel-spectrogram.\\n\",\n    \"  - \\\"speakers\\\": A dictionary. \\n\",\n    \"    - Key: speaker ids.\\n\",\n    \"    - value: \\\"feature_path\\\" and \\\"mel_len\\\"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"For efficiency, we segment the mel-spectrograms into segments in the traing step.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"KpuGxl4CI2pr\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import json\\n\",\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"from pathlib import Path\\n\",\n    \"from torch.utils.data import Dataset\\n\",\n    \"from torch.nn.utils.rnn import pad_sequence\\n\",\n    \" \\n\",\n    \" \\n\",\n    \"class myDataset(Dataset):\\n\",\n    \"    def __init__(self, data_dir, segment_len=128):\\n\",\n    \"        self.data_dir = data_dir\\n\",\n    \"        self.segment_len = segment_len\\n\",\n    \"\\n\",\n    \"        # Load the mapping from speaker neme to their corresponding id. \\n\",\n    \"        mapping_path = Path(data_dir) / \\\"mapping.json\\\"\\n\",\n    \"        mapping = json.load(mapping_path.open())\\n\",\n    \"        self.speaker2id = mapping[\\\"speaker2id\\\"]\\n\",\n    \"\\n\",\n    \"        # Load metadata of training data.\\n\",\n    \"        metadata_path = Path(data_dir) / \\\"metadata.json\\\"\\n\",\n    \"        metadata = json.load(open(metadata_path))[\\\"speakers\\\"]\\n\",\n    \"\\n\",\n    \"        # Get the total number of speaker.\\n\",\n    \"        self.speaker_num = len(metadata.keys())\\n\",\n    \"        self.data = []\\n\",\n    \"        for speaker in metadata.keys():\\n\",\n    \"            for utterances in metadata[speaker]:\\n\",\n    \"                self.data.append([utterances[\\\"feature_path\\\"], self.speaker2id[speaker]])\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"            return len(self.data)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, index):\\n\",\n    \"        feat_path, speaker = self.data[index]\\n\",\n    \"        # Load preprocessed mel-spectrogram.\\n\",\n    \"        mel = torch.load(os.path.join(self.data_dir, feat_path))\\n\",\n    \"\\n\",\n    \"        # Segment mel-spectrogram into \\\"segment_len\\\" frames.\\n\",\n    \"        if len(mel) > self.segment_len:\\n\",\n    \"            # Randomly get the starting point of the segment.\\n\",\n    \"            start = random.randint(0, len(mel) - self.segment_len)\\n\",\n    \"            # Get a segment with \\\"segment_len\\\" frames.\\n\",\n    \"            mel = torch.FloatTensor(mel[start:start+self.segment_len])\\n\",\n    \"        else:\\n\",\n    \"            mel = torch.FloatTensor(mel)\\n\",\n    \"        # Turn the speaker id into long for computing loss later.\\n\",\n    \"        speaker = torch.FloatTensor([speaker]).long()  # .long().dtype = torch.int64\\n\",\n    \"        return mel, speaker\\n\",\n    \"\\n\",\n    \"    def get_speaker_number(self):\\n\",\n    \"        return self.speaker_num\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"668hverTMlGN\"\n   },\n   \"source\": [\n    \"## Dataloader\\n\",\n    \"- Split dataset into training dataset(90%) and validation dataset(10%).\\n\",\n    \"- Create dataloader to iterate the data.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"B7c2gZYoJDRS\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, random_split\\n\",\n    \"from torch.nn.utils.rnn import pad_sequence\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def collate_batch(batch):\\n\",\n    \"    # Process features within a batch.\\n\",\n    \"    \\\"\\\"\\\"Collate a batch of data.\\\"\\\"\\\"\\n\",\n    \"    mel, speaker = zip(*batch)\\n\",\n    \"    # Because we train the model batch by batch, we need to pad the features in the same batch to make their lengths the same.\\n\",\n    \"    mel = pad_sequence(mel, batch_first=True, padding_value=-20)    # pad log 10^(-20) which is very small value.\\n\",\n    \"    # mel: (batch size, length, 40)\\n\",\n    \"    return mel, torch.FloatTensor(speaker).long()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def get_dataloader(data_dir, batch_size, n_workers):\\n\",\n    \"    \\\"\\\"\\\"Generate dataloader\\\"\\\"\\\"\\n\",\n    \"    dataset = myDataset(data_dir)\\n\",\n    \"    speaker_num = dataset.get_speaker_number()\\n\",\n    \"    # Split dataset into training dataset and validation dataset\\n\",\n    \"    trainlen = int(0.9 * len(dataset))\\n\",\n    \"    lengths = [trainlen, len(dataset) - trainlen]\\n\",\n    \"    trainset, validset = random_split(dataset, lengths)\\n\",\n    \"\\n\",\n    \"    train_loader = DataLoader(\\n\",\n    \"        trainset,\\n\",\n    \"        batch_size=batch_size,\\n\",\n    \"        shuffle=True,\\n\",\n    \"        drop_last=True,\\n\",\n    \"        num_workers=n_workers,\\n\",\n    \"        pin_memory=True,\\n\",\n    \"        collate_fn=collate_batch,\\n\",\n    \"    )\\n\",\n    \"    valid_loader = DataLoader(\\n\",\n    \"        validset,\\n\",\n    \"        batch_size=batch_size,\\n\",\n    \"        num_workers=n_workers,\\n\",\n    \"        drop_last=True,\\n\",\n    \"        pin_memory=True,\\n\",\n    \"        collate_fn=collate_batch,\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    return train_loader, valid_loader, speaker_num\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5FOSZYxrMqhc\"\n   },\n   \"source\": [\n    \"# Model\\n\",\n    \"- TransformerEncoderLayer:\\n\",\n    \"  - Base transformer encoder layer in [Attention Is All You Need](https://arxiv.org/abs/1706.03762)\\n\",\n    \"  - Parameters:\\n\",\n    \"    - d_model: the number of expected features of the input (required).\\n\",\n    \"\\n\",\n    \"    - nhead: the number of heads of the multiheadattention models (required).\\n\",\n    \"\\n\",\n    \"    - dim_feedforward: the dimension of the feedforward network model (default=2048).\\n\",\n    \"\\n\",\n    \"    - dropout: the dropout value (default=0.1).\\n\",\n    \"\\n\",\n    \"    - activation: the activation function of intermediate layer, relu or gelu (default=relu).\\n\",\n    \"\\n\",\n    \"- TransformerEncoder:\\n\",\n    \"  - TransformerEncoder is a stack of N transformer encoder layers\\n\",\n    \"  - Parameters:\\n\",\n    \"    - encoder_layer: an instance of the TransformerEncoderLayer() class (required).\\n\",\n    \"\\n\",\n    \"    - num_layers: the number of sub-encoder-layers in the encoder (required).\\n\",\n    \"\\n\",\n    \"    - norm: the layer normalization component (optional).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## Conformer\\n\",\n    \"The [GitHub source code](https://github.com/sooftware/conformer/tree/main) for the [Conformer paper](https://arxiv.org/abs/2005.08100) has been included in this notebook for reference.\\n\",\n    \"\\n\",\n    \"### Encoder model architecture\\n\",\n    \"![image-20231012151052854](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231012151052.png)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Basic Modules\\n\",\n    \"\\n\",\n    \"This cell contains implementations of several basic modules that will be used to construct the Conformer model architecture in the following sections:\\n\",\n    \"\\n\",\n    \"- `ResidualConnectionModule`: Implements a residual connection module\\n\",\n    \"- `Linear`: Wrapper for `torch.nn.Linear` with Xavier initialization\\n\",\n    \"- `View`: Wrapper for `torch.view()` to be used in Sequential  \\n\",\n    \"- `Transpose`: Wrapper for `torch.transpose()` to be used in Sequential\\n\",\n    \"- `Swish`: Implementation of the Swish activation function\\n\",\n    \"- `GLU`: Implementation of Gated Linear Units\\n\",\n    \"\\n\",\n    \"These modules provide basic building blocks like linear transformations, activations, residual connections that will be used to build components of the Conformer model such as the multi-headed attention and feedforward layers.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Copyright (c) 2021, Soohwan Kim. All rights reserved.\\n\",\n    \"#\\n\",\n    \"# Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n\",\n    \"# you may not use this file except in compliance with the License.\\n\",\n    \"# You may obtain a copy of the License at\\n\",\n    \"#\\n\",\n    \"#     http://www.apache.org/licenses/LICENSE-2.0\\n\",\n    \"#\\n\",\n    \"# Unless required by applicable law or agreed to in writing, software\\n\",\n    \"# distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n\",\n    \"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n\",\n    \"# See the License for the specific language governing permissions and\\n\",\n    \"# limitations under the License.\\n\",\n    \"\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.init as init\\n\",\n    \"from torch import Tensor\\n\",\n    \"\\n\",\n    \"from typing import Tuple\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class ResidualConnectionModule(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Residual Connection Module.\\n\",\n    \"    outputs = (module(inputs) x module_factor + inputs x input_factor)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, module: nn.Module, module_factor: float = 1.0, input_factor: float = 1.0):\\n\",\n    \"        super(ResidualConnectionModule, self).__init__()\\n\",\n    \"        self.module = module\\n\",\n    \"        self.module_factor = module_factor\\n\",\n    \"        self.input_factor = input_factor\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return (self.module(inputs) * self.module_factor) + (inputs * self.input_factor)\\n\",\n    \"    \\n\",\n    \"    \\n\",\n    \"class Linear(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Wrapper class of torch.nn.Linear\\n\",\n    \"    Weight initialize by xavier initialization and bias initialize to zeros.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, in_features: int, out_features: int, bias: bool = True) -> None:\\n\",\n    \"        super(Linear, self).__init__()\\n\",\n    \"        self.linear = nn.Linear(in_features, out_features, bias=bias)\\n\",\n    \"        init.xavier_uniform_(self.linear.weight)\\n\",\n    \"        if bias:\\n\",\n    \"            init.zeros_(self.linear.bias)\\n\",\n    \"\\n\",\n    \"    def forward(self, x: Tensor) -> Tensor:\\n\",\n    \"        return self.linear(x)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class View(nn.Module):\\n\",\n    \"    \\\"\\\"\\\" Wrapper class of torch.view() for Sequential module. \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, shape: tuple, contiguous: bool = False):\\n\",\n    \"        super(View, self).__init__()\\n\",\n    \"        self.shape = shape\\n\",\n    \"        self.contiguous = contiguous\\n\",\n    \"\\n\",\n    \"    def forward(self, x: Tensor) -> Tensor:\\n\",\n    \"        if self.contiguous:\\n\",\n    \"            x = x.contiguous()\\n\",\n    \"\\n\",\n    \"        return x.view(*self.shape)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class Transpose(nn.Module):\\n\",\n    \"    \\\"\\\"\\\" Wrapper class of torch.transpose() for Sequential module. \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, shape: tuple):\\n\",\n    \"        super(Transpose, self).__init__()\\n\",\n    \"        self.shape = shape\\n\",\n    \"\\n\",\n    \"    def forward(self, x: Tensor) -> Tensor:\\n\",\n    \"        return x.transpose(*self.shape)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class Swish(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Swish is a smooth, non-monotonic function that consistently matches or outperforms ReLU on deep networks applied\\n\",\n    \"    to a variety of challenging domains such as Image classification and Machine translation.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(Swish, self).__init__()\\n\",\n    \"    \\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return inputs * inputs.sigmoid()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class GLU(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    The gating mechanism is called Gated Linear Units (GLU), which was first introduced for natural language processing\\n\",\n    \"    in the paper “Language Modeling with Gated Convolutional Networks”\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, dim: int) -> None:\\n\",\n    \"        super(GLU, self).__init__()\\n\",\n    \"        self.dim = dim\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        outputs, gate = inputs.chunk(2, dim=self.dim)\\n\",\n    \"        return outputs * gate.sigmoid()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Feed Forward Module\\n\",\n    \"\\n\",\n    \"This cell implements the Feed Forward Module for the Conformer model.\\n\",\n    \"\\n\",\n    \"Key points:\\n\",\n    \"\\n\",\n    \"- It follows the pre-norm residual unit design, with layer normalization applied before the first linear layer\\n\",\n    \"- Two linear layers with Swish activation in between\\n\",\n    \"- Expansion factor of 4 on the hidden layer dimensionality\\n\",\n    \"- Dropout applied after both linear layers for regularization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class FeedForwardModule(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Conformer Feed Forward Module follow pre-norm residual units and apply layer normalization within the residual unit\\n\",\n    \"    and on the input before the first linear layer. This module also apply Swish activation and dropout, which helps\\n\",\n    \"    regularizing the network.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        encoder_dim (int): Dimension of conformer encoder\\n\",\n    \"        expansion_factor (int): Expansion factor of feed forward module.\\n\",\n    \"        dropout_p (float): Ratio of dropout\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        - **inputs** (batch, time, dim): Tensor contains input sequences\\n\",\n    \"\\n\",\n    \"    Outputs: outputs\\n\",\n    \"        - **outputs** (batch, time, dim): Tensor produces by feed forward module.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            encoder_dim: int = 512,\\n\",\n    \"            expansion_factor: int = 4,\\n\",\n    \"            dropout_p: float = 0.1,\\n\",\n    \"    ) -> None:\\n\",\n    \"        super(FeedForwardModule, self).__init__()\\n\",\n    \"        self.sequential = nn.Sequential(\\n\",\n    \"            nn.LayerNorm(encoder_dim),\\n\",\n    \"            Linear(encoder_dim, encoder_dim * expansion_factor, bias=True),\\n\",\n    \"            Swish(),\\n\",\n    \"            nn.Dropout(p=dropout_p),\\n\",\n    \"            Linear(encoder_dim * expansion_factor, encoder_dim, bias=True),\\n\",\n    \"            nn.Dropout(p=dropout_p),\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.sequential(inputs)\\n\",\n    \"    \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Positional Encoding\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class PositionalEncoding(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Positional Encoding proposed in \\\"Attention Is All You Need\\\".\\n\",\n    \"    Since transformer contains no recurrence and no convolution, in order for the model to make\\n\",\n    \"    use of the order of the sequence, we must add some positional information.\\n\",\n    \"\\n\",\n    \"    \\\"Attention Is All You Need\\\" use sine and cosine functions of different frequencies:\\n\",\n    \"        PE_(pos, 2i)    =  sin(pos / power(10000, 2i / d_model))\\n\",\n    \"        PE_(pos, 2i+1)  =  cos(pos / power(10000, 2i / d_model))\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, d_model: int = 512, max_len: int = 10000) -> None:\\n\",\n    \"        super(PositionalEncoding, self).__init__()\\n\",\n    \"        pe = torch.zeros(max_len, d_model, requires_grad=False)\\n\",\n    \"        position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1)\\n\",\n    \"        div_term = torch.exp(torch.arange(0, d_model, 2).float() * -(math.log(10000.0) / d_model))\\n\",\n    \"        pe[:, 0::2] = torch.sin(position * div_term)\\n\",\n    \"        pe[:, 1::2] = torch.cos(position * div_term)\\n\",\n    \"        pe = pe.unsqueeze(0)\\n\",\n    \"        self.register_buffer('pe', pe)\\n\",\n    \"\\n\",\n    \"    def forward(self, length: int) -> Tensor:\\n\",\n    \"        return self.pe[:, :length]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Relative Multi-Head Attention\\n\",\n    \"\\n\",\n    \"This module implements relative multi-head attention mechanism as proposed in [Transformer-XL paper](https://arxiv.org/abs/1901.02860). \\n\",\n    \"\\n\",\n    \"Key points:\\n\",\n    \"\\n\",\n    \"- Splits input into multiple heads, applies attention separately on each head\\n\",\n    \"- Adds positional embedding to the query before calculating attention score \\n\",\n    \"- Positional embeddings are also projected to number of heads\\n\",\n    \"- Attention scores calculated using both content-based and position-based similarities\\n\",\n    \"- Relative positional shifts are applied to the position embeddings\\n\",\n    \"- Context vectors from each head are concatenated and projected \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from typing import Optional\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class RelativeMultiHeadAttention(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Multi-head attention with relative positional encoding.\\n\",\n    \"    This concept was proposed in the \\\"Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context\\\"\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        d_model (int): The dimension of model\\n\",\n    \"        num_heads (int): The number of attention heads.\\n\",\n    \"        dropout_p (float): probability of dropout\\n\",\n    \"\\n\",\n    \"    Inputs: query, key, value, pos_embedding, mask\\n\",\n    \"        - **query** (batch, time, dim): Tensor containing query vector\\n\",\n    \"        - **key** (batch, time, dim): Tensor containing key vector\\n\",\n    \"        - **value** (batch, time, dim): Tensor containing value vector\\n\",\n    \"        - **pos_embedding** (batch, time, dim): Positional embedding tensor\\n\",\n    \"        - **mask** (batch, 1, time2) or (batch, time1, time2): Tensor containing indices to be masked\\n\",\n    \"\\n\",\n    \"    Returns:\\n\",\n    \"        - **outputs**: Tensor produces by relative multi head attention module.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            d_model: int = 512,\\n\",\n    \"            num_heads: int = 16,\\n\",\n    \"            dropout_p: float = 0.1,\\n\",\n    \"    ):\\n\",\n    \"        super(RelativeMultiHeadAttention, self).__init__()\\n\",\n    \"        assert d_model % num_heads == 0, \\\"d_model % num_heads should be zero.\\\"\\n\",\n    \"        self.d_model = d_model\\n\",\n    \"        self.d_head = int(d_model / num_heads)\\n\",\n    \"        self.num_heads = num_heads\\n\",\n    \"        self.sqrt_dim = math.sqrt(d_model)\\n\",\n    \"\\n\",\n    \"        self.query_proj = Linear(d_model, d_model)\\n\",\n    \"        self.key_proj = Linear(d_model, d_model)\\n\",\n    \"        self.value_proj = Linear(d_model, d_model)\\n\",\n    \"        self.pos_proj = Linear(d_model, d_model, bias=False)\\n\",\n    \"\\n\",\n    \"        self.dropout = nn.Dropout(p=dropout_p)\\n\",\n    \"        self.u_bias = nn.Parameter(torch.Tensor(self.num_heads, self.d_head))\\n\",\n    \"        self.v_bias = nn.Parameter(torch.Tensor(self.num_heads, self.d_head))\\n\",\n    \"        torch.nn.init.xavier_uniform_(self.u_bias)\\n\",\n    \"        torch.nn.init.xavier_uniform_(self.v_bias)\\n\",\n    \"\\n\",\n    \"        self.out_proj = Linear(d_model, d_model)\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"            self,\\n\",\n    \"            query: Tensor,\\n\",\n    \"            key: Tensor,\\n\",\n    \"            value: Tensor,\\n\",\n    \"            pos_embedding: Tensor,\\n\",\n    \"            mask: Optional[Tensor] = None,\\n\",\n    \"    ) -> Tensor:\\n\",\n    \"        batch_size = value.size(0)\\n\",\n    \"\\n\",\n    \"        query = self.query_proj(query).view(batch_size, -1, self.num_heads, self.d_head)\\n\",\n    \"        key = self.key_proj(key).view(batch_size, -1, self.num_heads, self.d_head).permute(0, 2, 1, 3)\\n\",\n    \"        value = self.value_proj(value).view(batch_size, -1, self.num_heads, self.d_head).permute(0, 2, 1, 3)\\n\",\n    \"        pos_embedding = self.pos_proj(pos_embedding).view(batch_size, -1, self.num_heads, self.d_head)\\n\",\n    \"\\n\",\n    \"        content_score = torch.matmul((query + self.u_bias).transpose(1, 2), key.transpose(2, 3))\\n\",\n    \"        pos_score = torch.matmul((query + self.v_bias).transpose(1, 2), pos_embedding.permute(0, 2, 3, 1))\\n\",\n    \"        pos_score = self._relative_shift(pos_score)\\n\",\n    \"\\n\",\n    \"        score = (content_score + pos_score) / self.sqrt_dim\\n\",\n    \"\\n\",\n    \"        if mask is not None:\\n\",\n    \"            mask = mask.unsqueeze(1)\\n\",\n    \"            score.masked_fill_(mask, -1e9)\\n\",\n    \"\\n\",\n    \"        attn = F.softmax(score, -1)\\n\",\n    \"        attn = self.dropout(attn)\\n\",\n    \"\\n\",\n    \"        context = torch.matmul(attn, value).transpose(1, 2)\\n\",\n    \"        context = context.contiguous().view(batch_size, -1, self.d_model)\\n\",\n    \"\\n\",\n    \"        return self.out_proj(context)\\n\",\n    \"\\n\",\n    \"    def _relative_shift(self, pos_score: Tensor) -> Tensor:\\n\",\n    \"        batch_size, num_heads, seq_length1, seq_length2 = pos_score.size()\\n\",\n    \"        zeros = pos_score.new_zeros(batch_size, num_heads, seq_length1, 1)\\n\",\n    \"        padded_pos_score = torch.cat([zeros, pos_score], dim=-1)\\n\",\n    \"\\n\",\n    \"        padded_pos_score = padded_pos_score.view(batch_size, num_heads, seq_length2 + 1, seq_length1)\\n\",\n    \"        pos_score = padded_pos_score[:, :, 1:].view_as(pos_score)\\n\",\n    \"\\n\",\n    \"        return pos_score\\n\",\n    \"    \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Multi-Headed Self Attention Module\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class MultiHeadedSelfAttentionModule(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Conformer employ multi-headed self-attention (MHSA) while integrating an important technique from Transformer-XL,\\n\",\n    \"    the relative sinusoidal positional encoding scheme. The relative positional encoding allows the self-attention\\n\",\n    \"    module to generalize better on different input length and the resulting encoder is more robust to the variance of\\n\",\n    \"    the utterance length. Conformer use prenorm residual units with dropout which helps training\\n\",\n    \"    and regularizing deeper models.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        d_model (int): The dimension of model\\n\",\n    \"        num_heads (int): The number of attention heads.\\n\",\n    \"        dropout_p (float): probability of dropout\\n\",\n    \"\\n\",\n    \"    Inputs: inputs, mask\\n\",\n    \"        - **inputs** (batch, time, dim): Tensor containing input vector\\n\",\n    \"        - **mask** (batch, 1, time2) or (batch, time1, time2): Tensor containing indices to be masked\\n\",\n    \"\\n\",\n    \"    Returns:\\n\",\n    \"        - **outputs** (batch, time, dim): Tensor produces by relative multi headed self attention module.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, d_model: int, num_heads: int, dropout_p: float = 0.1):\\n\",\n    \"        super(MultiHeadedSelfAttentionModule, self).__init__()\\n\",\n    \"        self.positional_encoding = PositionalEncoding(d_model)\\n\",\n    \"        self.layer_norm = nn.LayerNorm(d_model)\\n\",\n    \"        self.attention = RelativeMultiHeadAttention(d_model, num_heads, dropout_p)\\n\",\n    \"        self.dropout = nn.Dropout(p=dropout_p)\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor, mask: Optional[Tensor] = None):\\n\",\n    \"        batch_size, seq_length, _ = inputs.size()\\n\",\n    \"        pos_embedding = self.positional_encoding(seq_length)\\n\",\n    \"        pos_embedding = pos_embedding.repeat(batch_size, 1, 1)\\n\",\n    \"\\n\",\n    \"        inputs = self.layer_norm(inputs)\\n\",\n    \"        outputs = self.attention(inputs, inputs, inputs, pos_embedding=pos_embedding, mask=mask)\\n\",\n    \"\\n\",\n    \"        return self.dropout(outputs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"### Conformer Convolution Module\\n\",\n    \"\\n\",\n    \"![image-20231011181636095](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231011181636.png)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class DepthwiseConv1d(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    When groups == in_channels and out_channels == K * in_channels, where K is a positive integer,\\n\",\n    \"    this operation is termed in literature as depthwise convolution.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        in_channels (int): Number of channels in the input\\n\",\n    \"        out_channels (int): Number of channels produced by the convolution\\n\",\n    \"        kernel_size (int or tuple): Size of the convolving kernel\\n\",\n    \"        stride (int, optional): Stride of the convolution. Default: 1\\n\",\n    \"        padding (int or tuple, optional): Zero-padding added to both sides of the input. Default: 0\\n\",\n    \"        bias (bool, optional): If True, adds a learnable bias to the output. Default: True\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        - **inputs** (batch, in_channels, time): Tensor containing input vector\\n\",\n    \"\\n\",\n    \"    Returns: outputs\\n\",\n    \"        - **outputs** (batch, out_channels, time): Tensor produces by depthwise 1-D convolution.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            in_channels: int,\\n\",\n    \"            out_channels: int,\\n\",\n    \"            kernel_size: int,\\n\",\n    \"            stride: int = 1,\\n\",\n    \"            padding: int = 0,\\n\",\n    \"            bias: bool = False,\\n\",\n    \"    ) -> None:\\n\",\n    \"        super(DepthwiseConv1d, self).__init__()\\n\",\n    \"        assert out_channels % in_channels == 0, \\\"out_channels should be constant multiple of in_channels\\\"\\n\",\n    \"        self.conv = nn.Conv1d(\\n\",\n    \"            in_channels=in_channels,\\n\",\n    \"            out_channels=out_channels,\\n\",\n    \"            kernel_size=kernel_size,\\n\",\n    \"            groups=in_channels,\\n\",\n    \"            stride=stride,\\n\",\n    \"            padding=padding,\\n\",\n    \"            bias=bias,\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.conv(inputs)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class PointwiseConv1d(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    When kernel size == 1 conv1d, this operation is termed in literature as pointwise convolution.\\n\",\n    \"    This operation often used to match dimensions.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        in_channels (int): Number of channels in the input\\n\",\n    \"        out_channels (int): Number of channels produced by the convolution\\n\",\n    \"        stride (int, optional): Stride of the convolution. Default: 1\\n\",\n    \"        padding (int or tuple, optional): Zero-padding added to both sides of the input. Default: 0\\n\",\n    \"        bias (bool, optional): If True, adds a learnable bias to the output. Default: True\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        - **inputs** (batch, in_channels, time): Tensor containing input vector\\n\",\n    \"\\n\",\n    \"    Returns: outputs\\n\",\n    \"        - **outputs** (batch, out_channels, time): Tensor produces by pointwise 1-D convolution.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            in_channels: int,\\n\",\n    \"            out_channels: int,\\n\",\n    \"            stride: int = 1,\\n\",\n    \"            padding: int = 0,\\n\",\n    \"            bias: bool = True,\\n\",\n    \"    ) -> None:\\n\",\n    \"        super(PointwiseConv1d, self).__init__()\\n\",\n    \"        self.conv = nn.Conv1d(\\n\",\n    \"            in_channels=in_channels,\\n\",\n    \"            out_channels=out_channels,\\n\",\n    \"            kernel_size=1,\\n\",\n    \"            stride=stride,\\n\",\n    \"            padding=padding,\\n\",\n    \"            bias=bias,\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.conv(inputs)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class ConformerConvModule(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Conformer convolution module starts with a pointwise convolution and a gated linear unit (GLU).\\n\",\n    \"    This is followed by a single 1-D depthwise convolution layer. Batchnorm is  deployed just after the convolution\\n\",\n    \"    to aid training deep models.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        in_channels (int): Number of channels in the input\\n\",\n    \"        kernel_size (int or tuple, optional): Size of the convolving kernel Default: 31\\n\",\n    \"        dropout_p (float, optional): probability of dropout\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        inputs (batch, time, dim): Tensor contains input sequences\\n\",\n    \"\\n\",\n    \"    Outputs: outputs\\n\",\n    \"        outputs (batch, time, dim): Tensor produces by conformer convolution module.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            in_channels: int,\\n\",\n    \"            kernel_size: int = 31,\\n\",\n    \"            expansion_factor: int = 2,\\n\",\n    \"            dropout_p: float = 0.1,\\n\",\n    \"    ) -> None:\\n\",\n    \"        super(ConformerConvModule, self).__init__()\\n\",\n    \"        assert (kernel_size - 1) % 2 == 0, \\\"kernel_size should be a odd number for 'SAME' padding\\\"\\n\",\n    \"        assert expansion_factor == 2, \\\"Currently, Only Supports expansion_factor 2\\\"\\n\",\n    \"\\n\",\n    \"        self.sequential = nn.Sequential(\\n\",\n    \"            nn.LayerNorm(in_channels),\\n\",\n    \"            Transpose(shape=(1, 2)),\\n\",\n    \"            PointwiseConv1d(in_channels, in_channels * expansion_factor, stride=1, padding=0, bias=True),\\n\",\n    \"            GLU(dim=1),\\n\",\n    \"            DepthwiseConv1d(in_channels, in_channels, kernel_size, stride=1, padding=(kernel_size - 1) // 2),\\n\",\n    \"            nn.BatchNorm1d(in_channels),\\n\",\n    \"            Swish(),\\n\",\n    \"            PointwiseConv1d(in_channels, in_channels, stride=1, padding=0, bias=True),\\n\",\n    \"            nn.Dropout(p=dropout_p),\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.sequential(inputs).transpose(1, 2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Conformer Block\\n\",\n    \"\\n\",\n    \"The `ConformerBlock` implements the main building block of the Conformer model.\\n\",\n    \"\\n\",\n    \"Key points:\\n\",\n    \"\\n\",\n    \"- It sandwiches two FeedForward modules around the MultiHeadedSelfAttention module and the ConformerConv module\\n\",\n    \"- Applying FeedForward before and after the attention is known as Macaron style blocks\\n\",\n    \"- Residual connections are used around each module, with layer norm applied in the end\\n\",\n    \"- Half-step residual connections are also supported\\n\",\n    \"\\n\",\n    \"The block takes input, passes it through the feedforward -> attn -> conv -> feedforward blocks with residuals. This forms the basic transformer encoder layer used to stack up the Conformer model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class ConformerBlock(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Conformer block contains two Feed Forward modules sandwiching the Multi-Headed Self-Attention module\\n\",\n    \"    and the Convolution module. This sandwich structure is inspired by Macaron-Net, which proposes replacing\\n\",\n    \"    the original feed-forward layer in the Transformer block into two half-step feed-forward layers,\\n\",\n    \"    one before the attention layer and one after.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        encoder_dim (int, optional): Dimension of conformer encoder\\n\",\n    \"        num_attention_heads (int, optional): Number of attention heads\\n\",\n    \"        feed_forward_expansion_factor (int, optional): Expansion factor of feed forward module\\n\",\n    \"        conv_expansion_factor (int, optional): Expansion factor of conformer convolution module\\n\",\n    \"        feed_forward_dropout_p (float, optional): Probability of feed forward module dropout\\n\",\n    \"        attention_dropout_p (float, optional): Probability of attention module dropout\\n\",\n    \"        conv_dropout_p (float, optional): Probability of conformer convolution module dropout\\n\",\n    \"        conv_kernel_size (int or tuple, optional): Size of the convolving kernel\\n\",\n    \"        half_step_residual (bool): Flag indication whether to use half step residual or not\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        - **inputs** (batch, time, dim): Tensor containing input vector\\n\",\n    \"\\n\",\n    \"    Returns: outputs\\n\",\n    \"        - **outputs** (batch, time, dim): Tensor produces by conformer block.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            encoder_dim: int = 512,\\n\",\n    \"            num_attention_heads: int = 8,\\n\",\n    \"            feed_forward_expansion_factor: int = 4,\\n\",\n    \"            conv_expansion_factor: int = 2,\\n\",\n    \"            feed_forward_dropout_p: float = 0.1,\\n\",\n    \"            attention_dropout_p: float = 0.1,\\n\",\n    \"            conv_dropout_p: float = 0.1,\\n\",\n    \"            conv_kernel_size: int = 31,\\n\",\n    \"            half_step_residual: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        super(ConformerBlock, self).__init__()\\n\",\n    \"        if half_step_residual:\\n\",\n    \"            self.feed_forward_residual_factor = 0.5\\n\",\n    \"        else:\\n\",\n    \"            self.feed_forward_residual_factor = 1\\n\",\n    \"\\n\",\n    \"        self.sequential = nn.Sequential(\\n\",\n    \"            ResidualConnectionModule(\\n\",\n    \"                module=FeedForwardModule(\\n\",\n    \"                    encoder_dim=encoder_dim,\\n\",\n    \"                    expansion_factor=feed_forward_expansion_factor,\\n\",\n    \"                    dropout_p=feed_forward_dropout_p,\\n\",\n    \"                ),\\n\",\n    \"                module_factor=self.feed_forward_residual_factor,\\n\",\n    \"            ),\\n\",\n    \"            ResidualConnectionModule(\\n\",\n    \"                module=MultiHeadedSelfAttentionModule(\\n\",\n    \"                    d_model=encoder_dim,\\n\",\n    \"                    num_heads=num_attention_heads,\\n\",\n    \"                    dropout_p=attention_dropout_p,\\n\",\n    \"                ),\\n\",\n    \"            ),\\n\",\n    \"            ResidualConnectionModule(\\n\",\n    \"                module=ConformerConvModule(\\n\",\n    \"                    in_channels=encoder_dim,\\n\",\n    \"                    kernel_size=conv_kernel_size,\\n\",\n    \"                    expansion_factor=conv_expansion_factor,\\n\",\n    \"                    dropout_p=conv_dropout_p,\\n\",\n    \"                ),\\n\",\n    \"            ),\\n\",\n    \"            ResidualConnectionModule(\\n\",\n    \"                module=FeedForwardModule(\\n\",\n    \"                    encoder_dim=encoder_dim,\\n\",\n    \"                    expansion_factor=feed_forward_expansion_factor,\\n\",\n    \"                    dropout_p=feed_forward_dropout_p,\\n\",\n    \"                ),\\n\",\n    \"                module_factor=self.feed_forward_residual_factor,\\n\",\n    \"            ),\\n\",\n    \"            nn.LayerNorm(encoder_dim),\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.sequential(inputs)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## Classifier (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"iXZ5B0EKJGs8\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"\\n\",\n    \"    \\n\",\n    \"class Classifier(nn.Module):\\n\",\n    \"    def __init__(self, d_model=512, n_spks=600, dropout=0.1):\\n\",\n    \"        super().__init__()\\n\",\n    \"        # Project the dimension of features from that of input into d_model.\\n\",\n    \"        self.prenet = nn.Linear(40, d_model)\\n\",\n    \"        # TODO:\\n\",\n    \"        #   Change Transformer to Conformer.\\n\",\n    \"        #   https://arxiv.org/abs/2005.08100\\n\",\n    \"        self.encoder_layer = ConformerBlock(encoder_dim=d_model, conv_dropout_p=0.1)\\n\",\n    \"        \\n\",\n    \"        self.self_attention_pooling = SelfAttentionPooling(input_dim=d_model)\\n\",\n    \"\\n\",\n    \"        # Project the the dimension of features from d_model into speaker nums.\\n\",\n    \"        self.pred_layer = Linear(d_model, n_spks)  # You can achieve boss baseline by just changing prediction layer\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"    def forward(self, mels):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        args:\\n\",\n    \"            mels: (batch size, length, 40)\\n\",\n    \"        return:\\n\",\n    \"            out: (batch size, n_spks)\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        # out: (batch size, length, d_model)\\n\",\n    \"        out = self.prenet(mels)\\n\",\n    \"        # out: (length, batch size, d_model)\\n\",\n    \"        out = out.permute(1, 0, 2)\\n\",\n    \"        # The encoder layer expect features in the shape of (length, batch size, d_model).\\n\",\n    \"        out = self.encoder_layer(out)\\n\",\n    \"        # out: (batch size, length, d_model)\\n\",\n    \"        out = out.transpose(0, 1)\\n\",\n    \"        # mean pooling\\n\",\n    \"        stats = out.mean(dim=1)\\n\",\n    \"        # self-attention pooling\\n\",\n    \"        if SAP:\\n\",\n    \"            stats = self.self_attention_pooling(out)\\n\",\n    \"\\n\",\n    \"        out = self.pred_layer(stats)\\n\",\n    \"        return out\\n\",\n    \"    \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Self-Attention Pooling (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class SelfAttentionPooling(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Implementation of SelfAttentionPooling \\n\",\n    \"    Original Paper: Self-Attention Encoding and Pooling for Speaker Recognition\\n\",\n    \"    https://arxiv.org/pdf/2008.01077v1.pdf\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, input_dim):\\n\",\n    \"        super(SelfAttentionPooling, self).__init__()\\n\",\n    \"        self.W = nn.Linear(input_dim, 1)\\n\",\n    \"        \\n\",\n    \"    def forward(self, batch_rep):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        input:\\n\",\n    \"            batch_rep : size (N, T, H), N: batch size, T: sequence length, H: Hidden dimension\\n\",\n    \"\\n\",\n    \"        attention_weight:\\n\",\n    \"            att_w : size (N, T, 1)\\n\",\n    \"\\n\",\n    \"        return:\\n\",\n    \"            utter_rep: size (N, H)\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        softmax = nn.functional.softmax\\n\",\n    \"        att_w = softmax(self.W(batch_rep).squeeze(-1), dim=-1).unsqueeze(-1)\\n\",\n    \"        utter_rep = torch.sum(batch_rep * att_w, dim=1)\\n\",\n    \"        return utter_rep\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# AMSoftmax (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from torch.autograd import Variable\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"# https://github.com/zhilangtaosha/SpeakerVerification_AMSoftmax_pytorch/blob/63629989c152664c838823456532682585d72e31/model/model.py#L257\\n\",\n    \"class AMSoftmax(nn.Module):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(AMSoftmax, self).__init__()\\n\",\n    \"\\n\",\n    \"    def forward(self, input, target, scale=10.0, margin=0.35):\\n\",\n    \"        cos_theta = input\\n\",\n    \"        target = target.view(-1, 1)  # size=(B,1)\\n\",\n    \"\\n\",\n    \"        index = cos_theta.data * 0.0  # size=(B,Classnum)\\n\",\n    \"        index.scatter_(1, target.data.view(-1, 1), 1)\\n\",\n    \"        index = index.byte()\\n\",\n    \"        index = Variable(index)\\n\",\n    \"\\n\",\n    \"        output = cos_theta * 1.0  # size=(B,Classnum)\\n\",\n    \"        output[index.bool()] -= margin\\n\",\n    \"        output = output * scale\\n\",\n    \"\\n\",\n    \"        logpt = F.log_softmax(output, dim=1)\\n\",\n    \"        logpt = logpt.gather(1, target)\\n\",\n    \"        logpt = logpt.view(-1)\\n\",\n    \"\\n\",\n    \"        loss = -1 * logpt\\n\",\n    \"        loss = loss.mean()\\n\",\n    \"\\n\",\n    \"        return loss\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"# # Usage: https://github.com/CoinCheung/pytorch-loss/issues/16\\n\",\n    \"# class AMSoftmax(nn.Module):\\n\",\n    \"\\n\",\n    \"#     def __init__(self, in_feats, n_classes=10, m=0.35, s=30):\\n\",\n    \"#         super(AMSoftmax, self).__init__()\\n\",\n    \"#         self.m = m\\n\",\n    \"#         self.s = s\\n\",\n    \"#         self.in_feats = in_feats\\n\",\n    \"#         self.W = torch.nn.Parameter(torch.randn(in_feats, n_classes), requires_grad=True)\\n\",\n    \"#         self.ce = nn.CrossEntropyLoss()\\n\",\n    \"#         nn.init.xavier_normal_(self.W, gain=1)\\n\",\n    \"\\n\",\n    \"#     def forward(self, x, lb):\\n\",\n    \"#         assert x.size()[0] == lb.size()[0]\\n\",\n    \"#         assert x.size()[1] == self.in_feats\\n\",\n    \"#         x_norm = torch.norm(x, p=2, dim=1, keepdim=True).clamp(min=1e-9)\\n\",\n    \"#         x_norm = torch.div(x, x_norm)\\n\",\n    \"#         w_norm = torch.norm(self.W, p=2, dim=0, keepdim=True).clamp(min=1e-9)\\n\",\n    \"#         w_norm = torch.div(self.W, w_norm)\\n\",\n    \"#         costh = torch.mm(x_norm, w_norm)\\n\",\n    \"#         delt_costh = torch.zeros_like(costh).scatter_(1, lb.unsqueeze(1), self.m)\\n\",\n    \"#         costh_m = costh - delt_costh \\n\",\n    \"#         costh_m_s = self.s * costh_m\\n\",\n    \"#         loss = self.ce(costh_m_s, lb)\\n\",\n    \"#         return costh_m_s, loss\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"W7yX8JinM5Ly\"\n   },\n   \"source\": [\n    \"# Learning rate schedule\\n\",\n    \"- For transformer architecture, the design of learning rate schedule is different from that of CNN.\\n\",\n    \"- Previous works show that the warmup of learning rate is useful for training models with transformer architectures.\\n\",\n    \"- The warmup schedule\\n\",\n    \"  - Set learning rate to 0 in the beginning.\\n\",\n    \"  - The learning rate increases linearly from 0 to initial learning rate during warmup period.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"ykt0N1nVJJi2\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"from torch.optim import Optimizer\\n\",\n    \"from torch.optim.lr_scheduler import LambdaLR\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def get_cosine_schedule_with_warmup(\\n\",\n    \"    optimizer: Optimizer,\\n\",\n    \"    num_warmup_steps: int,\\n\",\n    \"    num_training_steps: int,\\n\",\n    \"    num_cycles: float = 0.5,\\n\",\n    \"    last_epoch: int = -1,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Create a schedule with a learning rate that decreases following the values of the cosine function between the\\n\",\n    \"    initial lr set in the optimizer to 0, after a warmup period during which it increases linearly between 0 and the\\n\",\n    \"    initial lr set in the optimizer.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        optimizer (:class:`~torch.optim.Optimizer`):\\n\",\n    \"        The optimizer for which to schedule the learning rate.\\n\",\n    \"        num_warmup_steps (:obj:`int`):\\n\",\n    \"        The number of steps for the warmup phase.\\n\",\n    \"        num_training_steps (:obj:`int`):\\n\",\n    \"        The total number of training steps.\\n\",\n    \"        num_cycles (:obj:`float`, `optional`, defaults to 0.5):\\n\",\n    \"        The number of waves in the cosine schedule (the defaults is to just decrease from the max value to 0\\n\",\n    \"        following a half-cosine).\\n\",\n    \"        last_epoch (:obj:`int`, `optional`, defaults to -1):\\n\",\n    \"        The index of the last epoch when resuming training.\\n\",\n    \"\\n\",\n    \"    Return:\\n\",\n    \"        :obj:`torch.optim.lr_scheduler.LambdaLR` with the appropriate schedule.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def lr_lambda(current_step):\\n\",\n    \"        # Warmup\\n\",\n    \"        if current_step < num_warmup_steps:\\n\",\n    \"            return float(current_step) / float(max(1, num_warmup_steps))\\n\",\n    \"        # decadence\\n\",\n    \"        progress = float(current_step - num_warmup_steps) / float(\\n\",\n    \"            max(1, num_training_steps - num_warmup_steps)\\n\",\n    \"        )\\n\",\n    \"        return max(\\n\",\n    \"            0.0, 0.5 * (1.0 + math.cos(math.pi * float(num_cycles) * 2.0 * progress))\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    return LambdaLR(optimizer, lr_lambda, last_epoch)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"-LN2XkteM_uH\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"# Model Function\\n\",\n    \"- Model forward function.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"N-rr8529JMz0\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def model_fn(batch, model, criterion, device):\\n\",\n    \"    \\\"\\\"\\\"Forward a batch through the model.\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"    mels, labels = batch\\n\",\n    \"    mels = mels.to(device)\\n\",\n    \"    labels = labels.to(device)\\n\",\n    \"\\n\",\n    \"    outs = model(mels)\\n\",\n    \"    \\n\",\n    \"    loss = criterion(outs, labels)\\n\",\n    \"    if AMS:\\n\",\n    \"        loss = criterion(outs, labels)\\n\",\n    \"\\n\",\n    \"    # Get the speaker id with highest probability.\\n\",\n    \"    preds = outs.argmax(1)\\n\",\n    \"\\n\",\n    \"    # Compute accuracy.\\n\",\n    \"    accuracy = torch.mean((preds == labels).float())\\n\",\n    \"\\n\",\n    \"    return loss, accuracy\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cwM_xyOtNCI2\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"# Validate\\n\",\n    \"- Calculate accuracy of the validation set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"YAiv6kpdJRTJ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from tqdm.notebook import tqdm\\n\",\n    \"import torch\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def valid(dataloader, model, criterion, device): \\n\",\n    \"    \\\"\\\"\\\"Validate on validation set.\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    running_loss = 0.0\\n\",\n    \"    running_accuracy = 0.0\\n\",\n    \"    pbar = tqdm(total=len(dataloader.dataset), ncols=0, desc=\\\"Valid\\\", unit=\\\" uttr\\\")\\n\",\n    \"\\n\",\n    \"    for i, batch in enumerate(dataloader):\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            loss, accuracy = model_fn(batch, model, criterion, device)\\n\",\n    \"            running_loss += loss.item()\\n\",\n    \"            running_accuracy += accuracy.item()\\n\",\n    \"\\n\",\n    \"        pbar.update(dataloader.batch_size)\\n\",\n    \"        pbar.set_postfix(\\n\",\n    \"            loss=f\\\"{running_loss / (i+1):.2f}\\\",\\n\",\n    \"            accuracy=f\\\"{running_accuracy / (i+1):.2f}\\\",\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    pbar.close()\\n\",\n    \"    model.train()\\n\",\n    \"\\n\",\n    \"    return running_accuracy / len(dataloader)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"g6ne9G-eNEdG\"\n   },\n   \"source\": [\n    \"# Main function\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"Usv9s-CuJSG7\",\n    \"outputId\": \"f4f6a983-3559-4f36-efae-402bbf790473\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[Info]: Use cuda now!\\n\",\n      \"[Info]: Finish loading data!\\n\",\n      \"[Info]: Finish creating model!\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.69 step/s, accuracy=0.25, loss=3.92, step=2000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2267.03 uttr/s, accuracy=0.25, loss=3.69]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.95 step/s, accuracy=0.38, loss=2.68, step=4000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2269.41 uttr/s, accuracy=0.42, loss=2.67]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.90 step/s, accuracy=0.66, loss=1.68, step=6000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2255.79 uttr/s, accuracy=0.55, loss=2.04]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.85 step/s, accuracy=0.66, loss=1.18, step=8000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2239.72 uttr/s, accuracy=0.60, loss=1.82]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.91 step/s, accuracy=0.72, loss=1.19, step=1e+4]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2229.42 uttr/s, accuracy=0.64, loss=1.60]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:31, 21.90 step/s, accuracy=0.59, loss=1.45, step=1e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 10000, best model saved. (accuracy=0.6430)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.89 step/s, accuracy=0.59, loss=1.15, step=12000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2240.26 uttr/s, accuracy=0.67, loss=1.47]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.88 step/s, accuracy=0.81, loss=0.76, step=14000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2241.80 uttr/s, accuracy=0.69, loss=1.38]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.84 step/s, accuracy=0.81, loss=0.71, step=16000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2227.24 uttr/s, accuracy=0.71, loss=1.29]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.94 step/s, accuracy=0.78, loss=0.67, step=18000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2240.15 uttr/s, accuracy=0.72, loss=1.25]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.84 step/s, accuracy=0.88, loss=0.62, step=2e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2240.56 uttr/s, accuracy=0.74, loss=1.20]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:34, 21.17 step/s, accuracy=0.91, loss=0.67, step=2e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 20000, best model saved. (accuracy=0.7392)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.87 step/s, accuracy=0.78, loss=0.57, step=22000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2246.64 uttr/s, accuracy=0.74, loss=1.16]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.84 step/s, accuracy=0.81, loss=0.58, step=24000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2224.45 uttr/s, accuracy=0.77, loss=1.04]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.91 step/s, accuracy=0.97, loss=0.10, step=26000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2252.34 uttr/s, accuracy=0.78, loss=1.05]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 24.03 step/s, accuracy=0.88, loss=0.37, step=28000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2255.35 uttr/s, accuracy=0.78, loss=1.08]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 24.04 step/s, accuracy=0.91, loss=0.32, step=3e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2267.82 uttr/s, accuracy=0.79, loss=1.00]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:33, 21.28 step/s, accuracy=0.81, loss=0.59, step=3e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 30000, best model saved. (accuracy=0.7901)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 24.02 step/s, accuracy=0.91, loss=0.27, step=32000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2277.19 uttr/s, accuracy=0.81, loss=0.93]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.99 step/s, accuracy=0.91, loss=0.42, step=34000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2243.42 uttr/s, accuracy=0.81, loss=0.90]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 24.01 step/s, accuracy=0.91, loss=0.30, step=36000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2233.27 uttr/s, accuracy=0.81, loss=0.92]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 24.02 step/s, accuracy=1.00, loss=0.05, step=38000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2247.28 uttr/s, accuracy=0.82, loss=0.87]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.97 step/s, accuracy=0.97, loss=0.12, step=4e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2248.43 uttr/s, accuracy=0.83, loss=0.86]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:33, 21.41 step/s, accuracy=1.00, loss=0.08, step=4e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 40000, best model saved. (accuracy=0.8307)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.87 step/s, accuracy=1.00, loss=0.08, step=42000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2240.39 uttr/s, accuracy=0.83, loss=0.88]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.85 step/s, accuracy=0.94, loss=0.27, step=44000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2248.90 uttr/s, accuracy=0.84, loss=0.83]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.89 step/s, accuracy=1.00, loss=0.04, step=46000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2237.58 uttr/s, accuracy=0.84, loss=0.80]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.82 step/s, accuracy=1.00, loss=0.03, step=48000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2231.82 uttr/s, accuracy=0.84, loss=0.80]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.88 step/s, accuracy=1.00, loss=0.02, step=5e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2226.60 uttr/s, accuracy=0.85, loss=0.77]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:34, 21.01 step/s, accuracy=1.00, loss=0.01, step=5e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 50000, best model saved. (accuracy=0.8498)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.84 step/s, accuracy=1.00, loss=0.04, step=52000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2246.26 uttr/s, accuracy=0.85, loss=0.75]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.88 step/s, accuracy=1.00, loss=0.04, step=54000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2246.70 uttr/s, accuracy=0.86, loss=0.74]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.84 step/s, accuracy=0.97, loss=0.09, step=56000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2231.36 uttr/s, accuracy=0.86, loss=0.73]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.88 step/s, accuracy=1.00, loss=0.07, step=58000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2230.65 uttr/s, accuracy=0.86, loss=0.71]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.89 step/s, accuracy=1.00, loss=0.02, step=6e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2236.50 uttr/s, accuracy=0.87, loss=0.70]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:34, 21.18 step/s, accuracy=1.00, loss=0.03, step=6e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 60000, best model saved. (accuracy=0.8706)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.97 step/s, accuracy=0.94, loss=0.24, step=62000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2244.47 uttr/s, accuracy=0.87, loss=0.71]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.99 step/s, accuracy=1.00, loss=0.03, step=64000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2257.84 uttr/s, accuracy=0.86, loss=0.71]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.96 step/s, accuracy=1.00, loss=0.02, step=66000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2255.98 uttr/s, accuracy=0.87, loss=0.71]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 24.04 step/s, accuracy=0.97, loss=0.09, step=68000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2252.07 uttr/s, accuracy=0.87, loss=0.70]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 24.05 step/s, accuracy=1.00, loss=0.02, step=7e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2260.64 uttr/s, accuracy=0.86, loss=0.70]\\n\",\n      \"Train:   0% 0/2000 [00:00<?, ? step/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 70000, best model saved. (accuracy=0.8706)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"from torch.optim import AdamW\\n\",\n    \"from torch.utils.data import DataLoader, random_split\\n\",\n    \"\\n\",\n    \"from torch.utils.tensorboard import SummaryWriter\\n\",\n    \"\\n\",\n    \"def parse_args():\\n\",\n    \"    \\\"\\\"\\\"arguments\\\"\\\"\\\"\\n\",\n    \"    config = {\\n\",\n    \"        \\\"data_dir\\\": \\\"./Dataset\\\",\\n\",\n    \"        \\\"save_path\\\": \\\"model.ckpt\\\",\\n\",\n    \"        \\\"batch_size\\\": 32,\\n\",\n    \"        \\\"n_workers\\\": 8,\\n\",\n    \"        \\\"valid_steps\\\": 2000,\\n\",\n    \"        \\\"warmup_steps\\\": 1000,\\n\",\n    \"        \\\"save_steps\\\": 10000,\\n\",\n    \"        \\\"total_steps\\\": 70000,\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    return config\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def main(\\n\",\n    \"    data_dir,\\n\",\n    \"    save_path,\\n\",\n    \"    batch_size,\\n\",\n    \"    n_workers,\\n\",\n    \"    valid_steps,\\n\",\n    \"    warmup_steps,\\n\",\n    \"    total_steps,\\n\",\n    \"    save_steps,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"Main function.\\\"\\\"\\\"\\n\",\n    \"    device = torch.device(\\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n    \"    print(f\\\"[Info]: Use {device} now!\\\")\\n\",\n    \"\\n\",\n    \"    train_loader, valid_loader, speaker_num = get_dataloader(data_dir, batch_size, n_workers)\\n\",\n    \"    train_iterator = iter(train_loader)\\n\",\n    \"    print(f\\\"[Info]: Finish loading data!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    model = Classifier(n_spks=speaker_num).to(device)\\n\",\n    \"    criterion = nn.CrossEntropyLoss()\\n\",\n    \"    if AMS == True:\\n\",\n    \"        criterion = AMSoftmax().to(device)\\n\",\n    \"    optimizer = AdamW(model.parameters(), lr=1e-3)\\n\",\n    \"    scheduler = get_cosine_schedule_with_warmup(optimizer, warmup_steps, total_steps)\\n\",\n    \"    print(f\\\"[Info]: Finish creating model!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    best_accuracy = -1.0\\n\",\n    \"    best_state_dict = None\\n\",\n    \"\\n\",\n    \"    writer = SummaryWriter()\\n\",\n    \"    pbar = tqdm(total=valid_steps, ncols=0, desc=\\\"Train\\\", unit=\\\" step\\\")\\n\",\n    \"\\n\",\n    \"    for step in range(total_steps):\\n\",\n    \"        # Get data\\n\",\n    \"        try:\\n\",\n    \"            batch = next(train_iterator)\\n\",\n    \"        except StopIteration:\\n\",\n    \"            train_iterator = iter(train_loader)\\n\",\n    \"            batch = next(train_iterator)\\n\",\n    \"\\n\",\n    \"        loss, accuracy = model_fn(batch, model, criterion, device)\\n\",\n    \"        batch_loss = loss.item()\\n\",\n    \"        batch_accuracy = accuracy.item()\\n\",\n    \"\\n\",\n    \"        # Updata model\\n\",\n    \"        loss.backward()\\n\",\n    \"        optimizer.step()\\n\",\n    \"        scheduler.step()\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        # Log\\n\",\n    \"        pbar.update()\\n\",\n    \"        pbar.set_postfix(\\n\",\n    \"            loss=f\\\"{batch_loss:.2f}\\\",\\n\",\n    \"            accuracy=f\\\"{batch_accuracy:.2f}\\\",\\n\",\n    \"            step=step + 1,\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"        # Do validation\\n\",\n    \"        if (step + 1) % valid_steps == 0:\\n\",\n    \"            pbar.close()\\n\",\n    \"\\n\",\n    \"            valid_accuracy = valid(valid_loader, model, criterion, device)\\n\",\n    \"\\n\",\n    \"            # keep the best model\\n\",\n    \"            if valid_accuracy > best_accuracy:\\n\",\n    \"                best_accuracy = valid_accuracy\\n\",\n    \"                best_state_dict = model.state_dict()\\n\",\n    \"\\n\",\n    \"            pbar = tqdm(total=valid_steps, ncols=0, desc=\\\"Train\\\", unit=\\\" step\\\")\\n\",\n    \"            writer.add_scalar('Acc/train', batch_accuracy, step)\\n\",\n    \"            writer.add_scalar('Acc/valid', valid_accuracy, step)\\n\",\n    \"            writer.add_scalar('lr', optimizer.state_dict()['param_groups'][0]['lr'], step)\\n\",\n    \"\\n\",\n    \"        # Save the best model so far.\\n\",\n    \"        if (step + 1) % save_steps == 0 and best_state_dict is not None:\\n\",\n    \"            torch.save(best_state_dict, save_path)\\n\",\n    \"            pbar.write(f\\\"Step {step + 1}, best model saved. (accuracy={best_accuracy:.4f})\\\")\\n\",\n    \"\\n\",\n    \"    pbar.close()\\n\",\n    \"\\n\",\n    \"    return criterion\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"# Decide whether to use AMSoftmax and Self-Attention Pooling\\n\",\n    \"global AMS, SAP\\n\",\n    \"AMS = False\\n\",\n    \"SAP = False\\n\",\n    \"\\n\",\n    \"if __name__ == \\\"__main__\\\":\\n\",\n    \"    criterion = main(**parse_args())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NLatBYAhNNMx\"\n   },\n   \"source\": [\n    \"# Inference\\n\",\n    \"\\n\",\n    \"## Dataset of inferenceoutput_lengths\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"efS4pCmAJXJH\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import json\\n\",\n    \"import torch\\n\",\n    \"from pathlib import Path\\n\",\n    \"from torch.utils.data import Dataset\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class InferenceDataset(Dataset):\\n\",\n    \"    def __init__(self, data_dir):\\n\",\n    \"        testdata_path = Path(data_dir) / \\\"testdata.json\\\"\\n\",\n    \"        metadata = json.load(testdata_path.open())\\n\",\n    \"        self.data_dir = data_dir\\n\",\n    \"        self.data = metadata[\\\"utterances\\\"]\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.data)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, index):\\n\",\n    \"        utterance = self.data[index]\\n\",\n    \"        feat_path = utterance[\\\"feature_path\\\"]\\n\",\n    \"        mel = torch.load(os.path.join(self.data_dir, feat_path))\\n\",\n    \"\\n\",\n    \"        return feat_path, mel\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def inference_collate_batch(batch):\\n\",\n    \"    \\\"\\\"\\\"Collate a batch of data.\\\"\\\"\\\"\\n\",\n    \"    feat_paths, mels = zip(*batch)\\n\",\n    \"\\n\",\n    \"    return feat_paths, torch.stack(mels)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"tl0WnYwxNK_S\"\n   },\n   \"source\": [\n    \"## Main function of Inference\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 103,\n     \"referenced_widgets\": [\n      \"6786c2b0e2614ad389620246cb2178f2\",\n      \"0d592098920140dab61aac5410568c36\",\n      \"da681e3cc353420cb142d56df0fce231\",\n      \"401ae722b95c4ff59b836422dbe71edc\",\n      \"4efbfb7c7cb54276862e5321209d57fa\",\n      \"f6dcb3ec9c624171966bb889808dbcb3\",\n      \"100abf072991474abfcee871d2b83f37\",\n      \"decc12da6f5742ec8b7ec7789ee434ab\",\n      \"0117ac88c98440b29ab1f452107cbe1a\",\n      \"3d64942a0eaa409a93df049bb594c062\",\n      \"8c8721e504cf434eb9e263fb9983969a\"\n     ]\n    },\n    \"id\": \"i8SAbuXEJb2A\",\n    \"outputId\": \"3808f409-19c9-426c-dc15-1b88b0c21645\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[Info]: Use cuda now!\\n\",\n      \"[Info]: Finish loading data!\\n\",\n      \"[Info]: Finish creating model!\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7f607f4b1e714f9a954d8ef455726aee\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/8000 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import json\\n\",\n    \"import csv\\n\",\n    \"from pathlib import Path\\n\",\n    \"from tqdm.notebook import tqdm\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader\\n\",\n    \"\\n\",\n    \"def parse_args():\\n\",\n    \"    \\\"\\\"\\\"arguments\\\"\\\"\\\"\\n\",\n    \"    config = {\\n\",\n    \"        \\\"data_dir\\\": \\\"./Dataset\\\",\\n\",\n    \"        \\\"model_path\\\": \\\"./model.ckpt\\\",\\n\",\n    \"        \\\"output_path\\\": \\\"./output.csv\\\",\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    return config\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def main(\\n\",\n    \"    data_dir,\\n\",\n    \"    model_path,\\n\",\n    \"    output_path,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"Main function.\\\"\\\"\\\"\\n\",\n    \"    device = torch.device(\\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n    \"    print(f\\\"[Info]: Use {device} now!\\\")\\n\",\n    \"\\n\",\n    \"    mapping_path = Path(data_dir) / \\\"mapping.json\\\"\\n\",\n    \"    mapping = json.load(mapping_path.open())\\n\",\n    \"\\n\",\n    \"    dataset = InferenceDataset(data_dir)\\n\",\n    \"    dataloader = DataLoader(\\n\",\n    \"        dataset,\\n\",\n    \"        batch_size=1,\\n\",\n    \"        shuffle=False,\\n\",\n    \"        drop_last=False,\\n\",\n    \"        num_workers=8,\\n\",\n    \"        collate_fn=inference_collate_batch,\\n\",\n    \"    )\\n\",\n    \"    print(f\\\"[Info]: Finish loading data!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    speaker_num = len(mapping[\\\"id2speaker\\\"])\\n\",\n    \"    model = Classifier(n_spks=speaker_num).to(device)\\n\",\n    \"    model.load_state_dict(torch.load(model_path))\\n\",\n    \"    model.eval()\\n\",\n    \"    print(f\\\"[Info]: Finish creating model!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    results = [[\\\"Id\\\", \\\"Category\\\"]]\\n\",\n    \"    for feat_paths, mels in tqdm(dataloader):\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            mels = mels.to(device)\\n\",\n    \"            outs = model(mels)\\n\",\n    \"            preds = outs.argmax(1).cpu().numpy()\\n\",\n    \"            for feat_path, pred in zip(feat_paths, preds):\\n\",\n    \"                results.append([feat_path, mapping[\\\"id2speaker\\\"][str(pred)]])\\n\",\n    \"\\n\",\n    \"    with open(output_path, 'w', newline='') as csvfile:\\n\",\n    \"        writer = csv.writer(csvfile)\\n\",\n    \"        writer.writerows(results)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"if __name__ == \\\"__main__\\\":\\n\",\n    \"    main(**parse_args())\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"DL\",\n   \"language\": \"python\",\n   \"name\": \"dl\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"0117ac88c98440b29ab1f452107cbe1a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"0d592098920140dab61aac5410568c36\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f6dcb3ec9c624171966bb889808dbcb3\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_100abf072991474abfcee871d2b83f37\",\n      \"value\": \"100%\"\n     }\n    },\n    \"100abf072991474abfcee871d2b83f37\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3d64942a0eaa409a93df049bb594c062\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"401ae722b95c4ff59b836422dbe71edc\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3d64942a0eaa409a93df049bb594c062\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_8c8721e504cf434eb9e263fb9983969a\",\n      \"value\": \" 8000/8000 [00:33&lt;00:00, 256.07it/s]\"\n     }\n    },\n    \"4efbfb7c7cb54276862e5321209d57fa\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6786c2b0e2614ad389620246cb2178f2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_0d592098920140dab61aac5410568c36\",\n       \"IPY_MODEL_da681e3cc353420cb142d56df0fce231\",\n       \"IPY_MODEL_401ae722b95c4ff59b836422dbe71edc\"\n      ],\n      \"layout\": \"IPY_MODEL_4efbfb7c7cb54276862e5321209d57fa\"\n     }\n    },\n    \"8c8721e504cf434eb9e263fb9983969a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"da681e3cc353420cb142d56df0fce231\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_decc12da6f5742ec8b7ec7789ee434ab\",\n      \"max\": 8000,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_0117ac88c98440b29ab1f452107cbe1a\",\n      \"value\": 8000\n     }\n    },\n    \"decc12da6f5742ec8b7ec7789ee434ab\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f6dcb3ec9c624171966bb889808dbcb3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW04/HW04_Medium_0.83300.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Medium Baseline\\n\",\n    \"You can search for the “Medium” tag to check for changes (Ctrl + F or Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"C_jdZ5vHJ4A9\"\n   },\n   \"source\": [\n    \"# Task description\\n\",\n    \"- Classify the speakers of given features.\\n\",\n    \"- Main goal: Learn how to use transformer.\\n\",\n    \"- Baselines:\\n\",\n    \"  - Easy: Run sample code and know how to use transformer.\\n\",\n    \"  - Medium: Know how to adjust parameters of transformer.\\n\",\n    \"  - Strong: Construct [conformer](https://arxiv.org/abs/2005.08100) which is a variety of transformer. \\n\",\n    \"  - Boss: Implement [Self-Attention Pooling](https://arxiv.org/pdf/2008.01077v1.pdf) & [Additive Margin Softmax](https://arxiv.org/pdf/1801.05599.pdf) to further boost the performance.\\n\",\n    \"\\n\",\n    \"- Other links\\n\",\n    \"  - Competiton: [link](https://www.kaggle.com/t/49ea0c385a974db5919ec67299ba2e6b)\\n\",\n    \"  - Slide: [link](https://docs.google.com/presentation/d/1LDAW0GGrC9B6D7dlNdYzQL6D60-iKgFr/edit?usp=sharing&ouid=104280564485377739218&rtpof=true&sd=true)\\n\",\n    \"  - Data: [link](https://github.com/googly-mingto/ML2023HW4/releases)\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"gtKxUzSgXKj3\",\n    \"outputId\": \"3f59402c-95a7-4fbd-a39c-57606590a89c\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partaa\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partab\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partac\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partad\\n\",\n    \"\\n\",\n    \"# !cat Dataset.tar.gz.part* > Dataset.tar.gz\\n\",\n    \"# !rm Dataset.tar.gz.partaa\\n\",\n    \"# !rm Dataset.tar.gz.partab\\n\",\n    \"# !rm Dataset.tar.gz.partac\\n\",\n    \"# !rm Dataset.tar.gz.partad\\n\",\n    \"# # unzip the file\\n\",\n    \"# !tar zxf Dataset.tar.gz\\n\",\n    \"# !rm Dataset.tar.gz\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"U6Y1cfpDfpON\",\n    \"outputId\": \"6ba26637-5c7b-48a9-be0b-1f10ba76590a\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# !tar zxf Dataset.tar.gz\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"id\": \"E6burzCXIyuA\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"def set_seed(seed):\\n\",\n    \"    np.random.seed(seed)\\n\",\n    \"    random.seed(seed)\\n\",\n    \"    torch.manual_seed(seed)\\n\",\n    \"    if torch.cuda.is_available():\\n\",\n    \"        torch.cuda.manual_seed(seed)\\n\",\n    \"        torch.cuda.manual_seed_all(seed)\\n\",\n    \"    torch.backends.cudnn.benchmark = False\\n\",\n    \"    torch.backends.cudnn.deterministic = True\\n\",\n    \"\\n\",\n    \"set_seed(87)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"k7dVbxW2LASN\"\n   },\n   \"source\": [\n    \"# Data\\n\",\n    \"\\n\",\n    \"## Dataset\\n\",\n    \"- Original dataset is [Voxceleb2](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/vox2.html).\\n\",\n    \"- The [license](https://creativecommons.org/licenses/by/4.0/) and [complete version](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/files/license.txt) of Voxceleb2.\\n\",\n    \"- We randomly select 600 speakers from Voxceleb2.\\n\",\n    \"- Then preprocess the raw waveforms into mel-spectrograms.\\n\",\n    \"\\n\",\n    \"- Args:\\n\",\n    \"  - data_dir: The path to the data directory.\\n\",\n    \"  - metadata_path: The path to the metadata.\\n\",\n    \"  - segment_len: The length of audio segment for training. \\n\",\n    \"- The architecture of data directory \\\\\\\\\\n\",\n    \"  - data directory \\\\\\\\\\n\",\n    \"  |---- metadata.json \\\\\\\\\\n\",\n    \"  |---- testdata.json \\\\\\\\\\n\",\n    \"  |---- mapping.json \\\\\\\\\\n\",\n    \"  |---- uttr-{random string}.pt \\\\\\\\\\n\",\n    \"\\n\",\n    \"- The information in metadata\\n\",\n    \"  - \\\"n_mels\\\": The dimention of mel-spectrogram.\\n\",\n    \"  - \\\"speakers\\\": A dictionary. \\n\",\n    \"    - Key: speaker ids.\\n\",\n    \"    - value: \\\"feature_path\\\" and \\\"mel_len\\\"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"For efficiency, we segment the mel-spectrograms into segments in the traing step.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"KpuGxl4CI2pr\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import json\\n\",\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"from pathlib import Path\\n\",\n    \"from torch.utils.data import Dataset\\n\",\n    \"from torch.nn.utils.rnn import pad_sequence\\n\",\n    \" \\n\",\n    \" \\n\",\n    \"class myDataset(Dataset):\\n\",\n    \"    def __init__(self, data_dir, segment_len=128):\\n\",\n    \"        self.data_dir = data_dir\\n\",\n    \"        self.segment_len = segment_len\\n\",\n    \"\\n\",\n    \"        # Load the mapping from speaker neme to their corresponding id. \\n\",\n    \"        mapping_path = Path(data_dir) / \\\"mapping.json\\\"\\n\",\n    \"        mapping = json.load(mapping_path.open())\\n\",\n    \"        self.speaker2id = mapping[\\\"speaker2id\\\"]\\n\",\n    \"\\n\",\n    \"        # Load metadata of training data.\\n\",\n    \"        metadata_path = Path(data_dir) / \\\"metadata.json\\\"\\n\",\n    \"        metadata = json.load(open(metadata_path))[\\\"speakers\\\"]\\n\",\n    \"\\n\",\n    \"        # Get the total number of speaker.\\n\",\n    \"        self.speaker_num = len(metadata.keys())\\n\",\n    \"        self.data = []\\n\",\n    \"        for speaker in metadata.keys():\\n\",\n    \"            for utterances in metadata[speaker]:\\n\",\n    \"                self.data.append([utterances[\\\"feature_path\\\"], self.speaker2id[speaker]])\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"            return len(self.data)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, index):\\n\",\n    \"        feat_path, speaker = self.data[index]\\n\",\n    \"        # Load preprocessed mel-spectrogram.\\n\",\n    \"        mel = torch.load(os.path.join(self.data_dir, feat_path))\\n\",\n    \"\\n\",\n    \"        # Segment mel-spectrogram into \\\"segment_len\\\" frames.\\n\",\n    \"        if len(mel) > self.segment_len:\\n\",\n    \"            # Randomly get the starting point of the segment.\\n\",\n    \"            start = random.randint(0, len(mel) - self.segment_len)\\n\",\n    \"            # Get a segment with \\\"segment_len\\\" frames.\\n\",\n    \"            mel = torch.FloatTensor(mel[start:start+self.segment_len])\\n\",\n    \"        else:\\n\",\n    \"            mel = torch.FloatTensor(mel)\\n\",\n    \"        # Turn the speaker id into long for computing loss later.\\n\",\n    \"        speaker = torch.FloatTensor([speaker]).long()  # .long().dtype = torch.int64\\n\",\n    \"        return mel, speaker\\n\",\n    \"\\n\",\n    \"    def get_speaker_number(self):\\n\",\n    \"        return self.speaker_num\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"668hverTMlGN\"\n   },\n   \"source\": [\n    \"## Dataloader\\n\",\n    \"- Split dataset into training dataset(90%) and validation dataset(10%).\\n\",\n    \"- Create dataloader to iterate the data.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"B7c2gZYoJDRS\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, random_split\\n\",\n    \"from torch.nn.utils.rnn import pad_sequence\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def collate_batch(batch):\\n\",\n    \"    # Process features within a batch.\\n\",\n    \"    \\\"\\\"\\\"Collate a batch of data.\\\"\\\"\\\"\\n\",\n    \"    mel, speaker = zip(*batch)\\n\",\n    \"    # Because we train the model batch by batch, we need to pad the features in the same batch to make their lengths the same.\\n\",\n    \"    mel = pad_sequence(mel, batch_first=True, padding_value=-20)    # pad log 10^(-20) which is very small value.\\n\",\n    \"    # mel: (batch size, length, 40)\\n\",\n    \"    return mel, torch.FloatTensor(speaker).long()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def get_dataloader(data_dir, batch_size, n_workers):\\n\",\n    \"    \\\"\\\"\\\"Generate dataloader\\\"\\\"\\\"\\n\",\n    \"    dataset = myDataset(data_dir)\\n\",\n    \"    speaker_num = dataset.get_speaker_number()\\n\",\n    \"    # Split dataset into training dataset and validation dataset\\n\",\n    \"    trainlen = int(0.9 * len(dataset))\\n\",\n    \"    lengths = [trainlen, len(dataset) - trainlen]\\n\",\n    \"    trainset, validset = random_split(dataset, lengths)\\n\",\n    \"\\n\",\n    \"    train_loader = DataLoader(\\n\",\n    \"        trainset,\\n\",\n    \"        batch_size=batch_size,\\n\",\n    \"        shuffle=True,\\n\",\n    \"        drop_last=True,\\n\",\n    \"        num_workers=n_workers,\\n\",\n    \"        pin_memory=True,\\n\",\n    \"        collate_fn=collate_batch,\\n\",\n    \"    )\\n\",\n    \"    valid_loader = DataLoader(\\n\",\n    \"        validset,\\n\",\n    \"        batch_size=batch_size,\\n\",\n    \"        num_workers=n_workers,\\n\",\n    \"        drop_last=True,\\n\",\n    \"        pin_memory=True,\\n\",\n    \"        collate_fn=collate_batch,\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    return train_loader, valid_loader, speaker_num\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5FOSZYxrMqhc\"\n   },\n   \"source\": [\n    \"# Model\\n\",\n    \"- TransformerEncoderLayer:\\n\",\n    \"  - Base transformer encoder layer in [Attention Is All You Need](https://arxiv.org/abs/1706.03762)\\n\",\n    \"  - Parameters:\\n\",\n    \"    - d_model: the number of expected features of the input (required).\\n\",\n    \"\\n\",\n    \"    - nhead: the number of heads of the multiheadattention models (required).\\n\",\n    \"\\n\",\n    \"    - dim_feedforward: the dimension of the feedforward network model (default=2048).\\n\",\n    \"\\n\",\n    \"    - dropout: the dropout value (default=0.1).\\n\",\n    \"\\n\",\n    \"    - activation: the activation function of intermediate layer, relu or gelu (default=relu).\\n\",\n    \"\\n\",\n    \"- TransformerEncoder:\\n\",\n    \"  - TransformerEncoder is a stack of N transformer encoder layers\\n\",\n    \"  - Parameters:\\n\",\n    \"    - encoder_layer: an instance of the TransformerEncoderLayer() class (required).\\n\",\n    \"\\n\",\n    \"    - num_layers: the number of sub-encoder-layers in the encoder (required).\\n\",\n    \"\\n\",\n    \"    - norm: the layer normalization component (optional).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"iXZ5B0EKJGs8\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class Classifier(nn.Module):\\n\",\n    \"    def __init__(self, d_model=512, n_spks=600, dropout=0.1):\\n\",\n    \"        super().__init__()\\n\",\n    \"        # Project the dimension of features from that of input into d_model.\\n\",\n    \"        self.prenet = nn.Linear(40, d_model)\\n\",\n    \"        # TODO:\\n\",\n    \"        #   Change Transformer to Conformer.\\n\",\n    \"        #   https://arxiv.org/abs/2005.08100\\n\",\n    \"        self.encoder_layer = nn.TransformerEncoderLayer(\\n\",\n    \"            d_model=d_model, dim_feedforward=256, nhead=16\\n\",\n    \"        )\\n\",\n    \"        # self.encoder = nn.TransformerEncoder(self.encoder_layer, num_layers=2)\\n\",\n    \"\\n\",\n    \"        # Project the the dimension of features from d_model into speaker nums.\\n\",\n    \"        self.pred_layer = nn.Sequential(\\n\",\n    \"            nn.Linear(d_model, 2 * d_model),\\n\",\n    \"            nn.Sigmoid(),\\n\",\n    \"            nn.Dropout(dropout),\\n\",\n    \"            nn.Linear(2 * d_model, n_spks),\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, mels):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        args:\\n\",\n    \"            mels: (batch size, length, 40)\\n\",\n    \"        return:\\n\",\n    \"            out: (batch size, n_spks)\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        # out: (batch size, length, d_model)\\n\",\n    \"        out = self.prenet(mels)\\n\",\n    \"        # out: (length, batch size, d_model)\\n\",\n    \"        out = out.permute(1, 0, 2)\\n\",\n    \"        # The encoder layer expect features in the shape of (length, batch size, d_model).\\n\",\n    \"        out = self.encoder_layer(out)\\n\",\n    \"        # out: (batch size, length, d_model)\\n\",\n    \"        out = out.transpose(0, 1)\\n\",\n    \"        # mean pooling\\n\",\n    \"        stats = out.mean(dim=1)\\n\",\n    \"\\n\",\n    \"        # out: (batch, n_spks)\\n\",\n    \"        out = self.pred_layer(stats)\\n\",\n    \"        return out\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"W7yX8JinM5Ly\"\n   },\n   \"source\": [\n    \"# Learning rate schedule\\n\",\n    \"- For transformer architecture, the design of learning rate schedule is different from that of CNN.\\n\",\n    \"- Previous works show that the warmup of learning rate is useful for training models with transformer architectures.\\n\",\n    \"- The warmup schedule\\n\",\n    \"  - Set learning rate to 0 in the beginning.\\n\",\n    \"  - The learning rate increases linearly from 0 to initial learning rate during warmup period.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"ykt0N1nVJJi2\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"from torch.optim import Optimizer\\n\",\n    \"from torch.optim.lr_scheduler import LambdaLR\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def get_cosine_schedule_with_warmup(\\n\",\n    \"    optimizer: Optimizer,\\n\",\n    \"    num_warmup_steps: int,\\n\",\n    \"    num_training_steps: int,\\n\",\n    \"    num_cycles: float = 0.5,\\n\",\n    \"    last_epoch: int = -1,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Create a schedule with a learning rate that decreases following the values of the cosine function between the\\n\",\n    \"    initial lr set in the optimizer to 0, after a warmup period during which it increases linearly between 0 and the\\n\",\n    \"    initial lr set in the optimizer.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        optimizer (:class:`~torch.optim.Optimizer`):\\n\",\n    \"        The optimizer for which to schedule the learning rate.\\n\",\n    \"        num_warmup_steps (:obj:`int`):\\n\",\n    \"        The number of steps for the warmup phase.\\n\",\n    \"        num_training_steps (:obj:`int`):\\n\",\n    \"        The total number of training steps.\\n\",\n    \"        num_cycles (:obj:`float`, `optional`, defaults to 0.5):\\n\",\n    \"        The number of waves in the cosine schedule (the defaults is to just decrease from the max value to 0\\n\",\n    \"        following a half-cosine).\\n\",\n    \"        last_epoch (:obj:`int`, `optional`, defaults to -1):\\n\",\n    \"        The index of the last epoch when resuming training.\\n\",\n    \"\\n\",\n    \"    Return:\\n\",\n    \"        :obj:`torch.optim.lr_scheduler.LambdaLR` with the appropriate schedule.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def lr_lambda(current_step):\\n\",\n    \"        # Warmup\\n\",\n    \"        if current_step < num_warmup_steps:\\n\",\n    \"            return float(current_step) / float(max(1, num_warmup_steps))\\n\",\n    \"        # decadence\\n\",\n    \"        progress = float(current_step - num_warmup_steps) / float(\\n\",\n    \"            max(1, num_training_steps - num_warmup_steps)\\n\",\n    \"        )\\n\",\n    \"        return max(\\n\",\n    \"            0.0, 0.5 * (1.0 + math.cos(math.pi * float(num_cycles) * 2.0 * progress))\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    return LambdaLR(optimizer, lr_lambda, last_epoch)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"-LN2XkteM_uH\"\n   },\n   \"source\": [\n    \"# Model Function\\n\",\n    \"- Model forward function.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"N-rr8529JMz0\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def model_fn(batch, model, criterion, device):\\n\",\n    \"\\t\\\"\\\"\\\"Forward a batch through the model.\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"\\tmels, labels = batch\\n\",\n    \"\\tmels = mels.to(device)\\n\",\n    \"\\tlabels = labels.to(device)\\n\",\n    \"\\n\",\n    \"\\touts = model(mels)\\n\",\n    \"\\n\",\n    \"\\tloss = criterion(outs, labels)\\n\",\n    \"\\n\",\n    \"\\t# Get the speaker id with highest probability.\\n\",\n    \"\\tpreds = outs.argmax(1)\\n\",\n    \"\\t# Compute accuracy.\\n\",\n    \"\\taccuracy = torch.mean((preds == labels).float())\\n\",\n    \"\\n\",\n    \"\\treturn loss, accuracy\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cwM_xyOtNCI2\"\n   },\n   \"source\": [\n    \"# Validate\\n\",\n    \"- Calculate accuracy of the validation set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"YAiv6kpdJRTJ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from tqdm.notebook import tqdm\\n\",\n    \"import torch\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def valid(dataloader, model, criterion, device): \\n\",\n    \"    \\\"\\\"\\\"Validate on validation set.\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    running_loss = 0.0\\n\",\n    \"    running_accuracy = 0.0\\n\",\n    \"    pbar = tqdm(total=len(dataloader.dataset), ncols=0, desc=\\\"Valid\\\", unit=\\\" uttr\\\")\\n\",\n    \"\\n\",\n    \"    for i, batch in enumerate(dataloader):\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            loss, accuracy = model_fn(batch, model, criterion, device)\\n\",\n    \"            running_loss += loss.item()\\n\",\n    \"            running_accuracy += accuracy.item()\\n\",\n    \"\\n\",\n    \"        pbar.update(dataloader.batch_size)\\n\",\n    \"        pbar.set_postfix(\\n\",\n    \"            loss=f\\\"{running_loss / (i+1):.2f}\\\",\\n\",\n    \"            accuracy=f\\\"{running_accuracy / (i+1):.2f}\\\",\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    pbar.close()\\n\",\n    \"    model.train()\\n\",\n    \"\\n\",\n    \"    return running_accuracy / len(dataloader)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"g6ne9G-eNEdG\"\n   },\n   \"source\": [\n    \"# Main function\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"Usv9s-CuJSG7\",\n    \"outputId\": \"f4f6a983-3559-4f36-efae-402bbf790473\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[Info]: Use cuda now!\\n\",\n      \"[Info]: Finish loading data!\\n\",\n      \"[Info]: Finish creating model!\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [00:23<00:00, 86.36 step/s, accuracy=0.28, loss=3.41, step=2000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7162.54 uttr/s, accuracy=0.16, loss=4.01]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.81 step/s, accuracy=0.25, loss=3.61, step=4000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7214.80 uttr/s, accuracy=0.28, loss=3.29]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.81 step/s, accuracy=0.50, loss=2.59, step=6000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7292.91 uttr/s, accuracy=0.37, loss=2.83]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.43 step/s, accuracy=0.53, loss=1.88, step=8000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7245.57 uttr/s, accuracy=0.41, loss=2.65]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.80 step/s, accuracy=0.38, loss=2.22, step=1e+4]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7332.39 uttr/s, accuracy=0.45, loss=2.44]\\n\",\n      \"Train:   1% 18/2000 [00:00<00:23, 84.34 step/s, accuracy=0.53, loss=1.55, step=1e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 10000, best model saved. (accuracy=0.4454)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.77 step/s, accuracy=0.62, loss=1.43, step=12000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7225.56 uttr/s, accuracy=0.48, loss=2.32]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.87 step/s, accuracy=0.41, loss=2.45, step=14000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7237.85 uttr/s, accuracy=0.49, loss=2.22]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.34 step/s, accuracy=0.62, loss=1.92, step=16000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7286.52 uttr/s, accuracy=0.53, loss=2.07]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.76 step/s, accuracy=0.59, loss=1.91, step=18000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7193.37 uttr/s, accuracy=0.55, loss=2.01]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.69 step/s, accuracy=0.56, loss=1.47, step=2e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7129.95 uttr/s, accuracy=0.56, loss=1.95]\\n\",\n      \"Train:   1% 18/2000 [00:00<00:23, 84.95 step/s, accuracy=0.56, loss=2.07, step=2e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 20000, best model saved. (accuracy=0.5595)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.73 step/s, accuracy=0.56, loss=1.44, step=22000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7208.31 uttr/s, accuracy=0.57, loss=1.94]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.29 step/s, accuracy=0.78, loss=0.93, step=24000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7253.03 uttr/s, accuracy=0.59, loss=1.83]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.71 step/s, accuracy=0.75, loss=0.87, step=26000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7266.04 uttr/s, accuracy=0.61, loss=1.75]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.68 step/s, accuracy=0.78, loss=0.91, step=28000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7248.82 uttr/s, accuracy=0.63, loss=1.68]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.71 step/s, accuracy=0.56, loss=1.60, step=3e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7193.18 uttr/s, accuracy=0.63, loss=1.65]\\n\",\n      \"Train:   1% 18/2000 [00:00<00:22, 87.85 step/s, accuracy=0.84, loss=0.90, step=3e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 30000, best model saved. (accuracy=0.6301)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.20 step/s, accuracy=0.72, loss=1.09, step=32000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7315.34 uttr/s, accuracy=0.64, loss=1.65]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.73 step/s, accuracy=0.84, loss=0.67, step=34000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7201.57 uttr/s, accuracy=0.64, loss=1.65]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.64 step/s, accuracy=0.91, loss=0.52, step=36000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7112.70 uttr/s, accuracy=0.66, loss=1.56]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.70 step/s, accuracy=0.78, loss=0.92, step=38000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7288.34 uttr/s, accuracy=0.66, loss=1.54]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.27 step/s, accuracy=0.84, loss=0.58, step=4e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7319.11 uttr/s, accuracy=0.67, loss=1.49]\\n\",\n      \"Train:   1% 18/2000 [00:00<00:23, 84.53 step/s, accuracy=0.81, loss=0.66, step=4e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 40000, best model saved. (accuracy=0.6741)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.70 step/s, accuracy=0.91, loss=0.50, step=42000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7340.65 uttr/s, accuracy=0.68, loss=1.43]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.74 step/s, accuracy=0.84, loss=0.48, step=44000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7154.72 uttr/s, accuracy=0.68, loss=1.43]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.56 step/s, accuracy=0.72, loss=0.91, step=46000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7249.52 uttr/s, accuracy=0.69, loss=1.41]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.24 step/s, accuracy=0.94, loss=0.64, step=48000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7250.19 uttr/s, accuracy=0.69, loss=1.43]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.75 step/s, accuracy=0.88, loss=0.56, step=5e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7251.47 uttr/s, accuracy=0.71, loss=1.32]\\n\",\n      \"Train:   1% 18/2000 [00:00<00:23, 84.46 step/s, accuracy=0.94, loss=0.40, step=5e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 50000, best model saved. (accuracy=0.7073)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.63 step/s, accuracy=0.91, loss=0.47, step=52000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7315.00 uttr/s, accuracy=0.70, loss=1.35]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.66 step/s, accuracy=0.91, loss=0.44, step=54000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7166.67 uttr/s, accuracy=0.69, loss=1.38]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.24 step/s, accuracy=0.91, loss=0.50, step=56000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7258.93 uttr/s, accuracy=0.71, loss=1.31]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.75 step/s, accuracy=0.78, loss=0.64, step=58000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7316.11 uttr/s, accuracy=0.72, loss=1.28]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.71 step/s, accuracy=0.91, loss=0.63, step=6e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7247.97 uttr/s, accuracy=0.72, loss=1.31]\\n\",\n      \"Train:   1% 18/2000 [00:00<00:23, 84.12 step/s, accuracy=0.84, loss=0.73, step=6e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 60000, best model saved. (accuracy=0.7189)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.59 step/s, accuracy=0.88, loss=0.51, step=62000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7303.67 uttr/s, accuracy=0.72, loss=1.26]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.11 step/s, accuracy=0.75, loss=0.92, step=64000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7168.24 uttr/s, accuracy=0.72, loss=1.26]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.75 step/s, accuracy=0.91, loss=0.45, step=66000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7271.37 uttr/s, accuracy=0.72, loss=1.25]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.69 step/s, accuracy=0.91, loss=0.41, step=68000]\\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7350.55 uttr/s, accuracy=0.72, loss=1.29]\\n\",\n      \"Train: 100% 2000/2000 [00:22<00:00, 88.58 step/s, accuracy=0.91, loss=0.28, step=7e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:00<00:00, 7313.60 uttr/s, accuracy=0.72, loss=1.28]\\n\",\n      \"Train:   0% 0/2000 [00:00<?, ? step/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 70000, best model saved. (accuracy=0.7244)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"from torch.optim import AdamW\\n\",\n    \"from torch.utils.data import DataLoader, random_split\\n\",\n    \"\\n\",\n    \"from torch.utils.tensorboard import SummaryWriter\\n\",\n    \"\\n\",\n    \"def parse_args():\\n\",\n    \"    \\\"\\\"\\\"arguments\\\"\\\"\\\"\\n\",\n    \"    config = {\\n\",\n    \"        \\\"data_dir\\\": \\\"./Dataset\\\",\\n\",\n    \"        \\\"save_path\\\": \\\"model.ckpt\\\",\\n\",\n    \"        \\\"batch_size\\\": 32,\\n\",\n    \"        \\\"n_workers\\\": 8,\\n\",\n    \"        \\\"valid_steps\\\": 2000,\\n\",\n    \"        \\\"warmup_steps\\\": 1000,\\n\",\n    \"        \\\"save_steps\\\": 10000,\\n\",\n    \"        \\\"total_steps\\\": 70000,\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    return config\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def main(\\n\",\n    \"    data_dir,\\n\",\n    \"    save_path,\\n\",\n    \"    batch_size,\\n\",\n    \"    n_workers,\\n\",\n    \"    valid_steps,\\n\",\n    \"    warmup_steps,\\n\",\n    \"    total_steps,\\n\",\n    \"    save_steps,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"Main function.\\\"\\\"\\\"\\n\",\n    \"    device = torch.device(\\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n    \"    print(f\\\"[Info]: Use {device} now!\\\")\\n\",\n    \"\\n\",\n    \"    train_loader, valid_loader, speaker_num = get_dataloader(data_dir, batch_size, n_workers)\\n\",\n    \"    train_iterator = iter(train_loader)\\n\",\n    \"    print(f\\\"[Info]: Finish loading data!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    model = Classifier(n_spks=speaker_num).to(device)\\n\",\n    \"    criterion = nn.CrossEntropyLoss()\\n\",\n    \"    optimizer = AdamW(model.parameters(), lr=1e-3)\\n\",\n    \"    scheduler = get_cosine_schedule_with_warmup(optimizer, warmup_steps, total_steps)\\n\",\n    \"    print(f\\\"[Info]: Finish creating model!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    best_accuracy = -1.0\\n\",\n    \"    best_state_dict = None\\n\",\n    \"\\n\",\n    \"    writer = SummaryWriter()\\n\",\n    \"    pbar = tqdm(total=valid_steps, ncols=0, desc=\\\"Train\\\", unit=\\\" step\\\")\\n\",\n    \"\\n\",\n    \"    for step in range(total_steps):\\n\",\n    \"        # Get data\\n\",\n    \"        try:\\n\",\n    \"            batch = next(train_iterator)\\n\",\n    \"        except StopIteration:\\n\",\n    \"            train_iterator = iter(train_loader)\\n\",\n    \"            batch = next(train_iterator)\\n\",\n    \"\\n\",\n    \"        loss, accuracy = model_fn(batch, model, criterion, device)\\n\",\n    \"        batch_loss = loss.item()\\n\",\n    \"        batch_accuracy = accuracy.item()\\n\",\n    \"\\n\",\n    \"        # Updata model\\n\",\n    \"        loss.backward()\\n\",\n    \"        optimizer.step()\\n\",\n    \"        scheduler.step()\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        # Log\\n\",\n    \"        pbar.update()\\n\",\n    \"        pbar.set_postfix(\\n\",\n    \"            loss=f\\\"{batch_loss:.2f}\\\",\\n\",\n    \"            accuracy=f\\\"{batch_accuracy:.2f}\\\",\\n\",\n    \"            step=step + 1,\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"        # Do validation\\n\",\n    \"        if (step + 1) % valid_steps == 0:\\n\",\n    \"            pbar.close()\\n\",\n    \"\\n\",\n    \"            valid_accuracy = valid(valid_loader, model, criterion, device)\\n\",\n    \"\\n\",\n    \"            # keep the best model\\n\",\n    \"            if valid_accuracy > best_accuracy:\\n\",\n    \"                best_accuracy = valid_accuracy\\n\",\n    \"                best_state_dict = model.state_dict()\\n\",\n    \"\\n\",\n    \"            pbar = tqdm(total=valid_steps, ncols=0, desc=\\\"Train\\\", unit=\\\" step\\\")\\n\",\n    \"            writer.add_scalar('Acc/train', batch_accuracy, step)\\n\",\n    \"            writer.add_scalar('Acc/valid', valid_accuracy, step)\\n\",\n    \"            writer.add_scalar('lr', optimizer.state_dict()['param_groups'][0]['lr'], step)\\n\",\n    \"\\n\",\n    \"        # Save the best model so far.\\n\",\n    \"        if (step + 1) % save_steps == 0 and best_state_dict is not None:\\n\",\n    \"            torch.save(best_state_dict, save_path)\\n\",\n    \"            pbar.write(f\\\"Step {step + 1}, best model saved. (accuracy={best_accuracy:.4f})\\\")\\n\",\n    \"\\n\",\n    \"    pbar.close()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"if __name__ == \\\"__main__\\\":\\n\",\n    \"    main(**parse_args())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NLatBYAhNNMx\"\n   },\n   \"source\": [\n    \"# Inference\\n\",\n    \"\\n\",\n    \"## Dataset of inference\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"efS4pCmAJXJH\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import json\\n\",\n    \"import torch\\n\",\n    \"from pathlib import Path\\n\",\n    \"from torch.utils.data import Dataset\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class InferenceDataset(Dataset):\\n\",\n    \"    def __init__(self, data_dir):\\n\",\n    \"        testdata_path = Path(data_dir) / \\\"testdata.json\\\"\\n\",\n    \"        metadata = json.load(testdata_path.open())\\n\",\n    \"        self.data_dir = data_dir\\n\",\n    \"        self.data = metadata[\\\"utterances\\\"]\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.data)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, index):\\n\",\n    \"        utterance = self.data[index]\\n\",\n    \"        feat_path = utterance[\\\"feature_path\\\"]\\n\",\n    \"        mel = torch.load(os.path.join(self.data_dir, feat_path))\\n\",\n    \"\\n\",\n    \"        return feat_path, mel\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def inference_collate_batch(batch):\\n\",\n    \"    \\\"\\\"\\\"Collate a batch of data.\\\"\\\"\\\"\\n\",\n    \"    feat_paths, mels = zip(*batch)\\n\",\n    \"\\n\",\n    \"    return feat_paths, torch.stack(mels)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"tl0WnYwxNK_S\"\n   },\n   \"source\": [\n    \"## Main funcrion of Inference\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 103,\n     \"referenced_widgets\": [\n      \"6786c2b0e2614ad389620246cb2178f2\",\n      \"0d592098920140dab61aac5410568c36\",\n      \"da681e3cc353420cb142d56df0fce231\",\n      \"401ae722b95c4ff59b836422dbe71edc\",\n      \"4efbfb7c7cb54276862e5321209d57fa\",\n      \"f6dcb3ec9c624171966bb889808dbcb3\",\n      \"100abf072991474abfcee871d2b83f37\",\n      \"decc12da6f5742ec8b7ec7789ee434ab\",\n      \"0117ac88c98440b29ab1f452107cbe1a\",\n      \"3d64942a0eaa409a93df049bb594c062\",\n      \"8c8721e504cf434eb9e263fb9983969a\"\n     ]\n    },\n    \"id\": \"i8SAbuXEJb2A\",\n    \"outputId\": \"3808f409-19c9-426c-dc15-1b88b0c21645\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[Info]: Use cuda now!\\n\",\n      \"[Info]: Finish loading data!\\n\",\n      \"[Info]: Finish creating model!\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fd5565b11c5a43ea85c4380c56de27f4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/8000 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import json\\n\",\n    \"import csv\\n\",\n    \"from pathlib import Path\\n\",\n    \"from tqdm.notebook import tqdm\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader\\n\",\n    \"\\n\",\n    \"def parse_args():\\n\",\n    \"    \\\"\\\"\\\"arguments\\\"\\\"\\\"\\n\",\n    \"    config = {\\n\",\n    \"        \\\"data_dir\\\": \\\"./Dataset\\\",\\n\",\n    \"        \\\"model_path\\\": \\\"./model.ckpt\\\",\\n\",\n    \"        \\\"output_path\\\": \\\"./output.csv\\\",\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    return config\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def main(\\n\",\n    \"    data_dir,\\n\",\n    \"    model_path,\\n\",\n    \"    output_path,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"Main function.\\\"\\\"\\\"\\n\",\n    \"    device = torch.device(\\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n    \"    print(f\\\"[Info]: Use {device} now!\\\")\\n\",\n    \"\\n\",\n    \"    mapping_path = Path(data_dir) / \\\"mapping.json\\\"\\n\",\n    \"    mapping = json.load(mapping_path.open())\\n\",\n    \"\\n\",\n    \"    dataset = InferenceDataset(data_dir)\\n\",\n    \"    dataloader = DataLoader(\\n\",\n    \"        dataset,\\n\",\n    \"        batch_size=1,\\n\",\n    \"        shuffle=False,\\n\",\n    \"        drop_last=False,\\n\",\n    \"        num_workers=8,\\n\",\n    \"        collate_fn=inference_collate_batch,\\n\",\n    \"    )\\n\",\n    \"    print(f\\\"[Info]: Finish loading data!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    speaker_num = len(mapping[\\\"id2speaker\\\"])\\n\",\n    \"    model = Classifier(n_spks=speaker_num).to(device)\\n\",\n    \"    model.load_state_dict(torch.load(model_path))\\n\",\n    \"    model.eval()\\n\",\n    \"    print(f\\\"[Info]: Finish creating model!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    results = [[\\\"Id\\\", \\\"Category\\\"]]\\n\",\n    \"    for feat_paths, mels in tqdm(dataloader):\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            mels = mels.to(device)\\n\",\n    \"            outs = model(mels)\\n\",\n    \"            preds = outs.argmax(1).cpu().numpy()\\n\",\n    \"            for feat_path, pred in zip(feat_paths, preds):\\n\",\n    \"                results.append([feat_path, mapping[\\\"id2speaker\\\"][str(pred)]])\\n\",\n    \"\\n\",\n    \"    with open(output_path, 'w', newline='') as csvfile:\\n\",\n    \"        writer = csv.writer(csvfile)\\n\",\n    \"        writer.writerows(results)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"if __name__ == \\\"__main__\\\":\\n\",\n    \"    main(**parse_args())\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"DL\",\n   \"language\": \"python\",\n   \"name\": \"dl\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"0117ac88c98440b29ab1f452107cbe1a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"0d592098920140dab61aac5410568c36\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f6dcb3ec9c624171966bb889808dbcb3\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_100abf072991474abfcee871d2b83f37\",\n      \"value\": \"100%\"\n     }\n    },\n    \"100abf072991474abfcee871d2b83f37\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3d64942a0eaa409a93df049bb594c062\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"401ae722b95c4ff59b836422dbe71edc\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3d64942a0eaa409a93df049bb594c062\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_8c8721e504cf434eb9e263fb9983969a\",\n      \"value\": \" 8000/8000 [00:33&lt;00:00, 256.07it/s]\"\n     }\n    },\n    \"4efbfb7c7cb54276862e5321209d57fa\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6786c2b0e2614ad389620246cb2178f2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_0d592098920140dab61aac5410568c36\",\n       \"IPY_MODEL_da681e3cc353420cb142d56df0fce231\",\n       \"IPY_MODEL_401ae722b95c4ff59b836422dbe71edc\"\n      ],\n      \"layout\": \"IPY_MODEL_4efbfb7c7cb54276862e5321209d57fa\"\n     }\n    },\n    \"8c8721e504cf434eb9e263fb9983969a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"da681e3cc353420cb142d56df0fce231\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_decc12da6f5742ec8b7ec7789ee434ab\",\n      \"max\": 8000,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_0117ac88c98440b29ab1f452107cbe1a\",\n      \"value\": 8000\n     }\n    },\n    \"decc12da6f5742ec8b7ec7789ee434ab\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f6dcb3ec9c624171966bb889808dbcb3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW04/HW04_Sample_Code.ipynb",
    "content": "{\n  \"cells\": [\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"C_jdZ5vHJ4A9\"\n      },\n      \"source\": [\n        \"# Task description\\n\",\n        \"- Classify the speakers of given features.\\n\",\n        \"- Main goal: Learn how to use transformer.\\n\",\n        \"- Baselines:\\n\",\n        \"  - Easy: Run sample code and know how to use transformer.\\n\",\n        \"  - Medium: Know how to adjust parameters of transformer.\\n\",\n        \"  - Strong: Construct [conformer](https://arxiv.org/abs/2005.08100) which is a variety of transformer.\\n\",\n        \"  - Boss: Implement [Self-Attention Pooling](https://arxiv.org/pdf/2008.01077v1.pdf) & [Additive Margin Softmax](https://arxiv.org/pdf/1801.05599.pdf) to further boost the performance.\\n\",\n        \"\\n\",\n        \"- Other links\\n\",\n        \"  - Competiton: [link](https://www.kaggle.com/t/49ea0c385a974db5919ec67299ba2e6b)\\n\",\n        \"  - Slide: [link](https://docs.google.com/presentation/d/1LDAW0GGrC9B6D7dlNdYzQL6D60-iKgFr/edit?usp=sharing&ouid=104280564485377739218&rtpof=true&sd=true)\\n\",\n        \"  - Data: [link](https://github.com/googly-mingto/ML2023HW4/releases)\\n\",\n        \"\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"gtKxUzSgXKj3\",\n        \"outputId\": \"3f59402c-95a7-4fbd-a39c-57606590a89c\"\n      },\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"--2023-03-02 05:04:55--  https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partaa\\n\",\n            \"Resolving github.com (github.com)... 140.82.121.4\\n\",\n            \"Connecting to github.com (github.com)|140.82.121.4|:443... connected.\\n\",\n            \"HTTP request sent, awaiting response... 302 Found\\n\",\n            \"Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/606989982/7646b36b-6033-4a31-bac4-380c4d21d91e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230302%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230302T050455Z&X-Amz-Expires=300&X-Amz-Signature=ce8c7b9a37cfcd2b905ab2a8aeaa65c7ef1c8b20e1ea07855edb16a56f2d1b3e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=606989982&response-content-disposition=attachment%3B%20filename%3DDataset.tar.gz.partaa&response-content-type=application%2Foctet-stream [following]\\n\",\n            \"--2023-03-02 05:04:56--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/606989982/7646b36b-6033-4a31-bac4-380c4d21d91e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230302%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230302T050455Z&X-Amz-Expires=300&X-Amz-Signature=ce8c7b9a37cfcd2b905ab2a8aeaa65c7ef1c8b20e1ea07855edb16a56f2d1b3e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=606989982&response-content-disposition=attachment%3B%20filename%3DDataset.tar.gz.partaa&response-content-type=application%2Foctet-stream\\n\",\n            \"Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.111.133, 185.199.110.133, ...\\n\",\n            \"Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.\\n\",\n            \"HTTP request sent, awaiting response... 200 OK\\n\",\n            \"Length: 1560784333 (1.5G) [application/octet-stream]\\n\",\n            \"Saving to: ‘Dataset.tar.gz.partaa’\\n\",\n            \"\\n\",\n            \"Dataset.tar.gz.part 100%[===================>]   1.45G  31.0MB/s    in 86s     \\n\",\n            \"\\n\",\n            \"2023-03-02 05:06:22 (17.3 MB/s) - ‘Dataset.tar.gz.partaa’ saved [1560784333/1560784333]\\n\",\n            \"\\n\",\n            \"--2023-03-02 05:06:22--  https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partab\\n\",\n            \"Resolving github.com (github.com)... 140.82.121.3\\n\",\n            \"Connecting to github.com (github.com)|140.82.121.3|:443... connected.\\n\",\n            \"HTTP request sent, awaiting response... 302 Found\\n\",\n            \"Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/606989982/95b45712-6e2f-4a52-96b1-7d88578345fc?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230302%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230302T050622Z&X-Amz-Expires=300&X-Amz-Signature=f53b3f800fa1be29c1c4c0a058747b3f085d64a54a617bff48f198a8704d681e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=606989982&response-content-disposition=attachment%3B%20filename%3DDataset.tar.gz.partab&response-content-type=application%2Foctet-stream [following]\\n\",\n            \"--2023-03-02 05:06:22--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/606989982/95b45712-6e2f-4a52-96b1-7d88578345fc?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230302%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230302T050622Z&X-Amz-Expires=300&X-Amz-Signature=f53b3f800fa1be29c1c4c0a058747b3f085d64a54a617bff48f198a8704d681e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=606989982&response-content-disposition=attachment%3B%20filename%3DDataset.tar.gz.partab&response-content-type=application%2Foctet-stream\\n\",\n            \"Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.111.133, 185.199.110.133, ...\\n\",\n            \"Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.\\n\",\n            \"HTTP request sent, awaiting response... 200 OK\\n\",\n            \"Length: 1560784333 (1.5G) [application/octet-stream]\\n\",\n            \"Saving to: ‘Dataset.tar.gz.partab’\\n\",\n            \"\\n\",\n            \"Dataset.tar.gz.part 100%[===================>]   1.45G  5.37MB/s    in 2m 49s  \\n\",\n            \"\\n\",\n            \"2023-03-02 05:09:11 (8.82 MB/s) - ‘Dataset.tar.gz.partab’ saved [1560784333/1560784333]\\n\",\n            \"\\n\",\n            \"--2023-03-02 05:09:11--  https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partac\\n\",\n            \"Resolving github.com (github.com)... 140.82.121.4\\n\",\n            \"Connecting to github.com (github.com)|140.82.121.4|:443... connected.\\n\",\n            \"HTTP request sent, awaiting response... 302 Found\\n\",\n            \"Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/606989982/0c9d42d3-95b7-4ca4-b57c-ab1a66a5564d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230302%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230302T050911Z&X-Amz-Expires=300&X-Amz-Signature=a10ad7a33c85a994cea24c2493cc018fa1d287ee75cef1f2b36c919cc173b03d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=606989982&response-content-disposition=attachment%3B%20filename%3DDataset.tar.gz.partac&response-content-type=application%2Foctet-stream [following]\\n\",\n            \"--2023-03-02 05:09:11--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/606989982/0c9d42d3-95b7-4ca4-b57c-ab1a66a5564d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230302%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230302T050911Z&X-Amz-Expires=300&X-Amz-Signature=a10ad7a33c85a994cea24c2493cc018fa1d287ee75cef1f2b36c919cc173b03d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=606989982&response-content-disposition=attachment%3B%20filename%3DDataset.tar.gz.partac&response-content-type=application%2Foctet-stream\\n\",\n            \"Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...\\n\",\n            \"Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.\\n\",\n            \"HTTP request sent, awaiting response... 200 OK\\n\",\n            \"Length: 1560784333 (1.5G) [application/octet-stream]\\n\",\n            \"Saving to: ‘Dataset.tar.gz.partac’\\n\",\n            \"\\n\",\n            \"Dataset.tar.gz.part 100%[===================>]   1.45G  31.0MB/s    in 98s     \\n\",\n            \"\\n\",\n            \"2023-03-02 05:10:50 (15.2 MB/s) - ‘Dataset.tar.gz.partac’ saved [1560784333/1560784333]\\n\",\n            \"\\n\",\n            \"--2023-03-02 05:10:50--  https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partad\\n\",\n            \"Resolving github.com (github.com)... 140.82.121.3\\n\",\n            \"Connecting to github.com (github.com)|140.82.121.3|:443... connected.\\n\",\n            \"HTTP request sent, awaiting response... 302 Found\\n\",\n            \"Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/606989982/0ee11da6-8c96-4463-b084-cea8f95d26e9?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230302%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230302T051050Z&X-Amz-Expires=300&X-Amz-Signature=5b78f08d84962d376572a5bfd3e3d9beb020b61a93013b752257739f86efed6c&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=606989982&response-content-disposition=attachment%3B%20filename%3DDataset.tar.gz.partad&response-content-type=application%2Foctet-stream [following]\\n\",\n            \"--2023-03-02 05:10:50--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/606989982/0ee11da6-8c96-4463-b084-cea8f95d26e9?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230302%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230302T051050Z&X-Amz-Expires=300&X-Amz-Signature=5b78f08d84962d376572a5bfd3e3d9beb020b61a93013b752257739f86efed6c&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=606989982&response-content-disposition=attachment%3B%20filename%3DDataset.tar.gz.partad&response-content-type=application%2Foctet-stream\\n\",\n            \"Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.111.133, 185.199.110.133, ...\\n\",\n            \"Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.\\n\",\n            \"HTTP request sent, awaiting response... 200 OK\\n\",\n            \"Length: 1560784336 (1.5G) [application/octet-stream]\\n\",\n            \"Saving to: ‘Dataset.tar.gz.partad’\\n\",\n            \"\\n\",\n            \"Dataset.tar.gz.part 100%[===================>]   1.45G  14.3MB/s    in 3m 52s  \\n\",\n            \"\\n\",\n            \"2023-03-02 05:14:43 (6.42 MB/s) - ‘Dataset.tar.gz.partad’ saved [1560784336/1560784336]\\n\",\n            \"\\n\",\n            \"tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.macl'\\n\"\n          ]\n        }\n      ],\n      \"source\": [\n        \"!wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partaa\\n\",\n        \"!wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partab\\n\",\n        \"!wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partac\\n\",\n        \"!wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partad\\n\",\n        \"\\n\",\n        \"!cat Dataset.tar.gz.part* > Dataset.tar.gz\\n\",\n        \"!rm Dataset.tar.gz.partaa\\n\",\n        \"!rm Dataset.tar.gz.partab\\n\",\n        \"!rm Dataset.tar.gz.partac\\n\",\n        \"!rm Dataset.tar.gz.partad\\n\",\n        \"# unzip the file\\n\",\n        \"!tar zxf Dataset.tar.gz\\n\",\n        \"!rm Dataset.tar.gz\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"U6Y1cfpDfpON\",\n        \"outputId\": \"6ba26637-5c7b-48a9-be0b-1f10ba76590a\"\n      },\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"tar (child): Dataset.tar.gz: Cannot open: No such file or directory\\n\",\n            \"tar (child): Error is not recoverable: exiting now\\n\",\n            \"tar: Child returned status 2\\n\",\n            \"tar: Error is not recoverable: exiting now\\n\"\n          ]\n        }\n      ],\n      \"source\": [\n        \"!tar zxf Dataset.tar.gz\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"E6burzCXIyuA\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import numpy as np\\n\",\n        \"import torch\\n\",\n        \"import random\\n\",\n        \"\\n\",\n        \"def set_seed(seed):\\n\",\n        \"    np.random.seed(seed)\\n\",\n        \"    random.seed(seed)\\n\",\n        \"    torch.manual_seed(seed)\\n\",\n        \"    if torch.cuda.is_available():\\n\",\n        \"        torch.cuda.manual_seed(seed)\\n\",\n        \"        torch.cuda.manual_seed_all(seed)\\n\",\n        \"    torch.backends.cudnn.benchmark = False\\n\",\n        \"    torch.backends.cudnn.deterministic = True\\n\",\n        \"\\n\",\n        \"set_seed(87)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"k7dVbxW2LASN\"\n      },\n      \"source\": [\n        \"# Data\\n\",\n        \"\\n\",\n        \"## Dataset\\n\",\n        \"- Original dataset is [Voxceleb2](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/vox2.html).\\n\",\n        \"- The [license](https://creativecommons.org/licenses/by/4.0/) and [complete version](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/files/license.txt) of Voxceleb2.\\n\",\n        \"- We randomly select 600 speakers from Voxceleb2.\\n\",\n        \"- Then preprocess the raw waveforms into mel-spectrograms.\\n\",\n        \"\\n\",\n        \"- Args:\\n\",\n        \"  - data_dir: The path to the data directory.\\n\",\n        \"  - metadata_path: The path to the metadata.\\n\",\n        \"  - segment_len: The length of audio segment for training.\\n\",\n        \"- The architecture of data directory \\\\\\\\\\n\",\n        \"  - data directory \\\\\\\\\\n\",\n        \"  |---- metadata.json \\\\\\\\\\n\",\n        \"  |---- testdata.json \\\\\\\\\\n\",\n        \"  |---- mapping.json \\\\\\\\\\n\",\n        \"  |---- uttr-{random string}.pt \\\\\\\\\\n\",\n        \"\\n\",\n        \"- The information in metadata\\n\",\n        \"  - \\\"n_mels\\\": The dimention of mel-spectrogram.\\n\",\n        \"  - \\\"speakers\\\": A dictionary.\\n\",\n        \"    - Key: speaker ids.\\n\",\n        \"    - value: \\\"feature_path\\\" and \\\"mel_len\\\"\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"For efficiency, we segment the mel-spectrograms into segments in the traing step.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"KpuGxl4CI2pr\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import os\\n\",\n        \"import json\\n\",\n        \"import torch\\n\",\n        \"import random\\n\",\n        \"from pathlib import Path\\n\",\n        \"from torch.utils.data import Dataset\\n\",\n        \"from torch.nn.utils.rnn import pad_sequence\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"class myDataset(Dataset):\\n\",\n        \"\\tdef __init__(self, data_dir, segment_len=128):\\n\",\n        \"\\t\\tself.data_dir = data_dir\\n\",\n        \"\\t\\tself.segment_len = segment_len\\n\",\n        \"\\n\",\n        \"\\t\\t# Load the mapping from speaker neme to their corresponding id.\\n\",\n        \"\\t\\tmapping_path = Path(data_dir) / \\\"mapping.json\\\"\\n\",\n        \"\\t\\tmapping = json.load(mapping_path.open())\\n\",\n        \"\\t\\tself.speaker2id = mapping[\\\"speaker2id\\\"]\\n\",\n        \"\\n\",\n        \"\\t\\t# Load metadata of training data.\\n\",\n        \"\\t\\tmetadata_path = Path(data_dir) / \\\"metadata.json\\\"\\n\",\n        \"\\t\\tmetadata = json.load(open(metadata_path))[\\\"speakers\\\"]\\n\",\n        \"\\n\",\n        \"\\t\\t# Get the total number of speaker.\\n\",\n        \"\\t\\tself.speaker_num = len(metadata.keys())\\n\",\n        \"\\t\\tself.data = []\\n\",\n        \"\\t\\tfor speaker in metadata.keys():\\n\",\n        \"\\t\\t\\tfor utterances in metadata[speaker]:\\n\",\n        \"\\t\\t\\t\\tself.data.append([utterances[\\\"feature_path\\\"], self.speaker2id[speaker]])\\n\",\n        \"\\n\",\n        \"\\tdef __len__(self):\\n\",\n        \"\\t\\t\\treturn len(self.data)\\n\",\n        \"\\n\",\n        \"\\tdef __getitem__(self, index):\\n\",\n        \"\\t\\tfeat_path, speaker = self.data[index]\\n\",\n        \"\\t\\t# Load preprocessed mel-spectrogram.\\n\",\n        \"\\t\\tmel = torch.load(os.path.join(self.data_dir, feat_path))\\n\",\n        \"\\n\",\n        \"\\t\\t# Segmemt mel-spectrogram into \\\"segment_len\\\" frames.\\n\",\n        \"\\t\\tif len(mel) > self.segment_len:\\n\",\n        \"\\t\\t\\t# Randomly get the starting point of the segment.\\n\",\n        \"\\t\\t\\tstart = random.randint(0, len(mel) - self.segment_len)\\n\",\n        \"\\t\\t\\t# Get a segment with \\\"segment_len\\\" frames.\\n\",\n        \"\\t\\t\\tmel = torch.FloatTensor(mel[start:start+self.segment_len])\\n\",\n        \"\\t\\telse:\\n\",\n        \"\\t\\t\\tmel = torch.FloatTensor(mel)\\n\",\n        \"\\t\\t# Turn the speaker id into long for computing loss later.\\n\",\n        \"\\t\\tspeaker = torch.FloatTensor([speaker]).long()\\n\",\n        \"\\t\\treturn mel, speaker\\n\",\n        \"\\n\",\n        \"\\tdef get_speaker_number(self):\\n\",\n        \"\\t\\treturn self.speaker_num\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"668hverTMlGN\"\n      },\n      \"source\": [\n        \"## Dataloader\\n\",\n        \"- Split dataset into training dataset(90%) and validation dataset(10%).\\n\",\n        \"- Create dataloader to iterate the data.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"B7c2gZYoJDRS\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import torch\\n\",\n        \"from torch.utils.data import DataLoader, random_split\\n\",\n        \"from torch.nn.utils.rnn import pad_sequence\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def collate_batch(batch):\\n\",\n        \"\\t# Process features within a batch.\\n\",\n        \"\\t\\\"\\\"\\\"Collate a batch of data.\\\"\\\"\\\"\\n\",\n        \"\\tmel, speaker = zip(*batch)\\n\",\n        \"\\t# Because we train the model batch by batch, we need to pad the features in the same batch to make their lengths the same.\\n\",\n        \"\\tmel = pad_sequence(mel, batch_first=True, padding_value=-20)    # pad log 10^(-20) which is very small value.\\n\",\n        \"\\t# mel: (batch size, length, 40)\\n\",\n        \"\\treturn mel, torch.FloatTensor(speaker).long()\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def get_dataloader(data_dir, batch_size, n_workers):\\n\",\n        \"\\t\\\"\\\"\\\"Generate dataloader\\\"\\\"\\\"\\n\",\n        \"\\tdataset = myDataset(data_dir)\\n\",\n        \"\\tspeaker_num = dataset.get_speaker_number()\\n\",\n        \"\\t# Split dataset into training dataset and validation dataset\\n\",\n        \"\\ttrainlen = int(0.9 * len(dataset))\\n\",\n        \"\\tlengths = [trainlen, len(dataset) - trainlen]\\n\",\n        \"\\ttrainset, validset = random_split(dataset, lengths)\\n\",\n        \"\\n\",\n        \"\\ttrain_loader = DataLoader(\\n\",\n        \"\\t\\ttrainset,\\n\",\n        \"\\t\\tbatch_size=batch_size,\\n\",\n        \"\\t\\tshuffle=True,\\n\",\n        \"\\t\\tdrop_last=True,\\n\",\n        \"\\t\\tnum_workers=n_workers,\\n\",\n        \"\\t\\tpin_memory=True,\\n\",\n        \"\\t\\tcollate_fn=collate_batch,\\n\",\n        \"\\t)\\n\",\n        \"\\tvalid_loader = DataLoader(\\n\",\n        \"\\t\\tvalidset,\\n\",\n        \"\\t\\tbatch_size=batch_size,\\n\",\n        \"\\t\\tnum_workers=n_workers,\\n\",\n        \"\\t\\tdrop_last=True,\\n\",\n        \"\\t\\tpin_memory=True,\\n\",\n        \"\\t\\tcollate_fn=collate_batch,\\n\",\n        \"\\t)\\n\",\n        \"\\n\",\n        \"\\treturn train_loader, valid_loader, speaker_num\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"5FOSZYxrMqhc\"\n      },\n      \"source\": [\n        \"# Model\\n\",\n        \"- TransformerEncoderLayer:\\n\",\n        \"  - Base transformer encoder layer in [Attention Is All You Need](https://arxiv.org/abs/1706.03762)\\n\",\n        \"  - Parameters:\\n\",\n        \"    - d_model: the number of expected features of the input (required).\\n\",\n        \"\\n\",\n        \"    - nhead: the number of heads of the multiheadattention models (required).\\n\",\n        \"\\n\",\n        \"    - dim_feedforward: the dimension of the feedforward network model (default=2048).\\n\",\n        \"\\n\",\n        \"    - dropout: the dropout value (default=0.1).\\n\",\n        \"\\n\",\n        \"    - activation: the activation function of intermediate layer, relu or gelu (default=relu).\\n\",\n        \"\\n\",\n        \"- TransformerEncoder:\\n\",\n        \"  - TransformerEncoder is a stack of N transformer encoder layers\\n\",\n        \"  - Parameters:\\n\",\n        \"    - encoder_layer: an instance of the TransformerEncoderLayer() class (required).\\n\",\n        \"\\n\",\n        \"    - num_layers: the number of sub-encoder-layers in the encoder (required).\\n\",\n        \"\\n\",\n        \"    - norm: the layer normalization component (optional).\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"iXZ5B0EKJGs8\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import torch\\n\",\n        \"import torch.nn as nn\\n\",\n        \"import torch.nn.functional as F\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"class Classifier(nn.Module):\\n\",\n        \"\\tdef __init__(self, d_model=80, n_spks=600, dropout=0.1):\\n\",\n        \"\\t\\tsuper().__init__()\\n\",\n        \"\\t\\t# Project the dimension of features from that of input into d_model.\\n\",\n        \"\\t\\tself.prenet = nn.Linear(40, d_model)\\n\",\n        \"\\t\\t# TODO:\\n\",\n        \"\\t\\t#   Change Transformer to Conformer.\\n\",\n        \"\\t\\t#   https://arxiv.org/abs/2005.08100\\n\",\n        \"\\t\\tself.encoder_layer = nn.TransformerEncoderLayer(\\n\",\n        \"\\t\\t\\td_model=d_model, dim_feedforward=256, nhead=2\\n\",\n        \"\\t\\t)\\n\",\n        \"\\t\\t# self.encoder = nn.TransformerEncoder(self.encoder_layer, num_layers=2)\\n\",\n        \"\\n\",\n        \"\\t\\t# Project the the dimension of features from d_model into speaker nums.\\n\",\n        \"\\t\\tself.pred_layer = nn.Sequential(\\n\",\n        \"\\t\\t\\tnn.Linear(d_model, d_model),\\n\",\n        \"\\t\\t\\tnn.Sigmoid(),\\n\",\n        \"\\t\\t\\tnn.Linear(d_model, n_spks),\\n\",\n        \"\\t\\t)\\n\",\n        \"\\n\",\n        \"\\tdef forward(self, mels):\\n\",\n        \"\\t\\t\\\"\\\"\\\"\\n\",\n        \"\\t\\targs:\\n\",\n        \"\\t\\t\\tmels: (batch size, length, 40)\\n\",\n        \"\\t\\treturn:\\n\",\n        \"\\t\\t\\tout: (batch size, n_spks)\\n\",\n        \"\\t\\t\\\"\\\"\\\"\\n\",\n        \"\\t\\t# out: (batch size, length, d_model)\\n\",\n        \"\\t\\tout = self.prenet(mels)\\n\",\n        \"\\t\\t# out: (length, batch size, d_model)\\n\",\n        \"\\t\\tout = out.permute(1, 0, 2)\\n\",\n        \"\\t\\t# The encoder layer expect features in the shape of (length, batch size, d_model).\\n\",\n        \"\\t\\tout = self.encoder_layer(out)\\n\",\n        \"\\t\\t# out: (batch size, length, d_model)\\n\",\n        \"\\t\\tout = out.transpose(0, 1)\\n\",\n        \"\\t\\t# mean pooling\\n\",\n        \"\\t\\tstats = out.mean(dim=1)\\n\",\n        \"\\n\",\n        \"\\t\\t# out: (batch, n_spks)\\n\",\n        \"\\t\\tout = self.pred_layer(stats)\\n\",\n        \"\\t\\treturn out\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"W7yX8JinM5Ly\"\n      },\n      \"source\": [\n        \"# Learning rate schedule\\n\",\n        \"- For transformer architecture, the design of learning rate schedule is different from that of CNN.\\n\",\n        \"- Previous works show that the warmup of learning rate is useful for training models with transformer architectures.\\n\",\n        \"- The warmup schedule\\n\",\n        \"  - Set learning rate to 0 in the beginning.\\n\",\n        \"  - The learning rate increases linearly from 0 to initial learning rate during warmup period.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"ykt0N1nVJJi2\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import math\\n\",\n        \"\\n\",\n        \"import torch\\n\",\n        \"from torch.optim import Optimizer\\n\",\n        \"from torch.optim.lr_scheduler import LambdaLR\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def get_cosine_schedule_with_warmup(\\n\",\n        \"\\toptimizer: Optimizer,\\n\",\n        \"\\tnum_warmup_steps: int,\\n\",\n        \"\\tnum_training_steps: int,\\n\",\n        \"\\tnum_cycles: float = 0.5,\\n\",\n        \"\\tlast_epoch: int = -1,\\n\",\n        \"):\\n\",\n        \"\\t\\\"\\\"\\\"\\n\",\n        \"\\tCreate a schedule with a learning rate that decreases following the values of the cosine function between the\\n\",\n        \"\\tinitial lr set in the optimizer to 0, after a warmup period during which it increases linearly between 0 and the\\n\",\n        \"\\tinitial lr set in the optimizer.\\n\",\n        \"\\n\",\n        \"\\tArgs:\\n\",\n        \"\\t\\toptimizer (:class:`~torch.optim.Optimizer`):\\n\",\n        \"\\t\\tThe optimizer for which to schedule the learning rate.\\n\",\n        \"\\t\\tnum_warmup_steps (:obj:`int`):\\n\",\n        \"\\t\\tThe number of steps for the warmup phase.\\n\",\n        \"\\t\\tnum_training_steps (:obj:`int`):\\n\",\n        \"\\t\\tThe total number of training steps.\\n\",\n        \"\\t\\tnum_cycles (:obj:`float`, `optional`, defaults to 0.5):\\n\",\n        \"\\t\\tThe number of waves in the cosine schedule (the defaults is to just decrease from the max value to 0\\n\",\n        \"\\t\\tfollowing a half-cosine).\\n\",\n        \"\\t\\tlast_epoch (:obj:`int`, `optional`, defaults to -1):\\n\",\n        \"\\t\\tThe index of the last epoch when resuming training.\\n\",\n        \"\\n\",\n        \"\\tReturn:\\n\",\n        \"\\t\\t:obj:`torch.optim.lr_scheduler.LambdaLR` with the appropriate schedule.\\n\",\n        \"\\t\\\"\\\"\\\"\\n\",\n        \"\\tdef lr_lambda(current_step):\\n\",\n        \"\\t\\t# Warmup\\n\",\n        \"\\t\\tif current_step < num_warmup_steps:\\n\",\n        \"\\t\\t\\treturn float(current_step) / float(max(1, num_warmup_steps))\\n\",\n        \"\\t\\t# decadence\\n\",\n        \"\\t\\tprogress = float(current_step - num_warmup_steps) / float(\\n\",\n        \"\\t\\t\\tmax(1, num_training_steps - num_warmup_steps)\\n\",\n        \"\\t\\t)\\n\",\n        \"\\t\\treturn max(\\n\",\n        \"\\t\\t\\t0.0, 0.5 * (1.0 + math.cos(math.pi * float(num_cycles) * 2.0 * progress))\\n\",\n        \"\\t\\t)\\n\",\n        \"\\n\",\n        \"\\treturn LambdaLR(optimizer, lr_lambda, last_epoch)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"-LN2XkteM_uH\"\n      },\n      \"source\": [\n        \"# Model Function\\n\",\n        \"- Model forward function.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"N-rr8529JMz0\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import torch\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def model_fn(batch, model, criterion, device):\\n\",\n        \"\\t\\\"\\\"\\\"Forward a batch through the model.\\\"\\\"\\\"\\n\",\n        \"\\n\",\n        \"\\tmels, labels = batch\\n\",\n        \"\\tmels = mels.to(device)\\n\",\n        \"\\tlabels = labels.to(device)\\n\",\n        \"\\n\",\n        \"\\touts = model(mels)\\n\",\n        \"\\n\",\n        \"\\tloss = criterion(outs, labels)\\n\",\n        \"\\n\",\n        \"\\t# Get the speaker id with highest probability.\\n\",\n        \"\\tpreds = outs.argmax(1)\\n\",\n        \"\\t# Compute accuracy.\\n\",\n        \"\\taccuracy = torch.mean((preds == labels).float())\\n\",\n        \"\\n\",\n        \"\\treturn loss, accuracy\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"cwM_xyOtNCI2\"\n      },\n      \"source\": [\n        \"# Validate\\n\",\n        \"- Calculate accuracy of the validation set.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"YAiv6kpdJRTJ\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"from tqdm import tqdm\\n\",\n        \"import torch\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def valid(dataloader, model, criterion, device):\\n\",\n        \"\\t\\\"\\\"\\\"Validate on validation set.\\\"\\\"\\\"\\n\",\n        \"\\n\",\n        \"\\tmodel.eval()\\n\",\n        \"\\trunning_loss = 0.0\\n\",\n        \"\\trunning_accuracy = 0.0\\n\",\n        \"\\tpbar = tqdm(total=len(dataloader.dataset), ncols=0, desc=\\\"Valid\\\", unit=\\\" uttr\\\")\\n\",\n        \"\\n\",\n        \"\\tfor i, batch in enumerate(dataloader):\\n\",\n        \"\\t\\twith torch.no_grad():\\n\",\n        \"\\t\\t\\tloss, accuracy = model_fn(batch, model, criterion, device)\\n\",\n        \"\\t\\t\\trunning_loss += loss.item()\\n\",\n        \"\\t\\t\\trunning_accuracy += accuracy.item()\\n\",\n        \"\\n\",\n        \"\\t\\tpbar.update(dataloader.batch_size)\\n\",\n        \"\\t\\tpbar.set_postfix(\\n\",\n        \"\\t\\t\\tloss=f\\\"{running_loss / (i+1):.2f}\\\",\\n\",\n        \"\\t\\t\\taccuracy=f\\\"{running_accuracy / (i+1):.2f}\\\",\\n\",\n        \"\\t\\t)\\n\",\n        \"\\n\",\n        \"\\tpbar.close()\\n\",\n        \"\\tmodel.train()\\n\",\n        \"\\n\",\n        \"\\treturn running_accuracy / len(dataloader)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"g6ne9G-eNEdG\"\n      },\n      \"source\": [\n        \"# Main function\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"Usv9s-CuJSG7\",\n        \"outputId\": \"f4f6a983-3559-4f36-efae-402bbf790473\"\n      },\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"[Info]: Use cuda now!\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stderr\",\n          \"text\": [\n            \"/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py:554: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\\n\",\n            \"  warnings.warn(_create_warning_msg(\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"[Info]: Finish loading data!\\n\",\n            \"[Info]: Finish creating model!\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stderr\",\n          \"text\": [\n            \"Train: 100% 2000/2000 [01:39<00:00, 20.15 step/s, accuracy=0.00, loss=5.34, step=2000]\\n\",\n            \"Valid: 100% 5664/5667 [00:08<00:00, 646.60 uttr/s, accuracy=0.03, loss=5.30]\\n\",\n            \"Train: 100% 2000/2000 [01:05<00:00, 30.48 step/s, accuracy=0.09, loss=4.58, step=4000]\\n\",\n            \"Valid: 100% 5664/5667 [00:09<00:00, 592.93 uttr/s, accuracy=0.09, loss=4.65]\\n\",\n            \"Train: 100% 2000/2000 [00:55<00:00, 36.21 step/s, accuracy=0.19, loss=3.84, step=6000]\\n\",\n            \"Valid: 100% 5664/5667 [00:06<00:00, 909.71 uttr/s, accuracy=0.14, loss=4.25] \\n\",\n            \"Train: 100% 2000/2000 [01:03<00:00, 31.46 step/s, accuracy=0.16, loss=4.17, step=8000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1575.18 uttr/s, accuracy=0.16, loss=4.06]\\n\",\n            \"Train: 100% 2000/2000 [00:51<00:00, 38.66 step/s, accuracy=0.16, loss=4.00, step=1e+4]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1629.40 uttr/s, accuracy=0.19, loss=3.86]\\n\",\n            \"Train:   0% 10/2000 [00:00<00:50, 39.27 step/s, accuracy=0.22, loss=3.96, step=1e+4]\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Step 10000, best model saved. (accuracy=0.1933)\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stderr\",\n          \"text\": [\n            \"Train: 100% 2000/2000 [00:47<00:00, 41.88 step/s, accuracy=0.19, loss=3.55, step=12000]\\n\",\n            \"Valid: 100% 5664/5667 [00:04<00:00, 1279.71 uttr/s, accuracy=0.22, loss=3.72]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 43.75 step/s, accuracy=0.25, loss=3.63, step=14000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1714.78 uttr/s, accuracy=0.24, loss=3.57]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 44.12 step/s, accuracy=0.22, loss=3.98, step=16000]\\n\",\n            \"Valid: 100% 5664/5667 [00:05<00:00, 1049.05 uttr/s, accuracy=0.26, loss=3.50]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 44.31 step/s, accuracy=0.16, loss=3.48, step=18000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1765.13 uttr/s, accuracy=0.28, loss=3.37]\\n\",\n            \"Train: 100% 2000/2000 [00:44<00:00, 44.49 step/s, accuracy=0.28, loss=3.25, step=2e+4]\\n\",\n            \"Valid: 100% 5664/5667 [00:04<00:00, 1379.63 uttr/s, accuracy=0.30, loss=3.28]\\n\",\n            \"Train:   0% 6/2000 [00:00<01:08, 29.05 step/s, accuracy=0.34, loss=2.96, step=2e+4]\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Step 20000, best model saved. (accuracy=0.2994)\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stderr\",\n          \"text\": [\n            \"Train: 100% 2000/2000 [00:45<00:00, 44.24 step/s, accuracy=0.47, loss=2.32, step=22000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1698.76 uttr/s, accuracy=0.32, loss=3.17]\\n\",\n            \"Train: 100% 2000/2000 [00:44<00:00, 44.56 step/s, accuracy=0.38, loss=3.30, step=24000]\\n\",\n            \"Valid: 100% 5664/5667 [00:04<00:00, 1328.95 uttr/s, accuracy=0.33, loss=3.08]\\n\",\n            \"Train: 100% 2000/2000 [00:46<00:00, 42.84 step/s, accuracy=0.44, loss=2.49, step=26000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1708.26 uttr/s, accuracy=0.35, loss=3.01]\\n\",\n            \"Train: 100% 2000/2000 [00:44<00:00, 44.61 step/s, accuracy=0.34, loss=2.98, step=28000]\\n\",\n            \"Valid: 100% 5664/5667 [00:04<00:00, 1164.28 uttr/s, accuracy=0.36, loss=2.94]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 43.79 step/s, accuracy=0.28, loss=3.35, step=3e+4]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1691.95 uttr/s, accuracy=0.38, loss=2.87]\\n\",\n            \"Train:   0% 10/2000 [00:00<00:40, 48.99 step/s, accuracy=0.31, loss=3.11, step=3e+4]\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Step 30000, best model saved. (accuracy=0.3766)\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stderr\",\n          \"text\": [\n            \"Train: 100% 2000/2000 [00:46<00:00, 42.87 step/s, accuracy=0.59, loss=2.10, step=32000]\\n\",\n            \"Valid: 100% 5664/5667 [00:04<00:00, 1266.74 uttr/s, accuracy=0.39, loss=2.83]\\n\",\n            \"Train: 100% 2000/2000 [00:47<00:00, 42.50 step/s, accuracy=0.47, loss=2.61, step=34000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1695.46 uttr/s, accuracy=0.40, loss=2.79]\\n\",\n            \"Train: 100% 2000/2000 [00:46<00:00, 42.68 step/s, accuracy=0.47, loss=2.27, step=36000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1695.12 uttr/s, accuracy=0.41, loss=2.71]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 44.31 step/s, accuracy=0.31, loss=2.92, step=38000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1699.13 uttr/s, accuracy=0.42, loss=2.66]\\n\",\n            \"Train: 100% 2000/2000 [00:47<00:00, 41.84 step/s, accuracy=0.44, loss=3.49, step=4e+4]\\n\",\n            \"Valid: 100% 5664/5667 [00:04<00:00, 1407.64 uttr/s, accuracy=0.43, loss=2.65]\\n\",\n            \"Train:   0% 10/2000 [00:00<00:41, 48.40 step/s, accuracy=0.50, loss=2.24, step=4e+4]\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Step 40000, best model saved. (accuracy=0.4287)\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stderr\",\n          \"text\": [\n            \"Train: 100% 2000/2000 [00:45<00:00, 43.89 step/s, accuracy=0.44, loss=2.31, step=42000]\\n\",\n            \"Valid: 100% 5664/5667 [00:05<00:00, 1062.44 uttr/s, accuracy=0.42, loss=2.63]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 43.58 step/s, accuracy=0.50, loss=1.89, step=44000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1633.34 uttr/s, accuracy=0.44, loss=2.58]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 44.32 step/s, accuracy=0.34, loss=3.01, step=46000]\\n\",\n            \"Valid: 100% 5664/5667 [00:04<00:00, 1176.49 uttr/s, accuracy=0.45, loss=2.52]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 43.93 step/s, accuracy=0.53, loss=2.38, step=48000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1690.24 uttr/s, accuracy=0.45, loss=2.49]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 44.33 step/s, accuracy=0.44, loss=1.99, step=5e+4]\\n\",\n            \"Valid: 100% 5664/5667 [00:04<00:00, 1318.06 uttr/s, accuracy=0.45, loss=2.49]\\n\",\n            \"Train:   0% 10/2000 [00:00<00:44, 44.97 step/s, accuracy=0.53, loss=2.17, step=5e+4]\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Step 50000, best model saved. (accuracy=0.4536)\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stderr\",\n          \"text\": [\n            \"Train: 100% 2000/2000 [00:45<00:00, 43.60 step/s, accuracy=0.56, loss=2.07, step=52000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1704.31 uttr/s, accuracy=0.47, loss=2.44]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 44.30 step/s, accuracy=0.47, loss=2.27, step=54000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1416.50 uttr/s, accuracy=0.47, loss=2.45]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 44.31 step/s, accuracy=0.38, loss=2.47, step=56000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1636.55 uttr/s, accuracy=0.47, loss=2.41]\\n\",\n            \"Train: 100% 2000/2000 [00:46<00:00, 43.13 step/s, accuracy=0.53, loss=2.40, step=58000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1733.87 uttr/s, accuracy=0.47, loss=2.42]\\n\",\n            \"Train: 100% 2000/2000 [00:46<00:00, 43.38 step/s, accuracy=0.56, loss=1.91, step=6e+4]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1722.16 uttr/s, accuracy=0.48, loss=2.39]\\n\",\n            \"Train:   0% 9/2000 [00:00<00:44, 44.52 step/s, accuracy=0.56, loss=2.01, step=6e+4]\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Step 60000, best model saved. (accuracy=0.4802)\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stderr\",\n          \"text\": [\n            \"Train: 100% 2000/2000 [00:46<00:00, 43.09 step/s, accuracy=0.38, loss=2.42, step=62000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1652.15 uttr/s, accuracy=0.48, loss=2.36]\\n\",\n            \"Train: 100% 2000/2000 [00:45<00:00, 43.60 step/s, accuracy=0.53, loss=2.07, step=64000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1482.73 uttr/s, accuracy=0.48, loss=2.39]\\n\",\n            \"Train: 100% 2000/2000 [00:47<00:00, 42.54 step/s, accuracy=0.53, loss=2.47, step=66000]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1674.74 uttr/s, accuracy=0.48, loss=2.40]\\n\",\n            \"Train: 100% 2000/2000 [00:46<00:00, 43.00 step/s, accuracy=0.41, loss=2.61, step=68000]\\n\",\n            \"Valid: 100% 5664/5667 [00:05<00:00, 990.67 uttr/s, accuracy=0.48, loss=2.37] \\n\",\n            \"Train: 100% 2000/2000 [00:48<00:00, 41.57 step/s, accuracy=0.69, loss=1.81, step=7e+4]\\n\",\n            \"Valid: 100% 5664/5667 [00:03<00:00, 1500.45 uttr/s, accuracy=0.47, loss=2.42]\\n\",\n            \"Train:   0% 0/2000 [00:00<?, ? step/s]\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Step 70000, best model saved. (accuracy=0.4834)\\n\"\n          ]\n        }\n      ],\n      \"source\": [\n        \"from tqdm import tqdm\\n\",\n        \"\\n\",\n        \"import torch\\n\",\n        \"import torch.nn as nn\\n\",\n        \"from torch.optim import AdamW\\n\",\n        \"from torch.utils.data import DataLoader, random_split\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def parse_args():\\n\",\n        \"\\t\\\"\\\"\\\"arguments\\\"\\\"\\\"\\n\",\n        \"\\tconfig = {\\n\",\n        \"\\t\\t\\\"data_dir\\\": \\\"./Dataset\\\",\\n\",\n        \"\\t\\t\\\"save_path\\\": \\\"model.ckpt\\\",\\n\",\n        \"\\t\\t\\\"batch_size\\\": 32,\\n\",\n        \"\\t\\t\\\"n_workers\\\": 8,\\n\",\n        \"\\t\\t\\\"valid_steps\\\": 2000,\\n\",\n        \"\\t\\t\\\"warmup_steps\\\": 1000,\\n\",\n        \"\\t\\t\\\"save_steps\\\": 10000,\\n\",\n        \"\\t\\t\\\"total_steps\\\": 70000,\\n\",\n        \"\\t}\\n\",\n        \"\\n\",\n        \"\\treturn config\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def main(\\n\",\n        \"\\tdata_dir,\\n\",\n        \"\\tsave_path,\\n\",\n        \"\\tbatch_size,\\n\",\n        \"\\tn_workers,\\n\",\n        \"\\tvalid_steps,\\n\",\n        \"\\twarmup_steps,\\n\",\n        \"\\ttotal_steps,\\n\",\n        \"\\tsave_steps,\\n\",\n        \"):\\n\",\n        \"\\t\\\"\\\"\\\"Main function.\\\"\\\"\\\"\\n\",\n        \"\\tdevice = torch.device(\\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n        \"\\tprint(f\\\"[Info]: Use {device} now!\\\")\\n\",\n        \"\\n\",\n        \"\\ttrain_loader, valid_loader, speaker_num = get_dataloader(data_dir, batch_size, n_workers)\\n\",\n        \"\\ttrain_iterator = iter(train_loader)\\n\",\n        \"\\tprint(f\\\"[Info]: Finish loading data!\\\",flush = True)\\n\",\n        \"\\n\",\n        \"\\tmodel = Classifier(n_spks=speaker_num).to(device)\\n\",\n        \"\\tcriterion = nn.CrossEntropyLoss()\\n\",\n        \"\\toptimizer = AdamW(model.parameters(), lr=1e-3)\\n\",\n        \"\\tscheduler = get_cosine_schedule_with_warmup(optimizer, warmup_steps, total_steps)\\n\",\n        \"\\tprint(f\\\"[Info]: Finish creating model!\\\",flush = True)\\n\",\n        \"\\n\",\n        \"\\tbest_accuracy = -1.0\\n\",\n        \"\\tbest_state_dict = None\\n\",\n        \"\\n\",\n        \"\\tpbar = tqdm(total=valid_steps, ncols=0, desc=\\\"Train\\\", unit=\\\" step\\\")\\n\",\n        \"\\n\",\n        \"\\tfor step in range(total_steps):\\n\",\n        \"\\t\\t# Get data\\n\",\n        \"\\t\\ttry:\\n\",\n        \"\\t\\t\\tbatch = next(train_iterator)\\n\",\n        \"\\t\\texcept StopIteration:\\n\",\n        \"\\t\\t\\ttrain_iterator = iter(train_loader)\\n\",\n        \"\\t\\t\\tbatch = next(train_iterator)\\n\",\n        \"\\n\",\n        \"\\t\\tloss, accuracy = model_fn(batch, model, criterion, device)\\n\",\n        \"\\t\\tbatch_loss = loss.item()\\n\",\n        \"\\t\\tbatch_accuracy = accuracy.item()\\n\",\n        \"\\n\",\n        \"\\t\\t# Updata model\\n\",\n        \"\\t\\tloss.backward()\\n\",\n        \"\\t\\toptimizer.step()\\n\",\n        \"\\t\\tscheduler.step()\\n\",\n        \"\\t\\toptimizer.zero_grad()\\n\",\n        \"\\n\",\n        \"\\t\\t# Log\\n\",\n        \"\\t\\tpbar.update()\\n\",\n        \"\\t\\tpbar.set_postfix(\\n\",\n        \"\\t\\t\\tloss=f\\\"{batch_loss:.2f}\\\",\\n\",\n        \"\\t\\t\\taccuracy=f\\\"{batch_accuracy:.2f}\\\",\\n\",\n        \"\\t\\t\\tstep=step + 1,\\n\",\n        \"\\t\\t)\\n\",\n        \"\\n\",\n        \"\\t\\t# Do validation\\n\",\n        \"\\t\\tif (step + 1) % valid_steps == 0:\\n\",\n        \"\\t\\t\\tpbar.close()\\n\",\n        \"\\n\",\n        \"\\t\\t\\tvalid_accuracy = valid(valid_loader, model, criterion, device)\\n\",\n        \"\\n\",\n        \"\\t\\t\\t# keep the best model\\n\",\n        \"\\t\\t\\tif valid_accuracy > best_accuracy:\\n\",\n        \"\\t\\t\\t\\tbest_accuracy = valid_accuracy\\n\",\n        \"\\t\\t\\t\\tbest_state_dict = model.state_dict()\\n\",\n        \"\\n\",\n        \"\\t\\t\\tpbar = tqdm(total=valid_steps, ncols=0, desc=\\\"Train\\\", unit=\\\" step\\\")\\n\",\n        \"\\n\",\n        \"\\t\\t# Save the best model so far.\\n\",\n        \"\\t\\tif (step + 1) % save_steps == 0 and best_state_dict is not None:\\n\",\n        \"\\t\\t\\ttorch.save(best_state_dict, save_path)\\n\",\n        \"\\t\\t\\tpbar.write(f\\\"Step {step + 1}, best model saved. (accuracy={best_accuracy:.4f})\\\")\\n\",\n        \"\\n\",\n        \"\\tpbar.close()\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"if __name__ == \\\"__main__\\\":\\n\",\n        \"\\tmain(**parse_args())\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"NLatBYAhNNMx\"\n      },\n      \"source\": [\n        \"# Inference\\n\",\n        \"\\n\",\n        \"## Dataset of inference\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"id\": \"efS4pCmAJXJH\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"import os\\n\",\n        \"import json\\n\",\n        \"import torch\\n\",\n        \"from pathlib import Path\\n\",\n        \"from torch.utils.data import Dataset\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"class InferenceDataset(Dataset):\\n\",\n        \"\\tdef __init__(self, data_dir):\\n\",\n        \"\\t\\ttestdata_path = Path(data_dir) / \\\"testdata.json\\\"\\n\",\n        \"\\t\\tmetadata = json.load(testdata_path.open())\\n\",\n        \"\\t\\tself.data_dir = data_dir\\n\",\n        \"\\t\\tself.data = metadata[\\\"utterances\\\"]\\n\",\n        \"\\n\",\n        \"\\tdef __len__(self):\\n\",\n        \"\\t\\treturn len(self.data)\\n\",\n        \"\\n\",\n        \"\\tdef __getitem__(self, index):\\n\",\n        \"\\t\\tutterance = self.data[index]\\n\",\n        \"\\t\\tfeat_path = utterance[\\\"feature_path\\\"]\\n\",\n        \"\\t\\tmel = torch.load(os.path.join(self.data_dir, feat_path))\\n\",\n        \"\\n\",\n        \"\\t\\treturn feat_path, mel\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def inference_collate_batch(batch):\\n\",\n        \"\\t\\\"\\\"\\\"Collate a batch of data.\\\"\\\"\\\"\\n\",\n        \"\\tfeat_paths, mels = zip(*batch)\\n\",\n        \"\\n\",\n        \"\\treturn feat_paths, torch.stack(mels)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"tl0WnYwxNK_S\"\n      },\n      \"source\": [\n        \"## Main funcrion of Inference\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 103,\n          \"referenced_widgets\": [\n            \"6786c2b0e2614ad389620246cb2178f2\",\n            \"0d592098920140dab61aac5410568c36\",\n            \"da681e3cc353420cb142d56df0fce231\",\n            \"401ae722b95c4ff59b836422dbe71edc\",\n            \"4efbfb7c7cb54276862e5321209d57fa\",\n            \"f6dcb3ec9c624171966bb889808dbcb3\",\n            \"100abf072991474abfcee871d2b83f37\",\n            \"decc12da6f5742ec8b7ec7789ee434ab\",\n            \"0117ac88c98440b29ab1f452107cbe1a\",\n            \"3d64942a0eaa409a93df049bb594c062\",\n            \"8c8721e504cf434eb9e263fb9983969a\"\n          ]\n        },\n        \"id\": \"i8SAbuXEJb2A\",\n        \"outputId\": \"3808f409-19c9-426c-dc15-1b88b0c21645\"\n      },\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"[Info]: Use cuda now!\\n\",\n            \"[Info]: Finish loading data!\\n\",\n            \"[Info]: Finish creating model!\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"text/plain\": [\n              \"  0%|          | 0/8000 [00:00<?, ?it/s]\"\n            ],\n            \"application/vnd.jupyter.widget-view+json\": {\n              \"version_major\": 2,\n              \"version_minor\": 0,\n              \"model_id\": \"6786c2b0e2614ad389620246cb2178f2\"\n            }\n          },\n          \"metadata\": {}\n        }\n      ],\n      \"source\": [\n        \"import json\\n\",\n        \"import csv\\n\",\n        \"from pathlib import Path\\n\",\n        \"from tqdm.notebook import tqdm\\n\",\n        \"\\n\",\n        \"import torch\\n\",\n        \"from torch.utils.data import DataLoader\\n\",\n        \"\\n\",\n        \"def parse_args():\\n\",\n        \"\\t\\\"\\\"\\\"arguments\\\"\\\"\\\"\\n\",\n        \"\\tconfig = {\\n\",\n        \"\\t\\t\\\"data_dir\\\": \\\"./Dataset\\\",\\n\",\n        \"\\t\\t\\\"model_path\\\": \\\"./model.ckpt\\\",\\n\",\n        \"\\t\\t\\\"output_path\\\": \\\"./output.csv\\\",\\n\",\n        \"\\t}\\n\",\n        \"\\n\",\n        \"\\treturn config\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"def main(\\n\",\n        \"\\tdata_dir,\\n\",\n        \"\\tmodel_path,\\n\",\n        \"\\toutput_path,\\n\",\n        \"):\\n\",\n        \"\\t\\\"\\\"\\\"Main function.\\\"\\\"\\\"\\n\",\n        \"\\tdevice = torch.device(\\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n        \"\\tprint(f\\\"[Info]: Use {device} now!\\\")\\n\",\n        \"\\n\",\n        \"\\tmapping_path = Path(data_dir) / \\\"mapping.json\\\"\\n\",\n        \"\\tmapping = json.load(mapping_path.open())\\n\",\n        \"\\n\",\n        \"\\tdataset = InferenceDataset(data_dir)\\n\",\n        \"\\tdataloader = DataLoader(\\n\",\n        \"\\t\\tdataset,\\n\",\n        \"\\t\\tbatch_size=1,\\n\",\n        \"\\t\\tshuffle=False,\\n\",\n        \"\\t\\tdrop_last=False,\\n\",\n        \"\\t\\tnum_workers=8,\\n\",\n        \"\\t\\tcollate_fn=inference_collate_batch,\\n\",\n        \"\\t)\\n\",\n        \"\\tprint(f\\\"[Info]: Finish loading data!\\\",flush = True)\\n\",\n        \"\\n\",\n        \"\\tspeaker_num = len(mapping[\\\"id2speaker\\\"])\\n\",\n        \"\\tmodel = Classifier(n_spks=speaker_num).to(device)\\n\",\n        \"\\tmodel.load_state_dict(torch.load(model_path))\\n\",\n        \"\\tmodel.eval()\\n\",\n        \"\\tprint(f\\\"[Info]: Finish creating model!\\\",flush = True)\\n\",\n        \"\\n\",\n        \"\\tresults = [[\\\"Id\\\", \\\"Category\\\"]]\\n\",\n        \"\\tfor feat_paths, mels in tqdm(dataloader):\\n\",\n        \"\\t\\twith torch.no_grad():\\n\",\n        \"\\t\\t\\tmels = mels.to(device)\\n\",\n        \"\\t\\t\\touts = model(mels)\\n\",\n        \"\\t\\t\\tpreds = outs.argmax(1).cpu().numpy()\\n\",\n        \"\\t\\t\\tfor feat_path, pred in zip(feat_paths, preds):\\n\",\n        \"\\t\\t\\t\\tresults.append([feat_path, mapping[\\\"id2speaker\\\"][str(pred)]])\\n\",\n        \"\\n\",\n        \"\\twith open(output_path, 'w', newline='') as csvfile:\\n\",\n        \"\\t\\twriter = csv.writer(csvfile)\\n\",\n        \"\\t\\twriter.writerows(results)\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"if __name__ == \\\"__main__\\\":\\n\",\n        \"\\tmain(**parse_args())\"\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"accelerator\": \"GPU\",\n    \"colab\": {\n      \"provenance\": []\n    },\n    \"gpuClass\": \"standard\",\n    \"kernelspec\": {\n      \"display_name\": \"Python 3\",\n      \"name\": \"python3\"\n    },\n    \"language_info\": {\n      \"name\": \"python\"\n    },\n    \"widgets\": {\n      \"application/vnd.jupyter.widget-state+json\": {\n        \"6786c2b0e2614ad389620246cb2178f2\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_name\": \"HBoxModel\",\n          \"model_module_version\": \"1.5.0\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_0d592098920140dab61aac5410568c36\",\n              \"IPY_MODEL_da681e3cc353420cb142d56df0fce231\",\n              \"IPY_MODEL_401ae722b95c4ff59b836422dbe71edc\"\n            ],\n            \"layout\": \"IPY_MODEL_4efbfb7c7cb54276862e5321209d57fa\"\n          }\n        },\n        \"0d592098920140dab61aac5410568c36\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_name\": \"HTMLModel\",\n          \"model_module_version\": \"1.5.0\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_f6dcb3ec9c624171966bb889808dbcb3\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_100abf072991474abfcee871d2b83f37\",\n            \"value\": \"100%\"\n          }\n        },\n        \"da681e3cc353420cb142d56df0fce231\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_name\": \"FloatProgressModel\",\n          \"model_module_version\": \"1.5.0\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"FloatProgressModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"ProgressView\",\n            \"bar_style\": \"success\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_decc12da6f5742ec8b7ec7789ee434ab\",\n            \"max\": 8000,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"style\": \"IPY_MODEL_0117ac88c98440b29ab1f452107cbe1a\",\n            \"value\": 8000\n          }\n        },\n        \"401ae722b95c4ff59b836422dbe71edc\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_name\": \"HTMLModel\",\n          \"model_module_version\": \"1.5.0\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_3d64942a0eaa409a93df049bb594c062\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_8c8721e504cf434eb9e263fb9983969a\",\n            \"value\": \" 8000/8000 [00:33&lt;00:00, 256.07it/s]\"\n          }\n        },\n        \"4efbfb7c7cb54276862e5321209d57fa\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_name\": \"LayoutModel\",\n          \"model_module_version\": \"1.2.0\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"f6dcb3ec9c624171966bb889808dbcb3\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_name\": \"LayoutModel\",\n          \"model_module_version\": \"1.2.0\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"100abf072991474abfcee871d2b83f37\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"model_module_version\": \"1.5.0\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"decc12da6f5742ec8b7ec7789ee434ab\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_name\": \"LayoutModel\",\n          \"model_module_version\": \"1.2.0\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"0117ac88c98440b29ab1f452107cbe1a\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_name\": \"ProgressStyleModel\",\n          \"model_module_version\": \"1.5.0\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"ProgressStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"bar_color\": null,\n            \"description_width\": \"\"\n          }\n        },\n        \"3d64942a0eaa409a93df049bb594c062\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_name\": \"LayoutModel\",\n          \"model_module_version\": \"1.2.0\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"8c8721e504cf434eb9e263fb9983969a\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"model_module_version\": \"1.5.0\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        }\n      }\n    }\n  },\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0\n}"
  },
  {
    "path": "HW04/HW04_Strong_0.89700.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Strong Baseline\\n\",\n    \"You can search for the “Strong” tag to check for changes (Ctrl + F or Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"C_jdZ5vHJ4A9\"\n   },\n   \"source\": [\n    \"# Task description\\n\",\n    \"- Classify the speakers of given features.\\n\",\n    \"- Main goal: Learn how to use transformer.\\n\",\n    \"- Baselines:\\n\",\n    \"  - Easy: Run sample code and know how to use transformer.\\n\",\n    \"  - Medium: Know how to adjust parameters of transformer.\\n\",\n    \"  - Strong: Construct [conformer](https://arxiv.org/abs/2005.08100) which is a variety of transformer. \\n\",\n    \"  - Boss: Implement [Self-Attention Pooling](https://arxiv.org/pdf/2008.01077v1.pdf) & [Additive Margin Softmax](https://arxiv.org/pdf/1801.05599.pdf) to further boost the performance.\\n\",\n    \"\\n\",\n    \"- Other links\\n\",\n    \"  - Competiton: [link](https://www.kaggle.com/t/49ea0c385a974db5919ec67299ba2e6b)\\n\",\n    \"  - Slide: [link](https://docs.google.com/presentation/d/1LDAW0GGrC9B6D7dlNdYzQL6D60-iKgFr/edit?usp=sharing&ouid=104280564485377739218&rtpof=true&sd=true)\\n\",\n    \"  - Data: [link](https://github.com/googly-mingto/ML2023HW4/releases)\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"gtKxUzSgXKj3\",\n    \"outputId\": \"3f59402c-95a7-4fbd-a39c-57606590a89c\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partaa\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partab\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partac\\n\",\n    \"# !wget https://github.com/googly-mingto/ML2023HW4/releases/download/data/Dataset.tar.gz.partad\\n\",\n    \"\\n\",\n    \"# !cat Dataset.tar.gz.part* > Dataset.tar.gz\\n\",\n    \"# !rm Dataset.tar.gz.partaa\\n\",\n    \"# !rm Dataset.tar.gz.partab\\n\",\n    \"# !rm Dataset.tar.gz.partac\\n\",\n    \"# !rm Dataset.tar.gz.partad\\n\",\n    \"# # unzip the file\\n\",\n    \"# !tar zxf Dataset.tar.gz\\n\",\n    \"# !rm Dataset.tar.gz\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"U6Y1cfpDfpON\",\n    \"outputId\": \"6ba26637-5c7b-48a9-be0b-1f10ba76590a\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# !tar zxf Dataset.tar.gz\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"id\": \"E6burzCXIyuA\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"def set_seed(seed):\\n\",\n    \"    np.random.seed(seed)\\n\",\n    \"    random.seed(seed)\\n\",\n    \"    torch.manual_seed(seed)\\n\",\n    \"    if torch.cuda.is_available():\\n\",\n    \"        torch.cuda.manual_seed(seed)\\n\",\n    \"        torch.cuda.manual_seed_all(seed)\\n\",\n    \"    torch.backends.cudnn.benchmark = False\\n\",\n    \"    torch.backends.cudnn.deterministic = True\\n\",\n    \"\\n\",\n    \"set_seed(87)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"k7dVbxW2LASN\"\n   },\n   \"source\": [\n    \"# Data\\n\",\n    \"\\n\",\n    \"## Dataset\\n\",\n    \"- Original dataset is [Voxceleb2](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/vox2.html).\\n\",\n    \"- The [license](https://creativecommons.org/licenses/by/4.0/) and [complete version](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/files/license.txt) of Voxceleb2.\\n\",\n    \"- We randomly select 600 speakers from Voxceleb2.\\n\",\n    \"- Then preprocess the raw waveforms into mel-spectrograms.\\n\",\n    \"\\n\",\n    \"- Args:\\n\",\n    \"  - data_dir: The path to the data directory.\\n\",\n    \"  - metadata_path: The path to the metadata.\\n\",\n    \"  - segment_len: The length of audio segment for training. \\n\",\n    \"- The architecture of data directory \\\\\\\\\\n\",\n    \"  - data directory \\\\\\\\\\n\",\n    \"  |---- metadata.json \\\\\\\\\\n\",\n    \"  |---- testdata.json \\\\\\\\\\n\",\n    \"  |---- mapping.json \\\\\\\\\\n\",\n    \"  |---- uttr-{random string}.pt \\\\\\\\\\n\",\n    \"\\n\",\n    \"- The information in metadata\\n\",\n    \"  - \\\"n_mels\\\": The dimention of mel-spectrogram.\\n\",\n    \"  - \\\"speakers\\\": A dictionary. \\n\",\n    \"    - Key: speaker ids.\\n\",\n    \"    - value: \\\"feature_path\\\" and \\\"mel_len\\\"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"For efficiency, we segment the mel-spectrograms into segments in the traing step.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"KpuGxl4CI2pr\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import json\\n\",\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"from pathlib import Path\\n\",\n    \"from torch.utils.data import Dataset\\n\",\n    \"from torch.nn.utils.rnn import pad_sequence\\n\",\n    \" \\n\",\n    \" \\n\",\n    \"class myDataset(Dataset):\\n\",\n    \"    def __init__(self, data_dir, segment_len=128):\\n\",\n    \"        self.data_dir = data_dir\\n\",\n    \"        self.segment_len = segment_len\\n\",\n    \"\\n\",\n    \"        # Load the mapping from speaker neme to their corresponding id. \\n\",\n    \"        mapping_path = Path(data_dir) / \\\"mapping.json\\\"\\n\",\n    \"        mapping = json.load(mapping_path.open())\\n\",\n    \"        self.speaker2id = mapping[\\\"speaker2id\\\"]\\n\",\n    \"\\n\",\n    \"        # Load metadata of training data.\\n\",\n    \"        metadata_path = Path(data_dir) / \\\"metadata.json\\\"\\n\",\n    \"        metadata = json.load(open(metadata_path))[\\\"speakers\\\"]\\n\",\n    \"\\n\",\n    \"        # Get the total number of speaker.\\n\",\n    \"        self.speaker_num = len(metadata.keys())\\n\",\n    \"        self.data = []\\n\",\n    \"        for speaker in metadata.keys():\\n\",\n    \"            for utterances in metadata[speaker]:\\n\",\n    \"                self.data.append([utterances[\\\"feature_path\\\"], self.speaker2id[speaker]])\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"            return len(self.data)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, index):\\n\",\n    \"        feat_path, speaker = self.data[index]\\n\",\n    \"        # Load preprocessed mel-spectrogram.\\n\",\n    \"        mel = torch.load(os.path.join(self.data_dir, feat_path))\\n\",\n    \"\\n\",\n    \"        # Segment mel-spectrogram into \\\"segment_len\\\" frames.\\n\",\n    \"        if len(mel) > self.segment_len:\\n\",\n    \"            # Randomly get the starting point of the segment.\\n\",\n    \"            start = random.randint(0, len(mel) - self.segment_len)\\n\",\n    \"            # Get a segment with \\\"segment_len\\\" frames.\\n\",\n    \"            mel = torch.FloatTensor(mel[start:start+self.segment_len])\\n\",\n    \"        else:\\n\",\n    \"            mel = torch.FloatTensor(mel)\\n\",\n    \"        # Turn the speaker id into long for computing loss later.\\n\",\n    \"        speaker = torch.FloatTensor([speaker]).long()  # .long().dtype = torch.int64\\n\",\n    \"        return mel, speaker\\n\",\n    \"\\n\",\n    \"    def get_speaker_number(self):\\n\",\n    \"        return self.speaker_num\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"668hverTMlGN\"\n   },\n   \"source\": [\n    \"## Dataloader\\n\",\n    \"- Split dataset into training dataset(90%) and validation dataset(10%).\\n\",\n    \"- Create dataloader to iterate the data.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"B7c2gZYoJDRS\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, random_split\\n\",\n    \"from torch.nn.utils.rnn import pad_sequence\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def collate_batch(batch):\\n\",\n    \"    # Process features within a batch.\\n\",\n    \"    \\\"\\\"\\\"Collate a batch of data.\\\"\\\"\\\"\\n\",\n    \"    mel, speaker = zip(*batch)\\n\",\n    \"    # Because we train the model batch by batch, we need to pad the features in the same batch to make their lengths the same.\\n\",\n    \"    mel = pad_sequence(mel, batch_first=True, padding_value=-20)    # pad log 10^(-20) which is very small value.\\n\",\n    \"    # mel: (batch size, length, 40)\\n\",\n    \"    return mel, torch.FloatTensor(speaker).long()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def get_dataloader(data_dir, batch_size, n_workers):\\n\",\n    \"    \\\"\\\"\\\"Generate dataloader\\\"\\\"\\\"\\n\",\n    \"    dataset = myDataset(data_dir)\\n\",\n    \"    speaker_num = dataset.get_speaker_number()\\n\",\n    \"    # Split dataset into training dataset and validation dataset\\n\",\n    \"    trainlen = int(0.9 * len(dataset))\\n\",\n    \"    lengths = [trainlen, len(dataset) - trainlen]\\n\",\n    \"    trainset, validset = random_split(dataset, lengths)\\n\",\n    \"\\n\",\n    \"    train_loader = DataLoader(\\n\",\n    \"        trainset,\\n\",\n    \"        batch_size=batch_size,\\n\",\n    \"        shuffle=True,\\n\",\n    \"        drop_last=True,\\n\",\n    \"        num_workers=n_workers,\\n\",\n    \"        pin_memory=True,\\n\",\n    \"        collate_fn=collate_batch,\\n\",\n    \"    )\\n\",\n    \"    valid_loader = DataLoader(\\n\",\n    \"        validset,\\n\",\n    \"        batch_size=batch_size,\\n\",\n    \"        num_workers=n_workers,\\n\",\n    \"        drop_last=True,\\n\",\n    \"        pin_memory=True,\\n\",\n    \"        collate_fn=collate_batch,\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    return train_loader, valid_loader, speaker_num\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5FOSZYxrMqhc\"\n   },\n   \"source\": [\n    \"# Model (Strong)\\n\",\n    \"- TransformerEncoderLayer:\\n\",\n    \"  - Base transformer encoder layer in [Attention Is All You Need](https://arxiv.org/abs/1706.03762)\\n\",\n    \"  - Parameters:\\n\",\n    \"    - d_model: the number of expected features of the input (required).\\n\",\n    \"\\n\",\n    \"    - nhead: the number of heads of the multiheadattention models (required).\\n\",\n    \"\\n\",\n    \"    - dim_feedforward: the dimension of the feedforward network model (default=2048).\\n\",\n    \"\\n\",\n    \"    - dropout: the dropout value (default=0.1).\\n\",\n    \"\\n\",\n    \"    - activation: the activation function of intermediate layer, relu or gelu (default=relu).\\n\",\n    \"\\n\",\n    \"- TransformerEncoder:\\n\",\n    \"  - TransformerEncoder is a stack of N transformer encoder layers\\n\",\n    \"  - Parameters:\\n\",\n    \"    - encoder_layer: an instance of the TransformerEncoderLayer() class (required).\\n\",\n    \"\\n\",\n    \"    - num_layers: the number of sub-encoder-layers in the encoder (required).\\n\",\n    \"\\n\",\n    \"    - norm: the layer normalization component (optional).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## Conformer\\n\",\n    \"The [GitHub source code](https://github.com/sooftware/conformer/tree/main) for the [Conformer paper](https://arxiv.org/abs/2005.08100) has been included in this notebook for reference.\\n\",\n    \"\\n\",\n    \"### Encoder model architecture\\n\",\n    \"![image-20231012151052854](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231012151052.png)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Basic Modules\\n\",\n    \"\\n\",\n    \"This cell contains implementations of several basic modules that will be used to construct the Conformer model architecture in the following sections:\\n\",\n    \"\\n\",\n    \"- `ResidualConnectionModule`: Implements a residual connection module\\n\",\n    \"- `Linear`: Wrapper for `torch.nn.Linear` with Xavier initialization\\n\",\n    \"- `View`: Wrapper for `torch.view()` to be used in Sequential  \\n\",\n    \"- `Transpose`: Wrapper for `torch.transpose()` to be used in Sequential\\n\",\n    \"- `Swish`: Implementation of the Swish activation function\\n\",\n    \"- `GLU`: Implementation of Gated Linear Units\\n\",\n    \"\\n\",\n    \"These modules provide basic building blocks like linear transformations, activations, residual connections that will be used to build components of the Conformer model such as the multi-headed attention and feedforward layers.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Copyright (c) 2021, Soohwan Kim. All rights reserved.\\n\",\n    \"#\\n\",\n    \"# Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n\",\n    \"# you may not use this file except in compliance with the License.\\n\",\n    \"# You may obtain a copy of the License at\\n\",\n    \"#\\n\",\n    \"#     http://www.apache.org/licenses/LICENSE-2.0\\n\",\n    \"#\\n\",\n    \"# Unless required by applicable law or agreed to in writing, software\\n\",\n    \"# distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n\",\n    \"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n\",\n    \"# See the License for the specific language governing permissions and\\n\",\n    \"# limitations under the License.\\n\",\n    \"\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.init as init\\n\",\n    \"from torch import Tensor\\n\",\n    \"\\n\",\n    \"from typing import Tuple\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class ResidualConnectionModule(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Residual Connection Module.\\n\",\n    \"    outputs = (module(inputs) x module_factor + inputs x input_factor)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, module: nn.Module, module_factor: float = 1.0, input_factor: float = 1.0):\\n\",\n    \"        super(ResidualConnectionModule, self).__init__()\\n\",\n    \"        self.module = module\\n\",\n    \"        self.module_factor = module_factor\\n\",\n    \"        self.input_factor = input_factor\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return (self.module(inputs) * self.module_factor) + (inputs * self.input_factor)\\n\",\n    \"    \\n\",\n    \"    \\n\",\n    \"class Linear(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Wrapper class of torch.nn.Linear\\n\",\n    \"    Weight initialize by xavier initialization and bias initialize to zeros.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, in_features: int, out_features: int, bias: bool = True) -> None:\\n\",\n    \"        super(Linear, self).__init__()\\n\",\n    \"        self.linear = nn.Linear(in_features, out_features, bias=bias)\\n\",\n    \"        init.xavier_uniform_(self.linear.weight)\\n\",\n    \"        if bias:\\n\",\n    \"            init.zeros_(self.linear.bias)\\n\",\n    \"\\n\",\n    \"    def forward(self, x: Tensor) -> Tensor:\\n\",\n    \"        return self.linear(x)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class View(nn.Module):\\n\",\n    \"    \\\"\\\"\\\" Wrapper class of torch.view() for Sequential module. \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, shape: tuple, contiguous: bool = False):\\n\",\n    \"        super(View, self).__init__()\\n\",\n    \"        self.shape = shape\\n\",\n    \"        self.contiguous = contiguous\\n\",\n    \"\\n\",\n    \"    def forward(self, x: Tensor) -> Tensor:\\n\",\n    \"        if self.contiguous:\\n\",\n    \"            x = x.contiguous()\\n\",\n    \"\\n\",\n    \"        return x.view(*self.shape)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class Transpose(nn.Module):\\n\",\n    \"    \\\"\\\"\\\" Wrapper class of torch.transpose() for Sequential module. \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, shape: tuple):\\n\",\n    \"        super(Transpose, self).__init__()\\n\",\n    \"        self.shape = shape\\n\",\n    \"\\n\",\n    \"    def forward(self, x: Tensor) -> Tensor:\\n\",\n    \"        return x.transpose(*self.shape)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class Swish(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Swish is a smooth, non-monotonic function that consistently matches or outperforms ReLU on deep networks applied\\n\",\n    \"    to a variety of challenging domains such as Image classification and Machine translation.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self):\\n\",\n    \"        super(Swish, self).__init__()\\n\",\n    \"    \\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return inputs * inputs.sigmoid()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class GLU(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    The gating mechanism is called Gated Linear Units (GLU), which was first introduced for natural language processing\\n\",\n    \"    in the paper “Language Modeling with Gated Convolutional Networks”\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, dim: int) -> None:\\n\",\n    \"        super(GLU, self).__init__()\\n\",\n    \"        self.dim = dim\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        outputs, gate = inputs.chunk(2, dim=self.dim)\\n\",\n    \"        return outputs * gate.sigmoid()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Feed Forward Module\\n\",\n    \"\\n\",\n    \"This cell implements the Feed Forward Module for the Conformer model.\\n\",\n    \"\\n\",\n    \"Key points:\\n\",\n    \"\\n\",\n    \"- It follows the pre-norm residual unit design, with layer normalization applied before the first linear layer\\n\",\n    \"- Two linear layers with Swish activation in between\\n\",\n    \"- Expansion factor of 4 on the hidden layer dimensionality\\n\",\n    \"- Dropout applied after both linear layers for regularization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class FeedForwardModule(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Conformer Feed Forward Module follow pre-norm residual units and apply layer normalization within the residual unit\\n\",\n    \"    and on the input before the first linear layer. This module also apply Swish activation and dropout, which helps\\n\",\n    \"    regularizing the network.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        encoder_dim (int): Dimension of conformer encoder\\n\",\n    \"        expansion_factor (int): Expansion factor of feed forward module.\\n\",\n    \"        dropout_p (float): Ratio of dropout\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        - **inputs** (batch, time, dim): Tensor contains input sequences\\n\",\n    \"\\n\",\n    \"    Outputs: outputs\\n\",\n    \"        - **outputs** (batch, time, dim): Tensor produces by feed forward module.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            encoder_dim: int = 512,\\n\",\n    \"            expansion_factor: int = 4,\\n\",\n    \"            dropout_p: float = 0.1,\\n\",\n    \"    ) -> None:\\n\",\n    \"        super(FeedForwardModule, self).__init__()\\n\",\n    \"        self.sequential = nn.Sequential(\\n\",\n    \"            nn.LayerNorm(encoder_dim),\\n\",\n    \"            Linear(encoder_dim, encoder_dim * expansion_factor, bias=True),\\n\",\n    \"            Swish(),\\n\",\n    \"            nn.Dropout(p=dropout_p),\\n\",\n    \"            Linear(encoder_dim * expansion_factor, encoder_dim, bias=True),\\n\",\n    \"            nn.Dropout(p=dropout_p),\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.sequential(inputs)\\n\",\n    \"    \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Positional Encoding\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class PositionalEncoding(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Positional Encoding proposed in \\\"Attention Is All You Need\\\".\\n\",\n    \"    Since transformer contains no recurrence and no convolution, in order for the model to make\\n\",\n    \"    use of the order of the sequence, we must add some positional information.\\n\",\n    \"\\n\",\n    \"    \\\"Attention Is All You Need\\\" use sine and cosine functions of different frequencies:\\n\",\n    \"        PE_(pos, 2i)    =  sin(pos / power(10000, 2i / d_model))\\n\",\n    \"        PE_(pos, 2i+1)  =  cos(pos / power(10000, 2i / d_model))\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, d_model: int = 512, max_len: int = 10000) -> None:\\n\",\n    \"        super(PositionalEncoding, self).__init__()\\n\",\n    \"        pe = torch.zeros(max_len, d_model, requires_grad=False)\\n\",\n    \"        position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1)\\n\",\n    \"        div_term = torch.exp(torch.arange(0, d_model, 2).float() * -(math.log(10000.0) / d_model))\\n\",\n    \"        pe[:, 0::2] = torch.sin(position * div_term)\\n\",\n    \"        pe[:, 1::2] = torch.cos(position * div_term)\\n\",\n    \"        pe = pe.unsqueeze(0)\\n\",\n    \"        self.register_buffer('pe', pe)\\n\",\n    \"\\n\",\n    \"    def forward(self, length: int) -> Tensor:\\n\",\n    \"        return self.pe[:, :length]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Relative Multi-Head Attention\\n\",\n    \"\\n\",\n    \"This module implements relative multi-head attention mechanism as proposed in [Transformer-XL paper](https://arxiv.org/abs/1901.02860). \\n\",\n    \"\\n\",\n    \"Key points:\\n\",\n    \"\\n\",\n    \"- Splits input into multiple heads, applies attention separately on each head\\n\",\n    \"- Adds positional embedding to the query before calculating attention score \\n\",\n    \"- Positional embeddings are also projected to number of heads\\n\",\n    \"- Attention scores calculated using both content-based and position-based similarities\\n\",\n    \"- Relative positional shifts are applied to the position embeddings\\n\",\n    \"- Context vectors from each head are concatenated and projected \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from typing import Optional\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class RelativeMultiHeadAttention(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Multi-head attention with relative positional encoding.\\n\",\n    \"    This concept was proposed in the \\\"Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context\\\"\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        d_model (int): The dimension of model\\n\",\n    \"        num_heads (int): The number of attention heads.\\n\",\n    \"        dropout_p (float): probability of dropout\\n\",\n    \"\\n\",\n    \"    Inputs: query, key, value, pos_embedding, mask\\n\",\n    \"        - **query** (batch, time, dim): Tensor containing query vector\\n\",\n    \"        - **key** (batch, time, dim): Tensor containing key vector\\n\",\n    \"        - **value** (batch, time, dim): Tensor containing value vector\\n\",\n    \"        - **pos_embedding** (batch, time, dim): Positional embedding tensor\\n\",\n    \"        - **mask** (batch, 1, time2) or (batch, time1, time2): Tensor containing indices to be masked\\n\",\n    \"\\n\",\n    \"    Returns:\\n\",\n    \"        - **outputs**: Tensor produces by relative multi head attention module.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            d_model: int = 512,\\n\",\n    \"            num_heads: int = 16,\\n\",\n    \"            dropout_p: float = 0.1,\\n\",\n    \"    ):\\n\",\n    \"        super(RelativeMultiHeadAttention, self).__init__()\\n\",\n    \"        assert d_model % num_heads == 0, \\\"d_model % num_heads should be zero.\\\"\\n\",\n    \"        self.d_model = d_model\\n\",\n    \"        self.d_head = int(d_model / num_heads)\\n\",\n    \"        self.num_heads = num_heads\\n\",\n    \"        self.sqrt_dim = math.sqrt(d_model)\\n\",\n    \"\\n\",\n    \"        self.query_proj = Linear(d_model, d_model)\\n\",\n    \"        self.key_proj = Linear(d_model, d_model)\\n\",\n    \"        self.value_proj = Linear(d_model, d_model)\\n\",\n    \"        self.pos_proj = Linear(d_model, d_model, bias=False)\\n\",\n    \"\\n\",\n    \"        self.dropout = nn.Dropout(p=dropout_p)\\n\",\n    \"        self.u_bias = nn.Parameter(torch.Tensor(self.num_heads, self.d_head))\\n\",\n    \"        self.v_bias = nn.Parameter(torch.Tensor(self.num_heads, self.d_head))\\n\",\n    \"        torch.nn.init.xavier_uniform_(self.u_bias)\\n\",\n    \"        torch.nn.init.xavier_uniform_(self.v_bias)\\n\",\n    \"\\n\",\n    \"        self.out_proj = Linear(d_model, d_model)\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"            self,\\n\",\n    \"            query: Tensor,\\n\",\n    \"            key: Tensor,\\n\",\n    \"            value: Tensor,\\n\",\n    \"            pos_embedding: Tensor,\\n\",\n    \"            mask: Optional[Tensor] = None,\\n\",\n    \"    ) -> Tensor:\\n\",\n    \"        batch_size = value.size(0)\\n\",\n    \"\\n\",\n    \"        query = self.query_proj(query).view(batch_size, -1, self.num_heads, self.d_head)\\n\",\n    \"        key = self.key_proj(key).view(batch_size, -1, self.num_heads, self.d_head).permute(0, 2, 1, 3)\\n\",\n    \"        value = self.value_proj(value).view(batch_size, -1, self.num_heads, self.d_head).permute(0, 2, 1, 3)\\n\",\n    \"        pos_embedding = self.pos_proj(pos_embedding).view(batch_size, -1, self.num_heads, self.d_head)\\n\",\n    \"\\n\",\n    \"        content_score = torch.matmul((query + self.u_bias).transpose(1, 2), key.transpose(2, 3))\\n\",\n    \"        pos_score = torch.matmul((query + self.v_bias).transpose(1, 2), pos_embedding.permute(0, 2, 3, 1))\\n\",\n    \"        pos_score = self._relative_shift(pos_score)\\n\",\n    \"\\n\",\n    \"        score = (content_score + pos_score) / self.sqrt_dim\\n\",\n    \"\\n\",\n    \"        if mask is not None:\\n\",\n    \"            mask = mask.unsqueeze(1)\\n\",\n    \"            score.masked_fill_(mask, -1e9)\\n\",\n    \"\\n\",\n    \"        attn = F.softmax(score, -1)\\n\",\n    \"        attn = self.dropout(attn)\\n\",\n    \"\\n\",\n    \"        context = torch.matmul(attn, value).transpose(1, 2)\\n\",\n    \"        context = context.contiguous().view(batch_size, -1, self.d_model)\\n\",\n    \"\\n\",\n    \"        return self.out_proj(context)\\n\",\n    \"\\n\",\n    \"    def _relative_shift(self, pos_score: Tensor) -> Tensor:\\n\",\n    \"        batch_size, num_heads, seq_length1, seq_length2 = pos_score.size()\\n\",\n    \"        zeros = pos_score.new_zeros(batch_size, num_heads, seq_length1, 1)\\n\",\n    \"        padded_pos_score = torch.cat([zeros, pos_score], dim=-1)\\n\",\n    \"\\n\",\n    \"        padded_pos_score = padded_pos_score.view(batch_size, num_heads, seq_length2 + 1, seq_length1)\\n\",\n    \"        pos_score = padded_pos_score[:, :, 1:].view_as(pos_score)\\n\",\n    \"\\n\",\n    \"        return pos_score\\n\",\n    \"    \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Multi-Headed Self Attention Module\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class MultiHeadedSelfAttentionModule(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Conformer employ multi-headed self-attention (MHSA) while integrating an important technique from Transformer-XL,\\n\",\n    \"    the relative sinusoidal positional encoding scheme. The relative positional encoding allows the self-attention\\n\",\n    \"    module to generalize better on different input length and the resulting encoder is more robust to the variance of\\n\",\n    \"    the utterance length. Conformer use prenorm residual units with dropout which helps training\\n\",\n    \"    and regularizing deeper models.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        d_model (int): The dimension of model\\n\",\n    \"        num_heads (int): The number of attention heads.\\n\",\n    \"        dropout_p (float): probability of dropout\\n\",\n    \"\\n\",\n    \"    Inputs: inputs, mask\\n\",\n    \"        - **inputs** (batch, time, dim): Tensor containing input vector\\n\",\n    \"        - **mask** (batch, 1, time2) or (batch, time1, time2): Tensor containing indices to be masked\\n\",\n    \"\\n\",\n    \"    Returns:\\n\",\n    \"        - **outputs** (batch, time, dim): Tensor produces by relative multi headed self attention module.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, d_model: int, num_heads: int, dropout_p: float = 0.1):\\n\",\n    \"        super(MultiHeadedSelfAttentionModule, self).__init__()\\n\",\n    \"        self.positional_encoding = PositionalEncoding(d_model)\\n\",\n    \"        self.layer_norm = nn.LayerNorm(d_model)\\n\",\n    \"        self.attention = RelativeMultiHeadAttention(d_model, num_heads, dropout_p)\\n\",\n    \"        self.dropout = nn.Dropout(p=dropout_p)\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor, mask: Optional[Tensor] = None):\\n\",\n    \"        batch_size, seq_length, _ = inputs.size()\\n\",\n    \"        pos_embedding = self.positional_encoding(seq_length)\\n\",\n    \"        pos_embedding = pos_embedding.repeat(batch_size, 1, 1)\\n\",\n    \"\\n\",\n    \"        inputs = self.layer_norm(inputs)\\n\",\n    \"        outputs = self.attention(inputs, inputs, inputs, pos_embedding=pos_embedding, mask=mask)\\n\",\n    \"\\n\",\n    \"        return self.dropout(outputs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"### Conformer Convolution Module\\n\",\n    \"\\n\",\n    \"![image-20231011181636095](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231011181636.png)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class DepthwiseConv1d(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    When groups == in_channels and out_channels == K * in_channels, where K is a positive integer,\\n\",\n    \"    this operation is termed in literature as depthwise convolution.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        in_channels (int): Number of channels in the input\\n\",\n    \"        out_channels (int): Number of channels produced by the convolution\\n\",\n    \"        kernel_size (int or tuple): Size of the convolving kernel\\n\",\n    \"        stride (int, optional): Stride of the convolution. Default: 1\\n\",\n    \"        padding (int or tuple, optional): Zero-padding added to both sides of the input. Default: 0\\n\",\n    \"        bias (bool, optional): If True, adds a learnable bias to the output. Default: True\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        - **inputs** (batch, in_channels, time): Tensor containing input vector\\n\",\n    \"\\n\",\n    \"    Returns: outputs\\n\",\n    \"        - **outputs** (batch, out_channels, time): Tensor produces by depthwise 1-D convolution.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            in_channels: int,\\n\",\n    \"            out_channels: int,\\n\",\n    \"            kernel_size: int,\\n\",\n    \"            stride: int = 1,\\n\",\n    \"            padding: int = 0,\\n\",\n    \"            bias: bool = False,\\n\",\n    \"    ) -> None:\\n\",\n    \"        super(DepthwiseConv1d, self).__init__()\\n\",\n    \"        assert out_channels % in_channels == 0, \\\"out_channels should be constant multiple of in_channels\\\"\\n\",\n    \"        self.conv = nn.Conv1d(\\n\",\n    \"            in_channels=in_channels,\\n\",\n    \"            out_channels=out_channels,\\n\",\n    \"            kernel_size=kernel_size,\\n\",\n    \"            groups=in_channels,\\n\",\n    \"            stride=stride,\\n\",\n    \"            padding=padding,\\n\",\n    \"            bias=bias,\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.conv(inputs)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class PointwiseConv1d(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    When kernel size == 1 conv1d, this operation is termed in literature as pointwise convolution.\\n\",\n    \"    This operation often used to match dimensions.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        in_channels (int): Number of channels in the input\\n\",\n    \"        out_channels (int): Number of channels produced by the convolution\\n\",\n    \"        stride (int, optional): Stride of the convolution. Default: 1\\n\",\n    \"        padding (int or tuple, optional): Zero-padding added to both sides of the input. Default: 0\\n\",\n    \"        bias (bool, optional): If True, adds a learnable bias to the output. Default: True\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        - **inputs** (batch, in_channels, time): Tensor containing input vector\\n\",\n    \"\\n\",\n    \"    Returns: outputs\\n\",\n    \"        - **outputs** (batch, out_channels, time): Tensor produces by pointwise 1-D convolution.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            in_channels: int,\\n\",\n    \"            out_channels: int,\\n\",\n    \"            stride: int = 1,\\n\",\n    \"            padding: int = 0,\\n\",\n    \"            bias: bool = True,\\n\",\n    \"    ) -> None:\\n\",\n    \"        super(PointwiseConv1d, self).__init__()\\n\",\n    \"        self.conv = nn.Conv1d(\\n\",\n    \"            in_channels=in_channels,\\n\",\n    \"            out_channels=out_channels,\\n\",\n    \"            kernel_size=1,\\n\",\n    \"            stride=stride,\\n\",\n    \"            padding=padding,\\n\",\n    \"            bias=bias,\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.conv(inputs)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class ConformerConvModule(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Conformer convolution module starts with a pointwise convolution and a gated linear unit (GLU).\\n\",\n    \"    This is followed by a single 1-D depthwise convolution layer. Batchnorm is  deployed just after the convolution\\n\",\n    \"    to aid training deep models.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        in_channels (int): Number of channels in the input\\n\",\n    \"        kernel_size (int or tuple, optional): Size of the convolving kernel Default: 31\\n\",\n    \"        dropout_p (float, optional): probability of dropout\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        inputs (batch, time, dim): Tensor contains input sequences\\n\",\n    \"\\n\",\n    \"    Outputs: outputs\\n\",\n    \"        outputs (batch, time, dim): Tensor produces by conformer convolution module.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            in_channels: int,\\n\",\n    \"            kernel_size: int = 31,\\n\",\n    \"            expansion_factor: int = 2,\\n\",\n    \"            dropout_p: float = 0.1,\\n\",\n    \"    ) -> None:\\n\",\n    \"        super(ConformerConvModule, self).__init__()\\n\",\n    \"        assert (kernel_size - 1) % 2 == 0, \\\"kernel_size should be a odd number for 'SAME' padding\\\"\\n\",\n    \"        assert expansion_factor == 2, \\\"Currently, Only Supports expansion_factor 2\\\"\\n\",\n    \"\\n\",\n    \"        self.sequential = nn.Sequential(\\n\",\n    \"            nn.LayerNorm(in_channels),\\n\",\n    \"            Transpose(shape=(1, 2)),\\n\",\n    \"            PointwiseConv1d(in_channels, in_channels * expansion_factor, stride=1, padding=0, bias=True),\\n\",\n    \"            GLU(dim=1),\\n\",\n    \"            DepthwiseConv1d(in_channels, in_channels, kernel_size, stride=1, padding=(kernel_size - 1) // 2),\\n\",\n    \"            nn.BatchNorm1d(in_channels),\\n\",\n    \"            Swish(),\\n\",\n    \"            PointwiseConv1d(in_channels, in_channels, stride=1, padding=0, bias=True),\\n\",\n    \"            nn.Dropout(p=dropout_p),\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.sequential(inputs).transpose(1, 2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Conformer Block\\n\",\n    \"\\n\",\n    \"The `ConformerBlock` implements the main building block of the Conformer model. Key points:\\n\",\n    \"\\n\",\n    \"- It sandwiches two FeedForward modules around the MultiHeadedSelfAttention module and the ConformerConv module\\n\",\n    \"- Applying FeedForward before and after the attention is known as Macaron style blocks\\n\",\n    \"- Residual connections are used around each module, with layer norm applied in the end\\n\",\n    \"- Half-step residual connections are also supported\\n\",\n    \"\\n\",\n    \"The block takes input, passes it through the feedforward -> attn -> conv -> feedforward blocks with residuals. This forms the basic transformer encoder layer used to stack up the Conformer model.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class ConformerBlock(nn.Module):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Conformer block contains two Feed Forward modules sandwiching the Multi-Headed Self-Attention module\\n\",\n    \"    and the Convolution module. This sandwich structure is inspired by Macaron-Net, which proposes replacing\\n\",\n    \"    the original feed-forward layer in the Transformer block into two half-step feed-forward layers,\\n\",\n    \"    one before the attention layer and one after.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        encoder_dim (int, optional): Dimension of conformer encoder\\n\",\n    \"        num_attention_heads (int, optional): Number of attention heads\\n\",\n    \"        feed_forward_expansion_factor (int, optional): Expansion factor of feed forward module\\n\",\n    \"        conv_expansion_factor (int, optional): Expansion factor of conformer convolution module\\n\",\n    \"        feed_forward_dropout_p (float, optional): Probability of feed forward module dropout\\n\",\n    \"        attention_dropout_p (float, optional): Probability of attention module dropout\\n\",\n    \"        conv_dropout_p (float, optional): Probability of conformer convolution module dropout\\n\",\n    \"        conv_kernel_size (int or tuple, optional): Size of the convolving kernel\\n\",\n    \"        half_step_residual (bool): Flag indication whether to use half step residual or not\\n\",\n    \"\\n\",\n    \"    Inputs: inputs\\n\",\n    \"        - **inputs** (batch, time, dim): Tensor containing input vector\\n\",\n    \"\\n\",\n    \"    Returns: outputs\\n\",\n    \"        - **outputs** (batch, time, dim): Tensor produces by conformer block.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(\\n\",\n    \"            self,\\n\",\n    \"            encoder_dim: int = 512,\\n\",\n    \"            num_attention_heads: int = 8,\\n\",\n    \"            feed_forward_expansion_factor: int = 4,\\n\",\n    \"            conv_expansion_factor: int = 2,\\n\",\n    \"            feed_forward_dropout_p: float = 0.1,\\n\",\n    \"            attention_dropout_p: float = 0.1,\\n\",\n    \"            conv_dropout_p: float = 0.1,\\n\",\n    \"            conv_kernel_size: int = 31,\\n\",\n    \"            half_step_residual: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        super(ConformerBlock, self).__init__()\\n\",\n    \"        if half_step_residual:\\n\",\n    \"            self.feed_forward_residual_factor = 0.5\\n\",\n    \"        else:\\n\",\n    \"            self.feed_forward_residual_factor = 1\\n\",\n    \"\\n\",\n    \"        self.sequential = nn.Sequential(\\n\",\n    \"            ResidualConnectionModule(\\n\",\n    \"                module=FeedForwardModule(\\n\",\n    \"                    encoder_dim=encoder_dim,\\n\",\n    \"                    expansion_factor=feed_forward_expansion_factor,\\n\",\n    \"                    dropout_p=feed_forward_dropout_p,\\n\",\n    \"                ),\\n\",\n    \"                module_factor=self.feed_forward_residual_factor,\\n\",\n    \"            ),\\n\",\n    \"            ResidualConnectionModule(\\n\",\n    \"                module=MultiHeadedSelfAttentionModule(\\n\",\n    \"                    d_model=encoder_dim,\\n\",\n    \"                    num_heads=num_attention_heads,\\n\",\n    \"                    dropout_p=attention_dropout_p,\\n\",\n    \"                ),\\n\",\n    \"            ),\\n\",\n    \"            ResidualConnectionModule(\\n\",\n    \"                module=ConformerConvModule(\\n\",\n    \"                    in_channels=encoder_dim,\\n\",\n    \"                    kernel_size=conv_kernel_size,\\n\",\n    \"                    expansion_factor=conv_expansion_factor,\\n\",\n    \"                    dropout_p=conv_dropout_p,\\n\",\n    \"                ),\\n\",\n    \"            ),\\n\",\n    \"            ResidualConnectionModule(\\n\",\n    \"                module=FeedForwardModule(\\n\",\n    \"                    encoder_dim=encoder_dim,\\n\",\n    \"                    expansion_factor=feed_forward_expansion_factor,\\n\",\n    \"                    dropout_p=feed_forward_dropout_p,\\n\",\n    \"                ),\\n\",\n    \"                module_factor=self.feed_forward_residual_factor,\\n\",\n    \"            ),\\n\",\n    \"            nn.LayerNorm(encoder_dim),\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs: Tensor) -> Tensor:\\n\",\n    \"        return self.sequential(inputs)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"## Classifier\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"iXZ5B0EKJGs8\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"\\n\",\n    \"    \\n\",\n    \"class Classifier(nn.Module):\\n\",\n    \"    def __init__(self, d_model=512, n_spks=600, dropout=0.1):\\n\",\n    \"        super().__init__()\\n\",\n    \"        # Project the dimension of features from that of input into d_model.\\n\",\n    \"        self.prenet = nn.Linear(40, d_model)\\n\",\n    \"        # TODO:\\n\",\n    \"        #   Change Transformer to Conformer.\\n\",\n    \"        #   https://arxiv.org/abs/2005.08100\\n\",\n    \"\\n\",\n    \"        self.encoder_layer = ConformerBlock(encoder_dim=d_model, conv_dropout_p=0.1)\\n\",\n    \"        \\n\",\n    \"        # Project the the dimension of features from d_model into speaker nums.\\n\",\n    \"        self.pred_layer = nn.Sequential(\\n\",\n    \"            nn.Linear(d_model, 2 * d_model),\\n\",\n    \"            nn.Sigmoid(),\\n\",\n    \"            nn.Dropout(dropout),\\n\",\n    \"            nn.Linear(2 * d_model, n_spks),\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"    def forward(self, mels):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        args:\\n\",\n    \"            mels: (batch size, length, 40)\\n\",\n    \"        return:\\n\",\n    \"            out: (batch size, n_spks)\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        # out: (batch size, length, d_model)\\n\",\n    \"        out = self.prenet(mels)\\n\",\n    \"        # out: (length, batch size, d_model)\\n\",\n    \"        out = out.permute(1, 0, 2)\\n\",\n    \"        # The encoder layer expect features in the shape of (length, batch size, d_model).\\n\",\n    \"        out = self.encoder_layer(out)\\n\",\n    \"        # out: (batch size, length, d_model)\\n\",\n    \"        out = out.transpose(0, 1)\\n\",\n    \"        # mean pooling\\n\",\n    \"        stats = out.mean(dim=1)\\n\",\n    \"\\n\",\n    \"        # out: (batch, n_spks)\\n\",\n    \"        out = self.pred_layer(stats)\\n\",\n    \"        return out\\n\",\n    \"    \\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"W7yX8JinM5Ly\"\n   },\n   \"source\": [\n    \"# Learning rate schedule\\n\",\n    \"- For transformer architecture, the design of learning rate schedule is different from that of CNN.\\n\",\n    \"- Previous works show that the warmup of learning rate is useful for training models with transformer architectures.\\n\",\n    \"- The warmup schedule\\n\",\n    \"  - Set learning rate to 0 in the beginning.\\n\",\n    \"  - The learning rate increases linearly from 0 to initial learning rate during warmup period.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"ykt0N1nVJJi2\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"from torch.optim import Optimizer\\n\",\n    \"from torch.optim.lr_scheduler import LambdaLR\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def get_cosine_schedule_with_warmup(\\n\",\n    \"    optimizer: Optimizer,\\n\",\n    \"    num_warmup_steps: int,\\n\",\n    \"    num_training_steps: int,\\n\",\n    \"    num_cycles: float = 0.5,\\n\",\n    \"    last_epoch: int = -1,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Create a schedule with a learning rate that decreases following the values of the cosine function between the\\n\",\n    \"    initial lr set in the optimizer to 0, after a warmup period during which it increases linearly between 0 and the\\n\",\n    \"    initial lr set in the optimizer.\\n\",\n    \"\\n\",\n    \"    Args:\\n\",\n    \"        optimizer (:class:`~torch.optim.Optimizer`):\\n\",\n    \"        The optimizer for which to schedule the learning rate.\\n\",\n    \"        num_warmup_steps (:obj:`int`):\\n\",\n    \"        The number of steps for the warmup phase.\\n\",\n    \"        num_training_steps (:obj:`int`):\\n\",\n    \"        The total number of training steps.\\n\",\n    \"        num_cycles (:obj:`float`, `optional`, defaults to 0.5):\\n\",\n    \"        The number of waves in the cosine schedule (the defaults is to just decrease from the max value to 0\\n\",\n    \"        following a half-cosine).\\n\",\n    \"        last_epoch (:obj:`int`, `optional`, defaults to -1):\\n\",\n    \"        The index of the last epoch when resuming training.\\n\",\n    \"\\n\",\n    \"    Return:\\n\",\n    \"        :obj:`torch.optim.lr_scheduler.LambdaLR` with the appropriate schedule.\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def lr_lambda(current_step):\\n\",\n    \"        # Warmup\\n\",\n    \"        if current_step < num_warmup_steps:\\n\",\n    \"            return float(current_step) / float(max(1, num_warmup_steps))\\n\",\n    \"        # decadence\\n\",\n    \"        progress = float(current_step - num_warmup_steps) / float(\\n\",\n    \"            max(1, num_training_steps - num_warmup_steps)\\n\",\n    \"        )\\n\",\n    \"        return max(\\n\",\n    \"            0.0, 0.5 * (1.0 + math.cos(math.pi * float(num_cycles) * 2.0 * progress))\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    return LambdaLR(optimizer, lr_lambda, last_epoch)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"-LN2XkteM_uH\"\n   },\n   \"source\": [\n    \"# Model Function\\n\",\n    \"- Model forward function.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"N-rr8529JMz0\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def model_fn(batch, model, criterion, device):\\n\",\n    \"\\t\\\"\\\"\\\"Forward a batch through the model.\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"\\tmels, labels = batch\\n\",\n    \"\\tmels = mels.to(device)\\n\",\n    \"\\tlabels = labels.to(device)\\n\",\n    \"\\n\",\n    \"\\touts = model(mels)\\n\",\n    \"\\n\",\n    \"\\tloss = criterion(outs, labels)\\n\",\n    \"\\n\",\n    \"\\t# Get the speaker id with highest probability.\\n\",\n    \"\\tpreds = outs.argmax(1)\\n\",\n    \"\\t# Compute accuracy.\\n\",\n    \"\\taccuracy = torch.mean((preds == labels).float())\\n\",\n    \"\\n\",\n    \"\\treturn loss, accuracy\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cwM_xyOtNCI2\"\n   },\n   \"source\": [\n    \"# Validate\\n\",\n    \"- Calculate accuracy of the validation set.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"YAiv6kpdJRTJ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from tqdm.notebook import tqdm\\n\",\n    \"import torch\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def valid(dataloader, model, criterion, device): \\n\",\n    \"    \\\"\\\"\\\"Validate on validation set.\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    running_loss = 0.0\\n\",\n    \"    running_accuracy = 0.0\\n\",\n    \"    pbar = tqdm(total=len(dataloader.dataset), ncols=0, desc=\\\"Valid\\\", unit=\\\" uttr\\\")\\n\",\n    \"\\n\",\n    \"    for i, batch in enumerate(dataloader):\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            loss, accuracy = model_fn(batch, model, criterion, device)\\n\",\n    \"            running_loss += loss.item()\\n\",\n    \"            running_accuracy += accuracy.item()\\n\",\n    \"\\n\",\n    \"        pbar.update(dataloader.batch_size)\\n\",\n    \"        pbar.set_postfix(\\n\",\n    \"            loss=f\\\"{running_loss / (i+1):.2f}\\\",\\n\",\n    \"            accuracy=f\\\"{running_accuracy / (i+1):.2f}\\\",\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    pbar.close()\\n\",\n    \"    model.train()\\n\",\n    \"\\n\",\n    \"    return running_accuracy / len(dataloader)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"g6ne9G-eNEdG\"\n   },\n   \"source\": [\n    \"# Main function\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"Usv9s-CuJSG7\",\n    \"outputId\": \"f4f6a983-3559-4f36-efae-402bbf790473\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[Info]: Use cuda now!\\n\",\n      \"[Info]: Finish loading data!\\n\",\n      \"[Info]: Finish creating model!\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.57 step/s, accuracy=0.12, loss=4.06, step=2000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2297.95 uttr/s, accuracy=0.11, loss=4.36]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.95 step/s, accuracy=0.38, loss=3.34, step=4000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2347.95 uttr/s, accuracy=0.26, loss=3.45]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.92 step/s, accuracy=0.44, loss=2.42, step=6000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2342.82 uttr/s, accuracy=0.34, loss=2.97]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.87 step/s, accuracy=0.34, loss=2.61, step=8000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2336.68 uttr/s, accuracy=0.40, loss=2.68]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.90 step/s, accuracy=0.44, loss=2.39, step=1e+4]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2323.92 uttr/s, accuracy=0.46, loss=2.44]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:34, 21.07 step/s, accuracy=0.56, loss=1.95, step=1e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 10000, best model saved. (accuracy=0.4578)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.89 step/s, accuracy=0.28, loss=2.68, step=12000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2338.50 uttr/s, accuracy=0.49, loss=2.25]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.89 step/s, accuracy=0.59, loss=1.69, step=14000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2337.66 uttr/s, accuracy=0.53, loss=2.08]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.85 step/s, accuracy=0.81, loss=0.91, step=16000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2324.26 uttr/s, accuracy=0.55, loss=1.98]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.88 step/s, accuracy=0.69, loss=1.55, step=18000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2332.88 uttr/s, accuracy=0.57, loss=1.88]\\n\",\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.77 step/s, accuracy=0.75, loss=0.90, step=2e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2323.65 uttr/s, accuracy=0.58, loss=1.83]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:36, 20.73 step/s, accuracy=0.78, loss=1.08, step=2e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 20000, best model saved. (accuracy=0.5803)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.70 step/s, accuracy=0.66, loss=1.36, step=22000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2317.45 uttr/s, accuracy=0.63, loss=1.65]\\n\",\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.69 step/s, accuracy=0.84, loss=0.82, step=24000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2330.29 uttr/s, accuracy=0.64, loss=1.61]\\n\",\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.70 step/s, accuracy=0.69, loss=1.21, step=26000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2318.94 uttr/s, accuracy=0.65, loss=1.55]\\n\",\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.70 step/s, accuracy=0.75, loss=1.06, step=28000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2312.38 uttr/s, accuracy=0.67, loss=1.50]\\n\",\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.70 step/s, accuracy=0.69, loss=1.30, step=3e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2315.99 uttr/s, accuracy=0.67, loss=1.48]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:36, 20.76 step/s, accuracy=0.75, loss=0.88, step=3e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 30000, best model saved. (accuracy=0.6681)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.63 step/s, accuracy=0.88, loss=0.54, step=32000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2320.91 uttr/s, accuracy=0.69, loss=1.41]\\n\",\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.73 step/s, accuracy=0.88, loss=0.66, step=34000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2309.08 uttr/s, accuracy=0.70, loss=1.38]\\n\",\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.70 step/s, accuracy=0.84, loss=0.51, step=36000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2325.12 uttr/s, accuracy=0.71, loss=1.33]\\n\",\n      \"Train: 100% 2000/2000 [01:24<00:00, 23.70 step/s, accuracy=0.75, loss=0.69, step=38000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2318.36 uttr/s, accuracy=0.71, loss=1.30]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.83 step/s, accuracy=0.78, loss=0.91, step=4e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2329.92 uttr/s, accuracy=0.72, loss=1.25]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:34, 21.18 step/s, accuracy=0.94, loss=0.26, step=4e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 40000, best model saved. (accuracy=0.7235)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.86 step/s, accuracy=0.88, loss=0.58, step=42000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2328.85 uttr/s, accuracy=0.73, loss=1.20]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.86 step/s, accuracy=0.84, loss=0.66, step=44000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2327.43 uttr/s, accuracy=0.74, loss=1.20]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.86 step/s, accuracy=0.97, loss=0.36, step=46000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2315.62 uttr/s, accuracy=0.74, loss=1.18]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.83 step/s, accuracy=0.97, loss=0.34, step=48000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2312.39 uttr/s, accuracy=0.75, loss=1.15]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.87 step/s, accuracy=0.88, loss=0.48, step=5e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2332.18 uttr/s, accuracy=0.76, loss=1.13]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:35, 20.82 step/s, accuracy=0.84, loss=0.76, step=5e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 50000, best model saved. (accuracy=0.7551)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.85 step/s, accuracy=0.81, loss=0.61, step=52000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2324.39 uttr/s, accuracy=0.76, loss=1.11]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.88 step/s, accuracy=0.97, loss=0.19, step=54000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2325.88 uttr/s, accuracy=0.77, loss=1.08]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.85 step/s, accuracy=0.94, loss=0.26, step=56000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2328.23 uttr/s, accuracy=0.76, loss=1.08]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.90 step/s, accuracy=0.94, loss=0.31, step=58000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2321.70 uttr/s, accuracy=0.77, loss=1.07]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.88 step/s, accuracy=0.94, loss=0.24, step=6e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2322.05 uttr/s, accuracy=0.78, loss=1.05]\\n\",\n      \"Train:   0% 5/2000 [00:00<01:36, 20.61 step/s, accuracy=1.00, loss=0.12, step=6e+4]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 60000, best model saved. (accuracy=0.7761)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.85 step/s, accuracy=0.94, loss=0.22, step=62000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2319.85 uttr/s, accuracy=0.78, loss=1.06]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.86 step/s, accuracy=1.00, loss=0.09, step=64000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2322.97 uttr/s, accuracy=0.78, loss=1.02]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.91 step/s, accuracy=0.94, loss=0.29, step=66000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2323.83 uttr/s, accuracy=0.78, loss=1.05]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.89 step/s, accuracy=0.97, loss=0.22, step=68000]\\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2321.50 uttr/s, accuracy=0.78, loss=1.04]\\n\",\n      \"Train: 100% 2000/2000 [01:23<00:00, 23.86 step/s, accuracy=0.78, loss=0.62, step=7e+4] \\n\",\n      \"Valid: 100% 5664/5667 [00:02<00:00, 2324.77 uttr/s, accuracy=0.78, loss=1.03]\\n\",\n      \"Train:   0% 0/2000 [00:00<?, ? step/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Step 70000, best model saved. (accuracy=0.7805)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from tqdm import tqdm\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"from torch.optim import AdamW\\n\",\n    \"from torch.utils.data import DataLoader, random_split\\n\",\n    \"\\n\",\n    \"from torch.utils.tensorboard import SummaryWriter\\n\",\n    \"\\n\",\n    \"def parse_args():\\n\",\n    \"    \\\"\\\"\\\"arguments\\\"\\\"\\\"\\n\",\n    \"    config = {\\n\",\n    \"        \\\"data_dir\\\": \\\"./Dataset\\\",\\n\",\n    \"        \\\"save_path\\\": \\\"model.ckpt\\\",\\n\",\n    \"        \\\"batch_size\\\": 32,\\n\",\n    \"        \\\"n_workers\\\": 8,\\n\",\n    \"        \\\"valid_steps\\\": 2000,\\n\",\n    \"        \\\"warmup_steps\\\": 1000,\\n\",\n    \"        \\\"save_steps\\\": 10000,\\n\",\n    \"        \\\"total_steps\\\": 70000,\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    return config\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def main(\\n\",\n    \"    data_dir,\\n\",\n    \"    save_path,\\n\",\n    \"    batch_size,\\n\",\n    \"    n_workers,\\n\",\n    \"    valid_steps,\\n\",\n    \"    warmup_steps,\\n\",\n    \"    total_steps,\\n\",\n    \"    save_steps,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"Main function.\\\"\\\"\\\"\\n\",\n    \"    device = torch.device(\\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n    \"    print(f\\\"[Info]: Use {device} now!\\\")\\n\",\n    \"\\n\",\n    \"    train_loader, valid_loader, speaker_num = get_dataloader(data_dir, batch_size, n_workers)\\n\",\n    \"    train_iterator = iter(train_loader)\\n\",\n    \"    print(f\\\"[Info]: Finish loading data!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    model = Classifier(n_spks=speaker_num).to(device)\\n\",\n    \"    criterion = nn.CrossEntropyLoss()\\n\",\n    \"    # criterion = nn.CTCLoss().to(device)\\n\",\n    \"    optimizer = AdamW(model.parameters(), lr=1e-3)\\n\",\n    \"    scheduler = get_cosine_schedule_with_warmup(optimizer, warmup_steps, total_steps)\\n\",\n    \"    print(f\\\"[Info]: Finish creating model!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    best_accuracy = -1.0\\n\",\n    \"    best_state_dict = None\\n\",\n    \"\\n\",\n    \"    writer = SummaryWriter()\\n\",\n    \"    pbar = tqdm(total=valid_steps, ncols=0, desc=\\\"Train\\\", unit=\\\" step\\\")\\n\",\n    \"\\n\",\n    \"    for step in range(total_steps):\\n\",\n    \"        # Get data\\n\",\n    \"        try:\\n\",\n    \"            batch = next(train_iterator)\\n\",\n    \"        except StopIteration:\\n\",\n    \"            train_iterator = iter(train_loader)\\n\",\n    \"            batch = next(train_iterator)\\n\",\n    \"\\n\",\n    \"        loss, accuracy = model_fn(batch, model, criterion, device)\\n\",\n    \"        batch_loss = loss.item()\\n\",\n    \"        batch_accuracy = accuracy.item()\\n\",\n    \"\\n\",\n    \"        # Updata model\\n\",\n    \"        loss.backward()\\n\",\n    \"        optimizer.step()\\n\",\n    \"        scheduler.step()\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        # Log\\n\",\n    \"        pbar.update()\\n\",\n    \"        pbar.set_postfix(\\n\",\n    \"            loss=f\\\"{batch_loss:.2f}\\\",\\n\",\n    \"            accuracy=f\\\"{batch_accuracy:.2f}\\\",\\n\",\n    \"            step=step + 1,\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"        # Do validation\\n\",\n    \"        if (step + 1) % valid_steps == 0:\\n\",\n    \"            pbar.close()\\n\",\n    \"\\n\",\n    \"            valid_accuracy = valid(valid_loader, model, criterion, device)\\n\",\n    \"\\n\",\n    \"            # keep the best model\\n\",\n    \"            if valid_accuracy > best_accuracy:\\n\",\n    \"                best_accuracy = valid_accuracy\\n\",\n    \"                best_state_dict = model.state_dict()\\n\",\n    \"\\n\",\n    \"            pbar = tqdm(total=valid_steps, ncols=0, desc=\\\"Train\\\", unit=\\\" step\\\")\\n\",\n    \"            writer.add_scalar('Acc/train', batch_accuracy, step)\\n\",\n    \"            writer.add_scalar('Acc/valid', valid_accuracy, step)\\n\",\n    \"            writer.add_scalar('lr', optimizer.state_dict()['param_groups'][0]['lr'], step)\\n\",\n    \"\\n\",\n    \"        # Save the best model so far.\\n\",\n    \"        if (step + 1) % save_steps == 0 and best_state_dict is not None:\\n\",\n    \"            torch.save(best_state_dict, save_path)\\n\",\n    \"            pbar.write(f\\\"Step {step + 1}, best model saved. (accuracy={best_accuracy:.4f})\\\")\\n\",\n    \"\\n\",\n    \"    pbar.close()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"if __name__ == \\\"__main__\\\":\\n\",\n    \"    main(**parse_args())\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NLatBYAhNNMx\"\n   },\n   \"source\": [\n    \"# Inference\\n\",\n    \"\\n\",\n    \"## Dataset of inferenceoutput_lengths\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"efS4pCmAJXJH\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"import json\\n\",\n    \"import torch\\n\",\n    \"from pathlib import Path\\n\",\n    \"from torch.utils.data import Dataset\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"class InferenceDataset(Dataset):\\n\",\n    \"    def __init__(self, data_dir):\\n\",\n    \"        testdata_path = Path(data_dir) / \\\"testdata.json\\\"\\n\",\n    \"        metadata = json.load(testdata_path.open())\\n\",\n    \"        self.data_dir = data_dir\\n\",\n    \"        self.data = metadata[\\\"utterances\\\"]\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.data)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, index):\\n\",\n    \"        utterance = self.data[index]\\n\",\n    \"        feat_path = utterance[\\\"feature_path\\\"]\\n\",\n    \"        mel = torch.load(os.path.join(self.data_dir, feat_path))\\n\",\n    \"\\n\",\n    \"        return feat_path, mel\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def inference_collate_batch(batch):\\n\",\n    \"    \\\"\\\"\\\"Collate a batch of data.\\\"\\\"\\\"\\n\",\n    \"    feat_paths, mels = zip(*batch)\\n\",\n    \"\\n\",\n    \"    return feat_paths, torch.stack(mels)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"tl0WnYwxNK_S\"\n   },\n   \"source\": [\n    \"## Main function of Inference\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 103,\n     \"referenced_widgets\": [\n      \"6786c2b0e2614ad389620246cb2178f2\",\n      \"0d592098920140dab61aac5410568c36\",\n      \"da681e3cc353420cb142d56df0fce231\",\n      \"401ae722b95c4ff59b836422dbe71edc\",\n      \"4efbfb7c7cb54276862e5321209d57fa\",\n      \"f6dcb3ec9c624171966bb889808dbcb3\",\n      \"100abf072991474abfcee871d2b83f37\",\n      \"decc12da6f5742ec8b7ec7789ee434ab\",\n      \"0117ac88c98440b29ab1f452107cbe1a\",\n      \"3d64942a0eaa409a93df049bb594c062\",\n      \"8c8721e504cf434eb9e263fb9983969a\"\n     ]\n    },\n    \"id\": \"i8SAbuXEJb2A\",\n    \"outputId\": \"3808f409-19c9-426c-dc15-1b88b0c21645\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[Info]: Use cuda now!\\n\",\n      \"[Info]: Finish loading data!\\n\",\n      \"[Info]: Finish creating model!\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"57a249dad96b4b25877511049659f9df\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/8000 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import json\\n\",\n    \"import csv\\n\",\n    \"from pathlib import Path\\n\",\n    \"from tqdm.notebook import tqdm\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader\\n\",\n    \"\\n\",\n    \"def parse_args():\\n\",\n    \"    \\\"\\\"\\\"arguments\\\"\\\"\\\"\\n\",\n    \"    config = {\\n\",\n    \"        \\\"data_dir\\\": \\\"./Dataset\\\",\\n\",\n    \"        \\\"model_path\\\": \\\"./model.ckpt\\\",\\n\",\n    \"        \\\"output_path\\\": \\\"./output.csv\\\",\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    return config\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def main(\\n\",\n    \"    data_dir,\\n\",\n    \"    model_path,\\n\",\n    \"    output_path,\\n\",\n    \"):\\n\",\n    \"    \\\"\\\"\\\"Main function.\\\"\\\"\\\"\\n\",\n    \"    device = torch.device(\\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n    \"    print(f\\\"[Info]: Use {device} now!\\\")\\n\",\n    \"\\n\",\n    \"    mapping_path = Path(data_dir) / \\\"mapping.json\\\"\\n\",\n    \"    mapping = json.load(mapping_path.open())\\n\",\n    \"\\n\",\n    \"    dataset = InferenceDataset(data_dir)\\n\",\n    \"    dataloader = DataLoader(\\n\",\n    \"        dataset,\\n\",\n    \"        batch_size=1,\\n\",\n    \"        shuffle=False,\\n\",\n    \"        drop_last=False,\\n\",\n    \"        num_workers=8,\\n\",\n    \"        collate_fn=inference_collate_batch,\\n\",\n    \"    )\\n\",\n    \"    print(f\\\"[Info]: Finish loading data!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    speaker_num = len(mapping[\\\"id2speaker\\\"])\\n\",\n    \"    model = Classifier(n_spks=speaker_num).to(device)\\n\",\n    \"    model.load_state_dict(torch.load(model_path))\\n\",\n    \"    model.eval()\\n\",\n    \"    print(f\\\"[Info]: Finish creating model!\\\",flush = True)\\n\",\n    \"\\n\",\n    \"    results = [[\\\"Id\\\", \\\"Category\\\"]]\\n\",\n    \"    for feat_paths, mels in tqdm(dataloader):\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            mels = mels.to(device)\\n\",\n    \"            outs = model(mels)\\n\",\n    \"            preds = outs.argmax(1).cpu().numpy()\\n\",\n    \"            for feat_path, pred in zip(feat_paths, preds):\\n\",\n    \"                results.append([feat_path, mapping[\\\"id2speaker\\\"][str(pred)]])\\n\",\n    \"\\n\",\n    \"    with open(output_path, 'w', newline='') as csvfile:\\n\",\n    \"        writer = csv.writer(csvfile)\\n\",\n    \"        writer.writerows(results)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"if __name__ == \\\"__main__\\\":\\n\",\n    \"    main(**parse_args())\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"DL\",\n   \"language\": \"python\",\n   \"name\": \"dl\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"0117ac88c98440b29ab1f452107cbe1a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"0d592098920140dab61aac5410568c36\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f6dcb3ec9c624171966bb889808dbcb3\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_100abf072991474abfcee871d2b83f37\",\n      \"value\": \"100%\"\n     }\n    },\n    \"100abf072991474abfcee871d2b83f37\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3d64942a0eaa409a93df049bb594c062\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"401ae722b95c4ff59b836422dbe71edc\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3d64942a0eaa409a93df049bb594c062\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_8c8721e504cf434eb9e263fb9983969a\",\n      \"value\": \" 8000/8000 [00:33&lt;00:00, 256.07it/s]\"\n     }\n    },\n    \"4efbfb7c7cb54276862e5321209d57fa\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6786c2b0e2614ad389620246cb2178f2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_0d592098920140dab61aac5410568c36\",\n       \"IPY_MODEL_da681e3cc353420cb142d56df0fce231\",\n       \"IPY_MODEL_401ae722b95c4ff59b836422dbe71edc\"\n      ],\n      \"layout\": \"IPY_MODEL_4efbfb7c7cb54276862e5321209d57fa\"\n     }\n    },\n    \"8c8721e504cf434eb9e263fb9983969a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"da681e3cc353420cb142d56df0fce231\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_decc12da6f5742ec8b7ec7789ee434ab\",\n      \"max\": 8000,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_0117ac88c98440b29ab1f452107cbe1a\",\n      \"value\": 8000\n     }\n    },\n    \"decc12da6f5742ec8b7ec7789ee434ab\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f6dcb3ec9c624171966bb889808dbcb3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW04/README.md",
    "content": ">  ML2023Spring - HW4 相关信息：\n> \n>  [课程主页](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php)\n> \n>  [课程视频](https://www.bilibili.com/video/BV1TD4y137mP/?spm_id_from=333.337.search-card.all.click&vd_source=436107f586d66ab4fcf756c76eb96c35)\n> \n>  [Kaggle link](https://www.kaggle.com/t/49ea0c385a974db5919ec67299ba2e6b)\n> \n>  [Sample code](https://colab.research.google.com/drive/1u-610KA-urqfJjDH5O0pecwfP--V9DQs?usp=sharing)\n> \n>  [HW04 视频](https://www.bilibili.com/video/BV1TD4y137mP?p=33&spm_id_from=pageDriver&vd_source=436107f586d66ab4fcf756c76eb96c35)\n> \n>  [HW04 PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW04.pdf)\n>\n>  P.S. 即便 kaggle 上的时间已经截止，你仍然可以在上面提交和查看分数。但需要注意的是：在 kaggle 截止日期前你应该选择两个结果进行最后的Private评分。\n>  每年的数据集size和feature并不完全相同，但基本一致，过去的代码仍可用于新一年的 Homework。\n\n- [任务目标（多类分类）](#任务目标多类分类)\n- [性能指标（Metric）](#性能指标metric)\n- [数据解析](#数据解析)\n- [Baselines](#baselines)\n  - [Simple baseline (0.66025)](#simple-baseline-066025)\n  - [Medium baseline (0.814)](#medium-baseline-0814)\n  - [Strong baseline (0.88500)](#strong-baseline-088500)\n  - [Boss baseline (0.93175)](#boss-baseline-093175)\n    - [Ablation Study](#ablation-study)\n- [Gradescope](#gradescope)\n  - [The variant of Transformer](#the-variant-of-transformer)\n    - [模型架构图](#模型架构图)\n      - [1. SpecAug （简单了解即可）](#1-specaug-简单了解即可)\n      - [2. Convolution Subsampling](#2-convolution-subsampling)\n      - [3. Linear \\& Dropout](#3-linear--dropout)\n      - [4. Conformer Block](#4-conformer-block)\n\n# 任务目标（多类分类）\n\n- Speaker prediction （预测说话者的身份）\n\n# 性能指标（Metric）\n\nCategorization Accuracy: 分类准确度\n\n# 数据解析\n\n- 训练数据: 56666 个处理过的带有标签的音频特征。\n- 测试数据: 4000 个处理过的音频特征(公共和私有)没有标签。\n- 标签: 600 个标签，每个标签对应于一个演讲者。\n- Dataset 文件夹下：\n\n  - metadata.json\n    - \"n_mels\": mel 光谱图（Mel spectrogram）的维数\n    - \"speakers\": 一个字典\n      - Key: 演讲者 id\n      - Value: \n        - \"feature_path\": 对应的音频文件（uttr-{random string}.pt）\n        - \"mel_len\": mel 光谱图的长度\n\n  - testdata.json（基本同上）\n    - \"n_mels\"\n    - \"utterances\"\n      - \"feature_path\"\n      - \"mel_len\"\n\n  - mapping.json\n    - \"speaker2id\": 指明了演讲者和 id 的对应关系，例: id00464\": 0, \"id00559\": 1, \"id00578\": 2, \"id00905\": 3\n\n  - uttr-{random string}.pt: 语音片段\n\n数据是 [VoxCeleb2](https://www.robots.ox.ac.uk/~vgg/data/voxceleb/vox2.html) 的子集（随机选取了其中的 600 个演讲者）\n\n\n# Baselines\n\n## Simple baseline (0.66025)\n\n- 运行所给的 sample code\n\n## Medium baseline (0.814)\n\n- 修改 transformer 模块的参数\n\n  - d_model\n  - nhead\n  - self.pred_layer 中的网络\n\n  这一部分我跑了个片面的 Grid Search（网格搜索）来搜寻参数，最后的选择是（并非最优解）：\n\n  - d_model: 512\n  - nhead: 16\n  - pred_layer: <img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230916131331.png\" alt=\"image-20230916131331451\" style=\"zoom:50%;\" />\n\n  在 total_steps=70000 的情况下，public_score 为 0.83300。\n\n  关于自动调参可以简单的参考这篇文章：[使用Optuna进行模型的自动调参](https://blog.csdn.net/weixin_42426841/article/details/129224564)。\n\n## Strong baseline (0.88500)\n\n- 将模型架构从 Transformer 转化为 Conformer\n\n  在这里直接修改 Medium 的 Classifier 部分，使用 Conformer 论文源码中的 Conformer Block，publicScore 便能达到 0.897，随手将 pred_layer 跟 Conformer 源码一样改为一层全连接层（红线）后，在epoch=70,000 的时候，publicScore 就达到了 0.95525，而原来的模型架构（绿线）在跑到 700,000 个 epoch 时，publicScore=0.95475，其实到此为止，已经达成了 Boss baseline，但出于学习目的，我会在 Boss baseline 中简单描述其他 hint。\n\n  ![image-20231018140808377](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231018140808.png)\n\n\n\n## Boss baseline (0.93175)\n\n> [HW04_PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW04.pdf)中并没有给出 Boss baseline 的具体分数，这个分数是在今年的 [Kaggle](https://www.kaggle.com/competitions/ml2023springhw4/leaderboard) 上查到的。\n\n- [self-attention pooling](https://arxiv.org/abs/2008.01077) \n\n  ```python\n  class SelfAttentionPooling(nn.Module):\n      \"\"\"\n      Implementation of SelfAttentionPooling \n      Original Paper: Self-Attention Encoding and Pooling for Speaker Recognition\n      https://arxiv.org/pdf/2008.01077v1.pdf\n      \"\"\"\n      def __init__(self, input_dim):\n          super(SelfAttentionPooling, self).__init__()\n          self.W = nn.Linear(input_dim, 1)\n          \n      def forward(self, batch_rep):\n          \"\"\"\n          input:\n              batch_rep : size (N, T, H), N: batch size, T: sequence length, H: Hidden dimension\n  \n          attention_weight:\n              att_w : size (N, T, 1)\n  \n          return:\n              utter_rep: size (N, H)\n          \"\"\"\n          softmax = nn.functional.softmax\n          att_w = softmax(self.W(batch_rep).squeeze(-1), dim=-1).unsqueeze(-1)\n          utter_rep = torch.sum(batch_rep * att_w, dim=1)\n          return utter_rep\n  ```\n\n- [Additive Margin Softmax](https://arxiv.org/abs/1801.05599)\n\n  ```python\n  from torch.autograd import Variable\n\n\n  # https://github.com/zhilangtaosha/SpeakerVerification_AMSoftmax_pytorch/blob/63629989c152664c838823456532682585d72e31/model/model.py#L257\n  class AMSoftmax(nn.Module):\n      def __init__(self):\n          super(AMSoftmax, self).__init__()\n  \n      def forward(self, input, target, scale=10.0, margin=0.35):\n          cos_theta = input\n          target = target.view(-1, 1)  # size=(B,1)\n  \n          index = cos_theta.data * 0.0  # size=(B,Classnum)\n          index.scatter_(1, target.data.view(-1, 1), 1)\n          index = index.byte()\n          index = Variable(index)\n  \n          output = cos_theta * 1.0  # size=(B,Classnum)\n          output[index.bool()] -= margin\n          output = output * scale\n  \n          logpt = F.log_softmax(output, dim=1)\n          logpt = logpt.gather(1, target)\n          logpt = logpt.view(-1)\n  \n          loss = -1 * logpt\n          loss = loss.mean()\n  \n          return loss\n  ```\n\n这两个模块都有放进Boss baseline的代码中，但我发现并没有让模型的效果变得更好，所以在 main function 模块的最后用了两个全局变量来决定是否使用（这里也有可能是我的用法或者架构问题，才使得效果不好，欢迎大家提出意见）。\n\n### Ablation Study\n\n这里做一下 Self-Attention Pooling 和 AMSoftmax 在 epoch=70,000 下的消融实验。\n\n这里的 AMSoftmax 接受的是 pred_layer 后的输出而非 pred_layer 的输入，我尝试过接受 pred_layer 的输入（也就是encoder 的输出），然后在 AMSoftmax 中重新训练一个全连接层，但效果依旧不好，这里我更倾向于是代码的问题，如果能有改进的建议，非常感谢 : )\n\n|                          | Public Score | Private Score |\n| ------------------------ | ------------ | ------------- |\n| Boss                     | 0.95125      | 0.9535        |\n| + Self-Attention Pooling | 0.94925      | 0.9555        |\n| + AMSoftmax              | 0.94925      | 0.951         |\n| \\+ Combined Hints        | 0.94925      | 0.951         |\n\n\n\n\n# Gradescope\n\n## The variant of Transformer\n\n>  简单介绍一个 Transformer 的变体，结合模型架构图。\n\n既然完成 Strong baseline 的 Hint 是将模型架构转变为 [Conformer](https://arxiv.org/abs/2005.08100)，那这里就直接以 Conformer 为例子进行介绍，源代码：[Pytorch 版本](https://github.com/sooftware/conformer/tree/main)。\n\n### 模型架构图\n\n<img src=\"https://blogby.oss-cn-guangzhou.aliyuncs.com/20230920205437.png\" alt=\"image-20230920205437304\" style=\"zoom:67%;\" />\n\n#### 1. SpecAug （简单了解即可）\n\n使用了数据增强的方法进行处理，所引用的相关论文为：\n\n- [[1904.08779] SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition](https://arxiv.org/abs/1904.08779)\n  该篇论文的 **Augmentation Policy**：\n  - **Time wraping**\n    在时间维度上对频谱进行非线性变换，以模拟声音的变化。论文原文中使用的是 tensorflow 中的 sparse image warp 进行处理的。\n  - **Frequency masking**\n    在频率维度掩码，在频率维度上随机选择（根据均匀分布）一些连续的频带，并将其值设为零，以模拟声音的噪声或失真。\n  - **Time masking**\n    在时间维度掩码，基本同上。\n- [[1912.05533] SpecAugment on Large Scale Datasets](https://arxiv.org/abs/1912.05533)\n  - 基于上面的方法进行了研究，证明了其在大规模数据集任务上的有效性。\n  - **Adaptive masking**\n    作者认为对于不同长度的语音使用固定的掩码并不合适，使用了自适应掩码。\n\n#### 2. Convolution Subsampling\n\n将 conv2d 的 stride 设置为 2 进行下采样操作。\n\n> 推荐拓展阅读：[Pooling vs. stride for downsampling](https://stats.stackexchange.com/questions/387482/pooling-vs-stride-for-downsampling)\n\n```python\nclass Conv2dSubampling(nn.Module):\n    def __init__(self, in_channels: int, out_channels: int) -> None:\n        super(Conv2dSubampling, self).__init__()\n        self.sequential = nn.Sequential(\n            nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=2),\n            nn.ReLU(),\n            nn.Conv2d(out_channels, out_channels, kernel_size=3, stride=2),\n            nn.ReLU(),\n        )\n\n    def forward(self, inputs: Tensor, input_lengths: Tensor) -> Tuple[Tensor, Tensor]:\n        outputs = self.sequential(inputs.unsqueeze(1))\n        batch_size, channels, subsampled_lengths, sumsampled_dim = outputs.size()\n\n        outputs = outputs.permute(0, 2, 1, 3)  # (batch_size, subsampled_lengths, channels, subsampled_dim)\n        outputs = outputs.contiguous().view(batch_size, subsampled_lengths, channels * sumsampled_dim)\n\n        output_lengths = input_lengths >> 2\n        output_lengths -= 1\n\n        return outputs, output_lengths\n```\n\n#### 3. Linear & Dropout\n\n- **Linear**\n对经过下采样处理后的数据做一个映射，`((input_dim - 1) // 2 - 1) // 2`是下采样之后的维度。\n- **Dropout**\n随机失活层，在训练过程中以一定的概率随机丢弃一些特征，用于防止过拟合。\n\n```python\nclass ConformerEncoder(nn.Module):\n    def __init__(self, ...):\n        ...\n        self.conv_subsample = Conv2dSubampling(in_channels=1, out_channels=encoder_dim)\n        self.input_projection = nn.Sequential(\n                    Linear(encoder_dim * (((input_dim - 1) // 2 - 1) // 2), encoder_dim),\n                    nn.Dropout(p=input_dropout_p),\n                )\n        ...\n\n    def forward(self, ...):\n        ...\n        outputs, output_lengths = self.conv_subsample(inputs, input_lengths)\n        outputs = self.input_projection(outputs)\n        ... \n  \n```\n\n#### 4. Conformer Block\n\n- **Feed Forward Module**\n  前馈和后馈模块，其实就是对输入进行 Layernorm 之后，过两层Linear，中间使用 Swish 激活并且进行 Dropout 操作，最后再过一次 Dropout。\n\n  ```python\n  class FeedForwardModule(nn.Module):\n      def __init__(\n              self,\n              encoder_dim: int = 512,\n              expansion_factor: int = 4,\n              dropout_p: float = 0.1,\n      ) -> None:\n          super(FeedForwardModule, self).__init__()\n          self.sequential = nn.Sequential(\n              nn.LayerNorm(encoder_dim),\n              Linear(encoder_dim, encoder_dim * expansion_factor, bias=True),\n              Swish(),\n              nn.Dropout(p=dropout_p),\n              Linear(encoder_dim * expansion_factor, encoder_dim, bias=True),\n              nn.Dropout(p=dropout_p),\n          )\n  \n      def forward(self, inputs: Tensor) -> Tensor:\n          return self.sequential(inputs)\n  ```\n\n  \n\n- **Multi-Head Self Attention Module**\n  多头自注意力模块，这里还使用了相对位置编码（源于 [Transformer-XL](https://arxiv.org/abs/1901.02860)）\n\n  ```python\n  from typing import Optional\n  \n  \n  class RelativeMultiHeadAttention(nn.Module):\n      def __init__(\n              self,\n              d_model: int = 512,\n              num_heads: int = 16,\n              dropout_p: float = 0.1,\n      ):\n          super(RelativeMultiHeadAttention, self).__init__()\n          assert d_model % num_heads == 0, \"d_model % num_heads should be zero.\"\n          self.d_model = d_model\n          self.d_head = int(d_model / num_heads)\n          self.num_heads = num_heads\n          self.sqrt_dim = math.sqrt(d_model)\n  \n          self.query_proj = Linear(d_model, d_model)\n          self.key_proj = Linear(d_model, d_model)\n          self.value_proj = Linear(d_model, d_model)\n          self.pos_proj = Linear(d_model, d_model, bias=False)\n  \n          self.dropout = nn.Dropout(p=dropout_p)\n          self.u_bias = nn.Parameter(torch.Tensor(self.num_heads, self.d_head))\n          self.v_bias = nn.Parameter(torch.Tensor(self.num_heads, self.d_head))\n          torch.nn.init.xavier_uniform_(self.u_bias)\n          torch.nn.init.xavier_uniform_(self.v_bias)\n  \n          self.out_proj = Linear(d_model, d_model)\n  \n      def forward(\n              self,\n              query: Tensor,\n              key: Tensor,\n              value: Tensor,\n              pos_embedding: Tensor,\n              mask: Optional[Tensor] = None,\n      ) -> Tensor:\n          batch_size = value.size(0)\n  \n          query = self.query_proj(query).view(batch_size, -1, self.num_heads, self.d_head)\n          key = self.key_proj(key).view(batch_size, -1, self.num_heads, self.d_head).permute(0, 2, 1, 3)\n          value = self.value_proj(value).view(batch_size, -1, self.num_heads, self.d_head).permute(0, 2, 1, 3)\n          pos_embedding = self.pos_proj(pos_embedding).view(batch_size, -1, self.num_heads, self.d_head)\n  \n          content_score = torch.matmul((query + self.u_bias).transpose(1, 2), key.transpose(2, 3))\n          pos_score = torch.matmul((query + self.v_bias).transpose(1, 2), pos_embedding.permute(0, 2, 3, 1))\n          pos_score = self._relative_shift(pos_score)\n  \n          score = (content_score + pos_score) / self.sqrt_dim\n  \n          if mask is not None:\n              mask = mask.unsqueeze(1)\n              score.masked_fill_(mask, -1e9)\n  \n          attn = F.softmax(score, -1)\n          attn = self.dropout(attn)\n  \n          context = torch.matmul(attn, value).transpose(1, 2)\n          context = context.contiguous().view(batch_size, -1, self.d_model)\n  \n          return self.out_proj(context)\n  \n      def _relative_shift(self, pos_score: Tensor) -> Tensor:\n          batch_size, num_heads, seq_length1, seq_length2 = pos_score.size()\n          zeros = pos_score.new_zeros(batch_size, num_heads, seq_length1, 1)\n          padded_pos_score = torch.cat([zeros, pos_score], dim=-1)\n  \n          padded_pos_score = padded_pos_score.view(batch_size, num_heads, seq_length2 + 1, seq_length1)\n          pos_score = padded_pos_score[:, :, 1:].view_as(pos_score)\n  \n          return pos_score\n      \n  \n  class MultiHeadedSelfAttentionModule(nn.Module):\n      def __init__(self, d_model: int, num_heads: int, dropout_p: float = 0.1):\n          super(MultiHeadedSelfAttentionModule, self).__init__()\n          self.positional_encoding = PositionalEncoding(d_model)\n          self.layer_norm = nn.LayerNorm(d_model)\n          self.attention = RelativeMultiHeadAttention(d_model, num_heads, dropout_p)\n          self.dropout = nn.Dropout(p=dropout_p)\n  \n      def forward(self, inputs: Tensor, mask: Optional[Tensor] = None):\n          batch_size, seq_length, _ = inputs.size()\n          pos_embedding = self.positional_encoding(seq_length)\n          pos_embedding = pos_embedding.repeat(batch_size, 1, 1)\n  \n          inputs = self.layer_norm(inputs)\n          outputs = self.attention(inputs, inputs, inputs, pos_embedding=pos_embedding, mask=mask)\n  \n          return self.dropout(outputs)\n  ```\n\n  \n\n- **Convolution Module**\n  卷积模块，架构如图所示。\n  ![image-20231011181636095](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231026174618.png)\n\n  ```python\n  class DepthwiseConv1d(nn.Module):\n      def __init__(\n              self,\n              in_channels: int,\n              out_channels: int,\n              kernel_size: int,\n              stride: int = 1,\n              padding: int = 0,\n              bias: bool = False,\n      ) -> None:\n          super(DepthwiseConv1d, self).__init__()\n          assert out_channels % in_channels == 0, \"out_channels should be constant multiple of in_channels\"\n          self.conv = nn.Conv1d(\n              in_channels=in_channels,\n              out_channels=out_channels,\n              kernel_size=kernel_size,\n              groups=in_channels,\n              stride=stride,\n              padding=padding,\n              bias=bias,\n          )\n  \n      def forward(self, inputs: Tensor) -> Tensor:\n          return self.conv(inputs)\n  \n  \n  class PointwiseConv1d(nn.Module):\n      def __init__(\n              self,\n              in_channels: int,\n              out_channels: int,\n              stride: int = 1,\n              padding: int = 0,\n              bias: bool = True,\n      ) -> None:\n          super(PointwiseConv1d, self).__init__()\n          self.conv = nn.Conv1d(\n              in_channels=in_channels,\n              out_channels=out_channels,\n              kernel_size=1,\n              stride=stride,\n              padding=padding,\n              bias=bias,\n          )\n  \n      def forward(self, inputs: Tensor) -> Tensor:\n          return self.conv(inputs)\n  \n  \n  class ConformerConvModule(nn.Module):\n      def __init__(\n              self,\n              in_channels: int,\n              kernel_size: int = 31,\n              expansion_factor: int = 2,\n              dropout_p: float = 0.1,\n      ) -> None:\n          super(ConformerConvModule, self).__init__()\n          assert (kernel_size - 1) % 2 == 0, \"kernel_size should be a odd number for 'SAME' padding\"\n          assert expansion_factor == 2, \"Currently, Only Supports expansion_factor 2\"\n  \n          self.sequential = nn.Sequential(\n              nn.LayerNorm(in_channels),\n              Transpose(shape=(1, 2)),\n              PointwiseConv1d(in_channels, in_channels * expansion_factor, stride=1, padding=0, bias=True),\n              GLU(dim=1),\n              DepthwiseConv1d(in_channels, in_channels, kernel_size, stride=1, padding=(kernel_size - 1) // 2),\n              nn.BatchNorm1d(in_channels),\n              Swish(),\n              PointwiseConv1d(in_channels, in_channels, stride=1, padding=0, bias=True),\n              nn.Dropout(p=dropout_p),\n          )\n  \n      def forward(self, inputs: Tensor) -> Tensor:\n          return self.sequential(inputs).transpose(1, 2)\n  ```\n\n  \n\n**ConformerBlock code**\n\n需要注意的是，每个 Module 都使用了残差连接。\n\n```python\nclass ConformerBlock(nn.Module):\n    def __init__(\n            self,\n            encoder_dim: int = 512,\n            num_attention_heads: int = 8,\n            feed_forward_expansion_factor: int = 4,\n            conv_expansion_factor: int = 2,\n            feed_forward_dropout_p: float = 0.1,\n            attention_dropout_p: float = 0.1,\n            conv_dropout_p: float = 0.1,\n            conv_kernel_size: int = 31,\n            half_step_residual: bool = True,\n    ):\n        super(ConformerBlock, self).__init__()\n        if half_step_residual:\n            self.feed_forward_residual_factor = 0.5\n        else:\n            self.feed_forward_residual_factor = 1\n\n        self.sequential = nn.Sequential(\n            ResidualConnectionModule(\n                module=FeedForwardModule(\n                    encoder_dim=encoder_dim,\n                    expansion_factor=feed_forward_expansion_factor,\n                    dropout_p=feed_forward_dropout_p,\n                ),\n                module_factor=self.feed_forward_residual_factor,\n            ),\n            ResidualConnectionModule(\n                module=MultiHeadedSelfAttentionModule(\n                    d_model=encoder_dim,\n                    num_heads=num_attention_heads,\n                    dropout_p=attention_dropout_p,\n                ),\n            ),\n            ResidualConnectionModule(\n                module=ConformerConvModule(\n                    in_channels=encoder_dim,\n                    kernel_size=conv_kernel_size,\n                    expansion_factor=conv_expansion_factor,\n                    dropout_p=conv_dropout_p,\n                ),\n            ),\n            ResidualConnectionModule(\n                module=FeedForwardModule(\n                    encoder_dim=encoder_dim,\n                    expansion_factor=feed_forward_expansion_factor,\n                    dropout_p=feed_forward_dropout_p,\n                ),\n                module_factor=self.feed_forward_residual_factor,\n            ),\n            nn.LayerNorm(encoder_dim),\n        )\n\n    def forward(self, inputs: Tensor) -> Tensor:\n        return self.sequential(inputs)\n```\n\n\n\n\n"
  },
  {
    "path": "HW05/README.md",
    "content": ">  ML2023Spring - HW5 相关信息：\n>\n>  [课程主页](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php)\n>\n>  [课程视频](https://www.bilibili.com/video/BV1TD4y137mP/?spm_id_from=333.337.search-card.all.click&vd_source=436107f586d66ab4fcf756c76eb96c35)\n>\n>  [Sample code](https://colab.research.google.com/drive/17plKxw_Fm94E0SYrGMJe8T0BJluTBNb6)\n>\n>  [HW05 视频]( https://www.bilibili.com/video/BV1TD4y137mP/?p=40&share_source=copy_web&vd_source=e46571d631061853c8f9eead71bdb390&t=6567)\n>\n>  [HW05 PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW05.pdf)\n>\n>  运行日志: [wandb]( https://wandb.ai/hoper-hw/hw5.seq2seq/runs/ej174j09)\n>\n>  P.S. HW05/06 是在 Judgeboi 上提交的，完全遵循 hint 就可以达到预期效果。\n>\n>  因为无法在 Judgeboi 上提交，所以 HW05/06 代码仓库中展示的是在验证集上的分数。\n>\n>  每年的数据集 size 和 feature 并不完全相同，但基本一致，过去的代码仍可用于新一年的 Homework。\n>\n>  仓库中 HW05 的代码分成了英文 EN 和中文 ZH 两个版本。\n>\n>  （碎碎念：翻译比较麻烦，所以之后的 Homework 代码暂只有英文版本）\n\n\n* [任务目标（seq2seq）](#任务目标seq2seq)\n* [性能指标（BLEU）](#性能指标bleu)\n* [数据解析](#数据解析)\n* [Baselines](#baselines)\n   * [Simple baseline (15.05)](#simple-baseline-1505)\n   * [Medium baseline (18.44)](#medium-baseline-1844)\n   * [Strong baseline (23.57)](#strong-baseline-2357)\n   * [Boss baseline (30.08)](#boss-baseline-3008)\n* [Gradescope](#gradescope)\n   * [Visualize Positional Embedding](#visualize-positional-embedding)\n   * [Clipping Gradient Norm](#clipping-gradient-norm)\n\n\n# 任务目标（seq2seq）\n\n- Machine translation 机器翻译，**英译中**\n\n# 性能指标（BLEU）\n\n> 参考链接：\n>\n> [BLEU: a Method for Automatic Evaluation of Machine Translation](https://aclanthology.org/P02-1040.pdf)\n>\n> [Foundations of NLP Explained — Bleu Score and WER Metrics](https://towardsdatascience.com/foundations-of-nlp-explained-bleu-score-and-wer-metrics-1a5ba06d812b)\n\n**BLEU（Bilingual Evaluation Understudy）**  双语评估替换\n\n公式：\n$$\\text{BLEU} = BP \\cdot \\exp \\left( \\sum_{n=1}^{N} w_n log\\ p_n\\right)^{\\frac{1}{N}}$$\n\n首先要明确两个概念\n\n1. **N-gram** \n   用来描述句子中的一组 n 个连续的单词。比如，\"Thank you so much\" 中的 n-grams:\n\n   - 1-gram: \"Thank\", \"you\", \"so\", \"much\"\n   - 2-gram: \"Thank you\", \"you so\", \"so much\"\n   - 3-gram: \"Thank you so\", \"you so much\"\n   - 4-gram: \"Thank you so much\"\n\n   需要注意的一点是，n-gram 中的单词是按顺序排列的，所以 \"so much Thank you\" 不是一个有效的 4-gram。\n\n2. **精确度（Precision）**\n   精确度是 Candidate text 中与 Reference text 相同的单词数占总单词数的比例。 具体公式如下：\n\n   $\\text{Precision} = \\frac{\\text{Number of overlapping words}}{\\text{Total number of words in candidate text}}$\n\n   比如：\n\n   Candidate: <u>Thank you so much</u>, Chris\n\n   Reference: <u>Thank you so much</u>, my brother\n\n   这里相同的单词数为4，总单词数为5，所以 $\\text{Precision} = \\frac{{4}}{{5}}$\n\n   但存在一个问题：\n\n   - **Repetition** 重复\n\n     Candidate: <u>Thank Thank Thank</u>\n\n     Reference: <u>Thank</u> you so much, my brother\n\n     此时的 $\\text{Precision} = \\frac{{3}}{{3}}$\n\n**解决方法：Modified Precision**\n\n很简单的思想，就是匹配过的不再进行匹配。\n\nCandidate: <u>Thank</u> Thank Thank\n\nReference: <u>Thank</u> you so much, my brother\n\n$\\text{Precision}_1 = \\frac{{1}}{{3}}$\n\n- 具体计算如下：\n  $$Count_{clip} = \\min(Count,\\ Max\\\\_Ref\\\\_Count)=\\min(3,\\ 1)=1$$\n  \n  $$p_n = \\frac{\\sum_{\\text{n-gram}} Count_{clip}}{\\sum_{\\text{n-gram}} Count} = \\frac{1}{3}$$\n\n现在还存在一个问题：**译文过短**\n\nCandidate: <u>Thank you</u>\n\nReference: <u>Thank you</u> so much, my brother\n\n$p_1 = \\frac{{2}}{{2}} = 1$\n\n这里引出了 **brevity penalty**，这是一个惩罚因子，公式如下：\n\n```math\nBP = \\begin{cases} 1& \\text{if}\\ c>r\\\\ e^{1-\\frac{r}{c}}& \\text{if}\\ c \\leq r  \\end{cases}\n```\n其中 c 是 candidate 的长度，r 是 reference 的长度。\n\n当候选译文的长度 c 等于参考译文的长度 r 的时候，BP = 1，当候选翻译的文本长度较短的时候，用 $e^{1-\\frac{r}{c}}$ 作为 BP 值。\n\n回到原来的公式：\n$$\\text{BLEU} = BP \\cdot \\exp\\left( \\sum_{n=1}^{N} w_n log\\ p_n\\right)^{\\frac{1}{N}}$$\n汇总一下符号定义：\n\n- $BP$ 文本长度的惩罚因子\n- $N$ n-gram 中 n 的最大值，作业中设置为 4。\n- $w_n$ 权重\n- $p_n$ n-gram 的精度 (precision)\n\n# 数据解析\n\n- Paired data\n  - TED2020: 演讲\n    - Raw: 400,726 (sentences)\n    - Processed: 394, 052 (sentences)\n  - 英文和中文两个版本\n- Monolingual data\n  - 只有中文版本的 TED 演讲数据\n\n# Baselines\n\n> 这里存在一个问题，就是HW05是在 Judgeboi 上进行提交的，所以没办法获取最终的分数，所以简单的使用 simple baseline 对应的 validate BLEU 来做个映射。\n>\n> 因为有 EN / ZH 两个版本，对于每个 hint 我会给出代码的修改位置方便大家索引。\n\n## Simple baseline (15.05)\n\n- 运行所给的 sample code\n\n## Medium baseline (18.44)\n\n- 增加学习率的调度 (`Optimizer: Adam + lr scheduling` / `优化器: Adam + 学习率调度`)\n- 训练得更久 (`Configuration for experiments` / `实验配置`)\n  这里根据预估的时间，可以简单的将 epoch 设置为原来的两倍。\n\n## Strong baseline (23.57)\n\n- 将模型架构转变为 Transformer (`Model Initialization` / `模型初始化`)\n- 调整超参数 (`Architecture Related Configuration` / `架构相关配置`)\n  这里需要参考 [Attention is all you need](https://arxiv.org/abs/1706.03762) 论文中 table 3 的 transformer-base 超参数设置。\n  ![image-20231115135033382](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231115135033.png)\n\n你可以仅遵循 sample code 的注释，将 encoder_layer 和 decoder_layer 改为 4（简单的将这一个改动称之为 transformer_4layer），此时模型的参数数量会和之前的 RNN 差不多，在 max_epoch =30 的情况下，Bleu 可以达到 23.59。\n\n[代码仓库](https://github.com/Hoper-J/HUNG-YI_LEE_Machine-Learning_Homework)中分享的 Strong 代码完全遵循了 transformer-base 的超参数设置，此时的模型参数将约为之前 RNN 的 5 倍，每一轮训练的时间约为 transform_4layer 的三倍，所以我将 max_epoch 设置为了 10，让其能够匹配上预估的时间，此时的 Bleu 为 24.91。如果将 max_epoch 设置为 30，最终的 Bleu 可以达到 27.48。\n\n下面是二者实验对比。\n\n![](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231115174121.png)\n\n\n\n## Boss baseline (30.08)\n\n- 应用 back-translation (`TODO`)\n\n  这里我们需要交换实验配置 config 中的 source_lang 和 target_lang，并修改 savedir，训练一个 back-translation 模型后再修改回原来的 config。\n  \n  然后你需要将 TODO 的部分完善，修改并复用之前的函数就可以达到目的。\n  \n  （为了与预估时间匹配，这里将 max_epoch 设置为 30 进行实验。）\n\n[代码仓库](https://github.com/Hoper-J/HUNG-YI_LEE_Machine-Learning_Homework)中分享的 Boss 代码展示的是最终训练的结果，完整的运行流程是：\n\n1. 将`实验配置中 ` / `Configuration for experiments` 的 **BACK_TRANSLATION** 设置为 **True** 运行\n   训练一个 back-translation 模型，并处理好对应的语料。\n2. 将`实验配置` / `Configuration for experiments` 中的 **BACK_TRANSLATION** 设置为 **False** 运行\n   结合 ted2020 和 mono (back-translation) 的语料进行训练。\n\n# Gradescope\n\n## Visualize Positional Embedding\n\n你可以直接在 `确定用于生成 submission 的模型权重` / `Confirm model weights used to generate submission` 后进行处理，在仓库的代码中我已经提前注释掉了 `训练循环` / `Training loop` 中的训练部分，如果在之前，模型没有训练，直接运行代码会报错。\n\n![image-20231119122408389](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231119122408.png)\n\n添加的处理代码如下（可以复制下面的处理代码放到你的 submission 模块之后）：\n\n> 推荐阅读：[All Pairs Cosine Similarity in PyTorch](https://medium.com/@dhruvbird/all-pairs-cosine-similarity-in-pytorch-867e722c8572)\n\n```python\npos_emb = model.decoder.embed_positions.weights.cpu().detach()\n\n# 计算余弦相似度矩阵\ndef get_cosine_similarity_matrix(x):\n    x = x / x.norm(dim=1, keepdim=True)\n    sim = torch.mm(x, x.t())\n    return sim\n    \nsim = get_cosine_similarity_matrix(pos_emb)\n#sim = F.cosine_similarity(pos_emb.unsqueeze(1), pos_emb.unsqueeze(0), dim=2) # 一样的\n\n# 绘制位置向量的余弦相似度矩阵的热力图\nplt.imshow(sim, cmap=\"hot\", vmin=0, vmax=1)\nplt.colorbar()\n\nplt.show()\n```\n\n## Clipping Gradient Norm\n\n只需要将 config.wandb 设置为 True 即可，此时可以在 wandb 上查看。\n\n![image-20231119183413555](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231119183413.png)\n\n或者直接在 train_one_epoch 添加一下处理代码，记录 gnorm。\n\n![image-20231119183535765](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231119183535.png)\n\n"
  },
  {
    "path": "HW05/en/HW05_Boss_29.69.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Boss Baseline\\n\",\n    \"\\n\",\n    \"You can search for the “Boss” tag to check for changes (Ctrl + F or Command + F)\\n\",\n    \"\\n\",\n    \"This shows the final training result. The complete workflow is:\\n\",\n    \"\\n\",\n    \"1. Set **BACK_TRANSLATION** to **True** in the **configuration for experiments** and run. Train a back-translation model and process the corresponding corpus.\\n\",\n    \"2. Set **BACK_TRANSLATION** to **False** in the **configuration for experiments** and run. Train with the corpus of ted2020 and mono (back-translation).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# Homework Description\\n\",\n    \"- English to Chinese (Traditional) Translation\\n\",\n    \"  - Input: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - Output: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - Train a simple RNN seq2seq to acheive translation\\n\",\n    \"    - Switch to transformer model to boost performance\\n\",\n    \"    - Apply Back-translation to furthur boost performance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Sat Nov 18 15:04:49 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   28C    P5    27W / 170W |    394MiB / 12288MiB |      2%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1190      G   /usr/lib/xorg/Xorg                181MiB |\\n\",\n      \"|    0   N/A  N/A      1505      G   /usr/bin/gnome-shell               27MiB |\\n\",\n      \"|    0   N/A  N/A      1708      G   ...nlogin/bin/sunloginclient        9MiB |\\n\",\n      \"|    0   N/A  N/A    131095      G   /usr/lib/firefox/firefox          162MiB |\\n\",\n      \"|    0   N/A  N/A    135011      G   ...2gtk-4.0/WebKitWebProcess        9MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# Download and import required packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# Fix random seed\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# Dataset\\n\",\n    \"\\n\",\n    \"## En-Zh Bilingual Parallel Corpus\\n\",\n    \"* TED2020\\n\",\n    \"    - Raw: 400,726 (sentences)   \\n\",\n    \"    - Processed: 394,052 (sentences)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## Testdata\\n\",\n    \"- Size: 4,000 (sentences)\\n\",\n    \"- **Chinese translation is undisclosed. The provided (.zh) file is psuedo translation, each line is a '。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## Dataset Download\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## Language\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## Preprocess files\\n\",\n    \"- strQ2B(): Convert full-width characters to half-width characters\\n\",\n    \"- clean_s(): Clean the text by removing characters such as commas, dashes, and spaces\\n\",\n    \"- len_s(): Return the length of the text\\n\",\n    \"- clean_corpus(): Clean and process the specified text files using the above functions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## Split into train/valid\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000~4000 would suffice\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## Subword Units\\n\",\n    \"Out of vocabulary (OOV) has been a major problem in machine translation. This can be alleviated by using subword units.\\n\",\n    \"- We will use the [sentencepiece](#kudo-richardson-2018-sentencepiece) package\\n\",\n    \"- select 'unigram' or 'byte-pair encoding (BPE)' algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## Binarize the data with fairseq\\n\",\n    \"Prepare the files in pairs for both the source and target languages.\\n\",\n    \"\\n\",\n    \"In case a pair is unavailable, generate a pseudo pair to facilitate binarization.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# Configuration for experiments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020_with_mono\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/transformer-bt\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # cpu threads when fetching & processing data.\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size in terms of tokens. gradient accumulation increases the effective batchsize.\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # the lr s calculated from Noam lr scheduler. you can tune the maximum lr by this factor.\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # clipping gradient norm helps alleviate gradient exploding\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # maximum epochs for training (Medium)\\n\",\n    \"    max_epoch=30,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # beam size for beam search\\n\",\n    \"    beam=5,\\n\",\n    \"    # generate sequences of maximum length ax + b, where x is the source length\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # when decoding, post process sentence by removing sentencepiece symbols and jieba tokenization.\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # checkpoints\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume from checkpoint name (under config.savedir)\\n\",\n    \"\\n\",\n    \"    # logging\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"BACK_TRANSLATION = False # Boss\\n\",\n    \"if BACK_TRANSLATION:\\n\",\n    \"    config.datadir = \\\"./DATA/data-bin/ted2020\\\"\\n\",\n    \"    config.savedir = \\\"./checkpoints/transformer-back\\\"\\n\",\n    \"    config.source_lang, config.target_lang= tgt_lang, src_lang\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# Logging\\n\",\n    \"- logging package logs ordinary messages\\n\",\n    \"- wandb logs the loss, bleu, etc. in the training process\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\u001b[34m\\u001b[1mwandb\\u001b[0m: Currently logged in as: \\u001b[33mhoper-hw\\u001b[0m. Use \\u001b[1m`wandb login --relogin`\\u001b[0m to force relogin\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7cae632a06ba4e8b8847c056780da0ec\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"VBox(children=(Label(value='Waiting for wandb.init()...\\\\r'), FloatProgress(value=0.011113333365776473, max=1.0…\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"wandb version 0.16.0 is available!  To upgrade, please run:\\n\",\n       \" $ pip install wandb --upgrade\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"Tracking run with wandb version 0.15.12\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"Run data is saved locally in <code>/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/wandb/run-20231118_150602-de1c3w4x</code>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"Syncing run <strong><a href='https://wandb.ai/hoper-hw/hw5.seq2seq/runs/de1c3w4x' target=\\\"_blank\\\">transformer-bt</a></strong> to <a href='https://wandb.ai/hoper-hw/hw5.seq2seq' target=\\\"_blank\\\">Weights & Biases</a> (<a href='https://wandb.me/run' target=\\\"_blank\\\">docs</a>)<br/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \" View project at <a href='https://wandb.ai/hoper-hw/hw5.seq2seq' target=\\\"_blank\\\">https://wandb.ai/hoper-hw/hw5.seq2seq</a>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \" View run at <a href='https://wandb.ai/hoper-hw/hw5.seq2seq/runs/de1c3w4x' target=\\\"_blank\\\">https://wandb.ai/hoper-hw/hw5.seq2seq/runs/de1c3w4x</a>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA Environments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:06:08 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# Dataloading\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## We borrow the TranslationTask from fairseq\\n\",\n    \"* used to load the binarized data created above\\n\",\n    \"* well-implemented data iterator (dataloader)\\n\",\n    \"* built-in task.source_dictionary and task.target_dictionary are also handy\\n\",\n    \"* well-implemented beam search decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:06:08 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020_with_mono/train.en-zh.en\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020_with_mono/train.en-zh.zh\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono train en-zh 390112 examples\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.data.data_utils | loaded 781,713 examples from: ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.data.data_utils | loaded 781,713 examples from: ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono train1 en-zh 781713 examples\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020_with_mono/valid.en-zh.en\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020_with_mono/valid.en-zh.zh\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# Dataset iterator\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* Controls every batch to contain no more than N tokens, which optimizes GPU memory efficiency\\n\",\n    \"* Shuffles the training set for every epoch\\n\",\n    \"* Ignore sentences exceeding maximum length\\n\",\n    \"* Pad all sentences in a batch to the same length, which enables parallel computing by GPU\\n\",\n    \"* Add eos and shift one token\\n\",\n    \"    - teacher forcing: to train the model to predict the next token based on prefix, we feed the right shifted target sequence as the decoder input.\\n\",\n    \"    - generally, prepending bos to the target would do the job (as shown below)\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - in fairseq however, this is done by moving the eos token to the begining. Empirically, this has the same effect. For instance:\\n\",\n    \"    ```\\n\",\n    \"    # output target (target) and Decoder input (prev_output_tokens):\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-18 15:06:08 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-18 15:06:08 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # Set this to False to speed up. However, if set to False, changing max_tokens beyond\\n\",\n    \"        # first call of this method has no effect.\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# Model Architecture\\n\",\n    \"* We again inherit fairseq's encoder, decoder and model, so that in the testing phase we can directly leverage fairseq's beam search decoder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# Encoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- The Encoder is a RNN or Transformer Encoder. The following description is for RNN. For every input token, Encoder will generate a output vector and a hidden states vector, and the hidden states vector is passed on to the next step. In other words, the Encoder sequentially reads in the input sequence, and outputs a single vector at each timestep, then finally outputs the final hidden states, or content vector, at the last timestep.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: the dimension of embeddings, this compresses the one-hot vector into fixed dimensions, which achieves dimension reduction\\n\",\n    \"      - encoder_ffn_embed_dim: the dimension of hidden states and output vectors\\n\",\n    \"      - encoder_layers: the number of layers for Encoder RNN\\n\",\n    \"      - dropout determines the probability of a neuron's activation being set to 0, in order to prevent overfitting. Generally this is applied in training, and removed in testing.\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq. it's used to obtain the padding index, and in turn the encoder padding mask.\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: integer sequence representing english e.g. 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the output of RNN at each timestep, can be furthur processed by Attention\\n\",\n    \"    - *final_hiddens*: the hidden states of each timestep, will be passed to decoder for decoding\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # get embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # pass thru bidirectional RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # Since Encoder is bidirectional, we need to concatenate the hidden states of two directions\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## Attention\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- When the input sequence is long, \\\"content vector\\\" alone cannot accurately represent the whole sequence, attention mechanism can provide the Decoder more information.\\n\",\n    \"- According to the **Decoder embeddings** of the current timestep, match the **Encoder outputs** with decoder embeddings to determine correlation, and then sum the Encoder outputs weighted by the correlation as the input to **Decoder** RNN.\\n\",\n    \"- Common attention implementations use neural network / dot product as the correlation between **query** (decoder embeddings) and **key** (Encoder outputs), followed by **softmax**  to obtain a distribution, and finally **values** (Encoder outputs) is **weighted sum**-ed by said distribution.\\n\",\n    \"\\n\",\n    \"- Parameters:\\n\",\n    \"  - *input_embed_dim*: dimensionality of key, should be that of the vector in decoder to attend others\\n\",\n    \"  - *source_embed_dim*: dimensionality of query, should be that of the vector to be attended to (encoder outputs)\\n\",\n    \"  - *output_embed_dim*: dimensionality of value, should be that of the vector after attention, expected by the next layer\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: is the key, the vector to attend to others\\n\",\n    \"    - *encoder_outputs*:  is the query/value, the vector to be attended to\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: the context vector after attention\\n\",\n    \"    - *attention score*: the attention distribution\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # convert all to batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # project to the dimensionality of encoder_outputs\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # compute attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # cancel the attention at positions corresponding to padding\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # softmax on the dimension corresponding to source sequence\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) weighted sum\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# Decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* The hidden states of **Decoder** will be initialized by the final hidden states of **Encoder** (the content vector)\\n\",\n    \"* At the same time, **Decoder** will change its hidden states based on the input of the current timestep (the outputs of previous timesteps), and generates an output\\n\",\n    \"* Attention improves the performance\\n\",\n    \"* The seq2seq steps are implemented in decoder, so that later the Seq2Seq class can accept RNN and Transformer, without furthur modification.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: is the dimensionality of the decoder embeddings, similar to encoder_embed_dim，\\n\",\n    \"      - decoder_ffn_embed_dim: is the dimensionality of the decoder RNN hidden states, similar to encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: number of layers of RNN decoder\\n\",\n    \"      - share_decoder_input_output_embed: usually, the projection matrix of the decoder will share weights with the decoder input embeddings\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"- Inputs:\\n\",\n    \"    - *prev_output_tokens*: integer sequence representing the right-shifted target e.g. 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: encoder's output.\\n\",\n    \"    - *incremental_state*: in order to speed up decoding during test time, we will save the hidden state of each timestep. see forward() for details.\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the logits (before softmax) output of decoder for each timesteps\\n\",\n    \"    - *extra*: unused\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # extract the outputs from encoder\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # if the information from last timestep is retained, we can continue from there instead of starting from bos\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # incremental state does not exist, either this is training time, or the first timestep of test time\\n\",\n    \"            # prepare for seq2seq: pass the encoder_hidden to the decoder hidden states\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # pass thru unidirectional RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # project to embedding size (if hidden differs from embed size, and share_embedding is True,\\n\",\n    \"        # we need to do an extra projection)\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # project to vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, record the hidden states of current timestep, which will be restored in the next timestep\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(\\n\",\n    \"        self,\\n\",\n    \"        incremental_state,\\n\",\n    \"        new_order,\\n\",\n    \"    ):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- Composed of **Encoder** and **Decoder**\\n\",\n    \"- Recieves inputs and pass to **Encoder**\\n\",\n    \"- Pass the outputs from **Encoder** to **Decoder**\\n\",\n    \"- **Decoder** will decode according to outputs of previous timesteps as well as **Encoder** outputs  \\n\",\n    \"- Once done decoding, return the **Decoder** outputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# Model Initialization (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # HINT: transformer architecture\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # HINT: TODO: switch to TransformerEncoder & TransformerDecoder\\n\",\n    \"    # encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # sequence to sequence model\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # initialization for seq2seq model is important, requires extra handling\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # weight initialization\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## Architecture Related Configuration (Boss)\\n\",\n    \"\\n\",\n    \"For strong baseline, please refer to the hyperparameters for *transformer-base* in Table 3 in [Attention is all you need](#vaswani2017)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=512,\\n\",\n    \"    encoder_ffn_embed_dim=2048,\\n\",\n    \"    encoder_layers=6,\\n\",\n    \"    decoder_embed_dim=512,\\n\",\n    \"    decoder_ffn_embed_dim=2048,\\n\",\n    \"    decoder_layers=6,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# HINT: these patches on parameters for Transformer\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=8\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=8\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # patches on default parameters for Transformer (those not set above)\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:06:09 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): TransformerEncoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerEncoderLayerBase(\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"  )\\n\",\n      \"  (decoder): TransformerDecoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerDecoderLayerBase(\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (encoder_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (encoder_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"    (output_projection): Linear(in_features=512, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# Optimization\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## Loss: Label Smoothing Regularization\\n\",\n    \"* let the model learn to generate less concentrated distribution, and prevent over-confidence\\n\",\n    \"* sometimes the ground truth may not be the only answer. thus, when calculating loss, we reserve some probability for incorrect labels\\n\",\n    \"* avoids overfitting\\n\",\n    \"\\n\",\n    \"code [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood，the cross-entropy when target is one-hot. following line is same as F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  reserve some probability for other labels. thus when calculating cross-entropy,\\n\",\n    \"        # equivalent to summing the log probs of all labels\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # when calculating cross-entropy, add the loss of other labels\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# generally, 0.1 is good enough\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\"\n   },\n   \"source\": [\n    \"## Optimizer: Adam + lr scheduling\\n\",\n    \"Inverse square root scheduling is important to the stability when training Transformer. It's later used on RNN as well.\\n\",\n    \"Update the learning rate according to the following equation. Linearly increase the first stage, then decay proportionally to the inverse square root of timestep.\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    # TODO: Change lr from constant to the equation shown above\\n\",\n    \"    lr = 1.0 / math.sqrt(d_model) * min(1.0 / math.sqrt(step_num), step_num / (warmup_step * math.sqrt(warmup_step)))\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim wrapper that implements rate.\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"Multiplies grads by a constant *c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"Update parameters and rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"Implement `lrate` above\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## Scheduling Visualized\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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TmDDhg144oknHOV4n7tu69atePfdd/Gvf/0L48aNw9GjR5GZmYno6GjMnz/fUY73uvtJ6Z62VZf29m0Pu8Z6UFhYGORyeav/I6isrGyVdPu7Z599Fjt37sTevXsxZMgQx/bIyEgA6PAeRkZGwmg04tq1ax2WuXz5cqvzXrlyxanMjee5du0aTCZTr/995eXlobKyEomJiVAoFFAoFMjNzcUbb7wBhULh9H9RLfE+uycqKgoJCQlO28aOHYuSkhIA/Oe5O/3yl7/EsmXL8Mgjj2DChAnIyMjA4sWLkZWVBYD3uidI7Z62VaayshJA61arjjAI9SCVSoXExETk5OQ4bc/JycH06dO9VCtpEULgmWeewbZt2/DZZ5+1asqMi4tDZGSk0z00Go3Izc113MPExEQolUqnMuXl5Th+/LijzLRp06DT6fDll186yhw+fBg6nc6pzPHjx1FeXu4os3v3bqjVaiQmJnb/xXvQPffcg2PHjuHo0aOOT1JSEn74wx/i6NGjGD58OO9zN7jjjjtaLf9w6tQpxMbGAuA/z92poaEBPj7OjzC5XO6YPs973f2kdk+nTZuG/fv3O02p3717N6Kjo1t1mXXI5WHV1Cn26fObNm0SJ0+eFJmZmcLf31+cP3/e21WThJ///OciKChI7Nu3T5SXlzs+DQ0NjjKrV68WQUFBYtu2beLYsWPi0UcfbXO65pAhQ8SePXtEfn6+uPvuu9ucrnnLLbcIrVYrtFqtmDBhQpvTNe+55x6Rn58v9uzZI4YMGdIrp8C6ouWsMSF4n7vDl19+KRQKhfjtb38rTp8+Lf75z38KPz8/8e677zrK8D53j/nz54vBgwc7ps9v27ZNhIWFieeee85RhvfafbW1taKgoEAUFBQIAOK1114TBQUFjiVfpHRPa2pqREREhHj00UfFsWPHxLZt20RgYCCnz0vRunXrRGxsrFCpVGLKlCmOqeFkm57Z1uett95ylLFarWLVqlUiMjJSqNVqceedd4pjx445HaexsVE888wzIiQkRPj6+orvfve7oqSkxKlMdXW1+OEPfygCAgJEQECA+OEPfyiuXbvmVObChQtizpw5wtfXV4SEhIhnnnnGaWpmX3JjEOJ97h4ffvihGD9+vFCr1SI+Pl68+eabTt/zPncPvV4vFi1aJIYOHSo0Go0YPny4WLlypTAYDI4yvNfu27t3b5v/TZ4/f74QQnr39OuvvxbJyclCrVaLyMhI8cILL7g1dV4IIWRCuLsEIxEREVHfwDFCRERE1G8xCBEREVG/xSBERERE/RaDEBEREfVbDEJERETUbzEIERERUb/FIERERET9FoMQERER9VsMQkRERNRvMQgRERFRv8UgRERERP0WgxARERH1W/8flADhZtG2wcQAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# Training Procedure\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # gradient accumulation: update every accum_steps samples\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # automatic mixed precision (amp)\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # gradient accumulation: update every accum_steps samples\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # emptying the CUDA cache after the first step can reduce the chance of OOM\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # mixed precision training\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # logging\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # back-prop\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) handles the case of a zero gradient\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # grad norm clipping prevents gradient exploding\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # logging\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## Validation & Inference\\n\",\n    \"To prevent overfitting, validation is required every epoch to validate the performance on unseen data.\\n\",\n    \"- the procedure is essensially same as training, with the addition of inference step\\n\",\n    \"- after validation we can save the model weights\\n\",\n    \"\\n\",\n    \"Validation loss alone cannot describe the actual performance of the model\\n\",\n    \"- Directly produce translation hypotheses based on current model, then calculate BLEU with the reference translation\\n\",\n    \"- We can also manually examine the hypotheses' quality\\n\",\n    \"- We use fairseq's sequence generator for beam search to generate translation hypotheses\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq's beam search generator\\n\",\n    \"# given model and input seqeunce, produce translation hypotheses by beam search\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # convert from Tensor to human readable sentence\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # for each sample, collect the input, hypothesis and reference, later be used to calculate BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 indicates using the top hypothesis in beam\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # show bleu results\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# Save and Load Model Weights\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # save epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # save epoch samples\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # get best valid bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## Training loop\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:06:10 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-18 15:06:10 | INFO | hw5.seq2seq | encoder: TransformerEncoder\\n\",\n      \"2023-11-18 15:06:10 | INFO | hw5.seq2seq | decoder: TransformerDecoder\\n\",\n      \"2023-11-18 15:06:10 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-18 15:06:10 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-18 15:06:10 | INFO | hw5.seq2seq | num. model params: 52,324,352 (num. trained: 52,324,352)\\n\",\n      \"2023-11-18 15:06:10 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:06:10 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 15:06:10 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-18 15:06:10 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-18 15:06:10 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-18 15:06:10 | WARNING | fairseq.tasks.fairseq_task | 1 samples have invalid sizes and will be skipped, max_positions=(1024, 1024), first few sample ids=[326653]\\n\",\n      \"2023-11-18 15:06:10 | INFO | hw5.seq2seq | no checkpoints found at checkpoints/transformer-bt/checkpoint_last.pt!\\n\",\n      \"2023-11-18 15:06:10 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 1:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/functional.py:5076: UserWarning: Support for mismatched key_padding_mask and attn_mask is deprecated. Use same type for both instead.\\n\",\n      \"  warnings.warn(\\n\",\n      \"2023-11-18 15:22:19 | INFO | hw5.seq2seq | training loss: 5.5532\\n\",\n      \"2023-11-18 15:22:19 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 15:22:19 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 15:22:19 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-18 15:22:19 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-18 15:22:19 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:22:46 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-18 15:22:46 | INFO | hw5.seq2seq | example hypothesis: 在美國第一次 , 避免投票的白人 , 一群投票投票 , 可以避免非洲裔裔裔裔美國人 , 避免了總統 。\\n\",\n      \"2023-11-18 15:22:46 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-18 15:22:46 | INFO | hw5.seq2seq | validation loss:\\t4.4151\\n\",\n      \"2023-11-18 15:22:46 | INFO | hw5.seq2seq | BLEU = 14.57 43.2/19.9/9.9/5.3 (BP = 1.000 ratio = 1.015 hyp_len = 112069 ref_len = 110430)\\n\",\n      \"2023-11-18 15:22:46 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint1.pt\\n\",\n      \"2023-11-18 15:22:46 | INFO | hw5.seq2seq | end of epoch 1\\n\",\n      \"2023-11-18 15:22:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 15:22:46 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 2:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:38:54 | INFO | hw5.seq2seq | training loss: 3.7688\\n\",\n      \"2023-11-18 15:38:54 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 15:38:54 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:39:19 | INFO | hw5.seq2seq | example source: and it just sounds like the most egotistical request you could make , if you were going to pray .\\n\",\n      \"2023-11-18 15:39:19 | INFO | hw5.seq2seq | example hypothesis: 聽起來就像你所能做的最正確的請求 , 如果你要祈禱 。\\n\",\n      \"2023-11-18 15:39:19 | INFO | hw5.seq2seq | example reference: 這聽起來像是你所能想到的最自我中心的禱告祈求 。\\n\",\n      \"2023-11-18 15:39:19 | INFO | hw5.seq2seq | validation loss:\\t3.8516\\n\",\n      \"2023-11-18 15:39:19 | INFO | hw5.seq2seq | BLEU = 20.94 53.4/28.0/15.6/9.2 (BP = 0.973 ratio = 0.973 hyp_len = 107476 ref_len = 110430)\\n\",\n      \"2023-11-18 15:39:20 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint2.pt\\n\",\n      \"2023-11-18 15:39:20 | INFO | hw5.seq2seq | end of epoch 2\\n\",\n      \"2023-11-18 15:39:20 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 15:39:20 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 3:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:55:19 | INFO | hw5.seq2seq | training loss: 3.3606\\n\",\n      \"2023-11-18 15:55:19 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 15:55:19 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 15:55:44 | INFO | hw5.seq2seq | example source: but empathy really should get you points if you do it when it's hard to do .\\n\",\n      \"2023-11-18 15:55:44 | INFO | hw5.seq2seq | example hypothesis: 但同理心真的應該要讓你指出 , 如果你很難做到的時候 。\\n\",\n      \"2023-11-18 15:55:44 | INFO | hw5.seq2seq | example reference: 同理心應該是在很難有同理心的情況下產生才能夠得分才對 。\\n\",\n      \"2023-11-18 15:55:44 | INFO | hw5.seq2seq | validation loss:\\t3.5339\\n\",\n      \"2023-11-18 15:55:44 | INFO | hw5.seq2seq | BLEU = 24.16 56.9/31.7/18.5/11.5 (BP = 0.970 ratio = 0.970 hyp_len = 107147 ref_len = 110430)\\n\",\n      \"2023-11-18 15:55:44 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint3.pt\\n\",\n      \"2023-11-18 15:55:44 | INFO | hw5.seq2seq | end of epoch 3\\n\",\n      \"2023-11-18 15:55:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 15:55:44 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 4:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 16:11:44 | INFO | hw5.seq2seq | training loss: 3.1323\\n\",\n      \"2023-11-18 16:11:44 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 16:11:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 16:12:09 | INFO | hw5.seq2seq | example source: but most biologics also have a flaw .\\n\",\n      \"2023-11-18 16:12:09 | INFO | hw5.seq2seq | example hypothesis: 但大部份的生物學也有缺陷 。\\n\",\n      \"2023-11-18 16:12:09 | INFO | hw5.seq2seq | example reference: 但 , 大部分的生物藥都有個瑕疵 。\\n\",\n      \"2023-11-18 16:12:09 | INFO | hw5.seq2seq | validation loss:\\t3.4098\\n\",\n      \"2023-11-18 16:12:09 | INFO | hw5.seq2seq | BLEU = 25.67 57.3/32.5/19.5/12.3 (BP = 0.993 ratio = 0.993 hyp_len = 109636 ref_len = 110430)\\n\",\n      \"2023-11-18 16:12:09 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint4.pt\\n\",\n      \"2023-11-18 16:12:09 | INFO | hw5.seq2seq | end of epoch 4\\n\",\n      \"2023-11-18 16:12:09 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 16:12:09 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 5:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 16:28:11 | INFO | hw5.seq2seq | training loss: 3.0118\\n\",\n      \"2023-11-18 16:28:11 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 16:28:11 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 16:28:36 | INFO | hw5.seq2seq | example source: but i believe now that we're moving into a new age , and that age the new york times dubbed recently as \\\" the age of behavior . \\\"\\n\",\n      \"2023-11-18 16:28:36 | INFO | hw5.seq2seq | example hypothesis: 但我相信現在我們正邁入一個新時代 , 那個紐約時報最近被忽略為 「 行為的年齡 」 。\\n\",\n      \"2023-11-18 16:28:36 | INFO | hw5.seq2seq | example reference: 但我相信現在我們正在進入一個新的時代 , 而且最近這個時代被紐約時報稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-18 16:28:36 | INFO | hw5.seq2seq | validation loss:\\t3.3097\\n\",\n      \"2023-11-18 16:28:36 | INFO | hw5.seq2seq | BLEU = 26.26 58.4/33.6/20.4/12.9 (BP = 0.979 ratio = 0.979 hyp_len = 108121 ref_len = 110430)\\n\",\n      \"2023-11-18 16:28:36 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint5.pt\\n\",\n      \"2023-11-18 16:28:36 | INFO | hw5.seq2seq | end of epoch 5\\n\",\n      \"2023-11-18 16:28:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 16:28:36 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 6:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 16:44:32 | INFO | hw5.seq2seq | training loss: 2.9352\\n\",\n      \"2023-11-18 16:44:33 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 16:44:33 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 16:44:57 | INFO | hw5.seq2seq | example source: as we have hot blood running through our veins and arteries , so , too , the earth has hot water running through its cracks and faults .\\n\",\n      \"2023-11-18 16:44:57 | INFO | hw5.seq2seq | example hypothesis: 隨著我們有熱血在靜脈和動脈中運行 , 所以 , 地球也有熱水穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-18 16:44:57 | INFO | hw5.seq2seq | example reference: 就如我們身體𥚃有熱騰騰的血液經過靜脈和動脈 , 同樣地 , 地球也有熱流穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-18 16:44:57 | INFO | hw5.seq2seq | validation loss:\\t3.2492\\n\",\n      \"2023-11-18 16:44:57 | INFO | hw5.seq2seq | BLEU = 26.81 59.1/34.3/20.9/13.5 (BP = 0.975 ratio = 0.975 hyp_len = 107691 ref_len = 110430)\\n\",\n      \"2023-11-18 16:44:58 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint6.pt\\n\",\n      \"2023-11-18 16:44:58 | INFO | hw5.seq2seq | end of epoch 6\\n\",\n      \"2023-11-18 16:44:58 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 16:44:58 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 7:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 17:00:56 | INFO | hw5.seq2seq | training loss: 2.8795\\n\",\n      \"2023-11-18 17:00:56 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 17:00:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 17:01:20 | INFO | hw5.seq2seq | example source: entirely new requirement .\\n\",\n      \"2023-11-18 17:01:20 | INFO | hw5.seq2seq | example hypothesis: 全新的要求\\n\",\n      \"2023-11-18 17:01:20 | INFO | hw5.seq2seq | example reference: 這是全新的要求 。\\n\",\n      \"2023-11-18 17:01:20 | INFO | hw5.seq2seq | validation loss:\\t3.2127\\n\",\n      \"2023-11-18 17:01:20 | INFO | hw5.seq2seq | BLEU = 27.04 60.1/35.1/21.5/13.9 (BP = 0.959 ratio = 0.960 hyp_len = 106039 ref_len = 110430)\\n\",\n      \"2023-11-18 17:01:20 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint7.pt\\n\",\n      \"2023-11-18 17:01:21 | INFO | hw5.seq2seq | end of epoch 7\\n\",\n      \"2023-11-18 17:01:21 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 17:01:21 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 8:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 17:17:19 | INFO | hw5.seq2seq | training loss: 2.8375\\n\",\n      \"2023-11-18 17:17:19 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 17:17:19 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 17:17:44 | INFO | hw5.seq2seq | example source: by 1960 we had telephone bills , bank statements were being produced by computers .\\n\",\n      \"2023-11-18 17:17:44 | INFO | hw5.seq2seq | example hypothesis: 到了1960年 , 我們有了電話帳單 , 銀行聲明正在由電腦產生 。\\n\",\n      \"2023-11-18 17:17:44 | INFO | hw5.seq2seq | example reference: 到了1960年 , 我們的電話和銀行帳單都交由電腦處理\\n\",\n      \"2023-11-18 17:17:44 | INFO | hw5.seq2seq | validation loss:\\t3.1960\\n\",\n      \"2023-11-18 17:17:44 | INFO | hw5.seq2seq | BLEU = 27.75 59.3/34.8/21.4/14.0 (BP = 0.990 ratio = 0.990 hyp_len = 109300 ref_len = 110430)\\n\",\n      \"2023-11-18 17:17:44 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint8.pt\\n\",\n      \"2023-11-18 17:17:45 | INFO | hw5.seq2seq | end of epoch 8\\n\",\n      \"2023-11-18 17:17:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 17:17:45 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 9:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 17:33:40 | INFO | hw5.seq2seq | training loss: 2.8021\\n\",\n      \"2023-11-18 17:33:40 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 17:33:40 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 17:34:05 | INFO | hw5.seq2seq | example source: they started making their own video games .\\n\",\n      \"2023-11-18 17:34:05 | INFO | hw5.seq2seq | example hypothesis: 他們開始製作自己的電玩遊戲 。\\n\",\n      \"2023-11-18 17:34:05 | INFO | hw5.seq2seq | example reference: 他們開始製造自己的電玩遊戲 。\\n\",\n      \"2023-11-18 17:34:05 | INFO | hw5.seq2seq | validation loss:\\t3.1550\\n\",\n      \"2023-11-18 17:34:05 | INFO | hw5.seq2seq | BLEU = 27.79 59.8/35.2/21.8/14.3 (BP = 0.978 ratio = 0.978 hyp_len = 108021 ref_len = 110430)\\n\",\n      \"2023-11-18 17:34:05 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint9.pt\\n\",\n      \"2023-11-18 17:34:05 | INFO | hw5.seq2seq | end of epoch 9\\n\",\n      \"2023-11-18 17:34:05 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 17:34:05 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 10:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 17:50:04 | INFO | hw5.seq2seq | training loss: 2.7736\\n\",\n      \"2023-11-18 17:50:04 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 17:50:04 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 17:50:29 | INFO | hw5.seq2seq | example source: a perfect example of this is spanish contemporary artist fernando vicente .\\n\",\n      \"2023-11-18 17:50:29 | INFO | hw5.seq2seq | example hypothesis: 一個完美的例子是西班牙當代藝術家費南多·維森特\\n\",\n      \"2023-11-18 17:50:29 | INFO | hw5.seq2seq | example reference: 一個最有代表性的例子是西班牙現代藝術家費南多·維森特 。\\n\",\n      \"2023-11-18 17:50:29 | INFO | hw5.seq2seq | validation loss:\\t3.1431\\n\",\n      \"2023-11-18 17:50:29 | INFO | hw5.seq2seq | BLEU = 27.95 59.8/35.2/21.9/14.3 (BP = 0.982 ratio = 0.982 hyp_len = 108416 ref_len = 110430)\\n\",\n      \"2023-11-18 17:50:29 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint10.pt\\n\",\n      \"2023-11-18 17:50:29 | INFO | hw5.seq2seq | end of epoch 10\\n\",\n      \"2023-11-18 17:50:29 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 17:50:29 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 11:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 18:06:28 | INFO | hw5.seq2seq | training loss: 2.7488\\n\",\n      \"2023-11-18 18:06:28 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 18:06:28 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 18:06:53 | INFO | hw5.seq2seq | example source: right . as you can see , bart simpson is having a little argument .\\n\",\n      \"2023-11-18 18:06:53 | INFO | hw5.seq2seq | example hypothesis: 沒錯 。 如你所見 , 巴特辛普森有一點爭論 。\\n\",\n      \"2023-11-18 18:06:53 | INFO | hw5.seq2seq | example reference: 好 , 如你所見bartsimpson正和它老爸爭執\\n\",\n      \"2023-11-18 18:06:53 | INFO | hw5.seq2seq | validation loss:\\t3.1319\\n\",\n      \"2023-11-18 18:06:53 | INFO | hw5.seq2seq | BLEU = 28.40 59.5/35.1/21.9/14.4 (BP = 0.998 ratio = 0.998 hyp_len = 110163 ref_len = 110430)\\n\",\n      \"2023-11-18 18:06:53 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint11.pt\\n\",\n      \"2023-11-18 18:06:54 | INFO | hw5.seq2seq | end of epoch 11\\n\",\n      \"2023-11-18 18:06:54 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 18:06:54 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 12:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 18:22:52 | INFO | hw5.seq2seq | training loss: 2.7265\\n\",\n      \"2023-11-18 18:22:52 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 18:22:52 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 18:23:16 | INFO | hw5.seq2seq | example source: and if we look to the future , it's an unsustainable diet .\\n\",\n      \"2023-11-18 18:23:16 | INFO | hw5.seq2seq | example hypothesis: 而如果我們看看未來 , 這是不永續的飲食\\n\",\n      \"2023-11-18 18:23:16 | INFO | hw5.seq2seq | example reference: 如果我們想一想未來這絕不是長久之計\\n\",\n      \"2023-11-18 18:23:16 | INFO | hw5.seq2seq | validation loss:\\t3.1288\\n\",\n      \"2023-11-18 18:23:16 | INFO | hw5.seq2seq | BLEU = 28.08 61.0/36.4/22.7/15.0 (BP = 0.952 ratio = 0.953 hyp_len = 105246 ref_len = 110430)\\n\",\n      \"2023-11-18 18:23:16 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint12.pt\\n\",\n      \"2023-11-18 18:23:16 | INFO | hw5.seq2seq | end of epoch 12\\n\",\n      \"2023-11-18 18:23:16 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 18:23:16 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 13:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 18:39:16 | INFO | hw5.seq2seq | training loss: 2.7079\\n\",\n      \"2023-11-18 18:39:16 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 18:39:16 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 18:39:40 | INFO | hw5.seq2seq | example source: when you govern through fear and you govern through cruelty , it just doesn't work .\\n\",\n      \"2023-11-18 18:39:40 | INFO | hw5.seq2seq | example hypothesis: 當你透過恐懼去治理 , 透過殘酷的治理時 , 一切就沒用了 。\\n\",\n      \"2023-11-18 18:39:40 | INFO | hw5.seq2seq | example reference: 透過恐懼 , 透過殘忍來治理國家 , 這是行不通的 。\\n\",\n      \"2023-11-18 18:39:40 | INFO | hw5.seq2seq | validation loss:\\t3.1075\\n\",\n      \"2023-11-18 18:39:40 | INFO | hw5.seq2seq | BLEU = 28.37 60.2/35.7/22.3/14.8 (BP = 0.978 ratio = 0.978 hyp_len = 108006 ref_len = 110430)\\n\",\n      \"2023-11-18 18:39:40 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint13.pt\\n\",\n      \"2023-11-18 18:39:40 | INFO | hw5.seq2seq | end of epoch 13\\n\",\n      \"2023-11-18 18:39:40 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 18:39:40 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 14:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 18:55:40 | INFO | hw5.seq2seq | training loss: 2.6917\\n\",\n      \"2023-11-18 18:55:40 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 18:55:40 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 18:56:05 | INFO | hw5.seq2seq | example source: this project breaks ground in just two months .\\n\",\n      \"2023-11-18 18:56:05 | INFO | hw5.seq2seq | example hypothesis: 這個計畫在短短兩個月內就打破了地面 。\\n\",\n      \"2023-11-18 18:56:05 | INFO | hw5.seq2seq | example reference: 這個計畫再兩個月就要開工了 。\\n\",\n      \"2023-11-18 18:56:05 | INFO | hw5.seq2seq | validation loss:\\t3.1027\\n\",\n      \"2023-11-18 18:56:05 | INFO | hw5.seq2seq | BLEU = 28.53 59.8/35.5/22.2/14.6 (BP = 0.989 ratio = 0.989 hyp_len = 109244 ref_len = 110430)\\n\",\n      \"2023-11-18 18:56:05 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint14.pt\\n\",\n      \"2023-11-18 18:56:06 | INFO | hw5.seq2seq | end of epoch 14\\n\",\n      \"2023-11-18 18:56:06 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 18:56:06 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 15:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 19:12:04 | INFO | hw5.seq2seq | training loss: 2.6767\\n\",\n      \"2023-11-18 19:12:04 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 19:12:04 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 19:12:29 | INFO | hw5.seq2seq | example source: and these preservatives had been found in breast cancer tumors .\\n\",\n      \"2023-11-18 19:12:29 | INFO | hw5.seq2seq | example hypothesis: 而這些保守派早已在乳癌腫瘤中發現\\n\",\n      \"2023-11-18 19:12:29 | INFO | hw5.seq2seq | example reference: 而乳癌腫瘤中也發現了這些防腐劑 。\\n\",\n      \"2023-11-18 19:12:29 | INFO | hw5.seq2seq | validation loss:\\t3.0951\\n\",\n      \"2023-11-18 19:12:29 | INFO | hw5.seq2seq | BLEU = 28.72 59.8/35.5/22.3/14.7 (BP = 0.994 ratio = 0.994 hyp_len = 109764 ref_len = 110430)\\n\",\n      \"2023-11-18 19:12:29 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint15.pt\\n\",\n      \"2023-11-18 19:12:29 | INFO | hw5.seq2seq | end of epoch 15\\n\",\n      \"2023-11-18 19:12:29 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 19:12:29 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 16:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 19:28:25 | INFO | hw5.seq2seq | training loss: 2.6623\\n\",\n      \"2023-11-18 19:28:25 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 19:28:25 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 19:28:50 | INFO | hw5.seq2seq | example source: history is strewn with the cases when they've all got it wrong .\\n\",\n      \"2023-11-18 19:28:50 | INFO | hw5.seq2seq | example hypothesis: 歷史上 , 當他們都犯錯時 , 歷史就和那些案件混在一起了 。\\n\",\n      \"2023-11-18 19:28:50 | INFO | hw5.seq2seq | example reference: 歷史上到處都有我們全都錯了的實例\\n\",\n      \"2023-11-18 19:28:50 | INFO | hw5.seq2seq | validation loss:\\t3.0778\\n\",\n      \"2023-11-18 19:28:50 | INFO | hw5.seq2seq | BLEU = 28.76 60.2/35.9/22.6/15.0 (BP = 0.984 ratio = 0.985 hyp_len = 108728 ref_len = 110430)\\n\",\n      \"2023-11-18 19:28:50 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint16.pt\\n\",\n      \"2023-11-18 19:28:50 | INFO | hw5.seq2seq | end of epoch 16\\n\",\n      \"2023-11-18 19:28:50 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 19:28:50 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 17:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 19:44:47 | INFO | hw5.seq2seq | training loss: 2.6492\\n\",\n      \"2023-11-18 19:44:47 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 19:44:47 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 19:45:12 | INFO | hw5.seq2seq | example source: please raise your hand if something applies to you .\\n\",\n      \"2023-11-18 19:45:12 | INFO | hw5.seq2seq | example hypothesis: 如果有東西適用於你 , 請舉手 。\\n\",\n      \"2023-11-18 19:45:12 | INFO | hw5.seq2seq | example reference: 如果這些事曾發生在你身上請舉手 。\\n\",\n      \"2023-11-18 19:45:12 | INFO | hw5.seq2seq | validation loss:\\t3.0737\\n\",\n      \"2023-11-18 19:45:12 | INFO | hw5.seq2seq | BLEU = 29.00 60.0/35.8/22.5/15.0 (BP = 0.994 ratio = 0.994 hyp_len = 109804 ref_len = 110430)\\n\",\n      \"2023-11-18 19:45:12 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint17.pt\\n\",\n      \"2023-11-18 19:45:12 | INFO | hw5.seq2seq | end of epoch 17\\n\",\n      \"2023-11-18 19:45:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 19:45:12 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 18:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 20:01:15 | INFO | hw5.seq2seq | training loss: 2.6384\\n\",\n      \"2023-11-18 20:01:15 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 20:01:15 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 20:01:39 | INFO | hw5.seq2seq | example source: and the fact is , millions is a gross estimate , because we don't really know how many kids die each year of this .\\n\",\n      \"2023-11-18 20:01:39 | INFO | hw5.seq2seq | example hypothesis: 事實是 , 估計有幾百萬人死於粗鄙的估計 , 因為我們不知道每年有多少孩子死於此 。\\n\",\n      \"2023-11-18 20:01:39 | INFO | hw5.seq2seq | example reference: 而且事實是 , 數百萬只是一個粗略的估計 , 因為我們真的不知道每年究竟有多少孩子死於這些疾病 。\\n\",\n      \"2023-11-18 20:01:39 | INFO | hw5.seq2seq | validation loss:\\t3.0700\\n\",\n      \"2023-11-18 20:01:39 | INFO | hw5.seq2seq | BLEU = 28.84 60.4/36.1/22.7/15.1 (BP = 0.981 ratio = 0.981 hyp_len = 108378 ref_len = 110430)\\n\",\n      \"2023-11-18 20:01:40 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint18.pt\\n\",\n      \"2023-11-18 20:01:40 | INFO | hw5.seq2seq | end of epoch 18\\n\",\n      \"2023-11-18 20:01:40 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 20:01:40 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 19:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 20:17:42 | INFO | hw5.seq2seq | training loss: 2.6269\\n\",\n      \"2023-11-18 20:17:42 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 20:17:42 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 20:18:07 | INFO | hw5.seq2seq | example source: and he didn’t know it at the time , but over the next five decades , he'd draw on these dueling identities to forge a whole new way to think about pain .\\n\",\n      \"2023-11-18 20:18:07 | INFO | hw5.seq2seq | example hypothesis: 當時他並不知道 , 但在接下來的五十年 , 他會用這些相似的身分來畫出一種全新的看法 , 來想像痛苦 。\\n\",\n      \"2023-11-18 20:18:07 | INFO | hw5.seq2seq | example reference: 在那時他並不知道但在接下來的50年他將會利用這兩個相對決的生命經驗去探索關於疼痛的新思路\\n\",\n      \"2023-11-18 20:18:07 | INFO | hw5.seq2seq | validation loss:\\t3.0609\\n\",\n      \"2023-11-18 20:18:07 | INFO | hw5.seq2seq | BLEU = 29.03 60.0/35.8/22.6/15.0 (BP = 0.994 ratio = 0.994 hyp_len = 109756 ref_len = 110430)\\n\",\n      \"2023-11-18 20:18:07 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint19.pt\\n\",\n      \"2023-11-18 20:18:08 | INFO | hw5.seq2seq | end of epoch 19\\n\",\n      \"2023-11-18 20:18:08 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 20:18:08 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 20:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 20:34:10 | INFO | hw5.seq2seq | training loss: 2.6185\\n\",\n      \"2023-11-18 20:34:10 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 20:34:10 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 20:34:34 | INFO | hw5.seq2seq | example source: and i have been fortunate enough to find things like the first eggs in the western hemisphere and the first baby dinosaurs in nests , the first dinosaur embryos and massive accumulations of bones .\\n\",\n      \"2023-11-18 20:34:34 | INFO | hw5.seq2seq | example hypothesis: 我很幸運能找到一些東西 , 像是西半球的第一顆蛋 , 以及第一隻在巢穴中的恐龍寶寶 , 第一隻恐龍胚胎 , 以及大量累積的骨頭 。\\n\",\n      \"2023-11-18 20:34:34 | INFO | hw5.seq2seq | example reference: 和我已經夠幸運能找到在西半球裡的第一只蛋和第一只恐龍寶寶在巢裡第一個恐龍胚胎和大量積累的骨頭\\n\",\n      \"2023-11-18 20:34:34 | INFO | hw5.seq2seq | validation loss:\\t3.0700\\n\",\n      \"2023-11-18 20:34:34 | INFO | hw5.seq2seq | BLEU = 28.92 60.3/36.0/22.7/15.0 (BP = 0.987 ratio = 0.987 hyp_len = 109001 ref_len = 110430)\\n\",\n      \"2023-11-18 20:34:34 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint20.pt\\n\",\n      \"2023-11-18 20:34:34 | INFO | hw5.seq2seq | end of epoch 20\\n\",\n      \"2023-11-18 20:34:34 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 20:34:34 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 21:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 20:50:38 | INFO | hw5.seq2seq | training loss: 2.6086\\n\",\n      \"2023-11-18 20:50:38 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 20:50:38 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 20:51:03 | INFO | hw5.seq2seq | example source: we've had the biggest transformation of any ancient subject that i could ever imagine with computers .\\n\",\n      \"2023-11-18 20:51:03 | INFO | hw5.seq2seq | example hypothesis: 我們已經有了最大的轉變 , 關於任何我能用電腦想像到的古老話題 。\\n\",\n      \"2023-11-18 20:51:03 | INFO | hw5.seq2seq | example reference: 我們經歷了電腦這個最大的變革比任何古往的科目都要巨大\\n\",\n      \"2023-11-18 20:51:03 | INFO | hw5.seq2seq | validation loss:\\t3.0514\\n\",\n      \"2023-11-18 20:51:03 | INFO | hw5.seq2seq | BLEU = 29.27 59.9/35.8/22.6/15.1 (BP = 1.000 ratio = 1.003 hyp_len = 110768 ref_len = 110430)\\n\",\n      \"2023-11-18 20:51:04 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint21.pt\\n\",\n      \"2023-11-18 20:51:04 | INFO | hw5.seq2seq | end of epoch 21\\n\",\n      \"2023-11-18 20:51:04 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 20:51:04 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 22:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 21:07:06 | INFO | hw5.seq2seq | training loss: 2.5992\\n\",\n      \"2023-11-18 21:07:06 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 21:07:06 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 21:07:30 | INFO | hw5.seq2seq | example source: there is another visual phenomenon that looks similar to floaters but is in fact unrelated .\\n\",\n      \"2023-11-18 21:07:30 | INFO | hw5.seq2seq | example hypothesis: 還有一種視覺現象 , 看起來和飛蚊很相似 , 但事實上毫無關聯 。\\n\",\n      \"2023-11-18 21:07:30 | INFO | hw5.seq2seq | example reference: 還有另一個視覺現象看起來像飛蚊症但其實毫無關連\\n\",\n      \"2023-11-18 21:07:30 | INFO | hw5.seq2seq | validation loss:\\t3.0484\\n\",\n      \"2023-11-18 21:07:30 | INFO | hw5.seq2seq | BLEU = 29.08 60.6/36.4/23.1/15.4 (BP = 0.977 ratio = 0.978 hyp_len = 107954 ref_len = 110430)\\n\",\n      \"2023-11-18 21:07:30 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint22.pt\\n\",\n      \"2023-11-18 21:07:30 | INFO | hw5.seq2seq | end of epoch 22\\n\",\n      \"2023-11-18 21:07:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 21:07:30 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 23:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 21:23:33 | INFO | hw5.seq2seq | training loss: 2.5920\\n\",\n      \"2023-11-18 21:23:33 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 21:23:33 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 21:23:58 | INFO | hw5.seq2seq | example source: ynh: yes , very much so .\\n\",\n      \"2023-11-18 21:23:58 | INFO | hw5.seq2seq | example hypothesis: 尤:是的 , 非常多 。\\n\",\n      \"2023-11-18 21:23:58 | INFO | hw5.seq2seq | example reference: 尤:是的 , 就是這樣 。\\n\",\n      \"2023-11-18 21:23:58 | INFO | hw5.seq2seq | validation loss:\\t3.0342\\n\",\n      \"2023-11-18 21:23:58 | INFO | hw5.seq2seq | BLEU = 29.48 60.4/36.2/23.0/15.5 (BP = 0.992 ratio = 0.992 hyp_len = 109559 ref_len = 110430)\\n\",\n      \"2023-11-18 21:23:58 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint23.pt\\n\",\n      \"2023-11-18 21:23:58 | INFO | hw5.seq2seq | end of epoch 23\\n\",\n      \"2023-11-18 21:23:58 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 21:23:58 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 24:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 21:39:55 | INFO | hw5.seq2seq | training loss: 2.5838\\n\",\n      \"2023-11-18 21:39:55 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 21:39:55 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 21:40:19 | INFO | hw5.seq2seq | example source: but the first thing you need to do is let go of the bad ideas you have about sex .\\n\",\n      \"2023-11-18 21:40:19 | INFO | hw5.seq2seq | example hypothesis: 但你要做的第一件事 , 就是放下你對於性愛的壞點子 。\\n\",\n      \"2023-11-18 21:40:19 | INFO | hw5.seq2seq | example reference: 但你需要先做一件事 , 放掉你對於性愛的不好想法 。\\n\",\n      \"2023-11-18 21:40:19 | INFO | hw5.seq2seq | validation loss:\\t3.0455\\n\",\n      \"2023-11-18 21:40:19 | INFO | hw5.seq2seq | BLEU = 29.07 60.0/35.9/22.7/15.1 (BP = 0.992 ratio = 0.992 hyp_len = 109503 ref_len = 110430)\\n\",\n      \"2023-11-18 21:40:20 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint24.pt\\n\",\n      \"2023-11-18 21:40:20 | INFO | hw5.seq2seq | end of epoch 24\\n\",\n      \"2023-11-18 21:40:20 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 21:40:20 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 25:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 21:56:28 | INFO | hw5.seq2seq | training loss: 2.5774\\n\",\n      \"2023-11-18 21:56:28 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 21:56:28 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 21:56:53 | INFO | hw5.seq2seq | example source: those subsidies stop companies from competing on equal terms .\\n\",\n      \"2023-11-18 21:56:53 | INFO | hw5.seq2seq | example hypothesis: 那些補助制止公司以平等條款競爭 。\\n\",\n      \"2023-11-18 21:56:53 | INFO | hw5.seq2seq | example reference: 那些補助 , 阻礙了公司之間的公平競爭 。\\n\",\n      \"2023-11-18 21:56:53 | INFO | hw5.seq2seq | validation loss:\\t3.0282\\n\",\n      \"2023-11-18 21:56:53 | INFO | hw5.seq2seq | BLEU = 29.13 60.4/36.3/23.0/15.3 (BP = 0.983 ratio = 0.983 hyp_len = 108559 ref_len = 110430)\\n\",\n      \"2023-11-18 21:56:53 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint25.pt\\n\",\n      \"2023-11-18 21:56:53 | INFO | hw5.seq2seq | end of epoch 25\\n\",\n      \"2023-11-18 21:56:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 21:56:53 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 26:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 22:13:09 | INFO | hw5.seq2seq | training loss: 2.5710\\n\",\n      \"2023-11-18 22:13:09 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 22:13:09 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 22:13:34 | INFO | hw5.seq2seq | example source: i believe so , but before we move on , what do we mean by democracy ?\\n\",\n      \"2023-11-18 22:13:34 | INFO | hw5.seq2seq | example hypothesis: 我相信有 , 但在我們繼續前 , 我們所謂的民主是什麼意思 ?\\n\",\n      \"2023-11-18 22:13:34 | INFO | hw5.seq2seq | example reference: 我相信是對的 , 但在我們繼續談下去之前 , 我們所說的民主是什麼 ?\\n\",\n      \"2023-11-18 22:13:34 | INFO | hw5.seq2seq | validation loss:\\t3.0310\\n\",\n      \"2023-11-18 22:13:34 | INFO | hw5.seq2seq | BLEU = 28.98 61.5/37.0/23.5/15.7 (BP = 0.957 ratio = 0.958 hyp_len = 105798 ref_len = 110430)\\n\",\n      \"2023-11-18 22:13:34 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint26.pt\\n\",\n      \"2023-11-18 22:13:34 | INFO | hw5.seq2seq | end of epoch 26\\n\",\n      \"2023-11-18 22:13:34 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 22:13:34 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 27:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 22:29:31 | INFO | hw5.seq2seq | training loss: 2.5641\\n\",\n      \"2023-11-18 22:29:31 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 22:29:31 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 22:29:55 | INFO | hw5.seq2seq | example source: so , a team of berkeley researchers with 15 million dollars from the gates foundation is engineering , designing a radical new way to make the key ingredient , called artemisinin , and they're going to make that drug 10 times cheaper .\\n\",\n      \"2023-11-18 22:29:55 | INFO | hw5.seq2seq | example hypothesis: 所以 , 一個柏克萊研究團隊從蓋茲基金會得到一千五百萬美金的資金就是工程學 , 設計出一種徹底的新方法來製造關鍵原料 , 叫做armeisin , 他們要讓那藥物變得更便宜十倍 。\\n\",\n      \"2023-11-18 22:29:55 | INFO | hw5.seq2seq | example reference: 柏克萊的團隊得到gatesfoundation的1千5百萬的經費 , 以研發設計一顛覆式的新方法來製造一個叫 \\\" 青蒿素 \\\" 的關鍵成分希望能製造出10倍便宜的藥物\\n\",\n      \"2023-11-18 22:29:55 | INFO | hw5.seq2seq | validation loss:\\t3.0386\\n\",\n      \"2023-11-18 22:29:55 | INFO | hw5.seq2seq | BLEU = 29.16 61.1/36.8/23.3/15.7 (BP = 0.968 ratio = 0.969 hyp_len = 106984 ref_len = 110430)\\n\",\n      \"2023-11-18 22:29:55 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint27.pt\\n\",\n      \"2023-11-18 22:29:55 | INFO | hw5.seq2seq | end of epoch 27\\n\",\n      \"2023-11-18 22:29:55 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 22:29:55 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 28:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 22:45:53 | INFO | hw5.seq2seq | training loss: 2.5583\\n\",\n      \"2023-11-18 22:45:53 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 22:45:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 22:46:18 | INFO | hw5.seq2seq | example source: even another black hole won’t destroy it– the two will simply merge into a larger black hole , releasing a bit of energy as gravitational waves in the process .\\n\",\n      \"2023-11-18 22:46:18 | INFO | hw5.seq2seq | example hypothesis: 即使是另一個黑洞也不會破壞它這兩者也會合併成一個更大的黑洞在過程中 , 釋放出一點能量就像重力波一樣\\n\",\n      \"2023-11-18 22:46:18 | INFO | hw5.seq2seq | example reference: 就連另一個黑洞也無法摧毀它 , 兩個黑洞只會融合成一個更大的黑洞 , 在過程中以重力波的形式釋放出一點能量 。\\n\",\n      \"2023-11-18 22:46:18 | INFO | hw5.seq2seq | validation loss:\\t3.0322\\n\",\n      \"2023-11-18 22:46:18 | INFO | hw5.seq2seq | BLEU = 29.51 60.1/36.1/22.9/15.3 (BP = 1.000 ratio = 1.000 hyp_len = 110376 ref_len = 110430)\\n\",\n      \"2023-11-18 22:46:19 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint28.pt\\n\",\n      \"2023-11-18 22:46:19 | INFO | hw5.seq2seq | end of epoch 28\\n\",\n      \"2023-11-18 22:46:19 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 22:46:19 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 29:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 23:02:20 | INFO | hw5.seq2seq | training loss: 2.5529\\n\",\n      \"2023-11-18 23:02:20 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 23:02:20 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 23:02:44 | INFO | hw5.seq2seq | example source: but the question is: can we own our duality ?\\n\",\n      \"2023-11-18 23:02:44 | INFO | hw5.seq2seq | example hypothesis: 但問題是:我們能擁有我們的二元性嗎 ?\\n\",\n      \"2023-11-18 23:02:44 | INFO | hw5.seq2seq | example reference: 但問題是:我們能擁有屬於我們的二元性嗎 ?\\n\",\n      \"2023-11-18 23:02:44 | INFO | hw5.seq2seq | validation loss:\\t3.0240\\n\",\n      \"2023-11-18 23:02:44 | INFO | hw5.seq2seq | BLEU = 29.26 60.5/36.5/23.2/15.5 (BP = 0.979 ratio = 0.979 hyp_len = 108137 ref_len = 110430)\\n\",\n      \"2023-11-18 23:02:44 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint29.pt\\n\",\n      \"2023-11-18 23:02:45 | INFO | hw5.seq2seq | end of epoch 29\\n\",\n      \"2023-11-18 23:02:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 23:02:45 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1874\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 30:   0%|          | 0/1874 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 23:18:44 | INFO | hw5.seq2seq | training loss: 2.5470\\n\",\n      \"2023-11-18 23:18:44 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 23:18:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 23:19:09 | INFO | hw5.seq2seq | example source: be serious , it says .\\n\",\n      \"2023-11-18 23:19:09 | INFO | hw5.seq2seq | example hypothesis: 說真的 , 它說 ,\\n\",\n      \"2023-11-18 23:19:09 | INFO | hw5.seq2seq | example reference: 嚴肅起來 , 信裡寫道\\n\",\n      \"2023-11-18 23:19:09 | INFO | hw5.seq2seq | validation loss:\\t3.0254\\n\",\n      \"2023-11-18 23:19:09 | INFO | hw5.seq2seq | BLEU = 29.47 60.2/36.2/23.0/15.4 (BP = 0.995 ratio = 0.995 hyp_len = 109925 ref_len = 110430)\\n\",\n      \"2023-11-18 23:19:09 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer-bt/checkpoint30.pt\\n\",\n      \"2023-11-18 23:19:09 | INFO | hw5.seq2seq | end of epoch 30\\n\",\n      \"2023-11-18 23:19:09 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # train for one epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Namespace(inputs=['./checkpoints/transformer-bt'], output='./checkpoints/transformer-bt/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/transformer-bt/checkpoint30.pt', './checkpoints/transformer-bt/checkpoint29.pt', './checkpoints/transformer-bt/checkpoint28.pt', './checkpoints/transformer-bt/checkpoint27.pt', './checkpoints/transformer-bt/checkpoint26.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/transformer-bt/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# averaging a few checkpoints can have a similar effect to ensemble\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## Confirm model weights used to generate submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 23:19:12 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/transformer-bt/avg_last_5_checkpoint.pt: step=unknown loss=3.025449752807617 bleu=29.46996952317382\\n\",\n      \"2023-11-18 23:19:12 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-18 23:19:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 23:19:36 | INFO | hw5.seq2seq | example source: and there is also a frontier in research physics here , it's just that nobody talks about it .\\n\",\n      \"2023-11-18 23:19:36 | INFO | hw5.seq2seq | example hypothesis: 這裡也有個研究物理學的領域 , 只是沒有人談論它 。\\n\",\n      \"2023-11-18 23:19:36 | INFO | hw5.seq2seq | example reference: 這裡也有物理研究中尚未完全開拓的疆界 , 只是沒有人在談論它 。\\n\",\n      \"2023-11-18 23:19:36 | INFO | hw5.seq2seq | validation loss:\\t3.0113\\n\",\n      \"2023-11-18 23:19:36 | INFO | hw5.seq2seq | BLEU = 29.69 60.9/36.8/23.6/15.9 (BP = 0.980 ratio = 0.980 hyp_len = 108252 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : latest epoch\\n\",\n    \"# checkpoint_best.pt : highest validation bleu\\n\",\n    \"# avg_last_5_checkpoint.pt: the average of last 5 epochs\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## Generate Prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # sort based on the order before preprocess\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-18 23:19:36 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020_with_mono/test.en-zh.en\\n\",\n      \"2023-11-18 23:19:36 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020_with_mono/test.en-zh.zh\\n\",\n      \"2023-11-18 23:19:36 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono test en-zh 4000 examples\\n\",\n      \"2023-11-18 23:19:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-18 23:19:36 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-18 23:19:36 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-18 23:19:36 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"20f102603d104aa3af0c9d0ed174c4bf\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"prediction:   0%|          | 0/18 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[49], line 2\\u001b[0m\\n\\u001b[1;32m      1\\u001b[0m \\u001b[38;5;28;01mif\\u001b[39;00m \\u001b[38;5;129;01mnot\\u001b[39;00m BACK_TRANSLATION:\\n\\u001b[0;32m----> 2\\u001b[0m     \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if not BACK_TRANSLATION:\\n\",\n    \"    raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## Train a backward translation model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. Switch the source_lang and target_lang in **config**\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## Generate synthetic data with backward model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### Download monolingual data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: clean corpus\\n\",\n    \"\\n\",\n    \"1. remove sentences that are too long or too short\\n\",\n    \"2. unify punctuation\\n\",\n    \"\\n\",\n    \"hint: you can use clean_s() defined above to do this\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def clean_mono_corpus(prefix, l, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.zh').exists():\\n\",\n    \"        print(f'{prefix}.clean.zh exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}', 'r') as l_in_f:\\n\",\n    \"        with open(f'{prefix}.clean.zh', 'w') as l_out_f:\\n\",\n    \"            for s in l_in_f:\\n\",\n    \"                s = s.strip()\\n\",\n    \"                s = clean_s(s, l)\\n\",\n    \"                s_len = len_s(s, l)\\n\",\n    \"                if min_len > 0: # remove short sentence\\n\",\n    \"                    if s_len < min_len:\\n\",\n    \"                        continue\\n\",\n    \"                if max_len > 0: # remove long sentence\\n\",\n    \"                    if s_len > max_len:\\n\",\n    \"                        continue\\n\",\n    \"                print(s, file=l_out_f)\\n\",\n    \"                \\n\",\n    \"\\n\",\n    \"mono_data_prefix = f'{mono_prefix}/ted_zh_corpus.deduped'\\n\",\n    \"clean_mono_corpus(mono_data_prefix, 'zh')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"**Generate pseudo translation**\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"\\n\",\n    \"zh_path = mono_prefix / 'ted_zh_corpus.deduped.clean.zh'\\n\",\n    \"en_path = mono_prefix / 'ted_zh_corpus.deduped.clean.en'\\n\",\n    \"\\n\",\n    \"if en_path.exists():\\n\",\n    \"    print(f\\\"{en_path} exists. skipping the generation of psuedo translation.\\\")\\n\",\n    \"\\n\",\n    \"with open(zh_path, 'r') as zh_f:\\n\",\n    \"    with open(en_path, 'w') as en_f:\\n\",\n    \"        for line in zh_f:\\n\",\n    \"            line = line.strip()\\n\",\n    \"            if line:\\n\",\n    \"                # Replace with '_.' to get a pseudo translation\\n\",\n    \"                pseudo = '_.'\\n\",\n    \"                # Write the pseudo translation string to the target file and add a new line\\n\",\n    \"                print(pseudo, file=en_f)\\n\",\n    \"            # If the line is empty, just add a new line\\n\",\n    \"            else:\\n\",\n    \"                print(file=en_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: Subword Units\\n\",\n    \"\\n\",\n    \"Use the spm model of the backward model to tokenize the data into subword units\\n\",\n    \"\\n\",\n    \"hint: spm model is located at DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def spm_encode(prefix, vocab_size, mono_prefix):\\n\",\n    \"    spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"\\n\",\n    \"    in_path = mono_prefix / 'ted_zh_corpus.deduped.clean'\\n\",\n    \"\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = mono_prefix / f'mono.tok.{lang}'\\n\",\n    \"        # if out_path.exists():\\n\",\n    \"        #     print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        # else:\\n\",\n    \"        with open(out_path, 'w') as out_f:\\n\",\n    \"            with open(f'{in_path}.{lang}', 'r') as in_f:\\n\",\n    \"                for line in in_f:\\n\",\n    \"                    line = line.strip()\\n\",\n    \"                    tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                    print(' '.join(tok), file=out_f)\\n\",\n    \"\\n\",\n    \"spm_encode(prefix, vocab_size, mono_prefix)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### Binarize\\n\",\n    \"\\n\",\n    \"use fairseq to binarize data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: Generate synthetic data with backward model\\n\",\n    \"\\n\",\n    \"Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"then you can use 'generate_prediction(model, task, split=\\\"split_name\\\")' to generate translation prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"# ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: do prediction on split='mono' to create prediction_file\\n\",\n    \"task.load_dataset(split=\\\"mono\\\", epoch=1)\\n\",\n    \"generate_prediction(model, task, split='mono', outfile='./prediction.txt' )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: Create new dataset\\n\",\n    \"\\n\",\n    \"1. Combine the prediction data with monolingual data\\n\",\n    \"2. Use the original spm model to tokenize data into Subword Units\\n\",\n    \"3. Binarize data with fairseq\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Combine prediction_file (.en) and mono.zh (.zh) into a new dataset.\\n\",\n    \"#\\n\",\n    \"# hint: tokenize prediction_file with the spm model\\n\",\n    \"!cp ./prediction.txt {mono_prefix}/'ted_zh_corpus.deduped.clean.en'\\n\",\n    \"spm_encode(prefix, vocab_size, mono_prefix)\\n\",\n    \"# output: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# hint: use fairseq to binarize these two files again\\n\",\n    \"binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create a new dataset from all the files prepared above\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"Created new dataset \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. Change the datadir in **config** (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. Switch back the source_lang and target_lang in **config** (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/en/HW05_Gradescope.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Gradescope\\n\",\n    \"\\n\",\n    \"You can search for the “Gradescope” to locate code (Ctrl + F or Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# Homework Description\\n\",\n    \"- English to Chinese (Traditional) Translation\\n\",\n    \"  - Input: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - Output: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - Train a simple RNN seq2seq to acheive translation\\n\",\n    \"    - Switch to transformer model to boost performance\\n\",\n    \"    - Apply Back-translation to furthur boost performance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Sun Nov 19 18:55:14 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   28C    P3    37W / 170W |   5871MiB / 12288MiB |      0%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1142      G   /usr/lib/xorg/Xorg                143MiB |\\n\",\n      \"|    0   N/A  N/A      1451      G   /usr/bin/gnome-shell               23MiB |\\n\",\n      \"|    0   N/A  N/A      1644      G   ...nlogin/bin/sunloginclient        6MiB |\\n\",\n      \"|    0   N/A  N/A      4236      G   /usr/lib/firefox/firefox          104MiB |\\n\",\n      \"|    0   N/A  N/A     12049      C   ...conda3/envs/DL/bin/python     5588MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# Download and import required packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# Fix random seed\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# Dataset\\n\",\n    \"\\n\",\n    \"## En-Zh Bilingual Parallel Corpus\\n\",\n    \"* TED2020\\n\",\n    \"    - Raw: 400,726 (sentences)   \\n\",\n    \"    - Processed: 394,052 (sentences)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## Testdata\\n\",\n    \"- Size: 4,000 (sentences)\\n\",\n    \"- **Chinese translation is undisclosed. The provided (.zh) file is psuedo translation, each line is a '。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## Dataset Download\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## Language\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## Preprocess files\\n\",\n    \"- strQ2B(): Convert full-width characters to half-width characters\\n\",\n    \"- clean_s(): Clean the text by removing characters such as commas, dashes, and spaces\\n\",\n    \"- len_s(): Return the length of the text\\n\",\n    \"- clean_corpus(): Clean and process the specified text files using the above functions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## Split into train/valid\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000~4000 would suffice\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## Subword Units\\n\",\n    \"Out of vocabulary (OOV) has been a major problem in machine translation. This can be alleviated by using subword units.\\n\",\n    \"- We will use the [sentencepiece](#kudo-richardson-2018-sentencepiece) package\\n\",\n    \"- select 'unigram' or 'byte-pair encoding (BPE)' algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## Binarize the data with fairseq\\n\",\n    \"Prepare the files in pairs for both the source and target languages.\\n\",\n    \"\\n\",\n    \"In case a pair is unavailable, generate a pseudo pair to facilitate binarization.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# Configuration for experiments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020_with_mono\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/transformer-bt\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # cpu threads when fetching & processing data.\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size in terms of tokens. gradient accumulation increases the effective batchsize.\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # the lr s calculated from Noam lr scheduler. you can tune the maximum lr by this factor.\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # clipping gradient norm helps alleviate gradient exploding\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # maximum epochs for training (Medium)\\n\",\n    \"    max_epoch=30,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # beam size for beam search\\n\",\n    \"    beam=5,\\n\",\n    \"    # generate sequences of maximum length ax + b, where x is the source length\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # when decoding, post process sentence by removing sentencepiece symbols and jieba tokenization.\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # checkpoints\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume from checkpoint name (under config.savedir)\\n\",\n    \"\\n\",\n    \"    # logging\\n\",\n    \"    use_wandb=False, # Gradescope. Problem 2: You can set it to True and check it in wandb, you can add code (in train_one_epoch()) to do it yourself.\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"BACK_TRANSLATION = False # Boss\\n\",\n    \"if BACK_TRANSLATION:\\n\",\n    \"    config.datadir = \\\"./DATA/data-bin/ted2020\\\"\\n\",\n    \"    config.savedir = \\\"./checkpoints/transformer-back\\\"\\n\",\n    \"    config.source_lang, config.target_lang= tgt_lang, src_lang\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# Logging\\n\",\n    \"- logging package logs ordinary messages\\n\",\n    \"- wandb logs the loss, bleu, etc. in the training process\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA Environments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:56:28 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# Dataloading\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## We borrow the TranslationTask from fairseq\\n\",\n    \"* used to load the binarized data created above\\n\",\n    \"* well-implemented data iterator (dataloader)\\n\",\n    \"* built-in task.source_dictionary and task.target_dictionary are also handy\\n\",\n    \"* well-implemented beam search decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:56:28 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020_with_mono/train.en-zh.en\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020_with_mono/train.en-zh.zh\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono train en-zh 390112 examples\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.data.data_utils | loaded 781,713 examples from: ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.data.data_utils | loaded 781,713 examples from: ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono train1 en-zh 781713 examples\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020_with_mono/valid.en-zh.en\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020_with_mono/valid.en-zh.zh\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# Dataset iterator\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* Controls every batch to contain no more than N tokens, which optimizes GPU memory efficiency\\n\",\n    \"* Shuffles the training set for every epoch\\n\",\n    \"* Ignore sentences exceeding maximum length\\n\",\n    \"* Pad all sentences in a batch to the same length, which enables parallel computing by GPU\\n\",\n    \"* Add eos and shift one token\\n\",\n    \"    - teacher forcing: to train the model to predict the next token based on prefix, we feed the right shifted target sequence as the decoder input.\\n\",\n    \"    - generally, prepending bos to the target would do the job (as shown below)\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - in fairseq however, this is done by moving the eos token to the begining. Empirically, this has the same effect. For instance:\\n\",\n    \"    ```\\n\",\n    \"    # output target (target) and Decoder input (prev_output_tokens):\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-19 18:56:28 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-19 18:56:28 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # Set this to False to speed up. However, if set to False, changing max_tokens beyond\\n\",\n    \"        # first call of this method has no effect.\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# Model Architecture\\n\",\n    \"* We again inherit fairseq's encoder, decoder and model, so that in the testing phase we can directly leverage fairseq's beam search decoder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# Encoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- The Encoder is a RNN or Transformer Encoder. The following description is for RNN. For every input token, Encoder will generate a output vector and a hidden states vector, and the hidden states vector is passed on to the next step. In other words, the Encoder sequentially reads in the input sequence, and outputs a single vector at each timestep, then finally outputs the final hidden states, or content vector, at the last timestep.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: the dimension of embeddings, this compresses the one-hot vector into fixed dimensions, which achieves dimension reduction\\n\",\n    \"      - encoder_ffn_embed_dim: the dimension of hidden states and output vectors\\n\",\n    \"      - encoder_layers: the number of layers for Encoder RNN\\n\",\n    \"      - dropout determines the probability of a neuron's activation being set to 0, in order to prevent overfitting. Generally this is applied in training, and removed in testing.\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq. it's used to obtain the padding index, and in turn the encoder padding mask.\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: integer sequence representing english e.g. 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the output of RNN at each timestep, can be furthur processed by Attention\\n\",\n    \"    - *final_hiddens*: the hidden states of each timestep, will be passed to decoder for decoding\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # get embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # pass thru bidirectional RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # Since Encoder is bidirectional, we need to concatenate the hidden states of two directions\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## Attention\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- When the input sequence is long, \\\"content vector\\\" alone cannot accurately represent the whole sequence, attention mechanism can provide the Decoder more information.\\n\",\n    \"- According to the **Decoder embeddings** of the current timestep, match the **Encoder outputs** with decoder embeddings to determine correlation, and then sum the Encoder outputs weighted by the correlation as the input to **Decoder** RNN.\\n\",\n    \"- Common attention implementations use neural network / dot product as the correlation between **query** (decoder embeddings) and **key** (Encoder outputs), followed by **softmax**  to obtain a distribution, and finally **values** (Encoder outputs) is **weighted sum**-ed by said distribution.\\n\",\n    \"\\n\",\n    \"- Parameters:\\n\",\n    \"  - *input_embed_dim*: dimensionality of key, should be that of the vector in decoder to attend others\\n\",\n    \"  - *source_embed_dim*: dimensionality of query, should be that of the vector to be attended to (encoder outputs)\\n\",\n    \"  - *output_embed_dim*: dimensionality of value, should be that of the vector after attention, expected by the next layer\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: is the key, the vector to attend to others\\n\",\n    \"    - *encoder_outputs*:  is the query/value, the vector to be attended to\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: the context vector after attention\\n\",\n    \"    - *attention score*: the attention distribution\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # convert all to batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # project to the dimensionality of encoder_outputs\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # compute attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # cancel the attention at positions corresponding to padding\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # softmax on the dimension corresponding to source sequence\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) weighted sum\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# Decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* The hidden states of **Decoder** will be initialized by the final hidden states of **Encoder** (the content vector)\\n\",\n    \"* At the same time, **Decoder** will change its hidden states based on the input of the current timestep (the outputs of previous timesteps), and generates an output\\n\",\n    \"* Attention improves the performance\\n\",\n    \"* The seq2seq steps are implemented in decoder, so that later the Seq2Seq class can accept RNN and Transformer, without furthur modification.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: is the dimensionality of the decoder embeddings, similar to encoder_embed_dim，\\n\",\n    \"      - decoder_ffn_embed_dim: is the dimensionality of the decoder RNN hidden states, similar to encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: number of layers of RNN decoder\\n\",\n    \"      - share_decoder_input_output_embed: usually, the projection matrix of the decoder will share weights with the decoder input embeddings\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"- Inputs:\\n\",\n    \"    - *prev_output_tokens*: integer sequence representing the right-shifted target e.g. 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: encoder's output.\\n\",\n    \"    - *incremental_state*: in order to speed up decoding during test time, we will save the hidden state of each timestep. see forward() for details.\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the logits (before softmax) output of decoder for each timesteps\\n\",\n    \"    - *extra*: unused\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # extract the outputs from encoder\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # if the information from last timestep is retained, we can continue from there instead of starting from bos\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # incremental state does not exist, either this is training time, or the first timestep of test time\\n\",\n    \"            # prepare for seq2seq: pass the encoder_hidden to the decoder hidden states\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # pass thru unidirectional RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # project to embedding size (if hidden differs from embed size, and share_embedding is True,\\n\",\n    \"        # we need to do an extra projection)\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # project to vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, record the hidden states of current timestep, which will be restored in the next timestep\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(\\n\",\n    \"        self,\\n\",\n    \"        incremental_state,\\n\",\n    \"        new_order,\\n\",\n    \"    ):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- Composed of **Encoder** and **Decoder**\\n\",\n    \"- Recieves inputs and pass to **Encoder**\\n\",\n    \"- Pass the outputs from **Encoder** to **Decoder**\\n\",\n    \"- **Decoder** will decode according to outputs of previous timesteps as well as **Encoder** outputs  \\n\",\n    \"- Once done decoding, return the **Decoder** outputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# Model Initialization (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # HINT: transformer architecture\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # HINT: TODO: switch to TransformerEncoder & TransformerDecoder\\n\",\n    \"    # encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # sequence to sequence model\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # initialization for seq2seq model is important, requires extra handling\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # weight initialization\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## Architecture Related Configuration (Boss)\\n\",\n    \"\\n\",\n    \"For strong baseline, please refer to the hyperparameters for *transformer-base* in Table 3 in [Attention is all you need](#vaswani2017)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=512,\\n\",\n    \"    encoder_ffn_embed_dim=2048,\\n\",\n    \"    encoder_layers=6,\\n\",\n    \"    decoder_embed_dim=512,\\n\",\n    \"    decoder_ffn_embed_dim=2048,\\n\",\n    \"    decoder_layers=6,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# HINT: these patches on parameters for Transformer\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=8\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=8\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # patches on default parameters for Transformer (those not set above)\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:56:29 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): TransformerEncoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerEncoderLayerBase(\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"  )\\n\",\n      \"  (decoder): TransformerDecoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerDecoderLayerBase(\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (encoder_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (encoder_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"    (output_projection): Linear(in_features=512, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# Optimization\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## Loss: Label Smoothing Regularization\\n\",\n    \"* let the model learn to generate less concentrated distribution, and prevent over-confidence\\n\",\n    \"* sometimes the ground truth may not be the only answer. thus, when calculating loss, we reserve some probability for incorrect labels\\n\",\n    \"* avoids overfitting\\n\",\n    \"\\n\",\n    \"code [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood，the cross-entropy when target is one-hot. following line is same as F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  reserve some probability for other labels. thus when calculating cross-entropy,\\n\",\n    \"        # equivalent to summing the log probs of all labels\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # when calculating cross-entropy, add the loss of other labels\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# generally, 0.1 is good enough\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\"\n   },\n   \"source\": [\n    \"## Optimizer: Adam + lr scheduling\\n\",\n    \"Inverse square root scheduling is important to the stability when training Transformer. It's later used on RNN as well.\\n\",\n    \"Update the learning rate according to the following equation. Linearly increase the first stage, then decay proportionally to the inverse square root of timestep.\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    # TODO: Change lr from constant to the equation shown above\\n\",\n    \"    lr = 1.0 / math.sqrt(d_model) * min(1.0 / math.sqrt(step_num), step_num / (warmup_step * math.sqrt(warmup_step)))\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim wrapper that implements rate.\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"Multiplies grads by a constant *c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"Update parameters and rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"Implement `lrate` above\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## Scheduling Visualized\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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TmDDhg144oknHOV4n7tu69atePfdd/Gvf/0L48aNw9GjR5GZmYno6GjMnz/fUY73uvtJ6Z62VZf29m0Pu8Z6UFhYGORyeav/I6isrGyVdPu7Z599Fjt37sTevXsxZMgQx/bIyEgA6PAeRkZGwmg04tq1ax2WuXz5cqvzXrlyxanMjee5du0aTCZTr/995eXlobKyEomJiVAoFFAoFMjNzcUbb7wBhULh9H9RLfE+uycqKgoJCQlO28aOHYuSkhIA/Oe5O/3yl7/EsmXL8Mgjj2DChAnIyMjA4sWLkZWVBYD3uidI7Z62VaayshJA61arjjAI9SCVSoXExETk5OQ4bc/JycH06dO9VCtpEULgmWeewbZt2/DZZ5+1asqMi4tDZGSk0z00Go3Izc113MPExEQolUqnMuXl5Th+/LijzLRp06DT6fDll186yhw+fBg6nc6pzPHjx1FeXu4os3v3bqjVaiQmJnb/xXvQPffcg2PHjuHo0aOOT1JSEn74wx/i6NGjGD58OO9zN7jjjjtaLf9w6tQpxMbGAuA/z92poaEBPj7OjzC5XO6YPs973f2kdk+nTZuG/fv3O02p3717N6Kjo1t1mXXI5WHV1Cn26fObNm0SJ0+eFJmZmcLf31+cP3/e21WThJ///OciKChI7Nu3T5SXlzs+DQ0NjjKrV68WQUFBYtu2beLYsWPi0UcfbXO65pAhQ8SePXtEfn6+uPvuu9ucrnnLLbcIrVYrtFqtmDBhQpvTNe+55x6Rn58v9uzZI4YMGdIrp8C6ouWsMSF4n7vDl19+KRQKhfjtb38rTp8+Lf75z38KPz8/8e677zrK8D53j/nz54vBgwc7ps9v27ZNhIWFieeee85RhvfafbW1taKgoEAUFBQIAOK1114TBQUFjiVfpHRPa2pqREREhHj00UfFsWPHxLZt20RgYCCnz0vRunXrRGxsrFCpVGLKlCmOqeFkm57Z1uett95ylLFarWLVqlUiMjJSqNVqceedd4pjx445HaexsVE888wzIiQkRPj6+orvfve7oqSkxKlMdXW1+OEPfygCAgJEQECA+OEPfyiuXbvmVObChQtizpw5wtfXV4SEhIhnnnnGaWpmX3JjEOJ97h4ffvihGD9+vFCr1SI+Pl68+eabTt/zPncPvV4vFi1aJIYOHSo0Go0YPny4WLlypTAYDI4yvNfu27t3b5v/TZ4/f74QQnr39OuvvxbJyclCrVaLyMhI8cILL7g1dV4IIWRCuLsEIxEREVHfwDFCRERE1G8xCBEREVG/xSBERERE/RaDEBEREfVbDEJERETUbzEIERERUb/FIERERET9FoMQERER9VsMQkRERNRvMQgRERFRv8UgRERERP0WgxARERH1W/8flADhZtG2wcQAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# Training Procedure\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # gradient accumulation: update every accum_steps samples\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # automatic mixed precision (amp)\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # gradient accumulation: update every accum_steps samples\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # emptying the CUDA cache after the first step can reduce the chance of OOM\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # mixed precision training\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # logging\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # back-prop\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) handles the case of a zero gradient\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # grad norm clipping prevents gradient exploding\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # logging\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## Validation & Inference\\n\",\n    \"To prevent overfitting, validation is required every epoch to validate the performance on unseen data.\\n\",\n    \"- the procedure is essensially same as training, with the addition of inference step\\n\",\n    \"- after validation we can save the model weights\\n\",\n    \"\\n\",\n    \"Validation loss alone cannot describe the actual performance of the model\\n\",\n    \"- Directly produce translation hypotheses based on current model, then calculate BLEU with the reference translation\\n\",\n    \"- We can also manually examine the hypotheses' quality\\n\",\n    \"- We use fairseq's sequence generator for beam search to generate translation hypotheses\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq's beam search generator\\n\",\n    \"# given model and input seqeunce, produce translation hypotheses by beam search\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # convert from Tensor to human readable sentence\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # for each sample, collect the input, hypothesis and reference, later be used to calculate BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 indicates using the top hypothesis in beam\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # show bleu results\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# Save and Load Model Weights\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # save epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # save epoch samples\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # get best valid bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## Training loop\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"# logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"# logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"# logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"# logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"# logger.info(\\n\",\n    \"#     \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"#         sum(p.numel() for p in model.parameters()),\\n\",\n    \"#         sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"#     )\\n\",\n    \"# )\\n\",\n    \"# logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"# try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"# while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"#     # train for one epoch\\n\",\n    \"#     train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"#     stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"#     logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"#     epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Namespace(inputs=['./checkpoints/transformer-bt'], output='./checkpoints/transformer-bt/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/transformer-bt/checkpoint30.pt', './checkpoints/transformer-bt/checkpoint29.pt', './checkpoints/transformer-bt/checkpoint28.pt', './checkpoints/transformer-bt/checkpoint27.pt', './checkpoints/transformer-bt/checkpoint26.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/transformer-bt/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# averaging a few checkpoints can have a similar effect to ensemble\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## Confirm model weights used to generate submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:56:32 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/transformer-bt/avg_last_5_checkpoint.pt: step=unknown loss=3.027837038040161 bleu=29.730896524436638\\n\",\n      \"2023-11-19 18:56:32 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-19 18:56:32 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-19 18:56:32 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-19 18:56:32 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-19 18:56:32 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/functional.py:5076: UserWarning: Support for mismatched key_padding_mask and attn_mask is deprecated. Use same type for both instead.\\n\",\n      \"  warnings.warn(\\n\",\n      \"2023-11-19 18:56:56 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-19 18:56:56 | INFO | hw5.seq2seq | example hypothesis: 第一次在美國 , 一群主要是白人 , 投票給一位非裔美國人候選人 。\\n\",\n      \"2023-11-19 18:56:56 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-19 18:56:56 | INFO | hw5.seq2seq | validation loss:\\t3.0109\\n\",\n      \"2023-11-19 18:56:56 | INFO | hw5.seq2seq | BLEU = 29.72 60.9/36.8/23.4/15.7 (BP = 0.986 ratio = 0.986 hyp_len = 108917 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : latest epoch\\n\",\n    \"# checkpoint_best.pt : highest validation bleu\\n\",\n    \"# avg_last_5_checkpoint.pt: the average of last 5 epochs\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## Generate Prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # sort based on the order before preprocess\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Gradescope\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Problem 1: Visualize Positional Embedding\\n\",\n    \"\\n\",\n    \"Recommended reading: [All Pairs Cosine Similarity in PyTorch](https://medium.com/@dhruvbird/all-pairs-cosine-similarity-in-pytorch-867e722c8572)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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f7H9UykRA/lUKpVKpYqS5s2bR0NDw7Qr2PrV3d1dNH9jYyOdnZ1Fv+OXQl+lUqlUqpDV3NzMkiVLClanBVi/fv2UK88ed9xxB+R/8sknWbp0KU1NTUW/41dsod/S0sLNN988ZTwl6dL6mV5aPzNL62h6af1ML62f3OJ2X//613nwwQd59dVXueaaa9i6dWt+3v1NN93ERRddlM+/fPly/vCHP7BixQpeffVVHnzwQR544AGuu+66ko8Z2yl7KpVKpVJFXffeey+33XYb27dvZ/Hixdxxxx28//3vB+Diiy/m97//PT/96U/z+Tds2MA111yTX5znhhtuKGtxHoW+SqVSqVQJUWzd+yqVSqVSqQql0FepVCqVKiFS6KtUKpVKlRAp9FUqlUqlSohiC/17772XRYsWkUqlWLJkCU8//fRsn1LNtXr1at773vfS3t7O/PnzOeecc/j1r39dkMdxHFatWkVPTw9z5szhlFNO4eWXXy7IMzY2xpVXXsm8efNoa2vj7LPP5rXXXgvzUkLR6tWrqauro7e3N78v6fXz+uuv8/GPf5zOzk5aW1t597vfzcaNG/PpSa6f/fv38/d///csWrSIOXPmcMQRR3DLLbcwOen9k3qS6uepp57iIx/5CD09PdTV1fH973+/ID2outizZw8XXngh6XSadDrNhRdeSH9/f42vLsYqaYV+y/Too486TU1Nzte+9jXnlVdeca6++mqnra3N+cMf/jDbp1ZTnX766c43vvEN56WXXnI2b97snHnmmc5b3vIWZ+/evfk8X/ziF5329nbne9/7nvPiiy865513nnPIIYc4g4OD+TzLly93Dj30UGf9+vXOL3/5S+cDH/iA8653vcvZv3//bFxWTfTzn//ceetb3+q8853vdK6++ur8/iTXz+7du53DDz/cufjii52f/exnzpYtW5wf/vCHzm9/+9t8niTXz+c//3mns7PT+dd//Vdny5Ytzr/8y784Bx10kHPnnXfm8ySpftatW+esXLnS+d73vucAztq1awvSg6qLD33oQ87ixYudZ5991nn22WedxYsXO2eddVZYlxk7xRL6f/Znf+YsX768YN/b3vY258Ybb5ylM5odvfnmmw7gbNiwwXEcx5mcnHS6u7udL37xi/k8o6OjTjqddr761a86juM4/f39TlNTk/Poo4/m87z++utOfX2988QTT4R7ATXS0NCQc+SRRzrr1693Tj755Dz0k14/N9xwg3PiiSdOmZ70+jnzzDOdv/3bvy3Y99GPftT5+Mc/7jhOsuvHD/2g6uKVV15xAOf555/P53nuueccwPnP//zPGl9VPBU79/74+DgbN25k2bJlBfuXLVvGs88+O0tnNTsaGBgAvH8c3LJlC319fQV109LSwsknn5yvm40bNzIxMVGQp6enh8WLF8em/i6//HLOPPNMTj311IL9Sa+fxx9/nKVLl/JXf/VXzJ8/n2OOOYavfe1r+fSk18+JJ57Ij370I37zm98A8Ktf/YpnnnmGD3/4w4DWj6mg6uK5554jnU5z7LHH5vO8733vI51Ox6q+wlTs/mWvkr8rjKMcx2HFihWceOKJLF68GCB//cXq5g9/+EM+T3NzMwcffPABeeJQf48++ii//OUveeGFFw5IS3r9/O53v+O+++5jxYoVfPazn+XnP/85V111FS0tLVx00UWJr58bbriBgYEB3va2t9HQ0EA2m+ULX/gCH/vYxwC9f0wFVRd9fX3Mnz//gPLnz58fq/oKU7GDvqjcvyuMm6644gr+4z/+g2eeeeaAtErqJg71t23bNq6++mqefPLJaf9GM6n1Mzk5ydKlS7n11lsBOOaYY3j55Ze57777Ctb/Tmr9rFmzhoceeoiHH36Yd7zjHWzevJne3l56enr4xCc+kc+X1PoppiDqolj+uNZXGIqde7+SvyuMm6688koef/xxfvKTn3DYYYfl93d3dwNMWzfd3d2Mj4+zZ8+eKfPYqo0bN/Lmm2+yZMkSGhsbaWxsZMOGDXzlK1+hsbExf31JrZ9DDjmEt7/97QX7jjrqKLZu3Qro/fOZz3yGG2+8kb/+67/m6KOP5sILL+Saa65h9erVgNaPqaDqoru7mz/+8Y8HlL9jx45Y1VeYih30K/m7wrjIcRyuuOIKHnvsMX784x+zaNGigvRFixbR3d1dUDfj4+Ns2LAhXzdLliyhqampIM/27dt56aWXrK+/D37wg7z44ots3rw5vy1dupQLLriAzZs3c8QRRyS6fk444YQDpnj+5je/4fDDDwf0/hkZGaG+vrDJbGhoyE/ZS3r9mAqqLo477jgGBgb4+c9/ns/zs5/9jIGBgVjVV6iajdGDtZZM2XvggQecV155xent7XXa2tqc3//+97N9ajXV3/3d3znpdNr56U9/6mzfvj2/jYyM5PN88YtfdNLptPPYY485L774ovOxj32s6DSaww47zPnhD3/o/PKXv3T+/M//3MopRaXIHL3vOMmun5///OdOY2Oj84UvfMH5r//6L+e73/2u09ra6jz00EP5PEmun0984hPOoYcemp+y99hjjznz5s1zrr/++nyeJNXP0NCQs2nTJmfTpk0O4Nx+++3Opk2b8lOjg6qLD33oQ8473/lO57nnnnOee+455+ijj9Ype1UoltB3HMe55557nMMPP9xpbm523vOe9+SnrcVZQNHtG9/4Rj7P5OSkc/PNNzvd3d1OS0uL8/73v9958cUXC8rZt2+fc8UVVzhz58515syZ45x11lnO1q1bQ76acOSHftLr5wc/+IGzePFip6WlxXnb297m3H///QXpSa6fwcFB5+qrr3be8pa3OKlUyjniiCOclStXOmNjY/k8Saqfn/zkJ0Xbm0984hOO4wRXF7t27XIuuOACp7293Wlvb3cuuOACZ8+ePSFdZfykf62rUqlUKlVCFLuYvkqlUqlUquJS6KtUKpVKlRAp9FUqlUqlSogU+iqVSqVSJUQKfZVKpVKpEiKFvkqlUqlUCZFCX6VSqVSqhEihr1KpVCpVQqTQV6lUKpUqIVLoq1QqlUqVECn0VSqVSqVKiP5/Y4Ad4TMvPNQAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"def get_cosine_similarity_matrix(x):\\n\",\n    \"    x = x / x.norm(dim=1, keepdim=True)\\n\",\n    \"    sim = torch.mm(x, x.t())\\n\",\n    \"    return sim\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"# Get the positional embeddings from the decoder of the model\\n\",\n    \"pos_emb = model.decoder.embed_positions.weights.cpu().detach()\\n\",\n    \"sim = get_cosine_similarity_matrix(pos_emb)\\n\",\n    \"# sim = F.cosine_similarity(pos_emb.unsqueeze(1), pos_emb.unsqueeze(0), dim=-1) # same\\n\",\n    \"\\n\",\n    \"# Plot the heatmap of the cosine similarity matrix of the positional embeddings\\n\",\n    \"plt.imshow(sim, cmap=\\\"hot\\\", vmin=0, vmax=1)\\n\",\n    \"plt.colorbar()\\n\",\n    \"\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 50,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[50], line 2\\u001b[0m\\n\\u001b[1;32m      1\\u001b[0m \\u001b[38;5;28;01mif\\u001b[39;00m \\u001b[38;5;129;01mnot\\u001b[39;00m BACK_TRANSLATION:\\n\\u001b[0;32m----> 2\\u001b[0m     \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if not BACK_TRANSLATION:\\n\",\n    \"    raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## Train a backward translation model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. Switch the source_lang and target_lang in **config**\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## Generate synthetic data with backward model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### Download monolingual data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: clean corpus\\n\",\n    \"\\n\",\n    \"1. remove sentences that are too long or too short\\n\",\n    \"2. unify punctuation\\n\",\n    \"\\n\",\n    \"hint: you can use clean_s() defined above to do this\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def clean_mono_corpus(prefix, l, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.zh').exists():\\n\",\n    \"        print(f'{prefix}.clean.zh exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}', 'r') as l_in_f:\\n\",\n    \"        with open(f'{prefix}.clean.zh', 'w') as l_out_f:\\n\",\n    \"            for s in l_in_f:\\n\",\n    \"                s = s.strip()\\n\",\n    \"                s = clean_s(s, l)\\n\",\n    \"                s_len = len_s(s, l)\\n\",\n    \"                if min_len > 0: # remove short sentence\\n\",\n    \"                    if s_len < min_len:\\n\",\n    \"                        continue\\n\",\n    \"                if max_len > 0: # remove long sentence\\n\",\n    \"                    if s_len > max_len:\\n\",\n    \"                        continue\\n\",\n    \"                print(s, file=l_out_f)\\n\",\n    \"                \\n\",\n    \"\\n\",\n    \"mono_data_prefix = f'{mono_prefix}/ted_zh_corpus.deduped'\\n\",\n    \"clean_mono_corpus(mono_data_prefix, 'zh')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"**Generate pseudo translation**\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"\\n\",\n    \"zh_path = mono_prefix / 'ted_zh_corpus.deduped.clean.zh'\\n\",\n    \"en_path = mono_prefix / 'ted_zh_corpus.deduped.clean.en'\\n\",\n    \"\\n\",\n    \"if en_path.exists():\\n\",\n    \"    print(f\\\"{en_path} exists. skipping the generation of psuedo translation.\\\")\\n\",\n    \"\\n\",\n    \"with open(zh_path, 'r') as zh_f:\\n\",\n    \"    with open(en_path, 'w') as en_f:\\n\",\n    \"        for line in zh_f:\\n\",\n    \"            line = line.strip()\\n\",\n    \"            if line:\\n\",\n    \"                # Replace with '_.' to get a pseudo translation\\n\",\n    \"                pseudo = '_.'\\n\",\n    \"                # Write the pseudo translation string to the target file and add a new line\\n\",\n    \"                print(pseudo, file=en_f)\\n\",\n    \"            # If the line is empty, just add a new line\\n\",\n    \"            else:\\n\",\n    \"                print(file=en_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: Subword Units\\n\",\n    \"\\n\",\n    \"Use the spm model of the backward model to tokenize the data into subword units\\n\",\n    \"\\n\",\n    \"hint: spm model is located at DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def spm_encode(prefix, vocab_size, mono_prefix):\\n\",\n    \"    spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"\\n\",\n    \"    in_path = mono_prefix / 'ted_zh_corpus.deduped.clean'\\n\",\n    \"\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = mono_prefix / f'mono.tok.{lang}'\\n\",\n    \"        # if out_path.exists():\\n\",\n    \"        #     print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        # else:\\n\",\n    \"        with open(out_path, 'w') as out_f:\\n\",\n    \"            with open(f'{in_path}.{lang}', 'r') as in_f:\\n\",\n    \"                for line in in_f:\\n\",\n    \"                    line = line.strip()\\n\",\n    \"                    tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                    print(' '.join(tok), file=out_f)\\n\",\n    \"\\n\",\n    \"spm_encode(prefix, vocab_size, mono_prefix)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### Binarize\\n\",\n    \"\\n\",\n    \"use fairseq to binarize data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: Generate synthetic data with backward model\\n\",\n    \"\\n\",\n    \"Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"then you can use 'generate_prediction(model, task, split=\\\"split_name\\\")' to generate translation prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"# ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: do prediction on split='mono' to create prediction_file\\n\",\n    \"task.load_dataset(split=\\\"mono\\\", epoch=1)\\n\",\n    \"generate_prediction(model, task, split='mono', outfile='./prediction.txt' )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: Create new dataset\\n\",\n    \"\\n\",\n    \"1. Combine the prediction data with monolingual data\\n\",\n    \"2. Use the original spm model to tokenize data into Subword Units\\n\",\n    \"3. Binarize data with fairseq\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Combine prediction_file (.en) and mono.zh (.zh) into a new dataset.\\n\",\n    \"#\\n\",\n    \"# hint: tokenize prediction_file with the spm model\\n\",\n    \"!cp ./prediction.txt {mono_prefix}/'ted_zh_corpus.deduped.clean.en'\\n\",\n    \"spm_encode(prefix, vocab_size, mono_prefix)\\n\",\n    \"# output: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# hint: use fairseq to binarize these two files again\\n\",\n    \"binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create a new dataset from all the files prepared above\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"Created new dataset \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. Change the datadir in **config** (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. Switch back the source_lang and target_lang in **config** (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/en/HW05_Medium_18.83.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Medium Baseline\\n\",\n    \"\\n\",\n    \"You can search for the “Medium” tag to check for changes (Ctrl + F or Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# Homework Description\\n\",\n    \"- English to Chinese (Traditional) Translation\\n\",\n    \"  - Input: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - Output: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - Train a simple RNN seq2seq to acheive translation\\n\",\n    \"    - Switch to transformer model to boost performance\\n\",\n    \"    - Apply Back-translation to furthur boost performance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Tue Nov 14 09:04:47 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   27C    P8    19W / 170W |   5140MiB / 12288MiB |      4%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1190      G   /usr/lib/xorg/Xorg                181MiB |\\n\",\n      \"|    0   N/A  N/A      1505      G   /usr/bin/gnome-shell               20MiB |\\n\",\n      \"|    0   N/A  N/A      1708      G   ...nlogin/bin/sunloginclient        9MiB |\\n\",\n      \"|    0   N/A  N/A     39568      G   ...2gtk-4.0/WebKitWebProcess       11MiB |\\n\",\n      \"|    0   N/A  N/A     53123      G   /usr/lib/firefox/firefox          182MiB |\\n\",\n      \"|    0   N/A  N/A     68307      G   ...2gtk-4.0/WebKitWebProcess        6MiB |\\n\",\n      \"|    0   N/A  N/A     77860      C   ...conda3/envs/DL/bin/python     4724MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# Download and import required packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:05:56 | INFO | fairseq.tasks.text_to_speech | Please install tensorboardX: pip install tensorboardX\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# Fix random seed\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# Dataset\\n\",\n    \"\\n\",\n    \"## En-Zh Bilingual Parallel Corpus\\n\",\n    \"* TED2020\\n\",\n    \"    - Raw: 400,726 (sentences)   \\n\",\n    \"    - Processed: 394,052 (sentences)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## Testdata\\n\",\n    \"- Size: 4,000 (sentences)\\n\",\n    \"- **Chinese translation is undisclosed. The provided (.zh) file is psuedo translation, each line is a '。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## Dataset Download\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## Language\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## Preprocess files\\n\",\n    \"- strQ2B(): Convert full-width characters to half-width characters\\n\",\n    \"- clean_s(): Clean the text by removing characters such as commas, dashes, and spaces\\n\",\n    \"- len_s(): Return the length of the text\\n\",\n    \"- clean_corpus(): Clean and process the specified text files using the above functions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## Split into train/valid\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000~4000 would suffice\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## Subword Units\\n\",\n    \"Out of vocabulary (OOV) has been a major problem in machine translation. This can be alleviated by using subword units.\\n\",\n    \"- We will use the [sentencepiece](#kudo-richardson-2018-sentencepiece) package\\n\",\n    \"- select 'unigram' or 'byte-pair encoding (BPE)' algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## Binarize the data with fairseq\\n\",\n    \"Prepare the files in pairs for both the source and target languages.\\n\",\n    \"\\n\",\n    \"In case a pair is unavailable, generate a pseudo pair to facilitate binarization.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# Configuration for experiments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/rnn\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # cpu threads when fetching & processing data.\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size in terms of tokens. gradient accumulation increases the effective batchsize.\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # the lr s calculated from Noam lr scheduler. you can tune the maximum lr by this factor.\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # clipping gradient norm helps alleviate gradient exploding\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # maximum epochs for training (Medium)\\n\",\n    \"    max_epoch=30,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # beam size for beam search\\n\",\n    \"    beam=5,\\n\",\n    \"    # generate sequences of maximum length ax + b, where x is the source length\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # when decoding, post process sentence by removing sentencepiece symbols and jieba tokenization.\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # checkpoints\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume from checkpoint name (under config.savedir)\\n\",\n    \"\\n\",\n    \"    # logging\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# Logging\\n\",\n    \"- logging package logs ordinary messages\\n\",\n    \"- wandb logs the loss, bleu, etc. in the training process\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA Environments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:05:59 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# Dataloading\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## We borrow the TranslationTask from fairseq\\n\",\n    \"* used to load the binarized data created above\\n\",\n    \"* well-implemented data iterator (dataloader)\\n\",\n    \"* built-in task.source_dictionary and task.target_dictionary are also handy\\n\",\n    \"* well-implemented beam search decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:05:59 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:05:59 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.en\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.zh\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 train en-zh 390112 examples\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.en\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.zh\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# Dataset iterator\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* Controls every batch to contain no more than N tokens, which optimizes GPU memory efficiency\\n\",\n    \"* Shuffles the training set for every epoch\\n\",\n    \"* Ignore sentences exceeding maximum length\\n\",\n    \"* Pad all sentences in a batch to the same length, which enables parallel computing by GPU\\n\",\n    \"* Add eos and shift one token\\n\",\n    \"    - teacher forcing: to train the model to predict the next token based on prefix, we feed the right shifted target sequence as the decoder input.\\n\",\n    \"    - generally, prepending bos to the target would do the job (as shown below)\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - in fairseq however, this is done by moving the eos token to the begining. Empirically, this has the same effect. For instance:\\n\",\n    \"    ```\\n\",\n    \"    # output target (target) and Decoder input (prev_output_tokens):\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:05:59 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-14 09:05:59 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-14 09:05:59 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # Set this to False to speed up. However, if set to False, changing max_tokens beyond\\n\",\n    \"        # first call of this method has no effect.\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# Model Architecture\\n\",\n    \"* We again inherit fairseq's encoder, decoder and model, so that in the testing phase we can directly leverage fairseq's beam search decoder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# Encoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- The Encoder is a RNN or Transformer Encoder. The following description is for RNN. For every input token, Encoder will generate a output vector and a hidden states vector, and the hidden states vector is passed on to the next step. In other words, the Encoder sequentially reads in the input sequence, and outputs a single vector at each timestep, then finally outputs the final hidden states, or content vector, at the last timestep.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: the dimension of embeddings, this compresses the one-hot vector into fixed dimensions, which achieves dimension reduction\\n\",\n    \"      - encoder_ffn_embed_dim: the dimension of hidden states and output vectors\\n\",\n    \"      - encoder_layers: the number of layers for Encoder RNN\\n\",\n    \"      - dropout determines the probability of a neuron's activation being set to 0, in order to prevent overfitting. Generally this is applied in training, and removed in testing.\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq. it's used to obtain the padding index, and in turn the encoder padding mask.\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: integer sequence representing english e.g. 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the output of RNN at each timestep, can be furthur processed by Attention\\n\",\n    \"    - *final_hiddens*: the hidden states of each timestep, will be passed to decoder for decoding\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # get embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # pass thru bidirectional RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # Since Encoder is bidirectional, we need to concatenate the hidden states of two directions\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## Attention\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- When the input sequence is long, \\\"content vector\\\" alone cannot accurately represent the whole sequence, attention mechanism can provide the Decoder more information.\\n\",\n    \"- According to the **Decoder embeddings** of the current timestep, match the **Encoder outputs** with decoder embeddings to determine correlation, and then sum the Encoder outputs weighted by the correlation as the input to **Decoder** RNN.\\n\",\n    \"- Common attention implementations use neural network / dot product as the correlation between **query** (decoder embeddings) and **key** (Encoder outputs), followed by **softmax**  to obtain a distribution, and finally **values** (Encoder outputs) is **weighted sum**-ed by said distribution.\\n\",\n    \"\\n\",\n    \"- Parameters:\\n\",\n    \"  - *input_embed_dim*: dimensionality of key, should be that of the vector in decoder to attend others\\n\",\n    \"  - *source_embed_dim*: dimensionality of query, should be that of the vector to be attended to (encoder outputs)\\n\",\n    \"  - *output_embed_dim*: dimensionality of value, should be that of the vector after attention, expected by the next layer\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: is the key, the vector to attend to others\\n\",\n    \"    - *encoder_outputs*:  is the query/value, the vector to be attended to\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: the context vector after attention\\n\",\n    \"    - *attention score*: the attention distribution\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # convert all to batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # project to the dimensionality of encoder_outputs\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # compute attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # cancel the attention at positions corresponding to padding\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # softmax on the dimension corresponding to source sequence\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) weighted sum\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# Decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* The hidden states of **Decoder** will be initialized by the final hidden states of **Encoder** (the content vector)\\n\",\n    \"* At the same time, **Decoder** will change its hidden states based on the input of the current timestep (the outputs of previous timesteps), and generates an output\\n\",\n    \"* Attention improves the performance\\n\",\n    \"* The seq2seq steps are implemented in decoder, so that later the Seq2Seq class can accept RNN and Transformer, without furthur modification.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: is the dimensionality of the decoder embeddings, similar to encoder_embed_dim，\\n\",\n    \"      - decoder_ffn_embed_dim: is the dimensionality of the decoder RNN hidden states, similar to encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: number of layers of RNN decoder\\n\",\n    \"      - share_decoder_input_output_embed: usually, the projection matrix of the decoder will share weights with the decoder input embeddings\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"- Inputs:\\n\",\n    \"    - *prev_output_tokens*: integer sequence representing the right-shifted target e.g. 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: encoder's output.\\n\",\n    \"    - *incremental_state*: in order to speed up decoding during test time, we will save the hidden state of each timestep. see forward() for details.\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the logits (before softmax) output of decoder for each timesteps\\n\",\n    \"    - *extra*: unused\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # extract the outputs from encoder\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # if the information from last timestep is retained, we can continue from there instead of starting from bos\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # incremental state does not exist, either this is training time, or the first timestep of test time\\n\",\n    \"            # prepare for seq2seq: pass the encoder_hidden to the decoder hidden states\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # pass thru unidirectional RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # project to embedding size (if hidden differs from embed size, and share_embedding is True,\\n\",\n    \"        # we need to do an extra projection)\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # project to vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, record the hidden states of current timestep, which will be restored in the next timestep\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(\\n\",\n    \"        self,\\n\",\n    \"        incremental_state,\\n\",\n    \"        new_order,\\n\",\n    \"    ):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- Composed of **Encoder** and **Decoder**\\n\",\n    \"- Recieves inputs and pass to **Encoder**\\n\",\n    \"- Pass the outputs from **Encoder** to **Decoder**\\n\",\n    \"- **Decoder** will decode according to outputs of previous timesteps as well as **Encoder** outputs  \\n\",\n    \"- Once done decoding, return the **Decoder** outputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# Model Initialization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # HINT: transformer architecture\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # HINT: TODO: switch to TransformerEncoder & TransformerDecoder\\n\",\n    \"    encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    # encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # sequence to sequence model\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # initialization for seq2seq model is important, requires extra handling\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # weight initialization\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## Architecture Related Configuration\\n\",\n    \"\\n\",\n    \"For strong baseline, please refer to the hyperparameters for *transformer-base* in Table 3 in [Attention is all you need](#vaswani2017)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=256,\\n\",\n    \"    encoder_ffn_embed_dim=512,\\n\",\n    \"    encoder_layers=1,\\n\",\n    \"    decoder_embed_dim=256,\\n\",\n    \"    decoder_ffn_embed_dim=1024,\\n\",\n    \"    decoder_layers=1,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# HINT: these patches on parameters for Transformer\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=4\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=4\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # patches on default parameters for Transformer (those not set above)\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"# add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/modules/rnn.py:82: UserWarning: dropout option adds dropout after all but last recurrent layer, so non-zero dropout expects num_layers greater than 1, but got dropout=0.3 and num_layers=1\\n\",\n      \"  warnings.warn(\\\"dropout option adds dropout after all but last \\\"\\n\",\n      \"2023-11-14 09:06:00 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): RNNEncoder(\\n\",\n      \"    (embed_tokens): Embedding(7992, 256, padding_idx=1)\\n\",\n      \"    (dropout_in_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (rnn): GRU(256, 512, dropout=0.3, bidirectional=True)\\n\",\n      \"    (dropout_out_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"  )\\n\",\n      \"  (decoder): RNNDecoder(\\n\",\n      \"    (embed_tokens): Embedding(7992, 256, padding_idx=1)\\n\",\n      \"    (dropout_in_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (rnn): GRU(256, 1024, dropout=0.3)\\n\",\n      \"    (attention): AttentionLayer(\\n\",\n      \"      (input_proj): Linear(in_features=256, out_features=1024, bias=False)\\n\",\n      \"      (output_proj): Linear(in_features=1280, out_features=256, bias=False)\\n\",\n      \"    )\\n\",\n      \"    (dropout_out_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (project_out_dim): Linear(in_features=1024, out_features=256, bias=True)\\n\",\n      \"    (output_projection): Linear(in_features=256, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# Optimization\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## Loss: Label Smoothing Regularization\\n\",\n    \"* let the model learn to generate less concentrated distribution, and prevent over-confidence\\n\",\n    \"* sometimes the ground truth may not be the only answer. thus, when calculating loss, we reserve some probability for incorrect labels\\n\",\n    \"* avoids overfitting\\n\",\n    \"\\n\",\n    \"code [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood，the cross-entropy when target is one-hot. following line is same as F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  reserve some probability for other labels. thus when calculating cross-entropy,\\n\",\n    \"        # equivalent to summing the log probs of all labels\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # when calculating cross-entropy, add the loss of other labels\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# generally, 0.1 is good enough\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\"\n   },\n   \"source\": [\n    \"## Optimizer: Adam + lr scheduling (Medium)\\n\",\n    \"Inverse square root scheduling is important to the stability when training Transformer. It's later used on RNN as well.\\n\",\n    \"Update the learning rate according to the following equation. Linearly increase the first stage, then decay proportionally to the inverse square root of timestep.\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    # TODO: Change lr from constant to the equation shown above\\n\",\n    \"    lr = 1.0 / math.sqrt(d_model) * min(1.0 / math.sqrt(step_num), step_num / (warmup_step * math.sqrt(warmup_step)))\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim wrapper that implements rate.\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"Multiplies grads by a constant *c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"Update parameters and rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"Implement `lrate` above\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## Scheduling Visualized\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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tXj44YdRVVVl7yW7NfauCDeXDli3bp04duyYSEpKEl5eXuLcuXNCCCEWLVokEhISpHhz6YAFCxaIY8eOiXXr1rUoHfDDDz8IuVwuli9fLo4fPy6WL1/eonTAf//3fwuNRiP27NkjiouLpe36xz2XL18uNBqN2LJli8jLyxNPP/201dIBffr0Ebt27RJZWVnigQce6FalA86X1YiwhV+JsIVfiaamJkd3h4jIqd349FRTU5OoMZgcst3Kf7NvfEJcCCFmz54tpk2bZvNzo0aNEq+99lq7zhkfHy9ee+018frrr4thw4ZZHGvLU+43e7q+LU+536iznoazuyhlfHw8ysvL8eabb6K4uBhRUVHYsWMHwsLCADSP1FyfFYaHh2PHjh1YsGABVq1ahZCQELz//vt48sknpZixY8di48aNeO2117B06VL0798fmzZtwqhRo6SYNWvWAAAmTpxo0Z9PPvkEzz33HADglVdeQV1dHX77299KRSl37twJb29vKf5///d/4e7ujhkzZkhFKT/99NNOKY/uCLq6a+X6y2uMCOihcmBviIhcS52pEZH/798OOfexN+PgqWzfizVufELcbM+ePQgMDETPnj0xYcIEvPXWWwgMDATQvATl4MGDmDVrFsaOHYszZ85g0KBBeOutt3DfffdJbUycOBH9+vXDp59+Ku375JNPcObMGXz++ef4n//5nxb9ycjIwIIFCyz2xcXF4b333gNw7en6RYsWWcRc/3T9zZ5yf+GFF+y8Su3Xrr+V3/72t/jtb39r9dj1F9NswoQJyMrKstnmr371K/zqV79q9bhoQxl6mUyGZcuWYdmyZa3GqNVq/PWvf8Vf//rXm7bnigwNjdLPxZX1TJaIiLo5YeUJcQCYPHkynnrqKYSFhSE/Px9Lly7FAw88gMzMTKhUKpw9exYAsGzZMvzpT3/C8OHD8dlnn+HBBx/EkSNHMGDAAABA3759ERwcLLV76tQpLFq0CPv27YO7u/U04mZPubfl6XpbT7mfP3/e7ut0K/huuG6mytAg/VxUWYehfTQO7A0RkWvxUMhx7M04h527PcxPiO/fv99if3x8vPRzVFQUYmJiEBYWhq+//hpPPPEEmpqaAAAvvPAC/uM//gMAMGLECOzevRsff/wxUlJSAACfffaZ1E5jYyOeeeYZvPHGG7jzzjtt9qstT6d3VExn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YsuWLSIvL088/fTTIjg4WOj1eikmMTFR9OnTR+zatUtkZWWJBx54QAwbNkw0NDS06ft31tNwRERE1Hlu5f5td7IkhBCrVq0SYWFhQqlUipEjR4r09HTp2OzZs8WECRMs4vfs2SNGjBghlEql6Nevn1izZk2LNjdv3iwGDhwoFAqFGDRokEhNTbXrvEI0lw94/fXXhVarFSqVSowfP17k5eVZxNTV1Ym5c+cKPz8/4eHhIaZOnSoKCgra/N2ZLBEREbmeW7l/y4S4utqa2kSv10Oj0UCn03FKjoiIyEXcyv2b74YjIiIisoHJEhEREZENTJaIiIiIbGCyRERERGQDkyUiIiIiG5gsEREREdnAZImIiIjIBiZLRERERDYwWSIiIiKywd3RHXA15oLner3ewT0hIiKitjLft9vz4hImS3aqqqoCAISGhjq4J0RERGSvqqoqaDQauz7Dd8PZqampCRcvXoS3tzdkMlmHtq3X6xEaGorCwkK+d64T8Tp3DV7nrsHr3HV4rbtGZ11nIQSqqqoQEhICNzf7ViFxZMlObm5u6NOnT6eew8fHh/8idgFe567B69w1eJ27Dq911+iM62zviJIZF3gTERER2cBkiYiIiMgGJktORKVS4fXXX4dKpXJ0V7o1XueuwevcNXiduw6vdddwxuvMBd5ERERENnBkiYiIiMgGJktERERENjBZIiIiIrKByRIRERGRDUyWnMTq1asRHh4OtVqN6Oho7Nu3z9FdchopKSm4++674e3tjcDAQEyfPh2//PKLRYwQAsuWLUNISAg8PDwwceJEHD161CLGYDDgxRdfREBAALy8vPDYY4/hwoULFjEVFRVISEiARqOBRqNBQkICKisrLWIKCgrw6KOPwsvLCwEBAZg3bx6MRmOnfHdHSklJgUwmQ1JSkrSP17ljFBUV4de//jX8/f3h6emJ4cOHIzMzUzrO63zrGhoa8NprryE8PBweHh6IiIjAm2++iaamJimG17l99u7di0cffRQhISGQyWTYtm2bxXFnu655eXmYMGECPDw80Lt3b7z55pv2vx9OkMNt3LhRKBQK8be//U0cO3ZMzJ8/X3h5eYnz5887umtOIS4uTnzyySfiyJEjIicnRzzyyCOib9++orq6WopZvny58Pb2FqmpqSIvL0/Ex8eL4OBgodfrpZjExETRu3dvkZaWJrKyssT9998vhg0bJhoaGqSYSZMmiaioKHHgwAFx4MABERUVJaZOnSodb2hoEFFRUeL+++8XWVlZIi0tTYSEhIi5c+d2zcXoIj/99JPo16+fuOuuu8T8+fOl/bzOt+7KlSsiLCxMPPfcc+LgwYMiPz9f7Nq1S5w+fVqK4XW+df/zP/8j/P39xVdffSXy8/PF5s2bRY8ePcR7770nxfA6t8+OHTvEkiVLRGpqqgAgtm7danHcma6rTqcTQUFBYubMmSIvL0+kpqYKb29v8ac//cmu78xkyQncc889IjEx0WLfoEGDxKJFixzUI+dWWloqAIj09HQhhBBNTU1Cq9WK5cuXSzH19fVCo9GItWvXCiGEqKysFAqFQmzcuFGKKSoqEm5ubuLbb78VQghx7NgxAUD8+OOPUkxGRoYAIE6cOCGEaP6PhJubmygqKpJiNmzYIFQqldDpdJ33pbtQVVWVGDBggEhLSxMTJkyQkiVe546xcOFCcd9997V6nNe5YzzyyCPiP//zPy32PfHEE+LXv/61EILXuaPcmCw523VdvXq10Gg0or6+XopJSUkRISEhoqmpqc3fk9NwDmY0GpGZmYnY2FiL/bGxsThw4ICDeuXcdDodAMDPzw8AkJ+fj5KSEotrqFKpMGHCBOkaZmZmwmQyWcSEhIQgKipKisnIyIBGo8GoUaOkmNGjR0Oj0VjEREVFISQkRIqJi4uDwWCwmEZxZb/73e/wyCOP4KGHHrLYz+vcMbZv346YmBg89dRTCAwMxIgRI/C3v/1NOs7r3DHuu+8+7N69GydPngQA5ObmYv/+/ZgyZQoAXufO4mzXNSMjAxMmTLAocBkXF4eLFy/i3Llzbf5efJGug5WVlaGxsRFBQUEW+4OCglBSUuKgXjkvIQSSk5Nx3333ISoqCgCk62TtGp4/f16KUSqV8PX1bRFj/nxJSQkCAwNbnDMwMNAi5sbz+Pr6QqlUdou/r40bNyIrKwuHDh1qcYzXuWOcPXsWa9asQXJyMl599VX89NNPmDdvHlQqFZ599lle5w6ycOFC6HQ6DBo0CHK5HI2NjXjrrbfw9NNPA+A/z53F2a5rSUkJ+vXr1+I85mPh4eFt+l5MlpyETCaz+F0I0WIfAXPnzsXPP/+M/fv3tzjWnmt4Y4y1+PbEuKLCwkLMnz8fO3fuhFqtbjWO1/nWNDU1ISYmBm+//TYAYMSIETh69CjWrFmDZ599Vorjdb41mzZtwueff45//vOfGDJkCHJycpCUlISQkBDMnj1biuN17hzOdF2t9aW1z7aG03AOFhAQALlc3uL/LkpLS1tkzLe7F198Edu3b8f333+PPn36SPu1Wi0A2LyGWq0WRqMRFRUVNmMuXbrU4ryXL1+2iLnxPBUVFTCZTC7/95WZmYnS0lJER0fD3d0d7u7uSE9Px/vvvw93d3eL/xu7Hq+zfYKDgxEZGWmxb/DgwSgoKADAf547yu9//3ssWrQIM2fOxNChQ5GQkIAFCxYgJSUFAK9zZ3G262otprS0FEDL0S9bmCw5mFKpRHR0NNLS0iz2p6WlYezYsQ7qlXMRQmDu3LnYsmULvvvuuxbDpuHh4dBqtRbX0Gg0Ij09XbqG0dHRUCgUFjHFxcU4cuSIFDNmzBjodDr89NNPUszBgweh0+ksYo4cOYLi4mIpZufOnVCpVIiOju74L9+FHnzwQeTl5SEnJ0faYmJiMGvWLOTk5CAiIoLXuQPce++9LUpfnDx5EmFhYQD4z3NHqa2thZub5S1OLpdLpQN4nTuHs13XMWPGYO/evRblBHbu3ImQkJAW03M2tXkpOHUac+mAdevWiWPHjomkpCTh5eUlzp075+iuOYX//u//FhqNRuzZs0cUFxdLW21trRSzfPlyodFoxJYtW0ReXp54+umnrT6q2qdPH7Fr1y6RlZUlHnjgAauPqt51110iIyNDZGRkiKFDh1p9VPXBBx8UWVlZYteuXaJPnz4u+wjwzVz/NJwQvM4d4aeffhLu7u7irbfeEqdOnRLr168Xnp6e4vPPP5dieJ1v3ezZs0Xv3r2l0gFbtmwRAQEB4pVXXpFieJ3bp6qqSmRnZ4vs7GwBQPz5z38W2dnZUrkbZ7qulZWVIigoSDz99NMiLy9PbNmyRfj4+LB0gKtatWqVCAsLE0qlUowcOVJ6LJ6aH021tn3yySdSTFNTk3j99deFVqsVKpVKjB8/XuTl5Vm0U1dXJ+bOnSv8/PyEh4eHmDp1qigoKLCIKS8vF7NmzRLe3t7C29tbzJo1S1RUVFjEnD9/XjzyyCPCw8ND+Pn5iblz51o8ltqd3Jgs8Tp3jC+//FJERUUJlUolBg0aJD788EOL47zOt06v14v58+eLvn37CrVaLSIiIsSSJUuEwWCQYnid2+f777+3+t/k2bNnCyGc77r+/PPPYty4cUKlUgmtViuWLVtmV9kAIYSQCWFvGUsiIiKi2wfXLBERERHZwGSJiIiIyAYmS0REREQ2MFkiIiIisoHJEhEREZENTJaIiIiIbGCyRERERGQDkyUiIiIiG5gsEREREdnAZImIiIjIBiZLRERERDYwWSIiIiKy4f8D6cG8wFJLn3sAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# Training Procedure\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # gradient accumulation: update every accum_steps samples\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # automatic mixed precision (amp)\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # gradient accumulation: update every accum_steps samples\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # emptying the CUDA cache after the first step can reduce the chance of OOM\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # mixed precision training\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # logging\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # back-prop\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) handles the case of a zero gradient\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # grad norm clipping prevents gradient exploding\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # logging\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## Validation & Inference\\n\",\n    \"To prevent overfitting, validation is required every epoch to validate the performance on unseen data.\\n\",\n    \"- the procedure is essensially same as training, with the addition of inference step\\n\",\n    \"- after validation we can save the model weights\\n\",\n    \"\\n\",\n    \"Validation loss alone cannot describe the actual performance of the model\\n\",\n    \"- Directly produce translation hypotheses based on current model, then calculate BLEU with the reference translation\\n\",\n    \"- We can also manually examine the hypotheses' quality\\n\",\n    \"- We use fairseq's sequence generator for beam search to generate translation hypotheses\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq's beam search generator\\n\",\n    \"# given model and input seqeunce, produce translation hypotheses by beam search\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # convert from Tensor to human readable sentence\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # for each sample, collect the input, hypothesis and reference, later be used to calculate BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 indicates using the top hypothesis in beam\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # show bleu results\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# Save and Load Model Weights\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # save epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # save epoch samples\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # get best valid bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## Training loop\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:06:01 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-14 09:06:01 | INFO | hw5.seq2seq | encoder: RNNEncoder\\n\",\n      \"2023-11-14 09:06:01 | INFO | hw5.seq2seq | decoder: RNNDecoder\\n\",\n      \"2023-11-14 09:06:01 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-14 09:06:01 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-14 09:06:01 | INFO | hw5.seq2seq | num. model params: 11,247,872 (num. trained: 11,247,872)\\n\",\n      \"2023-11-14 09:06:01 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:06:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:06:01 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-14 09:06:01 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-14 09:06:01 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-14 09:06:01 | WARNING | fairseq.tasks.fairseq_task | 1 samples have invalid sizes and will be skipped, max_positions=(1024, 1024), first few sample ids=[326653]\\n\",\n      \"2023-11-14 09:06:01 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/rnn/checkpoint_last.pt: step=11673 loss=4.018208026885986 bleu=16.227050064531397\\n\",\n      \"2023-11-14 09:06:01 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 1:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:07:13 | INFO | hw5.seq2seq | training loss: 4.1350\\n\",\n      \"2023-11-14 09:07:13 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:07:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:07:13 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-14 09:07:13 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-14 09:07:13 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:07:22 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-14 09:07:22 | INFO | hw5.seq2seq | example hypothesis: 在美國第一次 , 選民投票投票投票投票投票投票投票投票投票投票給總統 。\\n\",\n      \"2023-11-14 09:07:22 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-14 09:07:22 | INFO | hw5.seq2seq | validation loss:\\t3.9602\\n\",\n      \"2023-11-14 09:07:22 | INFO | hw5.seq2seq | BLEU = 17.03 47.4/24.1/13.1/7.5 (BP = 0.929 ratio = 0.931 hyp_len = 102821 ref_len = 110430)\\n\",\n      \"2023-11-14 09:07:22 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint1.pt\\n\",\n      \"2023-11-14 09:07:22 | INFO | hw5.seq2seq | end of epoch 1\\n\",\n      \"2023-11-14 09:07:22 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:07:22 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 2:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:08:34 | INFO | hw5.seq2seq | training loss: 4.1047\\n\",\n      \"2023-11-14 09:08:34 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:08:34 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:08:44 | INFO | hw5.seq2seq | example source: and it just sounds like the most egotistical request you could make , if you were going to pray .\\n\",\n      \"2023-11-14 09:08:44 | INFO | hw5.seq2seq | example hypothesis: 這聽起來就像最普遍的文章 , 如果你要祈禱 , 你就可以做到 。\\n\",\n      \"2023-11-14 09:08:44 | INFO | hw5.seq2seq | example reference: 這聽起來像是你所能想到的最自我中心的禱告祈求 。\\n\",\n      \"2023-11-14 09:08:44 | INFO | hw5.seq2seq | validation loss:\\t3.9452\\n\",\n      \"2023-11-14 09:08:44 | INFO | hw5.seq2seq | BLEU = 17.40 45.3/22.9/12.4/7.1 (BP = 1.000 ratio = 1.011 hyp_len = 111647 ref_len = 110430)\\n\",\n      \"2023-11-14 09:08:44 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint2.pt\\n\",\n      \"2023-11-14 09:08:44 | INFO | hw5.seq2seq | end of epoch 2\\n\",\n      \"2023-11-14 09:08:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:08:44 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 3:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:09:55 | INFO | hw5.seq2seq | training loss: 4.0840\\n\",\n      \"2023-11-14 09:09:55 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:09:55 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:10:04 | INFO | hw5.seq2seq | example source: but empathy really should get you points if you do it when it's hard to do .\\n\",\n      \"2023-11-14 09:10:04 | INFO | hw5.seq2seq | example hypothesis: 但同理心真的應該要讓你知道 , 如果你這麼做的時候 , 你就要做這件事 。\\n\",\n      \"2023-11-14 09:10:04 | INFO | hw5.seq2seq | example reference: 同理心應該是在很難有同理心的情況下產生才能夠得分才對 。\\n\",\n      \"2023-11-14 09:10:04 | INFO | hw5.seq2seq | validation loss:\\t3.9398\\n\",\n      \"2023-11-14 09:10:04 | INFO | hw5.seq2seq | BLEU = 17.33 46.6/23.6/12.9/7.4 (BP = 0.962 ratio = 0.963 hyp_len = 106294 ref_len = 110430)\\n\",\n      \"2023-11-14 09:10:04 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint3.pt\\n\",\n      \"2023-11-14 09:10:04 | INFO | hw5.seq2seq | end of epoch 3\\n\",\n      \"2023-11-14 09:10:04 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:10:04 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 4:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:11:15 | INFO | hw5.seq2seq | training loss: 4.0721\\n\",\n      \"2023-11-14 09:11:15 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:11:15 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:11:25 | INFO | hw5.seq2seq | example source: but most biologics also have a flaw .\\n\",\n      \"2023-11-14 09:11:25 | INFO | hw5.seq2seq | example hypothesis: 但大部分生物學家也擁有了一顆雙眼 。\\n\",\n      \"2023-11-14 09:11:25 | INFO | hw5.seq2seq | example reference: 但 , 大部分的生物藥都有個瑕疵 。\\n\",\n      \"2023-11-14 09:11:25 | INFO | hw5.seq2seq | validation loss:\\t3.9295\\n\",\n      \"2023-11-14 09:11:25 | INFO | hw5.seq2seq | BLEU = 17.43 47.0/23.9/13.0/7.4 (BP = 0.960 ratio = 0.961 hyp_len = 106082 ref_len = 110430)\\n\",\n      \"2023-11-14 09:11:25 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint4.pt\\n\",\n      \"2023-11-14 09:11:25 | INFO | hw5.seq2seq | end of epoch 4\\n\",\n      \"2023-11-14 09:11:25 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:11:25 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 5:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:12:36 | INFO | hw5.seq2seq | training loss: 4.0578\\n\",\n      \"2023-11-14 09:12:36 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:12:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:12:45 | INFO | hw5.seq2seq | example source: but i believe now that we're moving into a new age , and that age the new york times dubbed recently as \\\" the age of behavior . \\\"\\n\",\n      \"2023-11-14 09:12:45 | INFO | hw5.seq2seq | example hypothesis: 但我相信 , 我們正在搬進一個新年齡 , 而那年紀錄在紐約時期 , 被稱為 「 行為的年齡 」 。\\n\",\n      \"2023-11-14 09:12:45 | INFO | hw5.seq2seq | example reference: 但我相信現在我們正在進入一個新的時代 , 而且最近這個時代被紐約時報稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-14 09:12:45 | INFO | hw5.seq2seq | validation loss:\\t3.9209\\n\",\n      \"2023-11-14 09:12:45 | INFO | hw5.seq2seq | BLEU = 17.35 44.9/22.8/12.4/7.1 (BP = 1.000 ratio = 1.021 hyp_len = 112735 ref_len = 110430)\\n\",\n      \"2023-11-14 09:12:45 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint5.pt\\n\",\n      \"2023-11-14 09:12:45 | INFO | hw5.seq2seq | end of epoch 5\\n\",\n      \"2023-11-14 09:12:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:12:45 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 6:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:13:56 | INFO | hw5.seq2seq | training loss: 4.0483\\n\",\n      \"2023-11-14 09:13:56 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:13:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:14:05 | INFO | hw5.seq2seq | example source: as we have hot blood running through our veins and arteries , so , too , the earth has hot water running through its cracks and faults .\\n\",\n      \"2023-11-14 09:14:05 | INFO | hw5.seq2seq | example hypothesis: 當我們有熱血流穿過我們的脊椎和外表 , 所以 , 地球上有熱水流穿過我們的脊椎和外表 。\\n\",\n      \"2023-11-14 09:14:05 | INFO | hw5.seq2seq | example reference: 就如我們身體𥚃有熱騰騰的血液經過靜脈和動脈 , 同樣地 , 地球也有熱流穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-14 09:14:05 | INFO | hw5.seq2seq | validation loss:\\t3.9180\\n\",\n      \"2023-11-14 09:14:05 | INFO | hw5.seq2seq | BLEU = 17.78 47.7/24.4/13.4/7.8 (BP = 0.952 ratio = 0.953 hyp_len = 105254 ref_len = 110430)\\n\",\n      \"2023-11-14 09:14:05 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint6.pt\\n\",\n      \"2023-11-14 09:14:05 | INFO | hw5.seq2seq | end of epoch 6\\n\",\n      \"2023-11-14 09:14:05 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:14:05 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 7:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:15:16 | INFO | hw5.seq2seq | training loss: 4.0353\\n\",\n      \"2023-11-14 09:15:16 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:15:16 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:15:25 | INFO | hw5.seq2seq | example source: entirely new requirement .\\n\",\n      \"2023-11-14 09:15:25 | INFO | hw5.seq2seq | example hypothesis: 全新的需求\\n\",\n      \"2023-11-14 09:15:25 | INFO | hw5.seq2seq | example reference: 這是全新的要求 。\\n\",\n      \"2023-11-14 09:15:25 | INFO | hw5.seq2seq | validation loss:\\t3.9171\\n\",\n      \"2023-11-14 09:15:25 | INFO | hw5.seq2seq | BLEU = 17.55 49.8/25.8/14.3/8.4 (BP = 0.887 ratio = 0.893 hyp_len = 98614 ref_len = 110430)\\n\",\n      \"2023-11-14 09:15:25 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint7.pt\\n\",\n      \"2023-11-14 09:15:25 | INFO | hw5.seq2seq | end of epoch 7\\n\",\n      \"2023-11-14 09:15:25 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:15:25 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 8:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:16:35 | INFO | hw5.seq2seq | training loss: 4.0264\\n\",\n      \"2023-11-14 09:16:35 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:16:35 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:16:44 | INFO | hw5.seq2seq | example source: by 1960 we had telephone bills , bank statements were being produced by computers .\\n\",\n      \"2023-11-14 09:16:44 | INFO | hw5.seq2seq | example hypothesis: 在1960年 , 銀行的信號被電腦傳輸 。\\n\",\n      \"2023-11-14 09:16:44 | INFO | hw5.seq2seq | example reference: 到了1960年 , 我們的電話和銀行帳單都交由電腦處理\\n\",\n      \"2023-11-14 09:16:44 | INFO | hw5.seq2seq | validation loss:\\t3.9077\\n\",\n      \"2023-11-14 09:16:44 | INFO | hw5.seq2seq | BLEU = 17.81 50.0/25.8/14.2/8.3 (BP = 0.903 ratio = 0.907 hyp_len = 100160 ref_len = 110430)\\n\",\n      \"2023-11-14 09:16:44 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint8.pt\\n\",\n      \"2023-11-14 09:16:44 | INFO | hw5.seq2seq | end of epoch 8\\n\",\n      \"2023-11-14 09:16:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:16:44 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 9:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:17:55 | INFO | hw5.seq2seq | training loss: 4.0198\\n\",\n      \"2023-11-14 09:17:55 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:17:55 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:18:04 | INFO | hw5.seq2seq | example source: they started making their own video games .\\n\",\n      \"2023-11-14 09:18:04 | INFO | hw5.seq2seq | example hypothesis: 他們開始製作自己的電玩遊戲 。\\n\",\n      \"2023-11-14 09:18:04 | INFO | hw5.seq2seq | example reference: 他們開始製造自己的電玩遊戲 。\\n\",\n      \"2023-11-14 09:18:04 | INFO | hw5.seq2seq | validation loss:\\t3.9063\\n\",\n      \"2023-11-14 09:18:04 | INFO | hw5.seq2seq | BLEU = 17.90 48.8/25.2/13.9/8.1 (BP = 0.927 ratio = 0.929 hyp_len = 102642 ref_len = 110430)\\n\",\n      \"2023-11-14 09:18:04 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint9.pt\\n\",\n      \"2023-11-14 09:18:04 | INFO | hw5.seq2seq | end of epoch 9\\n\",\n      \"2023-11-14 09:18:04 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:18:04 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 10:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:19:15 | INFO | hw5.seq2seq | training loss: 4.0100\\n\",\n      \"2023-11-14 09:19:15 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:19:15 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:19:24 | INFO | hw5.seq2seq | example source: a perfect example of this is spanish contemporary artist fernando vicente .\\n\",\n      \"2023-11-14 09:19:24 | INFO | hw5.seq2seq | example hypothesis: 這裡有一個完美的例子 , 是西班牙裔的藝術家 。\\n\",\n      \"2023-11-14 09:19:24 | INFO | hw5.seq2seq | example reference: 一個最有代表性的例子是西班牙現代藝術家費南多·維森特 。\\n\",\n      \"2023-11-14 09:19:24 | INFO | hw5.seq2seq | validation loss:\\t3.9054\\n\",\n      \"2023-11-14 09:19:24 | INFO | hw5.seq2seq | BLEU = 18.14 47.2/24.0/13.2/7.7 (BP = 0.984 ratio = 0.984 hyp_len = 108667 ref_len = 110430)\\n\",\n      \"2023-11-14 09:19:25 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint10.pt\\n\",\n      \"2023-11-14 09:19:25 | INFO | hw5.seq2seq | end of epoch 10\\n\",\n      \"2023-11-14 09:19:25 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:19:25 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 11:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:20:35 | INFO | hw5.seq2seq | training loss: 3.9998\\n\",\n      \"2023-11-14 09:20:35 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:20:35 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:20:45 | INFO | hw5.seq2seq | example source: right . as you can see , bart simpson is having a little argument .\\n\",\n      \"2023-11-14 09:20:45 | INFO | hw5.seq2seq | example hypothesis: 好 , 如你所見 , 巴特·塞普森有一場辯論 。\\n\",\n      \"2023-11-14 09:20:45 | INFO | hw5.seq2seq | example reference: 好 , 如你所見bartsimpson正和它老爸爭執\\n\",\n      \"2023-11-14 09:20:45 | INFO | hw5.seq2seq | validation loss:\\t3.8930\\n\",\n      \"2023-11-14 09:20:45 | INFO | hw5.seq2seq | BLEU = 18.22 46.8/24.0/13.2/7.7 (BP = 0.991 ratio = 0.991 hyp_len = 109465 ref_len = 110430)\\n\",\n      \"2023-11-14 09:20:45 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint11.pt\\n\",\n      \"2023-11-14 09:20:45 | INFO | hw5.seq2seq | end of epoch 11\\n\",\n      \"2023-11-14 09:20:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:20:45 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 12:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:21:56 | INFO | hw5.seq2seq | training loss: 3.9907\\n\",\n      \"2023-11-14 09:21:56 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:21:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:22:05 | INFO | hw5.seq2seq | example source: and if we look to the future , it's an unsustainable diet .\\n\",\n      \"2023-11-14 09:22:05 | INFO | hw5.seq2seq | example hypothesis: 如果我們看看未來 , 這是一個不可持續的飲食 。\\n\",\n      \"2023-11-14 09:22:05 | INFO | hw5.seq2seq | example reference: 如果我們想一想未來這絕不是長久之計\\n\",\n      \"2023-11-14 09:22:05 | INFO | hw5.seq2seq | validation loss:\\t3.8949\\n\",\n      \"2023-11-14 09:22:05 | INFO | hw5.seq2seq | BLEU = 18.12 48.7/25.0/13.8/8.0 (BP = 0.945 ratio = 0.946 hyp_len = 104495 ref_len = 110430)\\n\",\n      \"2023-11-14 09:22:05 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint12.pt\\n\",\n      \"2023-11-14 09:22:05 | INFO | hw5.seq2seq | end of epoch 12\\n\",\n      \"2023-11-14 09:22:05 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:22:05 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 13:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:23:16 | INFO | hw5.seq2seq | training loss: 3.9857\\n\",\n      \"2023-11-14 09:23:16 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:23:16 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"b8ad40654a754fd08cae2be15b23400f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:23:24 | INFO | hw5.seq2seq | example source: when you govern through fear and you govern through cruelty , it just doesn't work .\\n\",\n      \"2023-11-14 09:23:24 | INFO | hw5.seq2seq | example hypothesis: 當你穿越恐懼時 , 它就無法運作 。\\n\",\n      \"2023-11-14 09:23:24 | INFO | hw5.seq2seq | example reference: 透過恐懼 , 透過殘忍來治理國家 , 這是行不通的 。\\n\",\n      \"2023-11-14 09:23:24 | INFO | hw5.seq2seq | validation loss:\\t3.8942\\n\",\n      \"2023-11-14 09:23:24 | INFO | hw5.seq2seq | BLEU = 17.60 50.8/26.1/14.3/8.3 (BP = 0.883 ratio = 0.889 hyp_len = 98222 ref_len = 110430)\\n\",\n      \"2023-11-14 09:23:24 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint13.pt\\n\",\n      \"2023-11-14 09:23:24 | INFO | hw5.seq2seq | end of epoch 13\\n\",\n      \"2023-11-14 09:23:24 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:23:24 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d829cdb651a243279e4ec54c9d683c80\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 14:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:24:35 | INFO | hw5.seq2seq | training loss: 3.9772\\n\",\n      \"2023-11-14 09:24:35 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:24:35 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9df2eb12fbcb494782ef3841760fc096\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:24:44 | INFO | hw5.seq2seq | example source: this project breaks ground in just two months .\\n\",\n      \"2023-11-14 09:24:44 | INFO | hw5.seq2seq | example hypothesis: 這個計畫在兩個月內完成了 。\\n\",\n      \"2023-11-14 09:24:44 | INFO | hw5.seq2seq | example reference: 這個計畫再兩個月就要開工了 。\\n\",\n      \"2023-11-14 09:24:44 | INFO | hw5.seq2seq | validation loss:\\t3.8858\\n\",\n      \"2023-11-14 09:24:44 | INFO | hw5.seq2seq | BLEU = 18.07 48.9/25.1/13.8/8.0 (BP = 0.941 ratio = 0.943 hyp_len = 104116 ref_len = 110430)\\n\",\n      \"2023-11-14 09:24:44 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint14.pt\\n\",\n      \"2023-11-14 09:24:44 | INFO | hw5.seq2seq | end of epoch 14\\n\",\n      \"2023-11-14 09:24:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:24:44 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"baed1109dab147bc850c289441958108\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 15:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:25:55 | INFO | hw5.seq2seq | training loss: 3.9713\\n\",\n      \"2023-11-14 09:25:55 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:25:55 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7caa06140a2c4e48b75d9e28df0c7a19\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:26:04 | INFO | hw5.seq2seq | example source: and these preservatives had been found in breast cancer tumors .\\n\",\n      \"2023-11-14 09:26:04 | INFO | hw5.seq2seq | example hypothesis: 這些保守派已經發現在乳癌腫瘤中 。\\n\",\n      \"2023-11-14 09:26:04 | INFO | hw5.seq2seq | example reference: 而乳癌腫瘤中也發現了這些防腐劑 。\\n\",\n      \"2023-11-14 09:26:04 | INFO | hw5.seq2seq | validation loss:\\t3.8906\\n\",\n      \"2023-11-14 09:26:04 | INFO | hw5.seq2seq | BLEU = 18.01 50.4/26.0/14.4/8.4 (BP = 0.901 ratio = 0.905 hyp_len = 99973 ref_len = 110430)\\n\",\n      \"2023-11-14 09:26:04 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint15.pt\\n\",\n      \"2023-11-14 09:26:04 | INFO | hw5.seq2seq | end of epoch 15\\n\",\n      \"2023-11-14 09:26:04 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:26:04 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"801a7390a086406c9f9c7c0f42d4b93f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 16:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:27:14 | INFO | hw5.seq2seq | training loss: 3.9807\\n\",\n      \"2023-11-14 09:27:14 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:27:14 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8225e85d6991470cbe7f2fc3fa9a6a14\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:27:23 | INFO | hw5.seq2seq | example source: history is strewn with the cases when they've all got it wrong .\\n\",\n      \"2023-11-14 09:27:23 | INFO | hw5.seq2seq | example hypothesis: 歷史上 , 當他們都犯錯時 , 他們都犯錯了 。\\n\",\n      \"2023-11-14 09:27:23 | INFO | hw5.seq2seq | example reference: 歷史上到處都有我們全都錯了的實例\\n\",\n      \"2023-11-14 09:27:23 | INFO | hw5.seq2seq | validation loss:\\t3.8831\\n\",\n      \"2023-11-14 09:27:23 | INFO | hw5.seq2seq | BLEU = 18.37 48.2/24.7/13.6/7.9 (BP = 0.970 ratio = 0.971 hyp_len = 107180 ref_len = 110430)\\n\",\n      \"2023-11-14 09:27:23 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint16.pt\\n\",\n      \"2023-11-14 09:27:24 | INFO | hw5.seq2seq | end of epoch 16\\n\",\n      \"2023-11-14 09:27:24 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:27:24 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"52fdb2e1dd9d4e2e89da4b2dca9d2911\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 17:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:28:34 | INFO | hw5.seq2seq | training loss: 3.9752\\n\",\n      \"2023-11-14 09:28:34 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:28:34 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"04d890baa96343439280dcefae5027fd\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:28:43 | INFO | hw5.seq2seq | example source: please raise your hand if something applies to you .\\n\",\n      \"2023-11-14 09:28:43 | INFO | hw5.seq2seq | example hypothesis: 請舉手 , 請舉手 , 請舉手 。\\n\",\n      \"2023-11-14 09:28:43 | INFO | hw5.seq2seq | example reference: 如果這些事曾發生在你身上請舉手 。\\n\",\n      \"2023-11-14 09:28:43 | INFO | hw5.seq2seq | validation loss:\\t3.8833\\n\",\n      \"2023-11-14 09:28:43 | INFO | hw5.seq2seq | BLEU = 18.28 47.7/24.4/13.4/7.8 (BP = 0.980 ratio = 0.980 hyp_len = 108275 ref_len = 110430)\\n\",\n      \"2023-11-14 09:28:43 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint17.pt\\n\",\n      \"2023-11-14 09:28:43 | INFO | hw5.seq2seq | end of epoch 17\\n\",\n      \"2023-11-14 09:28:43 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:28:43 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"03fd6e565389401bb6bdc49b4762f506\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 18:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:29:54 | INFO | hw5.seq2seq | training loss: 3.9703\\n\",\n      \"2023-11-14 09:29:54 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:29:54 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4b119db9839e44109d14718d0ec83cd4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:30:03 | INFO | hw5.seq2seq | example source: and the fact is , millions is a gross estimate , because we don't really know how many kids die each year of this .\\n\",\n      \"2023-11-14 09:30:03 | INFO | hw5.seq2seq | example hypothesis: 事實上 , 數百萬名是gos估計 , 因為我們不知道每年有多少孩子死亡 。\\n\",\n      \"2023-11-14 09:30:03 | INFO | hw5.seq2seq | example reference: 而且事實是 , 數百萬只是一個粗略的估計 , 因為我們真的不知道每年究竟有多少孩子死於這些疾病 。\\n\",\n      \"2023-11-14 09:30:03 | INFO | hw5.seq2seq | validation loss:\\t3.8708\\n\",\n      \"2023-11-14 09:30:03 | INFO | hw5.seq2seq | BLEU = 18.53 47.6/24.5/13.6/7.9 (BP = 0.986 ratio = 0.986 hyp_len = 108937 ref_len = 110430)\\n\",\n      \"2023-11-14 09:30:03 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint18.pt\\n\",\n      \"2023-11-14 09:30:03 | INFO | hw5.seq2seq | end of epoch 18\\n\",\n      \"2023-11-14 09:30:03 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:30:03 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8d1ff46af25e4666ba2e5bd305935fba\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 19:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:31:14 | INFO | hw5.seq2seq | training loss: 3.9655\\n\",\n      \"2023-11-14 09:31:14 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:31:14 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"bb4cec39c649420e908a7c7463aa1160\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:31:23 | INFO | hw5.seq2seq | example source: and he didn’t know it at the time , but over the next five decades , he'd draw on these dueling identities to forge a whole new way to think about pain .\\n\",\n      \"2023-11-14 09:31:23 | INFO | hw5.seq2seq | example hypothesis: 他當時不知道 , 但在接下來的五十年裡 , 他會畫出這張圖片 , 描繪出一種全新的角度來思考疼痛 。\\n\",\n      \"2023-11-14 09:31:23 | INFO | hw5.seq2seq | example reference: 在那時他並不知道但在接下來的50年他將會利用這兩個相對決的生命經驗去探索關於疼痛的新思路\\n\",\n      \"2023-11-14 09:31:23 | INFO | hw5.seq2seq | validation loss:\\t3.8732\\n\",\n      \"2023-11-14 09:31:23 | INFO | hw5.seq2seq | BLEU = 18.45 48.6/25.1/13.9/8.0 (BP = 0.961 ratio = 0.962 hyp_len = 106239 ref_len = 110430)\\n\",\n      \"2023-11-14 09:31:23 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint19.pt\\n\",\n      \"2023-11-14 09:31:23 | INFO | hw5.seq2seq | end of epoch 19\\n\",\n      \"2023-11-14 09:31:23 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:31:23 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"98d1ca9b5ba04c9e9287d901ff59c8b9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 20:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:32:33 | INFO | hw5.seq2seq | training loss: 3.9597\\n\",\n      \"2023-11-14 09:32:33 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:32:33 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"dbb06a43ddc349edabc5589cfb30ac01\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:32:42 | INFO | hw5.seq2seq | example source: and i have been fortunate enough to find things like the first eggs in the western hemisphere and the first baby dinosaurs in nests , the first dinosaur embryos and massive accumulations of bones .\\n\",\n      \"2023-11-14 09:32:42 | INFO | hw5.seq2seq | example hypothesis: 我很幸運能找到像第一次在西方世界的第一隻恐龍胚胎和大量的骨頭 。\\n\",\n      \"2023-11-14 09:32:42 | INFO | hw5.seq2seq | example reference: 和我已經夠幸運能找到在西半球裡的第一只蛋和第一只恐龍寶寶在巢裡第一個恐龍胚胎和大量積累的骨頭\\n\",\n      \"2023-11-14 09:32:42 | INFO | hw5.seq2seq | validation loss:\\t3.8734\\n\",\n      \"2023-11-14 09:32:42 | INFO | hw5.seq2seq | BLEU = 18.33 49.5/25.5/14.1/8.2 (BP = 0.940 ratio = 0.941 hyp_len = 103949 ref_len = 110430)\\n\",\n      \"2023-11-14 09:32:43 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint20.pt\\n\",\n      \"2023-11-14 09:32:43 | INFO | hw5.seq2seq | end of epoch 20\\n\",\n      \"2023-11-14 09:32:43 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:32:43 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"16a028323570444586aafe2bb4213991\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 21:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:33:53 | INFO | hw5.seq2seq | training loss: 3.9537\\n\",\n      \"2023-11-14 09:33:53 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:33:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0f3f54edbc094b7c9eedc3ea3b4ea005\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:34:02 | INFO | hw5.seq2seq | example source: we've had the biggest transformation of any ancient subject that i could ever imagine with computers .\\n\",\n      \"2023-11-14 09:34:02 | INFO | hw5.seq2seq | example hypothesis: 我們已經有了最大的改變 , 我可以想像電腦的任何古代主題 。\\n\",\n      \"2023-11-14 09:34:02 | INFO | hw5.seq2seq | example reference: 我們經歷了電腦這個最大的變革比任何古往的科目都要巨大\\n\",\n      \"2023-11-14 09:34:02 | INFO | hw5.seq2seq | validation loss:\\t3.8631\\n\",\n      \"2023-11-14 09:34:02 | INFO | hw5.seq2seq | BLEU = 18.66 48.2/24.7/13.7/8.0 (BP = 0.981 ratio = 0.982 hyp_len = 108396 ref_len = 110430)\\n\",\n      \"2023-11-14 09:34:02 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint21.pt\\n\",\n      \"2023-11-14 09:34:02 | INFO | hw5.seq2seq | end of epoch 21\\n\",\n      \"2023-11-14 09:34:02 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:34:02 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ba1533b95b1d40d5ab242a758500dbd4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 22:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:35:12 | INFO | hw5.seq2seq | training loss: 3.9512\\n\",\n      \"2023-11-14 09:35:12 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:35:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e1f98d6680644e5481a7107178e6b3d6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:35:21 | INFO | hw5.seq2seq | example source: there is another visual phenomenon that looks similar to floaters but is in fact unrelated .\\n\",\n      \"2023-11-14 09:35:21 | INFO | hw5.seq2seq | example hypothesis: 另一種視覺現象看起來很類似 , 但其實沒有關係 。\\n\",\n      \"2023-11-14 09:35:21 | INFO | hw5.seq2seq | example reference: 還有另一個視覺現象看起來像飛蚊症但其實毫無關連\\n\",\n      \"2023-11-14 09:35:21 | INFO | hw5.seq2seq | validation loss:\\t3.8760\\n\",\n      \"2023-11-14 09:35:21 | INFO | hw5.seq2seq | BLEU = 18.30 49.6/25.6/14.2/8.3 (BP = 0.931 ratio = 0.933 hyp_len = 103063 ref_len = 110430)\\n\",\n      \"2023-11-14 09:35:21 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint22.pt\\n\",\n      \"2023-11-14 09:35:21 | INFO | hw5.seq2seq | end of epoch 22\\n\",\n      \"2023-11-14 09:35:21 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:35:21 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f2b2967c3ee2428c96f77510713fa0ec\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 23:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:36:32 | INFO | hw5.seq2seq | training loss: 3.9477\\n\",\n      \"2023-11-14 09:36:32 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:36:32 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"39d263753c9b4509b3a5d55de1521539\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:36:41 | INFO | hw5.seq2seq | example source: ynh: yes , very much so .\\n\",\n      \"2023-11-14 09:36:41 | INFO | hw5.seq2seq | example hypothesis: 尤:是的 , 非常的 。\\n\",\n      \"2023-11-14 09:36:41 | INFO | hw5.seq2seq | example reference: 尤:是的 , 就是這樣 。\\n\",\n      \"2023-11-14 09:36:41 | INFO | hw5.seq2seq | validation loss:\\t3.8602\\n\",\n      \"2023-11-14 09:36:41 | INFO | hw5.seq2seq | BLEU = 18.66 48.3/24.8/13.7/7.9 (BP = 0.984 ratio = 0.984 hyp_len = 108687 ref_len = 110430)\\n\",\n      \"2023-11-14 09:36:41 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint23.pt\\n\",\n      \"2023-11-14 09:36:41 | INFO | hw5.seq2seq | end of epoch 23\\n\",\n      \"2023-11-14 09:36:41 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:36:41 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9ccc0a2285974c3a886db200bf0683cc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 24:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:37:52 | INFO | hw5.seq2seq | training loss: 3.9419\\n\",\n      \"2023-11-14 09:37:52 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:37:52 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e393120978eb4400a266c7d7735dc577\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:38:01 | INFO | hw5.seq2seq | example source: but the first thing you need to do is let go of the bad ideas you have about sex .\\n\",\n      \"2023-11-14 09:38:01 | INFO | hw5.seq2seq | example hypothesis: 但首先 , 你需要做的事 , 就是讓你對性愛情感興趣的好點子 。\\n\",\n      \"2023-11-14 09:38:01 | INFO | hw5.seq2seq | example reference: 但你需要先做一件事 , 放掉你對於性愛的不好想法 。\\n\",\n      \"2023-11-14 09:38:01 | INFO | hw5.seq2seq | validation loss:\\t3.8633\\n\",\n      \"2023-11-14 09:38:01 | INFO | hw5.seq2seq | BLEU = 18.49 49.3/25.4/14.1/8.2 (BP = 0.946 ratio = 0.947 hyp_len = 104606 ref_len = 110430)\\n\",\n      \"2023-11-14 09:38:01 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint24.pt\\n\",\n      \"2023-11-14 09:38:01 | INFO | hw5.seq2seq | end of epoch 24\\n\",\n      \"2023-11-14 09:38:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:38:01 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"66932be3e3f541febc58992481213962\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 25:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:39:12 | INFO | hw5.seq2seq | training loss: 3.9396\\n\",\n      \"2023-11-14 09:39:12 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:39:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1f9c709750e84c8da3fcfbf5ed2cfc93\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:39:21 | INFO | hw5.seq2seq | example source: those subsidies stop companies from competing on equal terms .\\n\",\n      \"2023-11-14 09:39:21 | INFO | hw5.seq2seq | example hypothesis: 那些補助的公司比平等的公司更加平等 。\\n\",\n      \"2023-11-14 09:39:21 | INFO | hw5.seq2seq | example reference: 那些補助 , 阻礙了公司之間的公平競爭 。\\n\",\n      \"2023-11-14 09:39:21 | INFO | hw5.seq2seq | validation loss:\\t3.8611\\n\",\n      \"2023-11-14 09:39:21 | INFO | hw5.seq2seq | BLEU = 18.50 49.0/25.3/14.0/8.2 (BP = 0.953 ratio = 0.955 hyp_len = 105406 ref_len = 110430)\\n\",\n      \"2023-11-14 09:39:21 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint25.pt\\n\",\n      \"2023-11-14 09:39:21 | INFO | hw5.seq2seq | end of epoch 25\\n\",\n      \"2023-11-14 09:39:21 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:39:21 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1ac0e91fedbc421ba0154234fe24faaf\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 26:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:40:32 | INFO | hw5.seq2seq | training loss: 3.9310\\n\",\n      \"2023-11-14 09:40:32 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:40:32 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"390cc8f0ff5a48c7b28f448b22818f67\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:40:41 | INFO | hw5.seq2seq | example source: i believe so , but before we move on , what do we mean by democracy ?\\n\",\n      \"2023-11-14 09:40:41 | INFO | hw5.seq2seq | example hypothesis: 我相信 , 但在我們繼續前進 , 我們為何民主 ?\\n\",\n      \"2023-11-14 09:40:41 | INFO | hw5.seq2seq | example reference: 我相信是對的 , 但在我們繼續談下去之前 , 我們所說的民主是什麼 ?\\n\",\n      \"2023-11-14 09:40:41 | INFO | hw5.seq2seq | validation loss:\\t3.8619\\n\",\n      \"2023-11-14 09:40:41 | INFO | hw5.seq2seq | BLEU = 18.45 48.7/25.1/13.9/8.1 (BP = 0.959 ratio = 0.960 hyp_len = 105962 ref_len = 110430)\\n\",\n      \"2023-11-14 09:40:41 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint26.pt\\n\",\n      \"2023-11-14 09:40:41 | INFO | hw5.seq2seq | end of epoch 26\\n\",\n      \"2023-11-14 09:40:41 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:40:41 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3a6f6250248c4e70a6d33c1f8f466a99\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 27:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:41:52 | INFO | hw5.seq2seq | training loss: 3.9290\\n\",\n      \"2023-11-14 09:41:52 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:41:52 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"66bbfc69e7ca4901beb5c74f074bad92\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:42:01 | INFO | hw5.seq2seq | example source: so , a team of berkeley researchers with 15 million dollars from the gates foundation is engineering , designing a radical new way to make the key ingredient , called artemisinin , and they're going to make that drug 10 times cheaper .\\n\",\n      \"2023-11-14 09:42:01 | INFO | hw5.seq2seq | example hypothesis: 所以 , 布萊爾斯基金會的團隊成立了一百五百萬美金的團隊 , 設計了一種激進式的新方法 , 來製造出最重要的成份 , 叫做 「 藝術毒素 」 , 他們會讓這種藥品更便宜 。\\n\",\n      \"2023-11-14 09:42:01 | INFO | hw5.seq2seq | example reference: 柏克萊的團隊得到gatesfoundation的1千5百萬的經費 , 以研發設計一顛覆式的新方法來製造一個叫 \\\" 青蒿素 \\\" 的關鍵成分希望能製造出10倍便宜的藥物\\n\",\n      \"2023-11-14 09:42:01 | INFO | hw5.seq2seq | validation loss:\\t3.8599\\n\",\n      \"2023-11-14 09:42:01 | INFO | hw5.seq2seq | BLEU = 18.41 48.7/25.0/13.8/8.0 (BP = 0.961 ratio = 0.962 hyp_len = 106224 ref_len = 110430)\\n\",\n      \"2023-11-14 09:42:01 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint27.pt\\n\",\n      \"2023-11-14 09:42:01 | INFO | hw5.seq2seq | end of epoch 27\\n\",\n      \"2023-11-14 09:42:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:42:01 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fb371b5511e34e458a7c0dd01ec6c373\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 28:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:43:12 | INFO | hw5.seq2seq | training loss: 3.9261\\n\",\n      \"2023-11-14 09:43:12 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:43:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d215440dac624055bc683288638dade9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:43:21 | INFO | hw5.seq2seq | example source: even another black hole won’t destroy it– the two will simply merge into a larger black hole , releasing a bit of energy as gravitational waves in the process .\\n\",\n      \"2023-11-14 09:43:21 | INFO | hw5.seq2seq | example hypothesis: 即使另一個黑洞也不會摧毀它 , 它會把兩個能量加入一個大黑洞 , 釋放出能量 , 重力波在過程中 。\\n\",\n      \"2023-11-14 09:43:21 | INFO | hw5.seq2seq | example reference: 就連另一個黑洞也無法摧毀它 , 兩個黑洞只會融合成一個更大的黑洞 , 在過程中以重力波的形式釋放出一點能量 。\\n\",\n      \"2023-11-14 09:43:21 | INFO | hw5.seq2seq | validation loss:\\t3.8530\\n\",\n      \"2023-11-14 09:43:21 | INFO | hw5.seq2seq | BLEU = 18.58 48.8/25.2/13.9/8.1 (BP = 0.964 ratio = 0.965 hyp_len = 106542 ref_len = 110430)\\n\",\n      \"2023-11-14 09:43:21 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint28.pt\\n\",\n      \"2023-11-14 09:43:21 | INFO | hw5.seq2seq | end of epoch 28\\n\",\n      \"2023-11-14 09:43:21 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:43:21 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"297d2a9dfaf2493dbd4f22216bec7df3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 29:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:44:32 | INFO | hw5.seq2seq | training loss: 3.9210\\n\",\n      \"2023-11-14 09:44:32 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:44:32 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"edb6284055414f2ebc7c9fe6e5b8e119\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:44:41 | INFO | hw5.seq2seq | example source: but the question is: can we own our duality ?\\n\",\n      \"2023-11-14 09:44:41 | INFO | hw5.seq2seq | example hypothesis: 但問題是:我們能否擁有我們的權力 ?\\n\",\n      \"2023-11-14 09:44:41 | INFO | hw5.seq2seq | example reference: 但問題是:我們能擁有屬於我們的二元性嗎 ?\\n\",\n      \"2023-11-14 09:44:41 | INFO | hw5.seq2seq | validation loss:\\t3.8545\\n\",\n      \"2023-11-14 09:44:41 | INFO | hw5.seq2seq | BLEU = 18.76 49.2/25.4/14.0/8.2 (BP = 0.964 ratio = 0.965 hyp_len = 106527 ref_len = 110430)\\n\",\n      \"2023-11-14 09:44:41 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint29.pt\\n\",\n      \"2023-11-14 09:44:41 | INFO | hw5.seq2seq | end of epoch 29\\n\",\n      \"2023-11-14 09:44:41 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:44:41 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"16a63190b7f845fc89771302eedfb988\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 30:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:45:52 | INFO | hw5.seq2seq | training loss: 3.9181\\n\",\n      \"2023-11-14 09:45:52 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:45:52 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d8b0dc8c8013408cb193f757de2efde1\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:46:01 | INFO | hw5.seq2seq | example source: be serious , it says .\\n\",\n      \"2023-11-14 09:46:01 | INFO | hw5.seq2seq | example hypothesis: 很嚴肅 , 說吧 。\\n\",\n      \"2023-11-14 09:46:01 | INFO | hw5.seq2seq | example reference: 嚴肅起來 , 信裡寫道\\n\",\n      \"2023-11-14 09:46:01 | INFO | hw5.seq2seq | validation loss:\\t3.8544\\n\",\n      \"2023-11-14 09:46:01 | INFO | hw5.seq2seq | BLEU = 18.67 47.7/24.3/13.4/7.8 (BP = 1.000 ratio = 1.007 hyp_len = 111156 ref_len = 110430)\\n\",\n      \"2023-11-14 09:46:01 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint30.pt\\n\",\n      \"2023-11-14 09:46:01 | INFO | hw5.seq2seq | end of epoch 30\\n\",\n      \"2023-11-14 09:46:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # train for one epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:46:02 | INFO | fairseq.tasks.text_to_speech | Please install tensorboardX: pip install tensorboardX\\n\",\n      \"Namespace(inputs=['./checkpoints/rnn'], output='./checkpoints/rnn/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/rnn/checkpoint30.pt', './checkpoints/rnn/checkpoint29.pt', './checkpoints/rnn/checkpoint28.pt', './checkpoints/rnn/checkpoint27.pt', './checkpoints/rnn/checkpoint26.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/rnn/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# averaging a few checkpoints can have a similar effect to ensemble\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## Confirm model weights used to generate submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:46:03 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/rnn/avg_last_5_checkpoint.pt: step=unknown loss=3.854437828063965 bleu=18.67239828727367\\n\",\n      \"2023-11-14 09:46:03 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-14 09:46:03 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:46:13 | INFO | hw5.seq2seq | example source: and there is also a frontier in research physics here , it's just that nobody talks about it .\\n\",\n      \"2023-11-14 09:46:13 | INFO | hw5.seq2seq | example hypothesis: 在研究物理上 , 這裡有一部分是沒有人談論它的 。\\n\",\n      \"2023-11-14 09:46:13 | INFO | hw5.seq2seq | example reference: 這裡也有物理研究中尚未完全開拓的疆界 , 只是沒有人在談論它 。\\n\",\n      \"2023-11-14 09:46:13 | INFO | hw5.seq2seq | validation loss:\\t3.8278\\n\",\n      \"2023-11-14 09:46:13 | INFO | hw5.seq2seq | BLEU = 18.83 49.2/25.4/14.1/8.2 (BP = 0.967 ratio = 0.967 hyp_len = 106793 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : latest epoch\\n\",\n    \"# checkpoint_best.pt : highest validation bleu\\n\",\n    \"# avg_last_5_checkpoint.pt: the average of last 5 epochs\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## Generate Prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # sort based on the order before preprocess\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-14 09:46:13 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.en\\n\",\n      \"2023-11-14 09:46:13 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.zh\\n\",\n      \"2023-11-14 09:46:13 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 test en-zh 4000 examples\\n\",\n      \"2023-11-14 09:46:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-14 09:46:13 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-14 09:46:13 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-14 09:46:13 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f4bd742abae0497aabdd8f236fde2ac0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"prediction:   0%|          | 0/18 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[49], line 1\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0m \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## Train a backward translation model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. Switch the source_lang and target_lang in **config**\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## Generate synthetic data with backward model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### Download monolingual data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: clean corpus\\n\",\n    \"\\n\",\n    \"1. remove sentences that are too long or too short\\n\",\n    \"2. unify punctuation\\n\",\n    \"\\n\",\n    \"hint: you can use clean_s() defined above to do this\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: Subword Units\\n\",\n    \"\\n\",\n    \"Use the spm model of the backward model to tokenize the data into subword units\\n\",\n    \"\\n\",\n    \"hint: spm model is located at DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### Binarize\\n\",\n    \"\\n\",\n    \"use fairseq to binarize data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: Generate synthetic data with backward model\\n\",\n    \"\\n\",\n    \"Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"then you can use 'generate_prediction(model, task, split=\\\"split_name\\\")' to generate translation prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"# ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: do prediction on split='mono' to create prediction_file\\n\",\n    \"# generate_prediction( ... ,split=... ,outfile=... )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: Create new dataset\\n\",\n    \"\\n\",\n    \"1. Combine the prediction data with monolingual data\\n\",\n    \"2. Use the original spm model to tokenize data into Subword Units\\n\",\n    \"3. Binarize data with fairseq\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Combine prediction_file (.en) and mono.zh (.zh) into a new dataset.\\n\",\n    \"#\\n\",\n    \"# hint: tokenize prediction_file with the spm model\\n\",\n    \"# spm_model.encode(line, out_type=str)\\n\",\n    \"# output: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# hint: use fairseq to binarize these two files again\\n\",\n    \"# binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"# src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"# tgt_dict_file = src_dict_file\\n\",\n    \"# monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"# if binpath.exists():\\n\",\n    \"#     print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"# else:\\n\",\n    \"#     !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"#         --source-lang 'zh'\\\\\\n\",\n    \"#         --target-lang 'en'\\\\\\n\",\n    \"#         --trainpref {monopref}\\\\\\n\",\n    \"#         --destdir {binpath}\\\\\\n\",\n    \"#         --srcdict {src_dict_file}\\\\\\n\",\n    \"#         --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"#         --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create a new dataset from all the files prepared above\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"Created new dataset \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. Change the datadir in **config** (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. Switch back the source_lang and target_lang in **config** (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/en/HW05_Simple_16.63.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Simple Baseline\\n\",\n    \"Just run the sample code, and here you can see the results directly.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# Homework Description\\n\",\n    \"- English to Chinese (Traditional) Translation\\n\",\n    \"  - Input: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - Output: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - Train a simple RNN seq2seq to acheive translation\\n\",\n    \"    - Switch to transformer model to boost performance\\n\",\n    \"    - Apply Back-translation to furthur boost performance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Mon Nov 13 13:46:02 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   28C    P8    20W / 170W |    383MiB / 12288MiB |      5%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1190      G   /usr/lib/xorg/Xorg                180MiB |\\n\",\n      \"|    0   N/A  N/A      1505      G   /usr/bin/gnome-shell               20MiB |\\n\",\n      \"|    0   N/A  N/A      1708      G   ...nlogin/bin/sunloginclient        9MiB |\\n\",\n      \"|    0   N/A  N/A     39568      G   ...2gtk-4.0/WebKitWebProcess       11MiB |\\n\",\n      \"|    0   N/A  N/A     53123      G   /usr/lib/firefox/firefox          152MiB |\\n\",\n      \"|    0   N/A  N/A     68307      G   ...2gtk-4.0/WebKitWebProcess        6MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# Download and import required packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:47:09 | INFO | fairseq.tasks.text_to_speech | Please install tensorboardX: pip install tensorboardX\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# Fix random seed\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# Dataset\\n\",\n    \"\\n\",\n    \"## En-Zh Bilingual Parallel Corpus\\n\",\n    \"* TED2020\\n\",\n    \"    - Raw: 400,726 (sentences)   \\n\",\n    \"    - Processed: 394,052 (sentences)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## Testdata\\n\",\n    \"- Size: 4,000 (sentences)\\n\",\n    \"- **Chinese translation is undisclosed. The provided (.zh) file is psuedo translation, each line is a '。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## Dataset Download\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## Language\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## Preprocess files\\n\",\n    \"- strQ2B(): Convert full-width characters to half-width characters\\n\",\n    \"- clean_s(): Clean the text by removing characters such as commas, dashes, and spaces\\n\",\n    \"- len_s(): Return the length of the text\\n\",\n    \"- clean_corpus(): Clean and process the specified text files using the above functions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## Split into train/valid\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000~4000 would suffice\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## Subword Units\\n\",\n    \"Out of vocabulary (OOV) has been a major problem in machine translation. This can be alleviated by using subword units.\\n\",\n    \"- We will use the [sentencepiece](#kudo-richardson-2018-sentencepiece) package\\n\",\n    \"- select 'unigram' or 'byte-pair encoding (BPE)' algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## Binarize the data with fairseq\\n\",\n    \"Prepare the files in pairs for both the source and target languages.\\n\",\n    \"\\n\",\n    \"In case a pair is unavailable, generate a pseudo pair to facilitate binarization.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# Configuration for experiments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/rnn\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # cpu threads when fetching & processing data.\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size in terms of tokens. gradient accumulation increases the effective batchsize.\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # the lr s calculated from Noam lr scheduler. you can tune the maximum lr by this factor.\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # clipping gradient norm helps alleviate gradient exploding\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # maximum epochs for training\\n\",\n    \"    max_epoch=15,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # beam size for beam search\\n\",\n    \"    beam=5,\\n\",\n    \"    # generate sequences of maximum length ax + b, where x is the source length\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # when decoding, post process sentence by removing sentencepiece symbols and jieba tokenization.\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # checkpoints\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume from checkpoint name (under config.savedir)\\n\",\n    \"\\n\",\n    \"    # logging\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# Logging\\n\",\n    \"- logging package logs ordinary messages\\n\",\n    \"- wandb logs the loss, bleu, etc. in the training process\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA Environments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:47:12 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# Dataloading\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## We borrow the TranslationTask from fairseq\\n\",\n    \"* used to load the binarized data created above\\n\",\n    \"* well-implemented data iterator (dataloader)\\n\",\n    \"* built-in task.source_dictionary and task.target_dictionary are also handy\\n\",\n    \"* well-implemented beam search decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:47:12 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:47:12 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.en\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.zh\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 train en-zh 390112 examples\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.en\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.zh\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# Dataset iterator\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* Controls every batch to contain no more than N tokens, which optimizes GPU memory efficiency\\n\",\n    \"* Shuffles the training set for every epoch\\n\",\n    \"* Ignore sentences exceeding maximum length\\n\",\n    \"* Pad all sentences in a batch to the same length, which enables parallel computing by GPU\\n\",\n    \"* Add eos and shift one token\\n\",\n    \"    - teacher forcing: to train the model to predict the next token based on prefix, we feed the right shifted target sequence as the decoder input.\\n\",\n    \"    - generally, prepending bos to the target would do the job (as shown below)\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - in fairseq however, this is done by moving the eos token to the begining. Empirically, this has the same effect. For instance:\\n\",\n    \"    ```\\n\",\n    \"    # output target (target) and Decoder input (prev_output_tokens):\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:47:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-13 13:47:12 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-13 13:47:12 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # Set this to False to speed up. However, if set to False, changing max_tokens beyond\\n\",\n    \"        # first call of this method has no effect.\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# Model Architecture\\n\",\n    \"* We again inherit fairseq's encoder, decoder and model, so that in the testing phase we can directly leverage fairseq's beam search decoder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# Encoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- The Encoder is a RNN or Transformer Encoder. The following description is for RNN. For every input token, Encoder will generate a output vector and a hidden states vector, and the hidden states vector is passed on to the next step. In other words, the Encoder sequentially reads in the input sequence, and outputs a single vector at each timestep, then finally outputs the final hidden states, or content vector, at the last timestep.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: the dimension of embeddings, this compresses the one-hot vector into fixed dimensions, which achieves dimension reduction\\n\",\n    \"      - encoder_ffn_embed_dim: the dimension of hidden states and output vectors\\n\",\n    \"      - encoder_layers: the number of layers for Encoder RNN\\n\",\n    \"      - dropout determines the probability of a neuron's activation being set to 0, in order to prevent overfitting. Generally this is applied in training, and removed in testing.\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq. it's used to obtain the padding index, and in turn the encoder padding mask.\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: integer sequence representing english e.g. 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the output of RNN at each timestep, can be furthur processed by Attention\\n\",\n    \"    - *final_hiddens*: the hidden states of each timestep, will be passed to decoder for decoding\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # get embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # pass thru bidirectional RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # Since Encoder is bidirectional, we need to concatenate the hidden states of two directions\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## Attention\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- When the input sequence is long, \\\"content vector\\\" alone cannot accurately represent the whole sequence, attention mechanism can provide the Decoder more information.\\n\",\n    \"- According to the **Decoder embeddings** of the current timestep, match the **Encoder outputs** with decoder embeddings to determine correlation, and then sum the Encoder outputs weighted by the correlation as the input to **Decoder** RNN.\\n\",\n    \"- Common attention implementations use neural network / dot product as the correlation between **query** (decoder embeddings) and **key** (Encoder outputs), followed by **softmax**  to obtain a distribution, and finally **values** (Encoder outputs) is **weighted sum**-ed by said distribution.\\n\",\n    \"\\n\",\n    \"- Parameters:\\n\",\n    \"  - *input_embed_dim*: dimensionality of key, should be that of the vector in decoder to attend others\\n\",\n    \"  - *source_embed_dim*: dimensionality of query, should be that of the vector to be attended to (encoder outputs)\\n\",\n    \"  - *output_embed_dim*: dimensionality of value, should be that of the vector after attention, expected by the next layer\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: is the key, the vector to attend to others\\n\",\n    \"    - *encoder_outputs*:  is the query/value, the vector to be attended to\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: the context vector after attention\\n\",\n    \"    - *attention score*: the attention distribution\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # convert all to batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # project to the dimensionality of encoder_outputs\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # compute attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # cancel the attention at positions corresponding to padding\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # softmax on the dimension corresponding to source sequence\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) weighted sum\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# Decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* The hidden states of **Decoder** will be initialized by the final hidden states of **Encoder** (the content vector)\\n\",\n    \"* At the same time, **Decoder** will change its hidden states based on the input of the current timestep (the outputs of previous timesteps), and generates an output\\n\",\n    \"* Attention improves the performance\\n\",\n    \"* The seq2seq steps are implemented in decoder, so that later the Seq2Seq class can accept RNN and Transformer, without furthur modification.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: is the dimensionality of the decoder embeddings, similar to encoder_embed_dim，\\n\",\n    \"      - decoder_ffn_embed_dim: is the dimensionality of the decoder RNN hidden states, similar to encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: number of layers of RNN decoder\\n\",\n    \"      - share_decoder_input_output_embed: usually, the projection matrix of the decoder will share weights with the decoder input embeddings\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"- Inputs:\\n\",\n    \"    - *prev_output_tokens*: integer sequence representing the right-shifted target e.g. 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: encoder's output.\\n\",\n    \"    - *incremental_state*: in order to speed up decoding during test time, we will save the hidden state of each timestep. see forward() for details.\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the logits (before softmax) output of decoder for each timesteps\\n\",\n    \"    - *extra*: unused\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # extract the outputs from encoder\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # if the information from last timestep is retained, we can continue from there instead of starting from bos\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # incremental state does not exist, either this is training time, or the first timestep of test time\\n\",\n    \"            # prepare for seq2seq: pass the encoder_hidden to the decoder hidden states\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # pass thru unidirectional RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # project to embedding size (if hidden differs from embed size, and share_embedding is True,\\n\",\n    \"        # we need to do an extra projection)\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # project to vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, record the hidden states of current timestep, which will be restored in the next timestep\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(\\n\",\n    \"        self,\\n\",\n    \"        incremental_state,\\n\",\n    \"        new_order,\\n\",\n    \"    ):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- Composed of **Encoder** and **Decoder**\\n\",\n    \"- Recieves inputs and pass to **Encoder**\\n\",\n    \"- Pass the outputs from **Encoder** to **Decoder**\\n\",\n    \"- **Decoder** will decode according to outputs of previous timesteps as well as **Encoder** outputs  \\n\",\n    \"- Once done decoding, return the **Decoder** outputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# Model Initialization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # HINT: transformer architecture\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # HINT: TODO: switch to TransformerEncoder & TransformerDecoder\\n\",\n    \"    encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    # encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # sequence to sequence model\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # initialization for seq2seq model is important, requires extra handling\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # weight initialization\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## Architecture Related Configuration\\n\",\n    \"\\n\",\n    \"For strong baseline, please refer to the hyperparameters for *transformer-base* in Table 3 in [Attention is all you need](#vaswani2017)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=256,\\n\",\n    \"    encoder_ffn_embed_dim=512,\\n\",\n    \"    encoder_layers=1,\\n\",\n    \"    decoder_embed_dim=256,\\n\",\n    \"    decoder_ffn_embed_dim=1024,\\n\",\n    \"    decoder_layers=1,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# HINT: these patches on parameters for Transformer\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=4\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=4\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # patches on default parameters for Transformer (those not set above)\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"# add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/modules/rnn.py:82: UserWarning: dropout option adds dropout after all but last recurrent layer, so non-zero dropout expects num_layers greater than 1, but got dropout=0.3 and num_layers=1\\n\",\n      \"  warnings.warn(\\\"dropout option adds dropout after all but last \\\"\\n\",\n      \"2023-11-13 13:47:12 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): RNNEncoder(\\n\",\n      \"    (embed_tokens): Embedding(7992, 256, padding_idx=1)\\n\",\n      \"    (dropout_in_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (rnn): GRU(256, 512, dropout=0.3, bidirectional=True)\\n\",\n      \"    (dropout_out_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"  )\\n\",\n      \"  (decoder): RNNDecoder(\\n\",\n      \"    (embed_tokens): Embedding(7992, 256, padding_idx=1)\\n\",\n      \"    (dropout_in_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (rnn): GRU(256, 1024, dropout=0.3)\\n\",\n      \"    (attention): AttentionLayer(\\n\",\n      \"      (input_proj): Linear(in_features=256, out_features=1024, bias=False)\\n\",\n      \"      (output_proj): Linear(in_features=1280, out_features=256, bias=False)\\n\",\n      \"    )\\n\",\n      \"    (dropout_out_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (project_out_dim): Linear(in_features=1024, out_features=256, bias=True)\\n\",\n      \"    (output_projection): Linear(in_features=256, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# Optimization\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## Loss: Label Smoothing Regularization\\n\",\n    \"* let the model learn to generate less concentrated distribution, and prevent over-confidence\\n\",\n    \"* sometimes the ground truth may not be the only answer. thus, when calculating loss, we reserve some probability for incorrect labels\\n\",\n    \"* avoids overfitting\\n\",\n    \"\\n\",\n    \"code [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood，the cross-entropy when target is one-hot. following line is same as F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  reserve some probability for other labels. thus when calculating cross-entropy,\\n\",\n    \"        # equivalent to summing the log probs of all labels\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # when calculating cross-entropy, add the loss of other labels\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# generally, 0.1 is good enough\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\"\n   },\n   \"source\": [\n    \"## Optimizer: Adam + lr scheduling\\n\",\n    \"Inverse square root scheduling is important to the stability when training Transformer. It's later used on RNN as well.\\n\",\n    \"Update the learning rate according to the following equation. Linearly increase the first stage, then decay proportionally to the inverse square root of timestep.\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    # TODO: Change lr from constant to the equation shown above\\n\",\n    \"    lr = 0.001\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim wrapper that implements rate.\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"Multiplies grads by a constant *c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"Update parameters and rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"Implement `lrate` above\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## Scheduling Visualized\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDpdU6DasGEDkpKSEB4eDqvVij179gxYX1tbC6vVivDwcIwbNw6bNm3yqbHb7UhJSYHJZEJKSgoqKys120tLS/HAAw8gMjISMTExmDNnDo4dO6apERG8+OKLiI+Px9ChQ/HQQw/ho48+UrefOnUKISEhfpetW7eqdWPHjvXZXlxcfC1TRURERHeAoAPVli1bUFhYiJUrV8LpdCIzMxPTp09HS0uL3/rm5mbMmDEDmZmZcDqdWLFiBZYsWQK73a7WOBwOzJ07FzabDUeOHIHNZkNeXh7279+v1tTW1uKFF17Avn37UF1djd7eXmRnZ6Orq0utefXVV7F27VqsW7cOBw8ehNlsxmOPPYbOzk4AwOjRo9Ha2qpZ1qxZg2HDhmH69Omacb/00kuaulWrVgU7VURERHSnkCBNmjRJ8vPzNW0Wi0WKi4v91i9fvlwsFoumbdGiRZKRkaGu5+XlSW5urqYmJydH5s2bF3AcbW1tAkBqa2tFRKS/v1/MZrOUlZWpNV9//bUoiiKbNm0K2M/9998vP/vZzzRtiYmJ8tprrwXc52rcbrcAELfbfc19EBER0XdLz/k7qCtUXq8X9fX1yM7O1rRnZ2ejrq7O7z4Oh8OnPicnB4cOHUJPT8+ANYH6BAC32w0AiIqKAvDNlTCXy6Xpx2QyISsrK2A/9fX1aGhowHPPPeez7ZVXXsHIkSNx//334+WXX4bX6w04lu7ubng8Hs1CREREd46wYIrb29vR19eH2NhYTXtsbCxcLpfffVwul9/63t5etLe3Iy4uLmBNoD5FBEVFRXjwwQeRmpqqHufyflf2c/r0ab/9lJeX495778XUqVM17UuXLkVaWhpGjBiBAwcOoKSkBM3NzfjXf/1Xv/2UlpZizZo1frcRERHR7S+oQHVZSEiIZl1EfNquVn9lezB9FhQU4MMPP8TevXuveWyXLl3CW2+9hV/+8pc+25YtW6b+efz48RgxYgR+8pOfqFetrlRSUoKioiJ13ePxYPTo0X7HTkRERLefoAJVdHQ0QkNDfa4ctbW1+VwZusxsNvutDwsLU8NJoBp/fS5evBg7duzA7t27kZCQoDkO8M2Vqri4uKv2s23bNly8eBHPPPPMQB8ZAJCRkQEAOHHihN9AZTKZYDKZrtoPERER3Z6CeobKaDTCarWiurpa015dXe1z2+yyKVOm+NTv3LkT6enpMBgMA9Z8u08RQUFBAbZv3473338fSUlJmvqkpCSYzWZNP16vF7W1tX7HVl5ejlmzZmHUqFFX/dxOpxMANEGNiIiISBXsU+wVFRViMBikvLxcmpqapLCwUIYNGyanTp0SEZHi4mKx2Wxq/cmTJyUiIkKWLVsmTU1NUl5eLgaDQbZt26bWfPDBBxIaGiplZWXy8ccfS1lZmYSFhcm+ffvUmueff14URZGamhppbW1Vl4sXL6o1ZWVloiiKbN++XRobG+Wpp56SuLg48Xg8ms9w/PhxCQkJkf/3//6fz+erq6uTtWvXitPplJMnT8qWLVskPj5eZs2aNeg54rf8iIiIbj16zt9BByoRkfXr10tiYqIYjUZJS0tTX10gIrJgwQLJysrS1NfU1MjEiRPFaDTK2LFjZePGjT59bt26VZKTk8VgMIjFYhG73a4dKOB32bx5s1rT398vq1evFrPZLCaTSaZNmyaNjY0+xyopKZGEhATp6+vz2VZfXy+TJ08WRVEkPDxckpOTZfXq1dLV1TXo+WGgIiIiuvXoOX+HiPz1CXG6bjweDxRFgdvtxvDhw2/2cIiIiGgQ9Jy/+Vt+RERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESk0zUFqg0bNiApKQnh4eGwWq3Ys2fPgPW1tbWwWq0IDw/HuHHjsGnTJp8au92OlJQUmEwmpKSkoLKyUrO9tLQUDzzwACIjIxETE4M5c+bg2LFjmhoRwYsvvoj4+HgMHToUDz30ED766CNNzUMPPYSQkBDNMm/ePE1NR0cHbDYbFEWBoiiw2Wy4cOFCEDNEREREd5KgA9WWLVtQWFiIlStXwul0IjMzE9OnT0dLS4vf+ubmZsyYMQOZmZlwOp1YsWIFlixZArvdrtY4HA7MnTsXNpsNR44cgc1mQ15eHvbv36/W1NbW4oUXXsC+fftQXV2N3t5eZGdno6urS6159dVXsXbtWqxbtw4HDx6E2WzGY489hs7OTs2YFi5ciNbWVnX5zW9+o9n+9NNPo6GhAVVVVaiqqkJDQwNsNluwU0VERER3CgnSpEmTJD8/X9NmsVikuLjYb/3y5cvFYrFo2hYtWiQZGRnqel5enuTm5mpqcnJyZN68eQHH0dbWJgCktrZWRET6+/vFbDZLWVmZWvP111+LoiiyadMmtS0rK0uWLl0asN+mpiYBIPv27VPbHA6HAJBPPvkk4H7f5na7BYC43e5B1RMREdHNp+f8HdQVKq/Xi/r6emRnZ2vas7OzUVdX53cfh8PhU5+Tk4NDhw6hp6dnwJpAfQKA2+0GAERFRQH45kqYy+XS9GMymZCVleXTz5tvvono6Gj86Ec/wi9+8QvNFSyHwwFFUTB58mS1LSMjA4qiBBxPd3c3PB6PZiEiIqI7R1gwxe3t7ejr60NsbKymPTY2Fi6Xy+8+LpfLb31vby/a29sRFxcXsCZQnyKCoqIiPPjgg0hNTVWPc3m/K/s5ffq0uj5//nwkJSXBbDbj6NGjKCkpwZEjR1BdXa32ExMT43PMmJiYgOMpLS3FmjVr/G4jIiKi219QgeqykJAQzbqI+LRdrf7K9mD6LCgowIcffoi9e/cGPbaFCxeqf05NTcU999yD9PR0HD58GGlpaX77uNp4SkpKUFRUpK57PB6MHj3aby0RERHdfoK65RcdHY3Q0FCfKzVtbW0+V4YuM5vNfuvDwsIwcuTIAWv89bl48WLs2LEDu3btQkJCguY4AIIaGwCkpaXBYDDg+PHjaj/nzp3zqfviiy8C9mMymTB8+HDNQkRERHeOoAKV0WiE1WpVb49dVl1djalTp/rdZ8qUKT71O3fuRHp6OgwGw4A13+5TRFBQUIDt27fj/fffR1JSkqb+8m28b/fj9XpRW1sbcGwA8NFHH6GnpwdxcXHqWNxuNw4cOKDW7N+/H263e8B+iIiI6A4W7FPsFRUVYjAYpLy8XJqamqSwsFCGDRsmp06dEhGR4uJisdlsav3JkyclIiJCli1bJk1NTVJeXi4Gg0G2bdum1nzwwQcSGhoqZWVl8vHHH0tZWZmEhYVpvmn3/PPPi6IoUlNTI62trepy8eJFtaasrEwURZHt27dLY2OjPPXUUxIXFycej0dERE6cOCFr1qyRgwcPSnNzs/zpT38Si8UiEydOlN7eXrWf3NxcGT9+vDgcDnE4HHLffffJzJkzBz1H/JYfERHRrUfP+TvoQCUisn79eklMTBSj0ShpaWnqqwtERBYsWCBZWVma+pqaGpk4caIYjUYZO3asbNy40afPrVu3SnJyshgMBrFYLGK327UDBfwumzdvVmv6+/tl9erVYjabxWQyybRp06SxsVHd3tLSItOmTZOoqCgxGo1y9913y5IlS+T8+fOaY50/f17mz58vkZGREhkZKfPnz5eOjo5Bzw8DFRER0a1Hz/k7ROSvT4jTdePxeKAoCtxuN5+nIiIiukXoOX/zt/yIiIiIdGKgIiIiItKJgYqIiIhIJwYqIiIiIp0YqIiIiIh0YqAiIiIi0omBioiIiEgnBioiIiIinRioiIiIiHRioCIiIiLSiYGKiIiISCcGKiIiIiKdGKiIiIiIdGKgIiIiItKJgYqIiIhIJwYqIiIiIp0YqIiIiIh0YqAiIiIi0omBioiIiEgnBioiIiIinRioiIiIiHRioCIiIiLSiYGKiIiISCcGKiIiIiKdGKiIiIiIdGKgIiIiItKJgYqIiIhIJwYqIiIiIp0YqIiIiIh0YqAiIiIi0omBioiIiEinawpUGzZsQFJSEsLDw2G1WrFnz54B62tra2G1WhEeHo5x48Zh06ZNPjV2ux0pKSkwmUxISUlBZWWlZntpaSkeeOABREZGIiYmBnPmzMGxY8c0NSKCF198EfHx8Rg6dCgeeughfPTRR+r2L7/8EosXL0ZycjIiIiIwZswYLFmyBG63W9PP2LFjERISolmKi4uDnSYiIiK6QwQdqLZs2YLCwkKsXLkSTqcTmZmZmD59OlpaWvzWNzc3Y8aMGcjMzITT6cSKFSuwZMkS2O12tcbhcGDu3Lmw2Ww4cuQIbDYb8vLysH//frWmtrYWL7zwAvbt24fq6mr09vYiOzsbXV1das2rr76KtWvXYt26dTh48CDMZjMee+wxdHZ2AgDOnj2Ls2fP4le/+hUaGxvxu9/9DlVVVXjuued8xv3SSy+htbVVXVatWhXsVBEREdGdQoI0adIkyc/P17RZLBYpLi72W798+XKxWCyatkWLFklGRoa6npeXJ7m5uZqanJwcmTdvXsBxtLW1CQCpra0VEZH+/n4xm81SVlam1nz99deiKIps2rQpYD9//OMfxWg0Sk9Pj9qWmJgor732WsB9rsbtdgsAcbvd19wHERERfbf0nL+DukLl9XpRX1+P7OxsTXt2djbq6ur87uNwOHzqc3JycOjQIfT09AxYE6hPAOptuqioKADfXAlzuVyafkwmE7Kysq7az/DhwxEWFqZpf+WVVzBy5Ejcf//9ePnll+H1egP20d3dDY/Ho1mIiIjozhF29ZL/0t7ejr6+PsTGxmraY2Nj4XK5/O7jcrn81vf29qK9vR1xcXEBawL1KSIoKirCgw8+iNTUVPU4l/e7sp/Tp0/77ef8+fP4p3/6JyxatEjTvnTpUqSlpWHEiBE4cOAASkpK0NzcjH/913/1209paSnWrFnjdxsRERHd/oIKVJeFhIRo1kXEp+1q9Ve2B9NnQUEBPvzwQ+zdu/eax+bxePD4448jJSUFq1ev1mxbtmyZ+ufx48djxIgR+MlPfqJetbpSSUkJioqKNH2PHj3a79iJiIjo9hNUoIqOjkZoaKjPlaO2tjafK0OXmc1mv/VhYWFqOAlU46/PxYsXY8eOHdi9ezcSEhI0xwG+uVIVFxc3YD+dnZ3Izc3FXXfdhcrKShgMhgE/d0ZGBgDgxIkTfgOVyWSCyWQasA8iIiK6fQX1DJXRaITVakV1dbWmvbq6GlOnTvW7z5QpU3zqd+7cifT0dDXIBKr5dp8igoKCAmzfvh3vv/8+kpKSNPVJSUkwm82afrxeL2prazX9eDweZGdnw2g0YseOHQgPD7/q53Y6nQCgCWpEREREqmCfYq+oqBCDwSDl5eXS1NQkhYWFMmzYMDl16pSIiBQXF4vNZlPrT548KREREbJs2TJpamqS8vJyMRgMsm3bNrXmgw8+kNDQUCkrK5OPP/5YysrKJCwsTPbt26fWPP/886IoitTU1Ehra6u6XLx4Ua0pKysTRVFk+/bt0tjYKE899ZTExcWJx+MRERGPxyOTJ0+W++67T06cOKHpp7e3V0RE6urqZO3ateJ0OuXkyZOyZcsWiY+Pl1mzZg16jvgtPyIioluPnvN30IFKRGT9+vWSmJgoRqNR0tLS1FcXiIgsWLBAsrKyNPU1NTUyceJEMRqNMnbsWNm4caNPn1u3bpXk5GQxGAxisVjEbrdrBwr4XTZv3qzW9Pf3y+rVq8VsNovJZJJp06ZJY2Ojun3Xrl0B+2lubhYRkfr6epk8ebIoiiLh4eGSnJwsq1evlq6urkHPDwMVERHRrUfP+TtE5K9PiNN14/F4oCiK+koGIiIi+v7Tc/7mb/kRERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFO1xSoNmzYgKSkJISHh8NqtWLPnj0D1tfW1sJqtSI8PBzjxo3Dpk2bfGrsdjtSUlJgMpmQkpKCyspKzfbS0lI88MADiIyMRExMDObMmYNjx45pakQEL774IuLj4zF06FA89NBD+OijjzQ13d3dWLx4MaKjozFs2DDMmjULn3/+uaamo6MDNpsNiqJAURTYbDZcuHAhiBkiIiKiO0nQgWrLli0oLCzEypUr4XQ6kZmZienTp6OlpcVvfXNzM2bMmIHMzEw4nU6sWLECS5Ysgd1uV2scDgfmzp0Lm82GI0eOwGazIS8vD/v371dramtr8cILL2Dfvn2orq5Gb28vsrOz0dXVpda8+uqrWLt2LdatW4eDBw/CbDbjscceQ2dnp1pTWFiIyspKVFRUYO/evfjqq68wc+ZM9PX1qTVPP/00GhoaUFVVhaqqKjQ0NMBmswU7VURERHSnkCBNmjRJ8vPzNW0Wi0WKi4v91i9fvlwsFoumbdGiRZKRkaGu5+XlSW5urqYmJydH5s2bF3AcbW1tAkBqa2tFRKS/v1/MZrOUlZWpNV9//bUoiiKbNm0SEZELFy6IwWCQiooKtebMmTMyZMgQqaqqEhGRpqYmASD79u1TaxwOhwCQTz75JOB4vs3tdgsAcbvdg6onIiKim0/P+TssmPDl9XpRX1+P4uJiTXt2djbq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tvrdp7y8HPfeey+mTp2qaV+6dCkqKiqwa9cuFBQU4PXXX8fPf/7zgMcuLS2FoijqMnr06EGPm4iIiG591/RQekhIiGZdRHzarlZ/ZXuwfV7JYDDAbrfj008/RVRUFCIiIlBTU4Pp06cjNDTUp/7SpUt46623/F6dWrZsGbKysjB+/Hj83d/9HTZt2oTy8nKcP3/e77FLSkrgdrvV5bPPPhv0uImIiOjWFxZMcXR0NEJDQ32uHLW1tflcYbrMbDb7rQ8LC8PIkSMHrAnUZyBWqxUNDQ1wu93wer0YNWoUJk+ejPT0dJ/abdu24eLFi3jmmWeu2m9GRgYA4MSJE+qYv81kMsFkMgU1ViIiIrp9BHWFymg0wmq1orq6WtNeXV3tc9vssilTpvjU79y5E+np6TAYDAPWBOrzahRFwahRo3D8+HEcOnQIs2fP9qkpLy/HrFmzMGrUqKv253Q6AQBxcXHXNB4iIiK6vQV1hQoAioqKYLPZkJ6ejilTpuC3v/0tWlpakJ+fD+Cb219nzpzB73//ewBAfn4+1q1bh6KiIixcuBAOhwPl5eV4++231T6XLl2KadOm4ZVXXsHs2bPx7rvv4r333tM8TP7VV1/hxIkT6npzczMaGhoQFRWFMWPGAAC2bt2KUaNGYcyYMWhsbMTSpUsxZ84cnwfeT5w4gd27d+PPf/6zz+dzOBzYt28fHn74YSiKgoMHD2LZsmWYNWuWehwiIiIijWv5WuH69eslMTFRjEajpKWlSW1trbptwYIFkpWVpamvqamRiRMnitFolLFjx8rGjRt9+ty6daskJyeLwWAQi8Uidrtds33Xrl0CwGdZsGCBWvPrX/9aEhISxGAwyJgxY2TVqlXS3d3tc6ySkhJJSEiQvr4+n2319fUyefJkURRFwsPDJTk5WVavXi1dXV2Dnh++NoGIiOjWo+f8HSLy1yfE6brxeDxQFAVutxvDhw+/2cMhIiKiQdBz/uZv+RERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU7XFKg2bNiApKQkhIeHw2q1Ys+ePQPW19bWwmq1Ijw8HOPGjcOmTZt8aux2O1JSUmAymZCSkoLKykrN9t27d+OJJ55AfHw8QkJC8M477/j0ce7cOTz77LOIj49HREQEcnNzcfz4cU3NQw89hJCQEM0yb948TU1HRwdsNhsURYGiKLDZbLhw4cLgJoeIiIjuOEEHqi1btqCwsBArV66E0+lEZmYmpk+fjpaWFr/1zc3NmDFjBjIzM+F0OrFixQosWbIEdrtdrXE4HJg7dy5sNhuOHDkCm82GvLw87N+/X63p6urChAkTsG7dOr/HERHMmTMHJ0+exLvvvgun04nExEQ8+uij6Orq0tQuXLgQra2t6vKb3/xGs/3pp59GQ0MDqqqqUFVVhYaGBthstmCnioiIiO4UEqRJkyZJfn6+ps1isUhxcbHf+uXLl4vFYtG0LVq0SDIyMtT1vLw8yc3N1dTk5OTIvHnz/PYJQCorKzVtx44dEwBy9OhRta23t1eioqLkjTfeUNuysrJk6dKlAT9fU1OTAJB9+/apbQ6HQwDIJ598EnC/b3O73QJA3G73oOqJiIjo5tNz/g7qCpXX60V9fT2ys7M17dnZ2airq/O7j8Ph8KnPycnBoUOH0NPTM2BNoD796e7uBgCEh4erbaGhoTAajdi7d6+m9s0330R0dDR+9KMf4Re/+AU6Ozs141UUBZMnT1bbMjIyoChKwPF0d3fD4/FoFiIiIrpzBBWo2tvb0dfXh9jYWE17bGwsXC6X331cLpff+t7eXrS3tw9YE6hPfywWCxITE1FSUoKOjg54vV6UlZXB5XKhtbVVrZs/fz7efvtt1NTU4Je//CXsdjuefPJJzXhjYmJ8+o+JiQk4ntLSUvV5K0VRMHr06EGPm4iIiG59YdeyU0hIiGZdRHzarlZ/ZXuwfV7JYDDAbrfjueeeQ1RUFEJDQ/Hoo49i+vTpmrqFCxeqf05NTcU999yD9PR0HD58GGlpaX7HcrXxlJSUoKioSF33eDwMVURERHeQoAJVdHQ0QkNDfa7UtLW1+VxhusxsNvutDwsLw8iRIwesCdRnIFarFQ0NDXC73fB6vRg1ahQmT56M9PT0gPukpaXBYDDg+PHjSEtLg9lsxrlz53zqvvjii4DjMZlMMJlMQY2ViIiIbh9B3fIzGo2wWq2orq7WtFdXV2Pq1Kl+95kyZYpP/c6dO5Geng6DwTBgTaA+r0ZRFIwaNQrHjx/HoUOHMHv27IC1H330EXp6ehAXF6eOxe1248CBA2rN/v374Xa7r3k8REREdJsL9in2iooKMRgMUl5eLk1NTVJYWCjDhg2TU6dOiYhIcXGx2Gw2tf7kyZMSEREhy5Ytk6amJikvLxeDwSDbtm1Taz744AMJDQ2VsrIy+fjjj6WsrEzCwsI037Tr7OwUp9MpTqdTAMjatWvF6XTK6dOn1Zo//vGPsmvXLvnLX/4i77zzjiQmJsqTTz6pbj9x4oSsWbNGDh48KM3NzfKnP/1JLBaLTJw4UXp7e9W63NxcGT9+vDgcDnE4HHLffffJzJkzBz1H/JYfERHRrUfP+TvoQCUisn79eklMTBSj0ShpaWlSW1urbluwYIFkZWVp6mtqamTixIliNBpl7NixsnHjRp8+t27dKsnJyWIwGMRisYjdbtds37VrlwDwWRYsWKDW/PrXv5aEhAQxGAwyZswYWbVqlXR3d6vbW1paZNq0aRIVFSVGo1HuvvtuWbJkiZw/f15zrPPnz8v8+fMlMjJSIiMjZf78+dLR0THo+WGgIiIiuvXoOX+HiPz1CXG6bjweDxRFgdvtxvDhw2/2cIiIiGgQ9Jy/+Vt+RERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESk0zUFqg0bNiApKQnh4eGwWq3Ys2fPgPW1tbWwWq0IDw/HuHHjsGnTJp8au92OlJQUmEwmpKSkoLKyUrN99+7deOKJJxAfH4+QkBC88847Pn2cO3cOzz77LOLj4xEREYHc3FwcP35c3f7ll19i8eLFSE5ORkREBMaMGYMlS5bA7XZr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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# Training Procedure\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # gradient accumulation: update every accum_steps samples\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # automatic mixed precision (amp)\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # gradient accumulation: update every accum_steps samples\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # emptying the CUDA cache after the first step can reduce the chance of OOM\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # mixed precision training\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # logging\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # back-prop\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) handles the case of a zero gradient\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # grad norm clipping prevents gradient exploding\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # logging\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## Validation & Inference\\n\",\n    \"To prevent overfitting, validation is required every epoch to validate the performance on unseen data.\\n\",\n    \"- the procedure is essensially same as training, with the addition of inference step\\n\",\n    \"- after validation we can save the model weights\\n\",\n    \"\\n\",\n    \"Validation loss alone cannot describe the actual performance of the model\\n\",\n    \"- Directly produce translation hypotheses based on current model, then calculate BLEU with the reference translation\\n\",\n    \"- We can also manually examine the hypotheses' quality\\n\",\n    \"- We use fairseq's sequence generator for beam search to generate translation hypotheses\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq's beam search generator\\n\",\n    \"# given model and input seqeunce, produce translation hypotheses by beam search\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # convert from Tensor to human readable sentence\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # for each sample, collect the input, hypothesis and reference, later be used to calculate BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 indicates using the top hypothesis in beam\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # show bleu results\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# Save and Load Model Weights\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # save epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # save epoch samples\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # get best valid bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## Training loop\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:47:13 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-13 13:47:13 | INFO | hw5.seq2seq | encoder: RNNEncoder\\n\",\n      \"2023-11-13 13:47:13 | INFO | hw5.seq2seq | decoder: RNNDecoder\\n\",\n      \"2023-11-13 13:47:13 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-13 13:47:13 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-13 13:47:13 | INFO | hw5.seq2seq | num. model params: 11,247,872 (num. trained: 11,247,872)\\n\",\n      \"2023-11-13 13:47:13 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:47:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:47:13 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-13 13:47:13 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-13 13:47:13 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-13 13:47:13 | WARNING | fairseq.tasks.fairseq_task | 1 samples have invalid sizes and will be skipped, max_positions=(1024, 1024), first few sample ids=[326653]\\n\",\n      \"2023-11-13 13:47:13 | INFO | hw5.seq2seq | no checkpoints found at checkpoints/rnn/checkpoint_last.pt!\\n\",\n      \"2023-11-13 13:47:14 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 1:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:48:27 | INFO | hw5.seq2seq | training loss: 6.3430\\n\",\n      \"2023-11-13 13:48:27 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:48:27 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:48:27 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-13 13:48:27 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-13 13:48:27 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:48:36 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-13 13:48:36 | INFO | hw5.seq2seq | example hypothesis: 例如 , 美國的美國人是美國人 , 最重要的是 , 美國人是美國的國家 。\\n\",\n      \"2023-11-13 13:48:36 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-13 13:48:36 | INFO | hw5.seq2seq | validation loss:\\t5.6081\\n\",\n      \"2023-11-13 13:48:36 | INFO | hw5.seq2seq | BLEU = 1.93 24.6/5.1/1.3/0.3 (BP = 0.728 ratio = 0.759 hyp_len = 83832 ref_len = 110430)\\n\",\n      \"2023-11-13 13:48:36 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint1.pt\\n\",\n      \"2023-11-13 13:48:36 | INFO | hw5.seq2seq | end of epoch 1\\n\",\n      \"2023-11-13 13:48:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:48:36 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 2:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:49:49 | INFO | hw5.seq2seq | training loss: 5.3838\\n\",\n      \"2023-11-13 13:49:49 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:49:49 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:50:00 | INFO | hw5.seq2seq | example source: and it just sounds like the most egotistical request you could make , if you were going to pray .\\n\",\n      \"2023-11-13 13:50:00 | INFO | hw5.seq2seq | example hypothesis: 這只是聽起來 , 只要你會說 , 如果你們能做 , 如果你能做 , 假如 , 假如 , 假如 , 假如 。\\n\",\n      \"2023-11-13 13:50:00 | INFO | hw5.seq2seq | example reference: 這聽起來像是你所能想到的最自我中心的禱告祈求 。\\n\",\n      \"2023-11-13 13:50:00 | INFO | hw5.seq2seq | validation loss:\\t4.9287\\n\",\n      \"2023-11-13 13:50:00 | INFO | hw5.seq2seq | BLEU = 6.57 25.8/9.4/4.1/1.9 (BP = 1.000 ratio = 1.137 hyp_len = 125551 ref_len = 110430)\\n\",\n      \"2023-11-13 13:50:00 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint2.pt\\n\",\n      \"2023-11-13 13:50:00 | INFO | hw5.seq2seq | end of epoch 2\\n\",\n      \"2023-11-13 13:50:00 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:50:00 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 3:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:51:14 | INFO | hw5.seq2seq | training loss: 4.9355\\n\",\n      \"2023-11-13 13:51:14 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:51:14 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:51:23 | INFO | hw5.seq2seq | example source: but empathy really should get you points if you do it when it's hard to do .\\n\",\n      \"2023-11-13 13:51:23 | INFO | hw5.seq2seq | example hypothesis: 但同理心是很難做的事 。\\n\",\n      \"2023-11-13 13:51:23 | INFO | hw5.seq2seq | example reference: 同理心應該是在很難有同理心的情況下產生才能夠得分才對 。\\n\",\n      \"2023-11-13 13:51:23 | INFO | hw5.seq2seq | validation loss:\\t4.5967\\n\",\n      \"2023-11-13 13:51:23 | INFO | hw5.seq2seq | BLEU = 9.98 31.9/13.6/6.7/3.4 (BP = 1.000 ratio = 1.073 hyp_len = 118507 ref_len = 110430)\\n\",\n      \"2023-11-13 13:51:23 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint3.pt\\n\",\n      \"2023-11-13 13:51:24 | INFO | hw5.seq2seq | end of epoch 3\\n\",\n      \"2023-11-13 13:51:24 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:51:24 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 4:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:52:37 | INFO | hw5.seq2seq | training loss: 4.7172\\n\",\n      \"2023-11-13 13:52:37 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:52:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:52:46 | INFO | hw5.seq2seq | example source: but most biologics also have a flaw .\\n\",\n      \"2023-11-13 13:52:46 | INFO | hw5.seq2seq | example hypothesis: 但大部分生物的生物學家也有了 。\\n\",\n      \"2023-11-13 13:52:46 | INFO | hw5.seq2seq | example reference: 但 , 大部分的生物藥都有個瑕疵 。\\n\",\n      \"2023-11-13 13:52:46 | INFO | hw5.seq2seq | validation loss:\\t4.4348\\n\",\n      \"2023-11-13 13:52:46 | INFO | hw5.seq2seq | BLEU = 11.64 38.5/17.5/8.9/4.7 (BP = 0.899 ratio = 0.904 hyp_len = 99822 ref_len = 110430)\\n\",\n      \"2023-11-13 13:52:46 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint4.pt\\n\",\n      \"2023-11-13 13:52:46 | INFO | hw5.seq2seq | end of epoch 4\\n\",\n      \"2023-11-13 13:52:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:52:46 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 5:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:53:59 | INFO | hw5.seq2seq | training loss: 4.5851\\n\",\n      \"2023-11-13 13:53:59 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:53:59 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:54:09 | INFO | hw5.seq2seq | example source: but i believe now that we're moving into a new age , and that age the new york times dubbed recently as \\\" the age of behavior . \\\"\\n\",\n      \"2023-11-13 13:54:09 | INFO | hw5.seq2seq | example hypothesis: 但我相信我們現在正在移動到新年齡 , 年齡的年齡 , 年齡的年齡 , 年齡的年齡 , 年齡開始了 。\\n\",\n      \"2023-11-13 13:54:09 | INFO | hw5.seq2seq | example reference: 但我相信現在我們正在進入一個新的時代 , 而且最近這個時代被紐約時報稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-13 13:54:09 | INFO | hw5.seq2seq | validation loss:\\t4.3168\\n\",\n      \"2023-11-13 13:54:09 | INFO | hw5.seq2seq | BLEU = 12.62 36.9/17.0/8.7/4.7 (BP = 1.000 ratio = 1.024 hyp_len = 113083 ref_len = 110430)\\n\",\n      \"2023-11-13 13:54:09 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint5.pt\\n\",\n      \"2023-11-13 13:54:09 | INFO | hw5.seq2seq | end of epoch 5\\n\",\n      \"2023-11-13 13:54:09 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:54:09 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 6:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:55:22 | INFO | hw5.seq2seq | training loss: 4.5017\\n\",\n      \"2023-11-13 13:55:22 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:55:22 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:55:31 | INFO | hw5.seq2seq | example source: as we have hot blood running through our veins and arteries , so , too , the earth has hot water running through its cracks and faults .\\n\",\n      \"2023-11-13 13:55:31 | INFO | hw5.seq2seq | example hypothesis: 如我們所見過的血液流流過濾水 , 透過我們的水流過 , 地球上有熱血流流過濾水流流 。\\n\",\n      \"2023-11-13 13:55:31 | INFO | hw5.seq2seq | example reference: 就如我們身體𥚃有熱騰騰的血液經過靜脈和動脈 , 同樣地 , 地球也有熱流穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-13 13:55:31 | INFO | hw5.seq2seq | validation loss:\\t4.2551\\n\",\n      \"2023-11-13 13:55:31 | INFO | hw5.seq2seq | BLEU = 13.41 43.2/20.7/10.8/5.9 (BP = 0.866 ratio = 0.874 hyp_len = 96512 ref_len = 110430)\\n\",\n      \"2023-11-13 13:55:31 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint6.pt\\n\",\n      \"2023-11-13 13:55:31 | INFO | hw5.seq2seq | end of epoch 6\\n\",\n      \"2023-11-13 13:55:31 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:55:31 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 7:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:56:45 | INFO | hw5.seq2seq | training loss: 4.4363\\n\",\n      \"2023-11-13 13:56:45 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:56:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:56:53 | INFO | hw5.seq2seq | example source: entirely new requirement .\\n\",\n      \"2023-11-13 13:56:53 | INFO | hw5.seq2seq | example hypothesis: 全新的需求\\n\",\n      \"2023-11-13 13:56:53 | INFO | hw5.seq2seq | example reference: 這是全新的要求 。\\n\",\n      \"2023-11-13 13:56:53 | INFO | hw5.seq2seq | validation loss:\\t4.2428\\n\",\n      \"2023-11-13 13:56:53 | INFO | hw5.seq2seq | BLEU = 13.12 45.6/22.2/11.7/6.5 (BP = 0.787 ratio = 0.807 hyp_len = 89074 ref_len = 110430)\\n\",\n      \"2023-11-13 13:56:53 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint7.pt\\n\",\n      \"2023-11-13 13:56:53 | INFO | hw5.seq2seq | end of epoch 7\\n\",\n      \"2023-11-13 13:56:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:56:53 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 8:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:58:06 | INFO | hw5.seq2seq | training loss: 4.3919\\n\",\n      \"2023-11-13 13:58:06 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:58:06 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:58:14 | INFO | hw5.seq2seq | example source: by 1960 we had telephone bills , bank statements were being produced by computers .\\n\",\n      \"2023-11-13 13:58:14 | INFO | hw5.seq2seq | example hypothesis: 在1960年 , 銀行被電腦設施了 。\\n\",\n      \"2023-11-13 13:58:14 | INFO | hw5.seq2seq | example reference: 到了1960年 , 我們的電話和銀行帳單都交由電腦處理\\n\",\n      \"2023-11-13 13:58:14 | INFO | hw5.seq2seq | validation loss:\\t4.1573\\n\",\n      \"2023-11-13 13:58:14 | INFO | hw5.seq2seq | BLEU = 14.56 44.5/21.8/11.6/6.5 (BP = 0.884 ratio = 0.890 hyp_len = 98303 ref_len = 110430)\\n\",\n      \"2023-11-13 13:58:15 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint8.pt\\n\",\n      \"2023-11-13 13:58:15 | INFO | hw5.seq2seq | end of epoch 8\\n\",\n      \"2023-11-13 13:58:15 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:58:15 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 9:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:59:28 | INFO | hw5.seq2seq | training loss: 4.3555\\n\",\n      \"2023-11-13 13:59:28 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 13:59:28 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 13:59:37 | INFO | hw5.seq2seq | example source: they started making their own video games .\\n\",\n      \"2023-11-13 13:59:37 | INFO | hw5.seq2seq | example hypothesis: 他們開始製作自己的影片遊戲 。\\n\",\n      \"2023-11-13 13:59:37 | INFO | hw5.seq2seq | example reference: 他們開始製造自己的電玩遊戲 。\\n\",\n      \"2023-11-13 13:59:37 | INFO | hw5.seq2seq | validation loss:\\t4.1238\\n\",\n      \"2023-11-13 13:59:37 | INFO | hw5.seq2seq | BLEU = 14.75 43.5/21.2/11.3/6.3 (BP = 0.921 ratio = 0.924 hyp_len = 102037 ref_len = 110430)\\n\",\n      \"2023-11-13 13:59:37 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint9.pt\\n\",\n      \"2023-11-13 13:59:37 | INFO | hw5.seq2seq | end of epoch 9\\n\",\n      \"2023-11-13 13:59:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 13:59:37 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 10:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:00:50 | INFO | hw5.seq2seq | training loss: 4.3219\\n\",\n      \"2023-11-13 14:00:50 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 14:00:50 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:01:00 | INFO | hw5.seq2seq | example source: a perfect example of this is spanish contemporary artist fernando vicente .\\n\",\n      \"2023-11-13 14:01:00 | INFO | hw5.seq2seq | example hypothesis: 最棒的例子是西班牙裔藝術家 。\\n\",\n      \"2023-11-13 14:01:00 | INFO | hw5.seq2seq | example reference: 一個最有代表性的例子是西班牙現代藝術家費南多·維森特 。\\n\",\n      \"2023-11-13 14:01:00 | INFO | hw5.seq2seq | validation loss:\\t4.1059\\n\",\n      \"2023-11-13 14:01:00 | INFO | hw5.seq2seq | BLEU = 15.26 41.6/20.2/10.8/6.0 (BP = 1.000 ratio = 1.009 hyp_len = 111374 ref_len = 110430)\\n\",\n      \"2023-11-13 14:01:00 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint10.pt\\n\",\n      \"2023-11-13 14:01:00 | INFO | hw5.seq2seq | end of epoch 10\\n\",\n      \"2023-11-13 14:01:00 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 14:01:00 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 11:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:02:13 | INFO | hw5.seq2seq | training loss: 4.2947\\n\",\n      \"2023-11-13 14:02:13 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 14:02:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:02:23 | INFO | hw5.seq2seq | example source: right . as you can see , bart simpson is having a little argument .\\n\",\n      \"2023-11-13 14:02:23 | INFO | hw5.seq2seq | example hypothesis: 如你所見 , 巴特·塞普森有一些爭論 。\\n\",\n      \"2023-11-13 14:02:23 | INFO | hw5.seq2seq | example reference: 好 , 如你所見bartsimpson正和它老爸爭執\\n\",\n      \"2023-11-13 14:02:23 | INFO | hw5.seq2seq | validation loss:\\t4.0754\\n\",\n      \"2023-11-13 14:02:23 | INFO | hw5.seq2seq | BLEU = 16.02 43.1/21.2/11.3/6.4 (BP = 0.998 ratio = 0.998 hyp_len = 110179 ref_len = 110430)\\n\",\n      \"2023-11-13 14:02:23 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint11.pt\\n\",\n      \"2023-11-13 14:02:23 | INFO | hw5.seq2seq | end of epoch 11\\n\",\n      \"2023-11-13 14:02:23 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 14:02:23 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 12:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:03:36 | INFO | hw5.seq2seq | training loss: 4.2722\\n\",\n      \"2023-11-13 14:03:36 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 14:03:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:03:45 | INFO | hw5.seq2seq | example source: and if we look to the future , it's an unsustainable diet .\\n\",\n      \"2023-11-13 14:03:45 | INFO | hw5.seq2seq | example hypothesis: 如果我們看看未來 , 它是永續的飲食 。\\n\",\n      \"2023-11-13 14:03:45 | INFO | hw5.seq2seq | example reference: 如果我們想一想未來這絕不是長久之計\\n\",\n      \"2023-11-13 14:03:45 | INFO | hw5.seq2seq | validation loss:\\t4.0663\\n\",\n      \"2023-11-13 14:03:45 | INFO | hw5.seq2seq | BLEU = 15.51 44.7/22.0/11.7/6.5 (BP = 0.937 ratio = 0.939 hyp_len = 103647 ref_len = 110430)\\n\",\n      \"2023-11-13 14:03:45 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint12.pt\\n\",\n      \"2023-11-13 14:03:45 | INFO | hw5.seq2seq | end of epoch 12\\n\",\n      \"2023-11-13 14:03:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 14:03:45 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 13:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:04:58 | INFO | hw5.seq2seq | training loss: 4.2558\\n\",\n      \"2023-11-13 14:04:58 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 14:04:58 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d33b0f925d24407ea0486a69024c383e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:05:07 | INFO | hw5.seq2seq | example source: when you govern through fear and you govern through cruelty , it just doesn't work .\\n\",\n      \"2023-11-13 14:05:07 | INFO | hw5.seq2seq | example hypothesis: 當你穿越恐懼 , 直到殘酷 , 只是不行的 。\\n\",\n      \"2023-11-13 14:05:07 | INFO | hw5.seq2seq | example reference: 透過恐懼 , 透過殘忍來治理國家 , 這是行不通的 。\\n\",\n      \"2023-11-13 14:05:07 | INFO | hw5.seq2seq | validation loss:\\t4.0592\\n\",\n      \"2023-11-13 14:05:07 | INFO | hw5.seq2seq | BLEU = 15.88 45.1/22.3/12.0/6.8 (BP = 0.939 ratio = 0.940 hyp_len = 103848 ref_len = 110430)\\n\",\n      \"2023-11-13 14:05:07 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint13.pt\\n\",\n      \"2023-11-13 14:05:07 | INFO | hw5.seq2seq | end of epoch 13\\n\",\n      \"2023-11-13 14:05:07 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 14:05:07 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f6b3d5bcba2b4ac1859e5b49b37c0ee4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 14:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:06:20 | INFO | hw5.seq2seq | training loss: 4.2362\\n\",\n      \"2023-11-13 14:06:20 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 14:06:20 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0ce51f225a7645a1b7f41eb70a89d39b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:06:29 | INFO | hw5.seq2seq | example source: this project breaks ground in just two months .\\n\",\n      \"2023-11-13 14:06:29 | INFO | hw5.seq2seq | example hypothesis: 這個計劃只需要兩個月 。\\n\",\n      \"2023-11-13 14:06:29 | INFO | hw5.seq2seq | example reference: 這個計畫再兩個月就要開工了 。\\n\",\n      \"2023-11-13 14:06:29 | INFO | hw5.seq2seq | validation loss:\\t4.0437\\n\",\n      \"2023-11-13 14:06:29 | INFO | hw5.seq2seq | BLEU = 15.71 47.8/23.9/12.9/7.4 (BP = 0.864 ratio = 0.872 hyp_len = 96320 ref_len = 110430)\\n\",\n      \"2023-11-13 14:06:29 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint14.pt\\n\",\n      \"2023-11-13 14:06:29 | INFO | hw5.seq2seq | end of epoch 14\\n\",\n      \"2023-11-13 14:06:29 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 14:06:29 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"029a11ed642249aeb573d0db14e07c49\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 15:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:07:42 | INFO | hw5.seq2seq | training loss: 4.2230\\n\",\n      \"2023-11-13 14:07:42 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 14:07:42 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"aa0cf7b825e344e088dfc3a48ca1f94b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:07:51 | INFO | hw5.seq2seq | example source: and these preservatives had been found in breast cancer tumors .\\n\",\n      \"2023-11-13 14:07:51 | INFO | hw5.seq2seq | example hypothesis: 這些保守派在乳癌腫瘤中發現 。\\n\",\n      \"2023-11-13 14:07:51 | INFO | hw5.seq2seq | example reference: 而乳癌腫瘤中也發現了這些防腐劑 。\\n\",\n      \"2023-11-13 14:07:51 | INFO | hw5.seq2seq | validation loss:\\t4.0182\\n\",\n      \"2023-11-13 14:07:51 | INFO | hw5.seq2seq | BLEU = 16.23 46.6/23.5/12.7/7.2 (BP = 0.911 ratio = 0.915 hyp_len = 100998 ref_len = 110430)\\n\",\n      \"2023-11-13 14:07:51 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/rnn/checkpoint15.pt\\n\",\n      \"2023-11-13 14:07:51 | INFO | hw5.seq2seq | end of epoch 15\\n\",\n      \"2023-11-13 14:07:51 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # train for one epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:07:52 | INFO | fairseq.tasks.text_to_speech | Please install tensorboardX: pip install tensorboardX\\n\",\n      \"Namespace(inputs=['./checkpoints/rnn'], output='./checkpoints/rnn/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/rnn/checkpoint15.pt', './checkpoints/rnn/checkpoint14.pt', './checkpoints/rnn/checkpoint13.pt', './checkpoints/rnn/checkpoint12.pt', './checkpoints/rnn/checkpoint11.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/rnn/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# averaging a few checkpoints can have a similar effect to ensemble\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## Confirm model weights used to generate submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:07:53 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/rnn/avg_last_5_checkpoint.pt: step=unknown loss=4.018208026885986 bleu=16.227050064531397\\n\",\n      \"2023-11-13 14:07:53 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 14:07:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:08:02 | INFO | hw5.seq2seq | example source: history is strewn with the cases when they've all got it wrong .\\n\",\n      \"2023-11-13 14:08:02 | INFO | hw5.seq2seq | example hypothesis: 史以來的情況是 , 當他們有錯誤的情況時 , 他們都錯了 。\\n\",\n      \"2023-11-13 14:08:02 | INFO | hw5.seq2seq | example reference: 歷史上到處都有我們全都錯了的實例\\n\",\n      \"2023-11-13 14:08:02 | INFO | hw5.seq2seq | validation loss:\\t3.9651\\n\",\n      \"2023-11-13 14:08:02 | INFO | hw5.seq2seq | BLEU = 16.63 46.7/23.7/12.9/7.4 (BP = 0.922 ratio = 0.925 hyp_len = 102178 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : latest epoch\\n\",\n    \"# checkpoint_best.pt : highest validation bleu\\n\",\n    \"# avg_last_5_checkpoint.pt: the average of last 5 epochs\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## Generate Prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # sort based on the order before preprocess\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 14:08:02 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.en\\n\",\n      \"2023-11-13 14:08:02 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.zh\\n\",\n      \"2023-11-13 14:08:02 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 test en-zh 4000 examples\\n\",\n      \"2023-11-13 14:08:02 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 14:08:02 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-13 14:08:02 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-13 14:08:02 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2724242d6d0942079e67f01e7f06baab\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"prediction:   0%|          | 0/18 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[49], line 1\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0m \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## Train a backward translation model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. Switch the source_lang and target_lang in **config**\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## Generate synthetic data with backward model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### Download monolingual data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: clean corpus\\n\",\n    \"\\n\",\n    \"1. remove sentences that are too long or too short\\n\",\n    \"2. unify punctuation\\n\",\n    \"\\n\",\n    \"hint: you can use clean_s() defined above to do this\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: Subword Units\\n\",\n    \"\\n\",\n    \"Use the spm model of the backward model to tokenize the data into subword units\\n\",\n    \"\\n\",\n    \"hint: spm model is located at DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### Binarize\\n\",\n    \"\\n\",\n    \"use fairseq to binarize data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: Generate synthetic data with backward model\\n\",\n    \"\\n\",\n    \"Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"then you can use 'generate_prediction(model, task, split=\\\"split_name\\\")' to generate translation prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"# ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: do prediction on split='mono' to create prediction_file\\n\",\n    \"# generate_prediction( ... ,split=... ,outfile=... )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: Create new dataset\\n\",\n    \"\\n\",\n    \"1. Combine the prediction data with monolingual data\\n\",\n    \"2. Use the original spm model to tokenize data into Subword Units\\n\",\n    \"3. Binarize data with fairseq\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Combine prediction_file (.en) and mono.zh (.zh) into a new dataset.\\n\",\n    \"#\\n\",\n    \"# hint: tokenize prediction_file with the spm model\\n\",\n    \"# spm_model.encode(line, out_type=str)\\n\",\n    \"# output: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# hint: use fairseq to binarize these two files again\\n\",\n    \"# binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"# src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"# tgt_dict_file = src_dict_file\\n\",\n    \"# monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"# if binpath.exists():\\n\",\n    \"#     print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"# else:\\n\",\n    \"#     !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"#         --source-lang 'zh'\\\\\\n\",\n    \"#         --target-lang 'en'\\\\\\n\",\n    \"#         --trainpref {monopref}\\\\\\n\",\n    \"#         --destdir {binpath}\\\\\\n\",\n    \"#         --srcdict {src_dict_file}\\\\\\n\",\n    \"#         --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"#         --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create a new dataset from all the files prepared above\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"Created new dataset \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. Change the datadir in **config** (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. Switch back the source_lang and target_lang in **config** (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/en/HW05_Strong_24.60.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Medium Baseline\\n\",\n    \"\\n\",\n    \"You can search for the “Medium” tag to check for changes (Ctrl + F or Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# Homework Description\\n\",\n    \"- English to Chinese (Traditional) Translation\\n\",\n    \"  - Input: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - Output: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - Train a simple RNN seq2seq to acheive translation\\n\",\n    \"    - Switch to transformer model to boost performance\\n\",\n    \"    - Apply Back-translation to furthur boost performance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thu Nov 16 11:25:19 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   29C    P5    26W / 170W |    376MiB / 12288MiB |      2%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1190      G   /usr/lib/xorg/Xorg                161MiB |\\n\",\n      \"|    0   N/A  N/A      1505      G   /usr/bin/gnome-shell               24MiB |\\n\",\n      \"|    0   N/A  N/A      1708      G   ...nlogin/bin/sunloginclient        9MiB |\\n\",\n      \"|    0   N/A  N/A     53123      G   /usr/lib/firefox/firefox          178MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# Download and import required packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# Fix random seed\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# Dataset\\n\",\n    \"\\n\",\n    \"## En-Zh Bilingual Parallel Corpus\\n\",\n    \"* TED2020\\n\",\n    \"    - Raw: 400,726 (sentences)   \\n\",\n    \"    - Processed: 394,052 (sentences)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## Testdata\\n\",\n    \"- Size: 4,000 (sentences)\\n\",\n    \"- **Chinese translation is undisclosed. The provided (.zh) file is psuedo translation, each line is a '。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## Dataset Download\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## Language\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## Preprocess files\\n\",\n    \"- strQ2B(): Convert full-width characters to half-width characters\\n\",\n    \"- clean_s(): Clean the text by removing characters such as commas, dashes, and spaces\\n\",\n    \"- len_s(): Return the length of the text\\n\",\n    \"- clean_corpus(): Clean and process the specified text files using the above functions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## Split into train/valid\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000~4000 would suffice\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## Subword Units\\n\",\n    \"Out of vocabulary (OOV) has been a major problem in machine translation. This can be alleviated by using subword units.\\n\",\n    \"- We will use the [sentencepiece](#kudo-richardson-2018-sentencepiece) package\\n\",\n    \"- select 'unigram' or 'byte-pair encoding (BPE)' algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## Binarize the data with fairseq\\n\",\n    \"Prepare the files in pairs for both the source and target languages.\\n\",\n    \"\\n\",\n    \"In case a pair is unavailable, generate a pseudo pair to facilitate binarization.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# Configuration for experiments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/transformer\\\", # Strong\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # cpu threads when fetching & processing data.\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size in terms of tokens. gradient accumulation increases the effective batchsize.\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # the lr s calculated from Noam lr scheduler. you can tune the maximum lr by this factor.\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # clipping gradient norm helps alleviate gradient exploding\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # maximum epochs for training\\n\",\n    \"    max_epoch=10,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # beam size for beam search\\n\",\n    \"    beam=5,\\n\",\n    \"    # generate sequences of maximum length ax + b, where x is the source length\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # when decoding, post process sentence by removing sentencepiece symbols and jieba tokenization.\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # checkpoints\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume from checkpoint name (under config.savedir)\\n\",\n    \"\\n\",\n    \"    # logging\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# Logging\\n\",\n    \"- logging package logs ordinary messages\\n\",\n    \"- wandb logs the loss, bleu, etc. in the training process\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA Environments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:26:29 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# Dataloading\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## We borrow the TranslationTask from fairseq\\n\",\n    \"* used to load the binarized data created above\\n\",\n    \"* well-implemented data iterator (dataloader)\\n\",\n    \"* built-in task.source_dictionary and task.target_dictionary are also handy\\n\",\n    \"* well-implemented beam search decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:26:29 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:26:29 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.en\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.zh\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 train en-zh 390112 examples\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.en\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.zh\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# Dataset iterator\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* Controls every batch to contain no more than N tokens, which optimizes GPU memory efficiency\\n\",\n    \"* Shuffles the training set for every epoch\\n\",\n    \"* Ignore sentences exceeding maximum length\\n\",\n    \"* Pad all sentences in a batch to the same length, which enables parallel computing by GPU\\n\",\n    \"* Add eos and shift one token\\n\",\n    \"    - teacher forcing: to train the model to predict the next token based on prefix, we feed the right shifted target sequence as the decoder input.\\n\",\n    \"    - generally, prepending bos to the target would do the job (as shown below)\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - in fairseq however, this is done by moving the eos token to the begining. Empirically, this has the same effect. For instance:\\n\",\n    \"    ```\\n\",\n    \"    # output target (target) and Decoder input (prev_output_tokens):\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:26:29 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-16 11:26:29 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-16 11:26:29 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # Set this to False to speed up. However, if set to False, changing max_tokens beyond\\n\",\n    \"        # first call of this method has no effect.\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# Model Architecture\\n\",\n    \"* We again inherit fairseq's encoder, decoder and model, so that in the testing phase we can directly leverage fairseq's beam search decoder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# Encoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- The Encoder is a RNN or Transformer Encoder. The following description is for RNN. For every input token, Encoder will generate a output vector and a hidden states vector, and the hidden states vector is passed on to the next step. In other words, the Encoder sequentially reads in the input sequence, and outputs a single vector at each timestep, then finally outputs the final hidden states, or content vector, at the last timestep.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: the dimension of embeddings, this compresses the one-hot vector into fixed dimensions, which achieves dimension reduction\\n\",\n    \"      - encoder_ffn_embed_dim: the dimension of hidden states and output vectors\\n\",\n    \"      - encoder_layers: the number of layers for Encoder RNN\\n\",\n    \"      - dropout determines the probability of a neuron's activation being set to 0, in order to prevent overfitting. Generally this is applied in training, and removed in testing.\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq. it's used to obtain the padding index, and in turn the encoder padding mask.\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: integer sequence representing english e.g. 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the output of RNN at each timestep, can be furthur processed by Attention\\n\",\n    \"    - *final_hiddens*: the hidden states of each timestep, will be passed to decoder for decoding\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # get embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # pass thru bidirectional RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # Since Encoder is bidirectional, we need to concatenate the hidden states of two directions\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## Attention\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- When the input sequence is long, \\\"content vector\\\" alone cannot accurately represent the whole sequence, attention mechanism can provide the Decoder more information.\\n\",\n    \"- According to the **Decoder embeddings** of the current timestep, match the **Encoder outputs** with decoder embeddings to determine correlation, and then sum the Encoder outputs weighted by the correlation as the input to **Decoder** RNN.\\n\",\n    \"- Common attention implementations use neural network / dot product as the correlation between **query** (decoder embeddings) and **key** (Encoder outputs), followed by **softmax**  to obtain a distribution, and finally **values** (Encoder outputs) is **weighted sum**-ed by said distribution.\\n\",\n    \"\\n\",\n    \"- Parameters:\\n\",\n    \"  - *input_embed_dim*: dimensionality of key, should be that of the vector in decoder to attend others\\n\",\n    \"  - *source_embed_dim*: dimensionality of query, should be that of the vector to be attended to (encoder outputs)\\n\",\n    \"  - *output_embed_dim*: dimensionality of value, should be that of the vector after attention, expected by the next layer\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: is the key, the vector to attend to others\\n\",\n    \"    - *encoder_outputs*:  is the query/value, the vector to be attended to\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: the context vector after attention\\n\",\n    \"    - *attention score*: the attention distribution\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # convert all to batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # project to the dimensionality of encoder_outputs\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # compute attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # cancel the attention at positions corresponding to padding\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # softmax on the dimension corresponding to source sequence\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) weighted sum\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# Decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* The hidden states of **Decoder** will be initialized by the final hidden states of **Encoder** (the content vector)\\n\",\n    \"* At the same time, **Decoder** will change its hidden states based on the input of the current timestep (the outputs of previous timesteps), and generates an output\\n\",\n    \"* Attention improves the performance\\n\",\n    \"* The seq2seq steps are implemented in decoder, so that later the Seq2Seq class can accept RNN and Transformer, without furthur modification.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: is the dimensionality of the decoder embeddings, similar to encoder_embed_dim，\\n\",\n    \"      - decoder_ffn_embed_dim: is the dimensionality of the decoder RNN hidden states, similar to encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: number of layers of RNN decoder\\n\",\n    \"      - share_decoder_input_output_embed: usually, the projection matrix of the decoder will share weights with the decoder input embeddings\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"- Inputs:\\n\",\n    \"    - *prev_output_tokens*: integer sequence representing the right-shifted target e.g. 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: encoder's output.\\n\",\n    \"    - *incremental_state*: in order to speed up decoding during test time, we will save the hidden state of each timestep. see forward() for details.\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the logits (before softmax) output of decoder for each timesteps\\n\",\n    \"    - *extra*: unused\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # extract the outputs from encoder\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # if the information from last timestep is retained, we can continue from there instead of starting from bos\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # incremental state does not exist, either this is training time, or the first timestep of test time\\n\",\n    \"            # prepare for seq2seq: pass the encoder_hidden to the decoder hidden states\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # pass thru unidirectional RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # project to embedding size (if hidden differs from embed size, and share_embedding is True,\\n\",\n    \"        # we need to do an extra projection)\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # project to vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, record the hidden states of current timestep, which will be restored in the next timestep\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(\\n\",\n    \"        self,\\n\",\n    \"        incremental_state,\\n\",\n    \"        new_order,\\n\",\n    \"    ):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- Composed of **Encoder** and **Decoder**\\n\",\n    \"- Recieves inputs and pass to **Encoder**\\n\",\n    \"- Pass the outputs from **Encoder** to **Decoder**\\n\",\n    \"- **Decoder** will decode according to outputs of previous timesteps as well as **Encoder** outputs  \\n\",\n    \"- Once done decoding, return the **Decoder** outputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# Model Initialization (Strong)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # HINT: transformer architecture\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # HINT: TODO: switch to TransformerEncoder & TransformerDecoder\\n\",\n    \"    # encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # sequence to sequence model\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # initialization for seq2seq model is important, requires extra handling\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # weight initialization\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## Architecture Related Configuration (Strong)\\n\",\n    \"\\n\",\n    \"For strong baseline, please refer to the hyperparameters for *transformer-base* in Table 3 in [Attention is all you need](#vaswani2017)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=512,\\n\",\n    \"    encoder_ffn_embed_dim=2048,\\n\",\n    \"    encoder_layers=6,\\n\",\n    \"    decoder_embed_dim=512,\\n\",\n    \"    decoder_ffn_embed_dim=2048,\\n\",\n    \"    decoder_layers=6,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# HINT: these patches on parameters for Transformer\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=8\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=8\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # patches on default parameters for Transformer (those not set above)\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): TransformerEncoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerEncoderLayerBase(\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"  )\\n\",\n      \"  (decoder): TransformerDecoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerDecoderLayerBase(\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (encoder_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (encoder_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"    (output_projection): Linear(in_features=512, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# Optimization\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## Loss: Label Smoothing Regularization\\n\",\n    \"* let the model learn to generate less concentrated distribution, and prevent over-confidence\\n\",\n    \"* sometimes the ground truth may not be the only answer. thus, when calculating loss, we reserve some probability for incorrect labels\\n\",\n    \"* avoids overfitting\\n\",\n    \"\\n\",\n    \"code [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood，the cross-entropy when target is one-hot. following line is same as F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  reserve some probability for other labels. thus when calculating cross-entropy,\\n\",\n    \"        # equivalent to summing the log probs of all labels\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # when calculating cross-entropy, add the loss of other labels\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# generally, 0.1 is good enough\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\"\n   },\n   \"source\": [\n    \"## Optimizer: Adam + lr scheduling\\n\",\n    \"Inverse square root scheduling is important to the stability when training Transformer. It's later used on RNN as well.\\n\",\n    \"Update the learning rate according to the following equation. Linearly increase the first stage, then decay proportionally to the inverse square root of timestep.\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    lr = 1.0 / math.sqrt(d_model) * min(1.0 / math.sqrt(step_num), step_num / (warmup_step * math.sqrt(warmup_step)))\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim wrapper that implements rate.\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"Multiplies grads by a constant *c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"Update parameters and rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"Implement `lrate` above\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## Scheduling Visualized\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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TmDDhg144oknHOV4n7tu69atePfdd/Gvf/0L48aNw9GjR5GZmYno6GjMnz/fUY73uvtJ6Z62VZf29m0Pu8Z6UFhYGORyeav/I6isrGyVdPu7Z599Fjt37sTevXsxZMgQx/bIyEgA6PAeRkZGwmg04tq1ax2WuXz5cqvzXrlyxanMjee5du0aTCZTr/995eXlobKyEomJiVAoFFAoFMjNzcUbb7wBhULh9H9RLfE+uycqKgoJCQlO28aOHYuSkhIA/Oe5O/3yl7/EsmXL8Mgjj2DChAnIyMjA4sWLkZWVBYD3uidI7Z62VaayshJA61arjjAI9SCVSoXExETk5OQ4bc/JycH06dO9VCtpEULgmWeewbZt2/DZZ5+1asqMi4tDZGSk0z00Go3Izc113MPExEQolUqnMuXl5Th+/LijzLRp06DT6fDll186yhw+fBg6nc6pzPHjx1FeXu4os3v3bqjVaiQmJnb/xXvQPffcg2PHjuHo0aOOT1JSEn74wx/i6NGjGD58OO9zN7jjjjtaLf9w6tQpxMbGAuA/z92poaEBPj7OjzC5XO6YPs973f2kdk+nTZuG/fv3O02p3717N6Kjo1t1mXXI5WHV1Cn26fObNm0SJ0+eFJmZmcLf31+cP3/e21WThJ///OciKChI7Nu3T5SXlzs+DQ0NjjKrV68WQUFBYtu2beLYsWPi0UcfbXO65pAhQ8SePXtEfn6+uPvuu9ucrnnLLbcIrVYrtFqtmDBhQpvTNe+55x6Rn58v9uzZI4YMGdIrp8C6ouWsMSF4n7vDl19+KRQKhfjtb38rTp8+Lf75z38KPz8/8e677zrK8D53j/nz54vBgwc7ps9v27ZNhIWFieeee85RhvfafbW1taKgoEAUFBQIAOK1114TBQUFjiVfpHRPa2pqREREhHj00UfFsWPHxLZt20RgYCCnz0vRunXrRGxsrFCpVGLKlCmOqeFkm57Z1uett95ylLFarWLVqlUiMjJSqNVqceedd4pjx445HaexsVE888wzIiQkRPj6+orvfve7oqSkxKlMdXW1+OEPfygCAgJEQECA+OEPfyiuXbvmVObChQtizpw5wtfXV4SEhIhnnnnGaWpmX3JjEOJ97h4ffvihGD9+vFCr1SI+Pl68+eabTt/zPncPvV4vFi1aJIYOHSo0Go0YPny4WLlypTAYDI4yvNfu27t3b5v/TZ4/f74QQnr39OuvvxbJyclCrVaLyMhI8cILL7g1dV4IIWRCuLsEIxEREVHfwDFCRERE1G8xCBEREVG/xSBERERE/RaDEBEREfVbDEJERETUbzEIERERUb/FIERERET9FoMQERER9VsMQkRERNRvMQgRERFRv8UgRERERP0WgxARERH1W/8flADhZtG2wcQAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# Training Procedure\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # gradient accumulation: update every accum_steps samples\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # automatic mixed precision (amp)\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # gradient accumulation: update every accum_steps samples\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # emptying the CUDA cache after the first step can reduce the chance of OOM\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # mixed precision training\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # logging\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # back-prop\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) handles the case of a zero gradient\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # grad norm clipping prevents gradient exploding\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # logging\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## Validation & Inference\\n\",\n    \"To prevent overfitting, validation is required every epoch to validate the performance on unseen data.\\n\",\n    \"- the procedure is essensially same as training, with the addition of inference step\\n\",\n    \"- after validation we can save the model weights\\n\",\n    \"\\n\",\n    \"Validation loss alone cannot describe the actual performance of the model\\n\",\n    \"- Directly produce translation hypotheses based on current model, then calculate BLEU with the reference translation\\n\",\n    \"- We can also manually examine the hypotheses' quality\\n\",\n    \"- We use fairseq's sequence generator for beam search to generate translation hypotheses\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq's beam search generator\\n\",\n    \"# given model and input seqeunce, produce translation hypotheses by beam search\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # convert from Tensor to human readable sentence\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # for each sample, collect the input, hypothesis and reference, later be used to calculate BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 indicates using the top hypothesis in beam\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # show bleu results\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# Save and Load Model Weights\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # save epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # save epoch samples\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # get best valid bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## Training loop\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | encoder: TransformerEncoder\\n\",\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | decoder: TransformerDecoder\\n\",\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | num. model params: 52,324,352 (num. trained: 52,324,352)\\n\",\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:26:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 11:26:30 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-16 11:26:30 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-16 11:26:30 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-16 11:26:30 | WARNING | fairseq.tasks.fairseq_task | 1 samples have invalid sizes and will be skipped, max_positions=(1024, 1024), first few sample ids=[326653]\\n\",\n      \"2023-11-16 11:26:30 | INFO | hw5.seq2seq | no checkpoints found at checkpoints/transformer/checkpoint_last.pt!\\n\",\n      \"2023-11-16 11:26:30 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 1:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/functional.py:5076: UserWarning: Support for mismatched key_padding_mask and attn_mask is deprecated. Use same type for both instead.\\n\",\n      \"  warnings.warn(\\n\",\n      \"2023-11-16 11:33:05 | INFO | hw5.seq2seq | training loss: 6.7384\\n\",\n      \"2023-11-16 11:33:05 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 11:33:05 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 11:33:05 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-16 11:33:05 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-16 11:33:05 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:33:31 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-16 11:33:31 | INFO | hw5.seq2seq | example hypothesis: 首先 , 美國人工業業業業業業業業業業業業業業業業業業業業業 。\\n\",\n      \"2023-11-16 11:33:31 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-16 11:33:31 | INFO | hw5.seq2seq | validation loss:\\t5.5794\\n\",\n      \"2023-11-16 11:33:31 | INFO | hw5.seq2seq | BLEU = 2.01 21.3/5.3/1.4/0.4 (BP = 0.718 ratio = 0.751 hyp_len = 82934 ref_len = 110430)\\n\",\n      \"2023-11-16 11:33:31 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint1.pt\\n\",\n      \"2023-11-16 11:33:32 | INFO | hw5.seq2seq | end of epoch 1\\n\",\n      \"2023-11-16 11:33:32 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 11:33:32 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 2:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:40:07 | INFO | hw5.seq2seq | training loss: 5.1328\\n\",\n      \"2023-11-16 11:40:07 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 11:40:07 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:40:37 | INFO | hw5.seq2seq | example source: and it just sounds like the most egotistical request you could make , if you were going to pray .\\n\",\n      \"2023-11-16 11:40:37 | INFO | hw5.seq2seq | example hypothesis: 聽起來像是最高的演算法 , 假設是 , 假如你會拍攝影機 。\\n\",\n      \"2023-11-16 11:40:37 | INFO | hw5.seq2seq | example reference: 這聽起來像是你所能想到的最自我中心的禱告祈求 。\\n\",\n      \"2023-11-16 11:40:37 | INFO | hw5.seq2seq | validation loss:\\t4.6491\\n\",\n      \"2023-11-16 11:40:37 | INFO | hw5.seq2seq | BLEU = 10.30 35.7/14.8/6.7/3.2 (BP = 1.000 ratio = 1.079 hyp_len = 119117 ref_len = 110430)\\n\",\n      \"2023-11-16 11:40:38 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint2.pt\\n\",\n      \"2023-11-16 11:40:38 | INFO | hw5.seq2seq | end of epoch 2\\n\",\n      \"2023-11-16 11:40:38 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 11:40:38 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 3:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:47:10 | INFO | hw5.seq2seq | training loss: 4.4837\\n\",\n      \"2023-11-16 11:47:10 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 11:47:10 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:47:34 | INFO | hw5.seq2seq | example source: but empathy really should get you points if you do it when it's hard to do .\\n\",\n      \"2023-11-16 11:47:34 | INFO | hw5.seq2seq | example hypothesis: 但是 , 同理心真的要把你點點放在很難做到的情況下 。\\n\",\n      \"2023-11-16 11:47:34 | INFO | hw5.seq2seq | example reference: 同理心應該是在很難有同理心的情況下產生才能夠得分才對 。\\n\",\n      \"2023-11-16 11:47:34 | INFO | hw5.seq2seq | validation loss:\\t4.2101\\n\",\n      \"2023-11-16 11:47:34 | INFO | hw5.seq2seq | BLEU = 14.95 48.7/23.5/12.2/6.7 (BP = 0.854 ratio = 0.864 hyp_len = 95424 ref_len = 110430)\\n\",\n      \"2023-11-16 11:47:34 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint3.pt\\n\",\n      \"2023-11-16 11:47:34 | INFO | hw5.seq2seq | end of epoch 3\\n\",\n      \"2023-11-16 11:47:34 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 11:47:34 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 4:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:54:11 | INFO | hw5.seq2seq | training loss: 4.1257\\n\",\n      \"2023-11-16 11:54:11 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 11:54:11 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 11:54:36 | INFO | hw5.seq2seq | example source: but most biologics also have a flaw .\\n\",\n      \"2023-11-16 11:54:36 | INFO | hw5.seq2seq | example hypothesis: 但大部份生物學也會有缺陷 。\\n\",\n      \"2023-11-16 11:54:36 | INFO | hw5.seq2seq | example reference: 但 , 大部分的生物藥都有個瑕疵 。\\n\",\n      \"2023-11-16 11:54:36 | INFO | hw5.seq2seq | validation loss:\\t4.0328\\n\",\n      \"2023-11-16 11:54:36 | INFO | hw5.seq2seq | BLEU = 16.84 53.4/27.3/14.9/8.6 (BP = 0.809 ratio = 0.825 hyp_len = 91142 ref_len = 110430)\\n\",\n      \"2023-11-16 11:54:36 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint4.pt\\n\",\n      \"2023-11-16 11:54:36 | INFO | hw5.seq2seq | end of epoch 4\\n\",\n      \"2023-11-16 11:54:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 11:54:36 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 5:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:01:12 | INFO | hw5.seq2seq | training loss: 3.9096\\n\",\n      \"2023-11-16 12:01:12 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 12:01:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:01:39 | INFO | hw5.seq2seq | example source: but i believe now that we're moving into a new age , and that age the new york times dubbed recently as \\\" the age of behavior . \\\"\\n\",\n      \"2023-11-16 12:01:39 | INFO | hw5.seq2seq | example hypothesis: 但我相信 , 我們現在正在邁進一個新時代 , 紐約時報的時代 , 如 「 行為的年齡 」 。\\n\",\n      \"2023-11-16 12:01:39 | INFO | hw5.seq2seq | example reference: 但我相信現在我們正在進入一個新的時代 , 而且最近這個時代被紐約時報稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-16 12:01:39 | INFO | hw5.seq2seq | validation loss:\\t3.7690\\n\",\n      \"2023-11-16 12:01:39 | INFO | hw5.seq2seq | BLEU = 20.63 52.8/27.8/15.5/9.1 (BP = 0.965 ratio = 0.966 hyp_len = 106672 ref_len = 110430)\\n\",\n      \"2023-11-16 12:01:39 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint5.pt\\n\",\n      \"2023-11-16 12:01:39 | INFO | hw5.seq2seq | end of epoch 5\\n\",\n      \"2023-11-16 12:01:39 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 12:01:39 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 6:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:08:14 | INFO | hw5.seq2seq | training loss: 3.7537\\n\",\n      \"2023-11-16 12:08:14 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 12:08:14 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:08:37 | INFO | hw5.seq2seq | example source: as we have hot blood running through our veins and arteries , so , too , the earth has hot water running through its cracks and faults .\\n\",\n      \"2023-11-16 12:08:37 | INFO | hw5.seq2seq | example hypothesis: 如同我們有熱血液在我們的血管和動脈中流動 , 地球也在裂縫中流動 。\\n\",\n      \"2023-11-16 12:08:37 | INFO | hw5.seq2seq | example reference: 就如我們身體𥚃有熱騰騰的血液經過靜脈和動脈 , 同樣地 , 地球也有熱流穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-16 12:08:37 | INFO | hw5.seq2seq | validation loss:\\t3.6373\\n\",\n      \"2023-11-16 12:08:37 | INFO | hw5.seq2seq | BLEU = 21.56 56.7/30.7/17.7/10.7 (BP = 0.899 ratio = 0.904 hyp_len = 99775 ref_len = 110430)\\n\",\n      \"2023-11-16 12:08:37 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint6.pt\\n\",\n      \"2023-11-16 12:08:37 | INFO | hw5.seq2seq | end of epoch 6\\n\",\n      \"2023-11-16 12:08:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 12:08:37 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 7:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:15:12 | INFO | hw5.seq2seq | training loss: 3.5916\\n\",\n      \"2023-11-16 12:15:12 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 12:15:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:15:36 | INFO | hw5.seq2seq | example source: entirely new requirement .\\n\",\n      \"2023-11-16 12:15:36 | INFO | hw5.seq2seq | example hypothesis: 全新的需求\\n\",\n      \"2023-11-16 12:15:36 | INFO | hw5.seq2seq | example reference: 這是全新的要求 。\\n\",\n      \"2023-11-16 12:15:36 | INFO | hw5.seq2seq | validation loss:\\t3.5390\\n\",\n      \"2023-11-16 12:15:36 | INFO | hw5.seq2seq | BLEU = 21.93 57.8/31.9/18.4/11.2 (BP = 0.883 ratio = 0.889 hyp_len = 98225 ref_len = 110430)\\n\",\n      \"2023-11-16 12:15:37 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint7.pt\\n\",\n      \"2023-11-16 12:15:37 | INFO | hw5.seq2seq | end of epoch 7\\n\",\n      \"2023-11-16 12:15:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 12:15:37 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 8:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:22:13 | INFO | hw5.seq2seq | training loss: 3.4813\\n\",\n      \"2023-11-16 12:22:13 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 12:22:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:22:35 | INFO | hw5.seq2seq | example source: by 1960 we had telephone bills , bank statements were being produced by computers .\\n\",\n      \"2023-11-16 12:22:35 | INFO | hw5.seq2seq | example hypothesis: 到了1960年 , 我們有了電話帳單 , 銀行宣言是由電腦所產生的 。\\n\",\n      \"2023-11-16 12:22:35 | INFO | hw5.seq2seq | example reference: 到了1960年 , 我們的電話和銀行帳單都交由電腦處理\\n\",\n      \"2023-11-16 12:22:35 | INFO | hw5.seq2seq | validation loss:\\t3.4736\\n\",\n      \"2023-11-16 12:22:35 | INFO | hw5.seq2seq | BLEU = 23.34 58.8/32.8/19.4/12.1 (BP = 0.901 ratio = 0.905 hyp_len = 99960 ref_len = 110430)\\n\",\n      \"2023-11-16 12:22:36 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint8.pt\\n\",\n      \"2023-11-16 12:22:36 | INFO | hw5.seq2seq | end of epoch 8\\n\",\n      \"2023-11-16 12:22:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 12:22:36 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 9:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:29:10 | INFO | hw5.seq2seq | training loss: 3.3965\\n\",\n      \"2023-11-16 12:29:10 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 12:29:10 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:29:34 | INFO | hw5.seq2seq | example source: they started making their own video games .\\n\",\n      \"2023-11-16 12:29:34 | INFO | hw5.seq2seq | example hypothesis: 他們開始製作自己的電玩遊戲 。\\n\",\n      \"2023-11-16 12:29:34 | INFO | hw5.seq2seq | example reference: 他們開始製造自己的電玩遊戲 。\\n\",\n      \"2023-11-16 12:29:34 | INFO | hw5.seq2seq | validation loss:\\t3.4221\\n\",\n      \"2023-11-16 12:29:34 | INFO | hw5.seq2seq | BLEU = 24.01 59.3/33.4/19.9/12.5 (BP = 0.906 ratio = 0.910 hyp_len = 100528 ref_len = 110430)\\n\",\n      \"2023-11-16 12:29:34 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint9.pt\\n\",\n      \"2023-11-16 12:29:34 | INFO | hw5.seq2seq | end of epoch 9\\n\",\n      \"2023-11-16 12:29:34 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 12:29:34 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 10:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:36:09 | INFO | hw5.seq2seq | training loss: 3.3247\\n\",\n      \"2023-11-16 12:36:09 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 12:36:09 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:36:34 | INFO | hw5.seq2seq | example source: a perfect example of this is spanish contemporary artist fernando vicente .\\n\",\n      \"2023-11-16 12:36:34 | INFO | hw5.seq2seq | example hypothesis: 這是一個完美的例子 , 是西班牙的現代藝術家費南多維 。\\n\",\n      \"2023-11-16 12:36:34 | INFO | hw5.seq2seq | example reference: 一個最有代表性的例子是西班牙現代藝術家費南多·維森特 。\\n\",\n      \"2023-11-16 12:36:34 | INFO | hw5.seq2seq | validation loss:\\t3.3772\\n\",\n      \"2023-11-16 12:36:34 | INFO | hw5.seq2seq | BLEU = 24.81 57.4/32.3/19.1/11.9 (BP = 0.975 ratio = 0.975 hyp_len = 107690 ref_len = 110430)\\n\",\n      \"2023-11-16 12:36:34 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/en/checkpoints/transformer/checkpoint10.pt\\n\",\n      \"2023-11-16 12:36:35 | INFO | hw5.seq2seq | end of epoch 10\\n\",\n      \"2023-11-16 12:36:35 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # train for one epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Namespace(inputs=['./checkpoints/transformer'], output='./checkpoints/transformer/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/transformer/checkpoint10.pt', './checkpoints/transformer/checkpoint9.pt', './checkpoints/transformer/checkpoint8.pt', './checkpoints/transformer/checkpoint7.pt', './checkpoints/transformer/checkpoint6.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/transformer/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# averaging a few checkpoints can have a similar effect to ensemble\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## Confirm model weights used to generate submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:36:37 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/transformer/avg_last_5_checkpoint.pt: step=unknown loss=3.3772358894348145 bleu=24.80688312083641\\n\",\n      \"2023-11-16 12:36:37 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-16 12:36:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:37:00 | INFO | hw5.seq2seq | example source: right . as you can see , bart simpson is having a little argument .\\n\",\n      \"2023-11-16 12:37:00 | INFO | hw5.seq2seq | example hypothesis: 如你所見 , 巴特·辛普森有一點爭論 。\\n\",\n      \"2023-11-16 12:37:00 | INFO | hw5.seq2seq | example reference: 好 , 如你所見bartsimpson正和它老爸爭執\\n\",\n      \"2023-11-16 12:37:00 | INFO | hw5.seq2seq | validation loss:\\t3.4055\\n\",\n      \"2023-11-16 12:37:00 | INFO | hw5.seq2seq | BLEU = 24.60 59.5/33.8/20.3/12.8 (BP = 0.915 ratio = 0.919 hyp_len = 101451 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : latest epoch\\n\",\n    \"# checkpoint_best.pt : highest validation bleu\\n\",\n    \"# avg_last_5_checkpoint.pt: the average of last 5 epochs\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## Generate Prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # sort based on the order before preprocess\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-16 12:37:00 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.en\\n\",\n      \"2023-11-16 12:37:00 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.zh\\n\",\n      \"2023-11-16 12:37:00 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 test en-zh 4000 examples\\n\",\n      \"2023-11-16 12:37:00 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-16 12:37:00 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-16 12:37:00 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-16 12:37:00 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"96e6013d42ef4f84bbb2c0c13b1f2fc2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"prediction:   0%|          | 0/18 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[49], line 1\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0m \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## Train a backward translation model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. Switch the source_lang and target_lang in **config**\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## Generate synthetic data with backward model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### Download monolingual data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: clean corpus\\n\",\n    \"\\n\",\n    \"1. remove sentences that are too long or too short\\n\",\n    \"2. unify punctuation\\n\",\n    \"\\n\",\n    \"hint: you can use clean_s() defined above to do this\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: Subword Units\\n\",\n    \"\\n\",\n    \"Use the spm model of the backward model to tokenize the data into subword units\\n\",\n    \"\\n\",\n    \"hint: spm model is located at DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### Binarize\\n\",\n    \"\\n\",\n    \"use fairseq to binarize data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: Generate synthetic data with backward model\\n\",\n    \"\\n\",\n    \"Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"then you can use 'generate_prediction(model, task, split=\\\"split_name\\\")' to generate translation prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"# ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: do prediction on split='mono' to create prediction_file\\n\",\n    \"# generate_prediction( ... ,split=... ,outfile=... )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: Create new dataset\\n\",\n    \"\\n\",\n    \"1. Combine the prediction data with monolingual data\\n\",\n    \"2. Use the original spm model to tokenize data into Subword Units\\n\",\n    \"3. Binarize data with fairseq\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Combine prediction_file (.en) and mono.zh (.zh) into a new dataset.\\n\",\n    \"#\\n\",\n    \"# hint: tokenize prediction_file with the spm model\\n\",\n    \"# spm_model.encode(line, out_type=str)\\n\",\n    \"# output: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# hint: use fairseq to binarize these two files again\\n\",\n    \"# binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"# src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"# tgt_dict_file = src_dict_file\\n\",\n    \"# monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"# if binpath.exists():\\n\",\n    \"#     print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"# else:\\n\",\n    \"#     !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"#         --source-lang 'zh'\\\\\\n\",\n    \"#         --target-lang 'en'\\\\\\n\",\n    \"#         --trainpref {monopref}\\\\\\n\",\n    \"#         --destdir {binpath}\\\\\\n\",\n    \"#         --srcdict {src_dict_file}\\\\\\n\",\n    \"#         --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"#         --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create a new dataset from all the files prepared above\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"Created new dataset \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. Change the datadir in **config** (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. Switch back the source_lang and target_lang in **config** (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/en/HW05_sample_code.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# Homework Description\\n\",\n    \"- English to Chinese (Traditional) Translation\\n\",\n    \"  - Input: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - Output: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - Train a simple RNN seq2seq to acheive translation\\n\",\n    \"    - Switch to transformer model to boost performance\\n\",\n    \"    - Apply Back-translation to furthur boost performance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Fri Jun 23 03:17:07 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |\\n\",\n      \"| N/A   59C    P8    13W /  70W |      0MiB / 15360MiB |      0%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|  No running processes found                                                 |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# Download and import required packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Requirement already satisfied: torch>=1.6.0 in /opt/conda/lib/python3.10/site-packages (2.0.0)\\n\",\n      \"Collecting editdistance\\n\",\n      \"  Downloading editdistance-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (282 kB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m282.6/282.6 kB\\u001b[0m \\u001b[31m6.0 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0ma \\u001b[36m0:00:01\\u001b[0m\\n\",\n      \"\\u001b[?25hRequirement already satisfied: matplotlib in /opt/conda/lib/python3.10/site-packages (3.6.3)\\n\",\n      \"Collecting sacrebleu\\n\",\n      \"  Downloading sacrebleu-2.3.1-py3-none-any.whl (118 kB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m118.9/118.9 kB\\u001b[0m \\u001b[31m13.2 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n      \"\\u001b[?25hCollecting sacremoses\\n\",\n      \"  Downloading sacremoses-0.0.53.tar.gz (880 kB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m880.6/880.6 kB\\u001b[0m \\u001b[31m33.7 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n      \"\\u001b[?25h  Preparing metadata (setup.py) ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25hRequirement already satisfied: sentencepiece in /opt/conda/lib/python3.10/site-packages (0.1.98)\\n\",\n      \"Requirement already satisfied: tqdm in /opt/conda/lib/python3.10/site-packages (4.64.1)\\n\",\n      \"Requirement already satisfied: wandb in /opt/conda/lib/python3.10/site-packages (0.15.0)\\n\",\n      \"Requirement already satisfied: networkx in /opt/conda/lib/python3.10/site-packages (from torch>=1.6.0) (3.1)\\n\",\n      \"Requirement already satisfied: sympy in /opt/conda/lib/python3.10/site-packages (from torch>=1.6.0) (1.11.1)\\n\",\n      \"Requirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from torch>=1.6.0) (3.11.0)\\n\",\n      \"Requirement already satisfied: typing-extensions in /opt/conda/lib/python3.10/site-packages (from torch>=1.6.0) (4.5.0)\\n\",\n      \"Requirement already satisfied: jinja2 in /opt/conda/lib/python3.10/site-packages (from torch>=1.6.0) (3.1.2)\\n\",\n      \"Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (4.39.3)\\n\",\n      \"Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (0.11.0)\\n\",\n      \"Requirement already satisfied: pillow>=6.2.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (9.5.0)\\n\",\n      \"Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (3.0.9)\\n\",\n      \"Requirement already satisfied: python-dateutil>=2.7 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (2.8.2)\\n\",\n      \"Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (1.4.4)\\n\",\n      \"Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (21.3)\\n\",\n      \"Requirement already satisfied: numpy>=1.19 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (1.23.5)\\n\",\n      \"Requirement already satisfied: contourpy>=1.0.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib) (1.0.7)\\n\",\n      \"Collecting portalocker\\n\",\n      \"  Downloading portalocker-2.7.0-py2.py3-none-any.whl (15 kB)\\n\",\n      \"Requirement already satisfied: lxml in /opt/conda/lib/python3.10/site-packages (from sacrebleu) (4.9.2)\\n\",\n      \"Requirement already satisfied: regex in /opt/conda/lib/python3.10/site-packages (from sacrebleu) (2023.3.23)\\n\",\n      \"Requirement already satisfied: tabulate>=0.8.9 in /opt/conda/lib/python3.10/site-packages (from sacrebleu) (0.9.0)\\n\",\n      \"Requirement already satisfied: colorama in /opt/conda/lib/python3.10/site-packages (from sacrebleu) (0.4.6)\\n\",\n      \"Requirement already satisfied: six in /opt/conda/lib/python3.10/site-packages (from sacremoses) (1.16.0)\\n\",\n      \"Requirement already satisfied: click in /opt/conda/lib/python3.10/site-packages (from sacremoses) (8.1.3)\\n\",\n      \"Requirement already satisfied: joblib in /opt/conda/lib/python3.10/site-packages (from sacremoses) (1.2.0)\\n\",\n      \"Requirement already satisfied: requests<3,>=2.0.0 in /opt/conda/lib/python3.10/site-packages (from wandb) (2.28.2)\\n\",\n      \"Requirement already satisfied: psutil>=5.0.0 in /opt/conda/lib/python3.10/site-packages (from wandb) (5.9.4)\\n\",\n      \"Requirement already satisfied: docker-pycreds>=0.4.0 in /opt/conda/lib/python3.10/site-packages (from wandb) (0.4.0)\\n\",\n      \"Requirement already satisfied: pathtools in /opt/conda/lib/python3.10/site-packages (from wandb) (0.1.2)\\n\",\n      \"Requirement already satisfied: setproctitle in /opt/conda/lib/python3.10/site-packages (from wandb) (1.3.2)\\n\",\n      \"Requirement already satisfied: setuptools in /opt/conda/lib/python3.10/site-packages (from wandb) (59.8.0)\\n\",\n      \"Requirement already satisfied: protobuf!=4.21.0,<5,>=3.19.0 in /opt/conda/lib/python3.10/site-packages (from wandb) (3.20.3)\\n\",\n      \"Requirement already satisfied: PyYAML in /opt/conda/lib/python3.10/site-packages (from wandb) (6.0)\\n\",\n      \"Requirement already satisfied: sentry-sdk>=1.0.0 in /opt/conda/lib/python3.10/site-packages (from wandb) (1.20.0)\\n\",\n      \"Requirement already satisfied: GitPython!=3.1.29,>=1.0.0 in /opt/conda/lib/python3.10/site-packages (from wandb) (3.1.31)\\n\",\n      \"Requirement already satisfied: appdirs>=1.4.3 in /opt/conda/lib/python3.10/site-packages (from wandb) (1.4.4)\\n\",\n      \"Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/lib/python3.10/site-packages (from GitPython!=3.1.29,>=1.0.0->wandb) (4.0.10)\\n\",\n      \"Requirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.10/site-packages (from requests<3,>=2.0.0->wandb) (2.1.1)\\n\",\n      \"Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.10/site-packages (from requests<3,>=2.0.0->wandb) (3.4)\\n\",\n      \"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.10/site-packages (from requests<3,>=2.0.0->wandb) (1.26.15)\\n\",\n      \"Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.10/site-packages (from requests<3,>=2.0.0->wandb) (2022.12.7)\\n\",\n      \"Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.10/site-packages (from jinja2->torch>=1.6.0) (2.1.2)\\n\",\n      \"Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.10/site-packages (from sympy->torch>=1.6.0) (1.3.0)\\n\",\n      \"Requirement already satisfied: smmap<6,>=3.0.1 in /opt/conda/lib/python3.10/site-packages (from gitdb<5,>=4.0.1->GitPython!=3.1.29,>=1.0.0->wandb) (5.0.0)\\n\",\n      \"Building wheels for collected packages: sacremoses\\n\",\n      \"  Building wheel for sacremoses (setup.py) ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25h  Created wheel for sacremoses: filename=sacremoses-0.0.53-py3-none-any.whl size=895260 sha256=5c9590107e9fce15a0bea020137fb6e00509be8451f58900ba3b47645f2cfff9\\n\",\n      \"  Stored in directory: /root/.cache/pip/wheels/00/24/97/a2ea5324f36bc626e1ea0267f33db6aa80d157ee977e9e42fb\\n\",\n      \"Successfully built sacremoses\\n\",\n      \"Installing collected packages: sacremoses, portalocker, editdistance, sacrebleu\\n\",\n      \"Successfully installed editdistance-0.6.2 portalocker-2.7.0 sacrebleu-2.3.1 sacremoses-0.0.53\\n\",\n      \"\\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\\u001b[0m\\u001b[33m\\n\",\n      \"\\u001b[0mCollecting jupyter\\n\",\n      \"  Downloading jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB)\\n\",\n      \"Requirement already satisfied: ipywidgets in /opt/conda/lib/python3.10/site-packages (7.7.1)\\n\",\n      \"Collecting ipywidgets\\n\",\n      \"  Downloading ipywidgets-8.0.6-py3-none-any.whl (138 kB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m138.3/138.3 kB\\u001b[0m \\u001b[31m3.6 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0ma \\u001b[36m0:00:01\\u001b[0m\\n\",\n      \"\\u001b[?25hRequirement already satisfied: notebook in /opt/conda/lib/python3.10/site-packages (from jupyter) (6.5.4)\\n\",\n      \"Requirement already satisfied: ipykernel in /opt/conda/lib/python3.10/site-packages (from jupyter) (6.22.0)\\n\",\n      \"Requirement already satisfied: jupyter-console in /opt/conda/lib/python3.10/site-packages (from jupyter) (6.6.3)\\n\",\n      \"Requirement already satisfied: qtconsole in /opt/conda/lib/python3.10/site-packages (from jupyter) (5.4.2)\\n\",\n      \"Requirement already satisfied: nbconvert in /opt/conda/lib/python3.10/site-packages (from jupyter) (6.4.5)\\n\",\n      \"Requirement already satisfied: ipython>=6.1.0 in /opt/conda/lib/python3.10/site-packages (from ipywidgets) (8.12.0)\\n\",\n      \"Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.10/site-packages (from ipywidgets) (5.9.0)\\n\",\n      \"Collecting widgetsnbextension~=4.0.7\\n\",\n      \"  Downloading widgetsnbextension-4.0.7-py3-none-any.whl (2.1 MB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m2.1/2.1 MB\\u001b[0m \\u001b[31m17.6 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m00:01\\u001b[0m00:01\\u001b[0m\\n\",\n      \"\\u001b[?25hRequirement already satisfied: jupyterlab-widgets~=3.0.7 in /opt/conda/lib/python3.10/site-packages (from ipywidgets) (3.0.7)\\n\",\n      \"Requirement already satisfied: debugpy>=1.6.5 in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (1.6.7)\\n\",\n      \"Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (0.1.6)\\n\",\n      \"Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (8.1.0)\\n\",\n      \"Requirement already satisfied: psutil in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (5.9.4)\\n\",\n      \"Requirement already satisfied: comm>=0.1.1 in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (0.1.3)\\n\",\n      \"Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (1.5.6)\\n\",\n      \"Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (6.2)\\n\",\n      \"Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (5.3.0)\\n\",\n      \"Requirement already satisfied: pyzmq>=20 in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (25.0.2)\\n\",\n      \"Requirement already satisfied: packaging in /opt/conda/lib/python3.10/site-packages (from ipykernel->jupyter) (21.3)\\n\",\n      \"Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.10/site-packages (from ipython>=6.1.0->ipywidgets) (4.8.0)\\n\",\n      \"Requirement already satisfied: pickleshare in /opt/conda/lib/python3.10/site-packages (from ipython>=6.1.0->ipywidgets) (0.7.5)\\n\",\n      \"Requirement already satisfied: prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30 in /opt/conda/lib/python3.10/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.38)\\n\",\n      \"Requirement already satisfied: stack-data in /opt/conda/lib/python3.10/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.2)\\n\",\n      \"Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.10/site-packages (from ipython>=6.1.0->ipywidgets) (0.18.2)\\n\",\n      \"Requirement already satisfied: pygments>=2.4.0 in /opt/conda/lib/python3.10/site-packages (from ipython>=6.1.0->ipywidgets) (2.15.0)\\n\",\n      \"Requirement already satisfied: decorator in /opt/conda/lib/python3.10/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)\\n\",\n      \"Requirement already satisfied: backcall in /opt/conda/lib/python3.10/site-packages (from ipython>=6.1.0->ipywidgets) (0.2.0)\\n\",\n      \"Requirement already satisfied: jinja2>=2.4 in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (3.1.2)\\n\",\n      \"Requirement already satisfied: defusedxml in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (0.7.1)\\n\",\n      \"Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (4.12.2)\\n\",\n      \"Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (2.1.2)\\n\",\n      \"Requirement already satisfied: bleach in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (6.0.0)\\n\",\n      \"Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (0.2.2)\\n\",\n      \"Requirement already satisfied: nbformat>=4.4 in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (5.8.0)\\n\",\n      \"Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (0.5.13)\\n\",\n      \"Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (0.8.4)\\n\",\n      \"Requirement already satisfied: entrypoints>=0.2.2 in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (0.4)\\n\",\n      \"Requirement already satisfied: testpath in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (0.6.0)\\n\",\n      \"Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.10/site-packages (from nbconvert->jupyter) (1.5.0)\\n\",\n      \"Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.10/site-packages (from notebook->jupyter) (21.3.0)\\n\",\n      \"Requirement already satisfied: ipython-genutils in /opt/conda/lib/python3.10/site-packages (from notebook->jupyter) (0.2.0)\\n\",\n      \"Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.10/site-packages (from notebook->jupyter) (0.16.0)\\n\",\n      \"Requirement already satisfied: Send2Trash>=1.8.0 in /opt/conda/lib/python3.10/site-packages (from notebook->jupyter) (1.8.0)\\n\",\n      \"Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.10/site-packages (from notebook->jupyter) (0.17.1)\\n\",\n      \"Requirement already satisfied: nbclassic>=0.4.7 in /opt/conda/lib/python3.10/site-packages (from notebook->jupyter) (0.5.5)\\n\",\n      \"Requirement already satisfied: qtpy>=2.0.1 in /opt/conda/lib/python3.10/site-packages (from qtconsole->jupyter) (2.3.1)\\n\",\n      \"Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.10/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.3)\\n\",\n      \"Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.10/site-packages (from jupyter-client>=6.1.12->ipykernel->jupyter) (2.8.2)\\n\",\n      \"Requirement already satisfied: platformdirs>=2.5 in /opt/conda/lib/python3.10/site-packages (from jupyter-core!=5.0.*,>=4.12->ipykernel->jupyter) (3.2.0)\\n\",\n      \"Requirement already satisfied: notebook-shim>=0.1.0 in /opt/conda/lib/python3.10/site-packages (from nbclassic>=0.4.7->notebook->jupyter) (0.2.2)\\n\",\n      \"Requirement already satisfied: jupyter-server>=1.8 in /opt/conda/lib/python3.10/site-packages (from nbclassic>=0.4.7->notebook->jupyter) (2.5.0)\\n\",\n      \"Requirement already satisfied: jsonschema>=2.6 in /opt/conda/lib/python3.10/site-packages (from nbformat>=4.4->nbconvert->jupyter) (4.17.3)\\n\",\n      \"Requirement already satisfied: fastjsonschema in /opt/conda/lib/python3.10/site-packages (from nbformat>=4.4->nbconvert->jupyter) (2.16.3)\\n\",\n      \"Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.10/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)\\n\",\n      \"Requirement already satisfied: wcwidth in /opt/conda/lib/python3.10/site-packages (from prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30->ipython>=6.1.0->ipywidgets) (0.2.6)\\n\",\n      \"Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.10/site-packages (from argon2-cffi->notebook->jupyter) (21.2.0)\\n\",\n      \"Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.10/site-packages (from beautifulsoup4->nbconvert->jupyter) (2.4)\\n\",\n      \"Requirement already satisfied: webencodings in /opt/conda/lib/python3.10/site-packages (from bleach->nbconvert->jupyter) (0.5.1)\\n\",\n      \"Requirement already satisfied: six>=1.9.0 in /opt/conda/lib/python3.10/site-packages (from bleach->nbconvert->jupyter) (1.16.0)\\n\",\n      \"Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.10/site-packages (from packaging->ipykernel->jupyter) (3.0.9)\\n\",\n      \"Requirement already satisfied: executing>=1.2.0 in /opt/conda/lib/python3.10/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (1.2.0)\\n\",\n      \"Requirement already satisfied: pure-eval in /opt/conda/lib/python3.10/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)\\n\",\n      \"Requirement already satisfied: asttokens>=2.1.0 in /opt/conda/lib/python3.10/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.2.1)\\n\",\n      \"Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat>=4.4->nbconvert->jupyter) (0.19.3)\\n\",\n      \"Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat>=4.4->nbconvert->jupyter) (22.2.0)\\n\",\n      \"Requirement already satisfied: jupyter-events>=0.4.0 in /opt/conda/lib/python3.10/site-packages (from jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (0.6.3)\\n\",\n      \"Requirement already satisfied: anyio>=3.1.0 in /opt/conda/lib/python3.10/site-packages (from jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (3.6.2)\\n\",\n      \"Requirement already satisfied: websocket-client in /opt/conda/lib/python3.10/site-packages (from jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (1.5.1)\\n\",\n      \"Requirement already satisfied: jupyter-server-terminals in /opt/conda/lib/python3.10/site-packages (from jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (0.4.4)\\n\",\n      \"Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.10/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook->jupyter) (1.15.1)\\n\",\n      \"Requirement already satisfied: idna>=2.8 in /opt/conda/lib/python3.10/site-packages (from anyio>=3.1.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (3.4)\\n\",\n      \"Requirement already satisfied: sniffio>=1.1 in /opt/conda/lib/python3.10/site-packages (from anyio>=3.1.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (1.3.0)\\n\",\n      \"Requirement already satisfied: pycparser in /opt/conda/lib/python3.10/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook->jupyter) (2.21)\\n\",\n      \"Requirement already satisfied: pyyaml>=5.3 in /opt/conda/lib/python3.10/site-packages (from jupyter-events>=0.4.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (6.0)\\n\",\n      \"Requirement already satisfied: rfc3339-validator in /opt/conda/lib/python3.10/site-packages (from jupyter-events>=0.4.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (0.1.4)\\n\",\n      \"Requirement already satisfied: python-json-logger>=2.0.4 in /opt/conda/lib/python3.10/site-packages (from jupyter-events>=0.4.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (2.0.7)\\n\",\n      \"Requirement already satisfied: rfc3986-validator>=0.1.1 in /opt/conda/lib/python3.10/site-packages (from jupyter-events>=0.4.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter) (0.1.1)\\n\",\n      \"Requirement already satisfied: isoduration in /opt/conda/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat>=4.4->nbconvert->jupyter) (20.11.0)\\n\",\n      \"Requirement already satisfied: jsonpointer>1.13 in /opt/conda/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat>=4.4->nbconvert->jupyter) (2.0)\\n\",\n      \"Requirement already satisfied: uri-template in /opt/conda/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat>=4.4->nbconvert->jupyter) (1.2.0)\\n\",\n      \"Requirement already satisfied: webcolors>=1.11 in /opt/conda/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat>=4.4->nbconvert->jupyter) (1.13)\\n\",\n      \"Requirement already satisfied: fqdn in /opt/conda/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat>=4.4->nbconvert->jupyter) (1.5.1)\\n\",\n      \"Requirement already satisfied: arrow>=0.15.0 in /opt/conda/lib/python3.10/site-packages (from isoduration->jsonschema>=2.6->nbformat>=4.4->nbconvert->jupyter) (1.2.3)\\n\",\n      \"Installing collected packages: widgetsnbextension, ipywidgets, jupyter\\n\",\n      \"  Attempting uninstall: widgetsnbextension\\n\",\n      \"    Found existing installation: widgetsnbextension 3.6.4\\n\",\n      \"    Uninstalling widgetsnbextension-3.6.4:\\n\",\n      \"      Successfully uninstalled widgetsnbextension-3.6.4\\n\",\n      \"  Attempting uninstall: ipywidgets\\n\",\n      \"    Found existing installation: ipywidgets 7.7.1\\n\",\n      \"    Uninstalling ipywidgets-7.7.1:\\n\",\n      \"      Successfully uninstalled ipywidgets-7.7.1\\n\",\n      \"Successfully installed ipywidgets-8.0.6 jupyter-1.0.0 widgetsnbextension-4.0.7\\n\",\n      \"\\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\\u001b[0m\\u001b[33m\\n\",\n      \"\\u001b[0m\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cloning into 'fairseq'...\\n\",\n      \"remote: Enumerating objects: 34544, done.\\u001b[K\\n\",\n      \"remote: Counting objects: 100% (1/1), done.\\u001b[K\\n\",\n      \"remote: Total 34544 (delta 0), reused 1 (delta 0), pack-reused 34543\\u001b[K\\n\",\n      \"Receiving objects: 100% (34544/34544), 24.04 MiB | 26.67 MiB/s, done.\\n\",\n      \"Resolving deltas: 100% (25101/25101), done.\\n\",\n      \"Note: switching to '9a1c497'.\\n\",\n      \"\\n\",\n      \"You are in 'detached HEAD' state. You can look around, make experimental\\n\",\n      \"changes and commit them, and you can discard any commits you make in this\\n\",\n      \"state without impacting any branches by switching back to a branch.\\n\",\n      \"\\n\",\n      \"If you want to create a new branch to retain commits you create, you may\\n\",\n      \"do so (now or later) by using -c with the switch command. Example:\\n\",\n      \"\\n\",\n      \"  git switch -c <new-branch-name>\\n\",\n      \"\\n\",\n      \"Or undo this operation with:\\n\",\n      \"\\n\",\n      \"  git switch -\\n\",\n      \"\\n\",\n      \"Turn off this advice by setting config variable advice.detachedHead to false\\n\",\n      \"\\n\",\n      \"HEAD is now at 9a1c4970 Make Hydra logging work with DDP (#1568)\\n\",\n      \"Processing ./fairseq\\n\",\n      \"  Installing build dependencies ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25h  Getting requirements to build wheel ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25h  Installing backend dependencies ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25h  Preparing metadata (pyproject.toml) ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25hCollecting hydra-core<1.1\\n\",\n      \"  Downloading hydra_core-1.0.7-py3-none-any.whl (123 kB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m123.8/123.8 kB\\u001b[0m \\u001b[31m3.7 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n      \"\\u001b[?25hRequirement already satisfied: regex in /opt/conda/lib/python3.10/site-packages (from fairseq==1.0.0a0+9a1c497) (2023.3.23)\\n\",\n      \"Requirement already satisfied: torch in /opt/conda/lib/python3.10/site-packages (from fairseq==1.0.0a0+9a1c497) (2.0.0)\\n\",\n      \"Requirement already satisfied: tqdm in /opt/conda/lib/python3.10/site-packages (from fairseq==1.0.0a0+9a1c497) (4.64.1)\\n\",\n      \"Requirement already satisfied: cffi in /opt/conda/lib/python3.10/site-packages (from fairseq==1.0.0a0+9a1c497) (1.15.1)\\n\",\n      \"Requirement already satisfied: cython in /opt/conda/lib/python3.10/site-packages (from fairseq==1.0.0a0+9a1c497) (0.29.34)\\n\",\n      \"Requirement already satisfied: numpy in /opt/conda/lib/python3.10/site-packages (from fairseq==1.0.0a0+9a1c497) (1.23.5)\\n\",\n      \"Requirement already satisfied: sacrebleu>=1.4.12 in /opt/conda/lib/python3.10/site-packages (from fairseq==1.0.0a0+9a1c497) (2.3.1)\\n\",\n      \"Collecting omegaconf<2.1\\n\",\n      \"  Downloading omegaconf-2.0.6-py3-none-any.whl (36 kB)\\n\",\n      \"Collecting antlr4-python3-runtime==4.8\\n\",\n      \"  Downloading antlr4-python3-runtime-4.8.tar.gz (112 kB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m112.4/112.4 kB\\u001b[0m \\u001b[31m12.4 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n      \"\\u001b[?25h  Preparing metadata (setup.py) ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25hRequirement already satisfied: typing-extensions in /opt/conda/lib/python3.10/site-packages (from omegaconf<2.1->fairseq==1.0.0a0+9a1c497) (4.5.0)\\n\",\n      \"Requirement already satisfied: PyYAML>=5.1.* in /opt/conda/lib/python3.10/site-packages (from omegaconf<2.1->fairseq==1.0.0a0+9a1c497) (6.0)\\n\",\n      \"Requirement already satisfied: lxml in /opt/conda/lib/python3.10/site-packages (from sacrebleu>=1.4.12->fairseq==1.0.0a0+9a1c497) (4.9.2)\\n\",\n      \"Requirement already satisfied: tabulate>=0.8.9 in /opt/conda/lib/python3.10/site-packages (from sacrebleu>=1.4.12->fairseq==1.0.0a0+9a1c497) (0.9.0)\\n\",\n      \"Requirement already satisfied: colorama in /opt/conda/lib/python3.10/site-packages (from sacrebleu>=1.4.12->fairseq==1.0.0a0+9a1c497) (0.4.6)\\n\",\n      \"Requirement already satisfied: portalocker in /opt/conda/lib/python3.10/site-packages (from sacrebleu>=1.4.12->fairseq==1.0.0a0+9a1c497) (2.7.0)\\n\",\n      \"Requirement already satisfied: pycparser in /opt/conda/lib/python3.10/site-packages (from cffi->fairseq==1.0.0a0+9a1c497) (2.21)\\n\",\n      \"Requirement already satisfied: jinja2 in /opt/conda/lib/python3.10/site-packages (from torch->fairseq==1.0.0a0+9a1c497) (3.1.2)\\n\",\n      \"Requirement already satisfied: sympy in /opt/conda/lib/python3.10/site-packages (from torch->fairseq==1.0.0a0+9a1c497) (1.11.1)\\n\",\n      \"Requirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from torch->fairseq==1.0.0a0+9a1c497) (3.11.0)\\n\",\n      \"Requirement already satisfied: networkx in /opt/conda/lib/python3.10/site-packages (from torch->fairseq==1.0.0a0+9a1c497) (3.1)\\n\",\n      \"Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.10/site-packages (from jinja2->torch->fairseq==1.0.0a0+9a1c497) (2.1.2)\\n\",\n      \"Requirement already satisfied: mpmath>=0.19 in /opt/conda/lib/python3.10/site-packages (from sympy->torch->fairseq==1.0.0a0+9a1c497) (1.3.0)\\n\",\n      \"Building wheels for collected packages: fairseq, antlr4-python3-runtime\\n\",\n      \"  Building wheel for fairseq (pyproject.toml) ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25h  Created wheel for fairseq: filename=fairseq-1.0.0a0+9a1c497-cp310-cp310-linux_x86_64.whl size=1313773 sha256=5a549e2bb0d23376ff9bbd49b9bbc31317558267143d5141b7268fa911167c63\\n\",\n      \"  Stored in directory: /tmp/pip-ephem-wheel-cache-1_797u4f/wheels/67/69/06/aa788a7d879a7513f5f2e5c6d56825b6813783cb55ac5c7f8d\\n\",\n      \"  Building wheel for antlr4-python3-runtime (setup.py) ... \\u001b[?25ldone\\n\",\n      \"\\u001b[?25h  Created wheel for antlr4-python3-runtime: filename=antlr4_python3_runtime-4.8-py3-none-any.whl size=141229 sha256=b75b7fbe17009c8bb5e0abb970d440bdfcc088d6ee38534e811e21b1eee592c9\\n\",\n      \"  Stored in directory: /root/.cache/pip/wheels/a7/20/bd/e1477d664f22d99989fd28ee1a43d6633dddb5cb9e801350d5\\n\",\n      \"Successfully built fairseq antlr4-python3-runtime\\n\",\n      \"Installing collected packages: antlr4-python3-runtime, omegaconf, hydra-core, fairseq\\n\",\n      \"Successfully installed antlr4-python3-runtime-4.8 fairseq-1.0.0a0+9a1c497 hydra-core-1.0.7 omegaconf-2.0.6\\n\",\n      \"\\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\\u001b[0m\\u001b[33m\\n\",\n      \"\\u001b[0m\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/opt/conda/lib/python3.10/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\\n\",\n      \"  warnings.warn(f\\\"A NumPy version >={np_minversion} and <{np_maxversion}\\\"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# Fix random seed\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# Dataset\\n\",\n    \"\\n\",\n    \"## En-Zh Bilingual Parallel Corpus\\n\",\n    \"* TED2020\\n\",\n    \"    - Raw: 400,726 (sentences)   \\n\",\n    \"    - Processed: 394,052 (sentences)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## Testdata\\n\",\n    \"- Size: 4,000 (sentences)\\n\",\n    \"- **Chinese translation is undisclosed. The provided (.zh) file is psuedo translation, each line is a '。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## Dataset Download\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## Language\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## Preprocess files\\n\",\n    \"- strQ2B(): Convert full-width characters to half-width characters\\n\",\n    \"- clean_s(): Clean the text by removing characters such as commas, dashes, and spaces\\n\",\n    \"- len_s(): Return the length of the text\\n\",\n    \"- clean_corpus(): Clean and process the specified text files using the above functions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## Split into train/valid\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000~4000 would suffice\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## Subword Units\\n\",\n    \"Out of vocabulary (OOV) has been a major problem in machine translation. This can be alleviated by using subword units.\\n\",\n    \"- We will use the [sentencepiece](#kudo-richardson-2018-sentencepiece) package\\n\",\n    \"- select 'unigram' or 'byte-pair encoding (BPE)' algorithm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## Binarize the data with fairseq\\n\",\n    \"Prepare the files in pairs for both the source and target languages.\\n\",\n    \"\\n\",\n    \"In case a pair is unavailable, generate a pseudo pair to facilitate binarization.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# Configuration for experiments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/rnn\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # cpu threads when fetching & processing data.\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size in terms of tokens. gradient accumulation increases the effective batchsize.\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # the lr s calculated from Noam lr scheduler. you can tune the maximum lr by this factor.\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # clipping gradient norm helps alleviate gradient exploding\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # maximum epochs for training\\n\",\n    \"    max_epoch=15,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # beam size for beam search\\n\",\n    \"    beam=5,\\n\",\n    \"    # generate sequences of maximum length ax + b, where x is the source length\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # when decoding, post process sentence by removing sentencepiece symbols and jieba tokenization.\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # checkpoints\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume from checkpoint name (under config.savedir)\\n\",\n    \"\\n\",\n    \"    # logging\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# Logging\\n\",\n    \"- logging package logs ordinary messages\\n\",\n    \"- wandb logs the loss, bleu, etc. in the training process\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA Environments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# Dataloading\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## We borrow the TranslationTask from fairseq\\n\",\n    \"* used to load the binarized data created above\\n\",\n    \"* well-implemented data iterator (dataloader)\\n\",\n    \"* built-in task.source_dictionary and task.target_dictionary are also handy\\n\",\n    \"* well-implemented beam search decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# Dataset iterator\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* Controls every batch to contain no more than N tokens, which optimizes GPU memory efficiency\\n\",\n    \"* Shuffles the training set for every epoch\\n\",\n    \"* Ignore sentences exceeding maximum length\\n\",\n    \"* Pad all sentences in a batch to the same length, which enables parallel computing by GPU\\n\",\n    \"* Add eos and shift one token\\n\",\n    \"    - teacher forcing: to train the model to predict the next token based on prefix, we feed the right shifted target sequence as the decoder input.\\n\",\n    \"    - generally, prepending bos to the target would do the job (as shown below)\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - in fairseq however, this is done by moving the eos token to the begining. Empirically, this has the same effect. For instance:\\n\",\n    \"    ```\\n\",\n    \"    # output target (target) and Decoder input (prev_output_tokens):\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # Set this to False to speed up. However, if set to False, changing max_tokens beyond\\n\",\n    \"        # first call of this method has no effect.\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# Model Architecture\\n\",\n    \"* We again inherit fairseq's encoder, decoder and model, so that in the testing phase we can directly leverage fairseq's beam search decoder.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# Encoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- The Encoder is a RNN or Transformer Encoder. The following description is for RNN. For every input token, Encoder will generate a output vector and a hidden states vector, and the hidden states vector is passed on to the next step. In other words, the Encoder sequentially reads in the input sequence, and outputs a single vector at each timestep, then finally outputs the final hidden states, or content vector, at the last timestep.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: the dimension of embeddings, this compresses the one-hot vector into fixed dimensions, which achieves dimension reduction\\n\",\n    \"      - encoder_ffn_embed_dim: the dimension of hidden states and output vectors\\n\",\n    \"      - encoder_layers: the number of layers for Encoder RNN\\n\",\n    \"      - dropout determines the probability of a neuron's activation being set to 0, in order to prevent overfitting. Generally this is applied in training, and removed in testing.\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq. it's used to obtain the padding index, and in turn the encoder padding mask.\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: integer sequence representing english e.g. 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the output of RNN at each timestep, can be furthur processed by Attention\\n\",\n    \"    - *final_hiddens*: the hidden states of each timestep, will be passed to decoder for decoding\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # get embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # pass thru bidirectional RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # Since Encoder is bidirectional, we need to concatenate the hidden states of two directions\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## Attention\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- When the input sequence is long, \\\"content vector\\\" alone cannot accurately represent the whole sequence, attention mechanism can provide the Decoder more information.\\n\",\n    \"- According to the **Decoder embeddings** of the current timestep, match the **Encoder outputs** with decoder embeddings to determine correlation, and then sum the Encoder outputs weighted by the correlation as the input to **Decoder** RNN.\\n\",\n    \"- Common attention implementations use neural network / dot product as the correlation between **query** (decoder embeddings) and **key** (Encoder outputs), followed by **softmax**  to obtain a distribution, and finally **values** (Encoder outputs) is **weighted sum**-ed by said distribution.\\n\",\n    \"\\n\",\n    \"- Parameters:\\n\",\n    \"  - *input_embed_dim*: dimensionality of key, should be that of the vector in decoder to attend others\\n\",\n    \"  - *source_embed_dim*: dimensionality of query, should be that of the vector to be attended to (encoder outputs)\\n\",\n    \"  - *output_embed_dim*: dimensionality of value, should be that of the vector after attention, expected by the next layer\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: is the key, the vector to attend to others\\n\",\n    \"    - *encoder_outputs*:  is the query/value, the vector to be attended to\\n\",\n    \"    - *encoder_padding_mask*: this tells the decoder which position to ignore\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: the context vector after attention\\n\",\n    \"    - *attention score*: the attention distribution\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # convert all to batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # project to the dimensionality of encoder_outputs\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # compute attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # cancel the attention at positions corresponding to padding\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # softmax on the dimension corresponding to source sequence\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) weighted sum\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# Decoder\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* The hidden states of **Decoder** will be initialized by the final hidden states of **Encoder** (the content vector)\\n\",\n    \"* At the same time, **Decoder** will change its hidden states based on the input of the current timestep (the outputs of previous timesteps), and generates an output\\n\",\n    \"* Attention improves the performance\\n\",\n    \"* The seq2seq steps are implemented in decoder, so that later the Seq2Seq class can accept RNN and Transformer, without furthur modification.\\n\",\n    \"- Parameters:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: is the dimensionality of the decoder embeddings, similar to encoder_embed_dim，\\n\",\n    \"      - decoder_ffn_embed_dim: is the dimensionality of the decoder RNN hidden states, similar to encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: number of layers of RNN decoder\\n\",\n    \"      - share_decoder_input_output_embed: usually, the projection matrix of the decoder will share weights with the decoder input embeddings\\n\",\n    \"  - *dictionary*: the dictionary provided by fairseq\\n\",\n    \"  - *embed_tokens*: an instance of token embeddings (nn.Embedding)\\n\",\n    \"- Inputs:\\n\",\n    \"    - *prev_output_tokens*: integer sequence representing the right-shifted target e.g. 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: encoder's output.\\n\",\n    \"    - *incremental_state*: in order to speed up decoding during test time, we will save the hidden state of each timestep. see forward() for details.\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: the logits (before softmax) output of decoder for each timesteps\\n\",\n    \"    - *extra*: unused\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # extract the outputs from encoder\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # if the information from last timestep is retained, we can continue from there instead of starting from bos\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # incremental state does not exist, either this is training time, or the first timestep of test time\\n\",\n    \"            # prepare for seq2seq: pass the encoder_hidden to the decoder hidden states\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # pass thru unidirectional RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # project to embedding size (if hidden differs from embed size, and share_embedding is True,\\n\",\n    \"        # we need to do an extra projection)\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # project to vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, record the hidden states of current timestep, which will be restored in the next timestep\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(\\n\",\n    \"        self,\\n\",\n    \"        incremental_state,\\n\",\n    \"        new_order,\\n\",\n    \"    ):\\n\",\n    \"        # This is used by fairseq's beam search. How and why is not particularly important here.\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- Composed of **Encoder** and **Decoder**\\n\",\n    \"- Recieves inputs and pass to **Encoder**\\n\",\n    \"- Pass the outputs from **Encoder** to **Decoder**\\n\",\n    \"- **Decoder** will decode according to outputs of previous timesteps as well as **Encoder** outputs  \\n\",\n    \"- Once done decoding, return the **Decoder** outputs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# Model Initialization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # HINT: transformer architecture\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # HINT: TODO: switch to TransformerEncoder & TransformerDecoder\\n\",\n    \"    encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    # encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # sequence to sequence model\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # initialization for seq2seq model is important, requires extra handling\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # weight initialization\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## Architecture Related Configuration\\n\",\n    \"\\n\",\n    \"For strong baseline, please refer to the hyperparameters for *transformer-base* in Table 3 in [Attention is all you need](#vaswani2017)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=256,\\n\",\n    \"    encoder_ffn_embed_dim=512,\\n\",\n    \"    encoder_layers=1,\\n\",\n    \"    decoder_embed_dim=256,\\n\",\n    \"    decoder_ffn_embed_dim=1024,\\n\",\n    \"    decoder_layers=1,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# HINT: these patches on parameters for Transformer\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=4\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=4\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # patches on default parameters for Transformer (those not set above)\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"# add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# Optimization\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## Loss: Label Smoothing Regularization\\n\",\n    \"* let the model learn to generate less concentrated distribution, and prevent over-confidence\\n\",\n    \"* sometimes the ground truth may not be the only answer. thus, when calculating loss, we reserve some probability for incorrect labels\\n\",\n    \"* avoids overfitting\\n\",\n    \"\\n\",\n    \"code [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood，the cross-entropy when target is one-hot. following line is same as F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  reserve some probability for other labels. thus when calculating cross-entropy,\\n\",\n    \"        # equivalent to summing the log probs of all labels\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # when calculating cross-entropy, add the loss of other labels\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# generally, 0.1 is good enough\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\"\n   },\n   \"source\": [\n    \"## Optimizer: Adam + lr scheduling\\n\",\n    \"Inverse square root scheduling is important to the stability when training Transformer. It's later used on RNN as well.\\n\",\n    \"Update the learning rate according to the following equation. Linearly increase the first stage, then decay proportionally to the inverse square root of timestep.\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    # TODO: Change lr from constant to the equation shown above\\n\",\n    \"    lr = 0.001\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim wrapper that implements rate.\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"Multiplies grads by a constant *c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"Update parameters and rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"Implement `lrate` above\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## Scheduling Visualized\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# Training Procedure\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # gradient accumulation: update every accum_steps samples\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # automatic mixed precision (amp)\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # gradient accumulation: update every accum_steps samples\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # emptying the CUDA cache after the first step can reduce the chance of OOM\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # mixed precision training\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # logging\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # back-prop\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) handles the case of a zero gradient\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # grad norm clipping prevents gradient exploding\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # logging\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## Validation & Inference\\n\",\n    \"To prevent overfitting, validation is required every epoch to validate the performance on unseen data.\\n\",\n    \"- the procedure is essensially same as training, with the addition of inference step\\n\",\n    \"- after validation we can save the model weights\\n\",\n    \"\\n\",\n    \"Validation loss alone cannot describe the actual performance of the model\\n\",\n    \"- Directly produce translation hypotheses based on current model, then calculate BLEU with the reference translation\\n\",\n    \"- We can also manually examine the hypotheses' quality\\n\",\n    \"- We use fairseq's sequence generator for beam search to generate translation hypotheses\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq's beam search generator\\n\",\n    \"# given model and input seqeunce, produce translation hypotheses by beam search\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # convert from Tensor to human readable sentence\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # for each sample, collect the input, hypothesis and reference, later be used to calculate BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 indicates using the top hypothesis in beam\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # show bleu results\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# Save and Load Model Weights\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # save epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # save epoch samples\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # get best valid bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## Training loop\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # train for one epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# averaging a few checkpoints can have a similar effect to ensemble\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## Confirm model weights used to generate submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# checkpoint_last.pt : latest epoch\\n\",\n    \"# checkpoint_best.pt : highest validation bleu\\n\",\n    \"# avg_last_5_checkpoint.pt: the average of last 5 epochs\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## Generate Prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # validation loss\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # do inference\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # sort based on the order before preprocess\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## Train a backward translation model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. Switch the source_lang and target_lang in **config**\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## Generate synthetic data with backward model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### Download monolingual data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: clean corpus\\n\",\n    \"\\n\",\n    \"1. remove sentences that are too long or too short\\n\",\n    \"2. unify punctuation\\n\",\n    \"\\n\",\n    \"hint: you can use clean_s() defined above to do this\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: Subword Units\\n\",\n    \"\\n\",\n    \"Use the spm model of the backward model to tokenize the data into subword units\\n\",\n    \"\\n\",\n    \"hint: spm model is located at DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### Binarize\\n\",\n    \"\\n\",\n    \"use fairseq to binarize data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: Generate synthetic data with backward model\\n\",\n    \"\\n\",\n    \"Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"then you can use 'generate_prediction(model, task, split=\\\"split_name\\\")' to generate translation prediction\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Add binarized monolingual data to the original data directory, and name it with \\\"split_name\\\"\\n\",\n    \"# ex. ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: do prediction on split='mono' to create prediction_file\\n\",\n    \"# generate_prediction( ... ,split=... ,outfile=... )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: Create new dataset\\n\",\n    \"\\n\",\n    \"1. Combine the prediction data with monolingual data\\n\",\n    \"2. Use the original spm model to tokenize data into Subword Units\\n\",\n    \"3. Binarize data with fairseq\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Combine prediction_file (.en) and mono.zh (.zh) into a new dataset.\\n\",\n    \"#\\n\",\n    \"# hint: tokenize prediction_file with the spm model\\n\",\n    \"# spm_model.encode(line, out_type=str)\\n\",\n    \"# output: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# hint: use fairseq to binarize these two files again\\n\",\n    \"# binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"# src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"# tgt_dict_file = src_dict_file\\n\",\n    \"# monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"# if binpath.exists():\\n\",\n    \"#     print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"# else:\\n\",\n    \"#     !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"#         --source-lang 'zh'\\\\\\n\",\n    \"#         --target-lang 'en'\\\\\\n\",\n    \"#         --trainpref {monopref}\\\\\\n\",\n    \"#         --destdir {binpath}\\\\\\n\",\n    \"#         --srcdict {src_dict_file}\\\\\\n\",\n    \"#         --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"#         --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# create a new dataset from all the files prepared above\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"Created new dataset \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. Change the datadir in **config** (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. Switch back the source_lang and target_lang in **config** (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. Change the savedir in **config** (eg. \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. Train model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/zh/HW05_Boss_zh_29.72.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Boss Baseline\\n\",\n    \"你可以通过搜索 \\\"Boss\\\" 来检查是哪些地方做了改变 (Ctrl + F 或者 Command + F)\\n\",\n    \"\\n\",\n    \"展示的是最终训练的结果，完整的运行流程是：\\n\",\n    \"\\n\",\n    \"1. 将**实验配置**中的 **BACK_TRANSLATION** 设置为 **True** 运行。\\n\",\n    \"   训练一个 back-translation 模型，并处理好对应的语料。\\n\",\n    \"2. 将**实验配置**中的 **BACK_TRANSLATION** 设置为 **False** 运行。\\n\",\n    \"   结合 ted2020 和 mono (back-translation) 的语料进行训练。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Fri Nov 17 12:01:36 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   28C    P5    32W / 170W |    398MiB / 12288MiB |      3%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1190      G   /usr/lib/xorg/Xorg                181MiB |\\n\",\n      \"|    0   N/A  N/A      1505      G   /usr/bin/gnome-shell               23MiB |\\n\",\n      \"|    0   N/A  N/A      1708      G   ...nlogin/bin/sunloginclient        9MiB |\\n\",\n      \"|    0   N/A  N/A    131095      G   /usr/lib/firefox/firefox          172MiB |\\n\",\n      \"|    0   N/A  N/A    135011      G   ...2gtk-4.0/WebKitWebProcess        9MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# 作业描述\\n\",\n    \"- 英译中(繁体)\\n\",\n    \"  - 输入: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - 输出: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - 训练一个 seq2seq 的简单的 RNN 模型来完成翻译\\n\",\n    \"    - 转变模型架构为 transformer，提升性能\\n\",\n    \"    - 使用 Back-translation 进一步提升性能\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# 下载和导入需要的包\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# 固定随机数种子\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# 数据集\\n\",\n    \"\\n\",\n    \"## 英-中 对应的语料\\n\",\n    \"* TED2020\\n\",\n    \"    - 原始: 400,726 (句子)   \\n\",\n    \"    - 处理后: 394,052 (句子)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## 测试集\\n\",\n    \"- 大小: 4,000 (句子)\\n\",\n    \"- **没有提供中文的翻译。(.zh)文件是伪翻译，其中每一行是'。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## 数据集下载\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## 语言\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## 预处理文件\\n\",\n    \"- strQ2B(): 将全角字符转变为半角字符\\n\",\n    \"- clean_s(): 清洗文本，将逗号/破折号/空格等字符删除\\n\",\n    \"- len_s(): 返回文本长度\\n\",\n    \"- clean_corpus: 使用上面的函数对指定的文本文件进行清洗\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## 划分训练/验证集\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000～4000 就够用了\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## 子词单位\\n\",\n    \"不在词表中的单词（OOV）是机器翻译面临的主要问题。这个问题可以通过使用子词（subword）作为基本单位来缓解\\n\",\n    \"- 我们将使用 [sentencepiece](#kudo-richardson-2018-sentencepiece) 包\\n\",\n    \"- 选择 unigram 或者 byte-pair encoding (BPE) 算法\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## 数据二值化（使用 fairseq）\\n\",\n    \"配对源语言和目标语言的文件。\\n\",\n    \"\\n\",\n    \"如果没有对应的文件，就生成伪配对来方便二值化。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# 实验配置\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020_with_mono\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/transformer-bt\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # 设置取数据和处理数据时 cpu 的线程数\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size 按照 token 数量来计算。梯度累积可以增加有效的 batch size。\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # 学习率通过 Noam 调度器进行计算。你可以修改lr_factor来调整最大的学习率。\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # 梯度裁剪可以缓解梯度爆炸\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # 训练的最大轮数\\n\",\n    \"    max_epoch=30,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # 集束搜索中的 beam size\\n\",\n    \"    beam=5,\\n\",\n    \"    # 生成的序列的最大长度为 ax + b，其中 x 是源长度\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # 解码时，通过去除 sentencepiece 符号和 jieba 分词来后处理句子。\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # 检查点\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume 则根据 checkpoint name 进行恢复（文件保存在 config.savedir 下）\\n\",\n    \"\\n\",\n    \"    # 日志记录\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"BACK_TRANSLATION = False # Boss\\n\",\n    \"if BACK_TRANSLATION:\\n\",\n    \"    config.datadir = \\\"./DATA/data-bin/ted2020\\\"\\n\",\n    \"    config.savedir = \\\"./checkpoints/transformer-back\\\"\\n\",\n    \"    config.source_lang, config.target_lang= tgt_lang, src_lang\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# 日志\\n\",\n    \"- logging 包用于记录普通的信息\\n\",\n    \"- wandb 记录训练过程中的损失/bleu等\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\u001b[34m\\u001b[1mwandb\\u001b[0m: Currently logged in as: \\u001b[33mhoper-hw\\u001b[0m. Use \\u001b[1m`wandb login --relogin`\\u001b[0m to force relogin\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"801dd9fbb182485cbd98af6652ba1d25\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"VBox(children=(Label(value='Waiting for wandb.init()...\\\\r'), FloatProgress(value=0.011112561211403874, max=1.0…\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"wandb version 0.16.0 is available!  To upgrade, please run:\\n\",\n       \" $ pip install wandb --upgrade\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"Tracking run with wandb version 0.15.12\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"Run data is saved locally in <code>/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/wandb/run-20231117_120247-ej174j09</code>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"Syncing run <strong><a href='https://wandb.ai/hoper-hw/hw5.seq2seq/runs/ej174j09' target=\\\"_blank\\\">transformer-bt</a></strong> to <a href='https://wandb.ai/hoper-hw/hw5.seq2seq' target=\\\"_blank\\\">Weights & Biases</a> (<a href='https://wandb.me/run' target=\\\"_blank\\\">docs</a>)<br/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \" View project at <a href='https://wandb.ai/hoper-hw/hw5.seq2seq' target=\\\"_blank\\\">https://wandb.ai/hoper-hw/hw5.seq2seq</a>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \" View run at <a href='https://wandb.ai/hoper-hw/hw5.seq2seq/runs/ej174j09' target=\\\"_blank\\\">https://wandb.ai/hoper-hw/hw5.seq2seq/runs/ej174j09</a>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA 环境\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:02:54 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# 数据导入\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## 我们采用了 TranslationTask（来自 fairseq）\\n\",\n    \"* 用于加载上面创建的二值化数据\\n\",\n    \"* 实现数据迭代器（dataloader）\\n\",\n    \"* 内置的 task.source_dictionary 和 task.target_dictionary 也很有用\\n\",\n    \"* 实现集束搜索解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:02:54 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020_with_mono/train.en-zh.en\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020_with_mono/train.en-zh.zh\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono train en-zh 390112 examples\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.data.data_utils | loaded 781,713 examples from: ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.data.data_utils | loaded 781,713 examples from: ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono train1 en-zh 781713 examples\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020_with_mono/valid.en-zh.en\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020_with_mono/valid.en-zh.zh\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# 数据集迭代器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* 控制每个 batch 不超过 N 个 token，这样可以优化 GPU 内存效率\\n\",\n    \"* 在每个 epoch 都对训练集进行随机打乱\\n\",\n    \"* 忽略超过最大长度的句子\\n\",\n    \"* 将一个 batch 中的所有句子填充到相同的长度，这样可以利用 GPU 进行并行计算\\n\",\n    \"* 添加 eos 并移动一个 token\\n\",\n    \"    - teacher forcing 技术: 为了训练模型根据前缀预测下一个 token，我们将移动后的目标序列作为解码器的输入。\\n\",\n    \"    - 一般来说，在目标前面加上 bos 就可以了（如下图所示）\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - 但是在 fairseq 中，这是通过将 eos token 移动到开头来实现的。在实验上，这个操作拥有相同的效果。例如:\\n\",\n    \"    ```\\n\",\n    \"    # 目标输出（target）和解码器输入（prev_output_tokens）:\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-17 12:02:54 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-17 12:02:54 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # 如果设置为 False（cached=True），可以加快训练速度。\\n\",\n    \"        # 但是，如果设置为 False，那么在第一次调用这个方法之后，再改变 max_tokens就没有效果了。\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# 模型架构\\n\",\n    \"* 我们再次继承 fairseq 的编码器、解码器和模型，以便在测试阶段可以直接利用 fairseq 的集束搜索解码器。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# 编码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- 编码器（Encoder）是一个循环神经网络（RNN）或者 Transformer 中的编码器。下面的描述是针对 RNN 的。对于每一个输入的 token，编码器会生成一个输出向量和一个隐藏状态向量，并且将隐藏状态向量传递给下一步。换句话说，编码器顺序地读入输入序列，并且在每一个时间步输出一个单独的向量，然后在最后一个时间步输出最终的隐藏状态，或者称为内容向量（content vector）。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: 嵌入的维度，将 one-hot 向量压缩到固定的维度，实现降维的效果\\n\",\n    \"      - encoder_ffn_embed_dim: 隐藏状态和输出向量的维度\\n\",\n    \"      - encoder_layers: RNN 编码器的层数\\n\",\n    \"      - dropout 确定了一个神经元的激活值被设为 0 的概率，用于防止过拟合。通常这个参数在训练时使用，在测试时移除\\n\",\n    \"  - *dictionary*: fairseq 提供的字典。它用于获取填充索引，进而得到编码器的填充掩码（encoder padding mask）\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: 一个表示英语的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: RNN 在每个时间步的输出，可以由注意力机制（Attention）进一步处理\\n\",\n    \"    - *final_hiddens*: 每个时间步的隐藏状态，会被传递给解码器（decoder）进行解码\\n\",\n    \"    - *encoder_padding_mask*: 这个参数告诉解码器哪些位置要忽略\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # 获取 embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # 经过双向的 RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # 由于编码器是双向的，我们需要将两个方向的隐藏状态连接起来\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## 注意力\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- 当输入序列很长时，单独的“内容向量”就不能准确地表示整个序列，注意力机制可以为解码器提供更多信息。\\n\",\n    \"- 根据当前时间步的**解码器embeddings**，将**编码器输出**与**解码器 embeddings** 进行匹配，确定相关性，然后将编码器输出按相关性加权求和作为**解码器** RNN 的输入。\\n\",\n    \"- 常见的注意力实现使用神经网络/点积作为 **query**（解码器 embeddings）和 **key**（编码器输出）之间的相关性，然后用 **softmax** 得到一个分布，最后用该分布对 **value**（编码器输出）进行**加权求和**。\\n\",\n    \"\\n\",\n    \"- 参数:\\n\",\n    \"  - *input_embed_dim*: key 的维度，应该是解码器中用于 attend 其他向量的向量的维度\\n\",\n    \"  - *source_embed_dim*: query 的维度，应该是被 attend 的向量（编码器输出）的维度\\n\",\n    \"  - *output_embed_dim*: value 的维度，应该是 after attention 的向量的维度，符合下一层的期望,\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: key, 用于 attend 其他向量\\n\",\n    \"    - *encoder_outputs*:  query/value, 被 attend 的向量\\n\",\n    \"    - *encoder_padding_mask*: 这个告诉解码器应该忽略那些位置\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: attention 后的上下文向量\\n\",\n    \"    - *attention score*: attention 的分数\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # 将所有的输入的维度改为 batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # 投影到 encoder_outputs 的维度\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # 计算 attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # 取消与 padding 相对应的位置的 attention\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # 在与源序列对应的维度上进行 softmax\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) 加权求和\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# 解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* **解码器**的隐藏状态将由**编码器**的最终隐藏状态（the content vector）初始化\\n\",\n    \"* 同时，**解码器**会根据当前时间步的输入（前一时间步的输出）改变其隐藏状态，并生成一个输出\\n\",\n    \"* 注意力机制可以提高性能\\n\",\n    \"* seq2seq 的步骤是在解码器中实现的，这样以后 Seq2Seq 类可以接受 RNN 和 Transformer，而不需要进一步修改。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: 解码器嵌入的维度，类似于 encoder_embed_dim\\n\",\n    \"      - decoder_ffn_embed_dim: 解码器 RNN 隐藏状态的维度，类似于 encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: RNN 解码器的层数\\n\",\n    \"      - share_decoder_input_output_embed: 通常，解码器的投影矩阵会与解码器输入 embeddings 共享权重\\n\",\n    \"  - *dictionary*: fairseq 提供的字典\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"- 输入:\\n\",\n    \"    - *prev_output_tokens*: 表示右移目标的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: 编码器的输出\\n\",\n    \"    - *incremental_state*: 为了加速测试时的解码，我们会保存每个时间步的隐藏状态。详见forward()。\\n\",\n    \"- 输出:\\n\",\n    \"    - *outputs*: 解码器在每个时间步的输出的对数（softmax之前）\\n\",\n    \"    - *extra*: 未使用\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # 从编码器中提取输出\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # 如果保留了上一个时间步的信息，可以从那里继续，而不是从bos开始\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # 增量状态不存在，要么是训练时，要么是测试时的第一个时间步\\n\",\n    \"            # 为seq2seq做准备：将编码器的隐藏状态传递给解码器的隐藏状态\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # 经过单向的 RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 embedding size（如果隐藏状态与 embedding size 不同，并且 share_embedding 为True\\n\",\n    \"        # 就需要做一个额外的投影）\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, 则记录当前时间步的隐藏状态，在下一个时间步恢复\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(self, incremental_state, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- 由**编码器**和**解码器**组成\\n\",\n    \"- 接收输入并传递给**编码器**\\n\",\n    \"- 将**编码器**的输出传递给**解码器**\\n\",\n    \"- **解码器**会根据前一时间步的输出以及**编码器**的输出进行解码\\n\",\n    \"- 解码完成后，返回**解码器**的输出\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# 模型初始化 (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # 提示: transformer 架构\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # 提示: TODO: 转变为 TransformerEncoder & TransformerDecoder\\n\",\n    \"    # encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # 序列到序列的模型\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"    \\n\",\n    \"    # 初始化 seq2seq 模型很重要, 需要额外的处理\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # 权重初始化\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## 架构相关配置 (Boss)\\n\",\n    \"\\n\",\n    \"为了达成 strong baseline，请参考 [Attention is all you need](#vaswani2017) 中表 3 中 *transformer-base* 的超参数\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=512,\\n\",\n    \"    encoder_ffn_embed_dim=2048,\\n\",\n    \"    encoder_layers=6,\\n\",\n    \"    decoder_embed_dim=512,\\n\",\n    \"    decoder_ffn_embed_dim=2048,\\n\",\n    \"    decoder_layers=6,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# 提示: 这些是 Transformer 的参数补丁\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=8\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=8\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # Transformer 默认参数的补丁（未在上面设置的参数）\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:02:55 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): TransformerEncoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerEncoderLayerBase(\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"  )\\n\",\n      \"  (decoder): TransformerDecoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerDecoderLayerBase(\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (encoder_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (encoder_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"    (output_projection): Linear(in_features=512, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# 优化\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## 损失(Loss): Label Smoothing Regularization\\n\",\n    \"* 让模型学习生成更少集中的分布，防止过度自信\\n\",\n    \"* 有时候正确答案可能不是唯一的。因此，在计算损失时，我们为错误标签保留一些概率。\\n\",\n    \"* 避免过拟合\\n\",\n    \"\\n\",\n    \"代码 [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood 负对数似然，当目标是 one-hot 时的交叉熵。下一行代码等同于F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  保留一些其他标签的概率，这样在计算交叉熵的时候相当于对所有标签的对数概率求和\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # 在计算交叉熵的时候，增加其他标签的损失\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# 通常来说，0.1 已经足够好了\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 优化器: Adam + 学习率调度\\n\",\n    \"在训练 Transformer 时，平方根倒数调度（Inverse square root scheduling）对于稳定性非常重要，在后面也用于RNN。\\n\",\n    \"根据以下公式更新学习率，第一阶段线性增加，然后按时间步的平方根倒数成比例衰减。\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    lr = 1.0 / math.sqrt(d_model) * min(1.0 / math.sqrt(step_num), step_num / (warmup_step * math.sqrt(warmup_step)))\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim 包装，用于实现 rate\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"将梯度乘以常数*c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"更新参数和 rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"实现上面的 `lrate`\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## 调度可视化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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TmDDhg144oknHOV4n7tu69atePfdd/Gvf/0L48aNw9GjR5GZmYno6GjMnz/fUY73uvtJ6Z62VZf29m0Pu8Z6UFhYGORyeav/I6isrGyVdPu7Z599Fjt37sTevXsxZMgQx/bIyEgA6PAeRkZGwmg04tq1ax2WuXz5cqvzXrlyxanMjee5du0aTCZTr/995eXlobKyEomJiVAoFFAoFMjNzcUbb7wBhULh9H9RLfE+uycqKgoJCQlO28aOHYuSkhIA/Oe5O/3yl7/EsmXL8Mgjj2DChAnIyMjA4sWLkZWVBYD3uidI7Z62VaayshJA61arjjAI9SCVSoXExETk5OQ4bc/JycH06dO9VCtpEULgmWeewbZt2/DZZ5+1asqMi4tDZGSk0z00Go3Izc113MPExEQolUqnMuXl5Th+/LijzLRp06DT6fDll186yhw+fBg6nc6pzPHjx1FeXu4os3v3bqjVaiQmJnb/xXvQPffcg2PHjuHo0aOOT1JSEn74wx/i6NGjGD58OO9zN7jjjjtaLf9w6tQpxMbGAuA/z92poaEBPj7OjzC5XO6YPs973f2kdk+nTZuG/fv3O02p3717N6Kjo1t1mXXI5WHV1Cn26fObNm0SJ0+eFJmZmcLf31+cP3/e21WThJ///OciKChI7Nu3T5SXlzs+DQ0NjjKrV68WQUFBYtu2beLYsWPi0UcfbXO65pAhQ8SePXtEfn6+uPvuu9ucrnnLLbcIrVYrtFqtmDBhQpvTNe+55x6Rn58v9uzZI4YMGdIrp8C6ouWsMSF4n7vDl19+KRQKhfjtb38rTp8+Lf75z38KPz8/8e677zrK8D53j/nz54vBgwc7ps9v27ZNhIWFieeee85RhvfafbW1taKgoEAUFBQIAOK1114TBQUFjiVfpHRPa2pqREREhHj00UfFsWPHxLZt20RgYCCnz0vRunXrRGxsrFCpVGLKlCmOqeFkm57Z1uett95ylLFarWLVqlUiMjJSqNVqceedd4pjx445HaexsVE888wzIiQkRPj6+orvfve7oqSkxKlMdXW1+OEPfygCAgJEQECA+OEPfyiuXbvmVObChQtizpw5wtfXV4SEhIhnnnnGaWpmX3JjEOJ97h4ffvihGD9+vFCr1SI+Pl68+eabTt/zPncPvV4vFi1aJIYOHSo0Go0YPny4WLlypTAYDI4yvNfu27t3b5v/TZ4/f74QQnr39OuvvxbJyclCrVaLyMhI8cILL7g1dV4IIWRCuLsEIxEREVHfwDFCRERE1G8xCBEREVG/xSBERERE/RaDEBEREfVbDEJERETUbzEIERERUb/FIERERET9FoMQERER9VsMQkRERNRvMQgRERFRv8UgRERERP0WgxARERH1W/8flADhZtG2wcQAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# 训练过程\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## 训练\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # 自动混合精度（amp）\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # 在第一步之后清空 CUDA 缓存可以减少 OOM（out of memory）的机会\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # 混合精度训练\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # 日志记录\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # 反向传播\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) 处理零梯度的情况\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # 梯度裁剪防止梯度爆炸\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # 日志记录\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## 验证 & 推测\\n\",\n    \"为了防止过拟合，每个训练周期都需要进行验证，以验证模型在未见过的数据上的性能。\\n\",\n    \"- 该过程与训练基本相同，只是多了一个推测步骤。\\n\",\n    \"- 在验证后，我们可以保存模型的权重。\\n\",\n    \"\\n\",\n    \"仅凭验证损失无法描述模型的实际性能\\n\",\n    \"- 基于当前模型直接生成翻译假设，然后使用参考翻译计算BLEU\\n\",\n    \"- 我们也可以手动检查假设的质量\\n\",\n    \"- 我们使用 fairseq 的序列生成器进行集束搜索以生成翻译假设。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq 的集束搜索生成器\\n\",\n    \"# 给定模型和输入序列，通过集束搜索生成翻译假设\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # 将 Tensor 转换为人类可读的句子\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # 对于每个样本，收集输入、假设和参考，稍后用于计算 BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 表示使用集束中的最佳假设\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # 显示 bleu 结果\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# 保存和加载模型权重\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # 保存 epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # 保存 epoch 样本\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # 获取最佳的验证 bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## 训练循环\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:02:56 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-17 12:02:56 | INFO | hw5.seq2seq | encoder: TransformerEncoder\\n\",\n      \"2023-11-17 12:02:56 | INFO | hw5.seq2seq | decoder: TransformerDecoder\\n\",\n      \"2023-11-17 12:02:56 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-17 12:02:56 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-17 12:02:56 | INFO | hw5.seq2seq | num. model params: 52,324,352 (num. trained: 52,324,352)\\n\",\n      \"2023-11-17 12:02:56 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:02:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 12:02:56 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-17 12:02:56 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-17 12:02:56 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-17 12:02:56 | WARNING | fairseq.tasks.fairseq_task | 1 samples have invalid sizes and will be skipped, max_positions=(1024, 1024), first few sample ids=[326653]\\n\",\n      \"2023-11-17 12:02:56 | INFO | hw5.seq2seq | no checkpoints found at checkpoints/transformer-bt/checkpoint_last.pt!\\n\",\n      \"2023-11-17 12:02:56 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 1:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/functional.py:5076: UserWarning: Support for mismatched key_padding_mask and attn_mask is deprecated. Use same type for both instead.\\n\",\n      \"  warnings.warn(\\n\",\n      \"2023-11-17 12:19:01 | INFO | hw5.seq2seq | training loss: 5.5449\\n\",\n      \"2023-11-17 12:19:01 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 12:19:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 12:19:01 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-17 12:19:01 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-17 12:19:01 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:19:29 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-17 12:19:29 | INFO | hw5.seq2seq | example hypothesis: 首次在美國第一次投票時 , 總統一群投票的白人民可以為非洲的投票票投票 。\\n\",\n      \"2023-11-17 12:19:29 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-17 12:19:29 | INFO | hw5.seq2seq | validation loss:\\t4.3879\\n\",\n      \"2023-11-17 12:19:29 | INFO | hw5.seq2seq | BLEU = 14.61 42.7/20.0/10.0/5.3 (BP = 1.000 ratio = 1.060 hyp_len = 117075 ref_len = 110430)\\n\",\n      \"2023-11-17 12:19:29 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint1.pt\\n\",\n      \"2023-11-17 12:19:29 | INFO | hw5.seq2seq | end of epoch 1\\n\",\n      \"2023-11-17 12:19:29 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 12:19:29 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 2:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:35:37 | INFO | hw5.seq2seq | training loss: 3.7520\\n\",\n      \"2023-11-17 12:35:37 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 12:35:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:36:02 | INFO | hw5.seq2seq | example source: and it just sounds like the most egotistical request you could make , if you were going to pray .\\n\",\n      \"2023-11-17 12:36:02 | INFO | hw5.seq2seq | example hypothesis: 聽起來就好像你所能做的 , 如果你要祈禱的話 。\\n\",\n      \"2023-11-17 12:36:02 | INFO | hw5.seq2seq | example reference: 這聽起來像是你所能想到的最自我中心的禱告祈求 。\\n\",\n      \"2023-11-17 12:36:02 | INFO | hw5.seq2seq | validation loss:\\t3.8234\\n\",\n      \"2023-11-17 12:36:02 | INFO | hw5.seq2seq | BLEU = 21.10 54.2/28.6/16.0/9.4 (BP = 0.959 ratio = 0.960 hyp_len = 105996 ref_len = 110430)\\n\",\n      \"2023-11-17 12:36:02 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint2.pt\\n\",\n      \"2023-11-17 12:36:03 | INFO | hw5.seq2seq | end of epoch 2\\n\",\n      \"2023-11-17 12:36:03 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 12:36:03 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 3:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:52:07 | INFO | hw5.seq2seq | training loss: 3.3508\\n\",\n      \"2023-11-17 12:52:07 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 12:52:07 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 12:52:30 | INFO | hw5.seq2seq | example source: but empathy really should get you points if you do it when it's hard to do .\\n\",\n      \"2023-11-17 12:52:30 | INFO | hw5.seq2seq | example hypothesis: 但同理心真的應該要讓你指出如果你很難做的時候\\n\",\n      \"2023-11-17 12:52:30 | INFO | hw5.seq2seq | example reference: 同理心應該是在很難有同理心的情況下產生才能夠得分才對 。\\n\",\n      \"2023-11-17 12:52:30 | INFO | hw5.seq2seq | validation loss:\\t3.5356\\n\",\n      \"2023-11-17 12:52:30 | INFO | hw5.seq2seq | BLEU = 24.07 57.2/31.8/18.6/11.5 (BP = 0.963 ratio = 0.964 hyp_len = 106451 ref_len = 110430)\\n\",\n      \"2023-11-17 12:52:31 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint3.pt\\n\",\n      \"2023-11-17 12:52:31 | INFO | hw5.seq2seq | end of epoch 3\\n\",\n      \"2023-11-17 12:52:31 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 12:52:31 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 4:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 13:08:37 | INFO | hw5.seq2seq | training loss: 3.1242\\n\",\n      \"2023-11-17 13:08:37 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 13:08:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 13:09:02 | INFO | hw5.seq2seq | example source: but most biologics also have a flaw .\\n\",\n      \"2023-11-17 13:09:02 | INFO | hw5.seq2seq | example hypothesis: 但大多數生物學也有一個缺點 。\\n\",\n      \"2023-11-17 13:09:02 | INFO | hw5.seq2seq | example reference: 但 , 大部分的生物藥都有個瑕疵 。\\n\",\n      \"2023-11-17 13:09:02 | INFO | hw5.seq2seq | validation loss:\\t3.4128\\n\",\n      \"2023-11-17 13:09:02 | INFO | hw5.seq2seq | BLEU = 25.13 57.2/32.3/19.2/12.0 (BP = 0.984 ratio = 0.984 hyp_len = 108681 ref_len = 110430)\\n\",\n      \"2023-11-17 13:09:02 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint4.pt\\n\",\n      \"2023-11-17 13:09:02 | INFO | hw5.seq2seq | end of epoch 4\\n\",\n      \"2023-11-17 13:09:02 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 13:09:02 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 5:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 13:25:05 | INFO | hw5.seq2seq | training loss: 3.0069\\n\",\n      \"2023-11-17 13:25:05 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 13:25:05 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 13:25:29 | INFO | hw5.seq2seq | example source: but i believe now that we're moving into a new age , and that age the new york times dubbed recently as \\\" the age of behavior . \\\"\\n\",\n      \"2023-11-17 13:25:29 | INFO | hw5.seq2seq | example hypothesis: 但我相信現在我們正邁入一個新時代 , 而那個紐約時報最近被稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-17 13:25:29 | INFO | hw5.seq2seq | example reference: 但我相信現在我們正在進入一個新的時代 , 而且最近這個時代被紐約時報稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-17 13:25:29 | INFO | hw5.seq2seq | validation loss:\\t3.3128\\n\",\n      \"2023-11-17 13:25:29 | INFO | hw5.seq2seq | BLEU = 26.18 59.2/34.1/20.7/13.2 (BP = 0.961 ratio = 0.962 hyp_len = 106217 ref_len = 110430)\\n\",\n      \"2023-11-17 13:25:30 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint5.pt\\n\",\n      \"2023-11-17 13:25:30 | INFO | hw5.seq2seq | end of epoch 5\\n\",\n      \"2023-11-17 13:25:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 13:25:30 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 6:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 13:41:30 | INFO | hw5.seq2seq | training loss: 2.9290\\n\",\n      \"2023-11-17 13:41:30 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 13:41:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 13:41:55 | INFO | hw5.seq2seq | example source: as we have hot blood running through our veins and arteries , so , too , the earth has hot water running through its cracks and faults .\\n\",\n      \"2023-11-17 13:41:55 | INFO | hw5.seq2seq | example hypothesis: 正如我們有熱血液經由靜脈和動脈 , 所以 , 地球也有熱水 , 流經它的裂縫和斷層 。\\n\",\n      \"2023-11-17 13:41:55 | INFO | hw5.seq2seq | example reference: 就如我們身體𥚃有熱騰騰的血液經過靜脈和動脈 , 同樣地 , 地球也有熱流穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-17 13:41:55 | INFO | hw5.seq2seq | validation loss:\\t3.2586\\n\",\n      \"2023-11-17 13:41:55 | INFO | hw5.seq2seq | BLEU = 26.97 58.8/34.1/20.8/13.5 (BP = 0.985 ratio = 0.985 hyp_len = 108743 ref_len = 110430)\\n\",\n      \"2023-11-17 13:41:55 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint6.pt\\n\",\n      \"2023-11-17 13:41:56 | INFO | hw5.seq2seq | end of epoch 6\\n\",\n      \"2023-11-17 13:41:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 13:41:56 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 7:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 13:57:56 | INFO | hw5.seq2seq | training loss: 2.8740\\n\",\n      \"2023-11-17 13:57:56 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 13:57:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 13:58:19 | INFO | hw5.seq2seq | example source: entirely new requirement .\\n\",\n      \"2023-11-17 13:58:19 | INFO | hw5.seq2seq | example hypothesis: 全新的要求\\n\",\n      \"2023-11-17 13:58:19 | INFO | hw5.seq2seq | example reference: 這是全新的要求 。\\n\",\n      \"2023-11-17 13:58:19 | INFO | hw5.seq2seq | validation loss:\\t3.2278\\n\",\n      \"2023-11-17 13:58:19 | INFO | hw5.seq2seq | BLEU = 26.81 60.4/35.2/21.6/13.9 (BP = 0.948 ratio = 0.949 hyp_len = 104799 ref_len = 110430)\\n\",\n      \"2023-11-17 13:58:19 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint7.pt\\n\",\n      \"2023-11-17 13:58:19 | INFO | hw5.seq2seq | end of epoch 7\\n\",\n      \"2023-11-17 13:58:19 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 13:58:19 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 8:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 14:14:20 | INFO | hw5.seq2seq | training loss: 2.8321\\n\",\n      \"2023-11-17 14:14:20 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 14:14:20 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 14:14:45 | INFO | hw5.seq2seq | example source: by 1960 we had telephone bills , bank statements were being produced by computers .\\n\",\n      \"2023-11-17 14:14:45 | INFO | hw5.seq2seq | example hypothesis: 到了1960年 , 我們有了電話帳單 , 銀行聲明正在被電腦生產 。\\n\",\n      \"2023-11-17 14:14:45 | INFO | hw5.seq2seq | example reference: 到了1960年 , 我們的電話和銀行帳單都交由電腦處理\\n\",\n      \"2023-11-17 14:14:45 | INFO | hw5.seq2seq | validation loss:\\t3.1908\\n\",\n      \"2023-11-17 14:14:45 | INFO | hw5.seq2seq | BLEU = 27.59 59.3/34.7/21.3/13.9 (BP = 0.987 ratio = 0.987 hyp_len = 108959 ref_len = 110430)\\n\",\n      \"2023-11-17 14:14:46 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint8.pt\\n\",\n      \"2023-11-17 14:14:46 | INFO | hw5.seq2seq | end of epoch 8\\n\",\n      \"2023-11-17 14:14:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 14:14:46 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 9:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 14:30:48 | INFO | hw5.seq2seq | training loss: 2.7965\\n\",\n      \"2023-11-17 14:30:48 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 14:30:48 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 14:31:12 | INFO | hw5.seq2seq | example source: they started making their own video games .\\n\",\n      \"2023-11-17 14:31:12 | INFO | hw5.seq2seq | example hypothesis: 他們開始自己製作電玩 。\\n\",\n      \"2023-11-17 14:31:12 | INFO | hw5.seq2seq | example reference: 他們開始製造自己的電玩遊戲 。\\n\",\n      \"2023-11-17 14:31:12 | INFO | hw5.seq2seq | validation loss:\\t3.1517\\n\",\n      \"2023-11-17 14:31:12 | INFO | hw5.seq2seq | BLEU = 27.51 60.2/35.4/21.9/14.2 (BP = 0.964 ratio = 0.964 hyp_len = 106482 ref_len = 110430)\\n\",\n      \"2023-11-17 14:31:13 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint9.pt\\n\",\n      \"2023-11-17 14:31:13 | INFO | hw5.seq2seq | end of epoch 9\\n\",\n      \"2023-11-17 14:31:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 14:31:13 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 10:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 14:47:16 | INFO | hw5.seq2seq | training loss: 2.7678\\n\",\n      \"2023-11-17 14:47:16 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 14:47:16 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 14:47:41 | INFO | hw5.seq2seq | example source: a perfect example of this is spanish contemporary artist fernando vicente .\\n\",\n      \"2023-11-17 14:47:41 | INFO | hw5.seq2seq | example hypothesis: 一個完美的例子就是西班牙當代藝術家費南多·維森\\n\",\n      \"2023-11-17 14:47:41 | INFO | hw5.seq2seq | example reference: 一個最有代表性的例子是西班牙現代藝術家費南多·維森特 。\\n\",\n      \"2023-11-17 14:47:41 | INFO | hw5.seq2seq | validation loss:\\t3.1494\\n\",\n      \"2023-11-17 14:47:41 | INFO | hw5.seq2seq | BLEU = 27.93 59.7/35.1/21.7/14.2 (BP = 0.986 ratio = 0.986 hyp_len = 108918 ref_len = 110430)\\n\",\n      \"2023-11-17 14:47:41 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint10.pt\\n\",\n      \"2023-11-17 14:47:42 | INFO | hw5.seq2seq | end of epoch 10\\n\",\n      \"2023-11-17 14:47:42 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 14:47:42 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 11:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 15:03:46 | INFO | hw5.seq2seq | training loss: 2.7437\\n\",\n      \"2023-11-17 15:03:46 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 15:03:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 15:04:11 | INFO | hw5.seq2seq | example source: right . as you can see , bart simpson is having a little argument .\\n\",\n      \"2023-11-17 15:04:11 | INFO | hw5.seq2seq | example hypothesis: 沒錯 。 如你所見 , 巴特.辛普森有一點爭論 。\\n\",\n      \"2023-11-17 15:04:11 | INFO | hw5.seq2seq | example reference: 好 , 如你所見bartsimpson正和它老爸爭執\\n\",\n      \"2023-11-17 15:04:11 | INFO | hw5.seq2seq | validation loss:\\t3.1126\\n\",\n      \"2023-11-17 15:04:11 | INFO | hw5.seq2seq | BLEU = 28.09 59.6/35.1/21.8/14.3 (BP = 0.990 ratio = 0.990 hyp_len = 109325 ref_len = 110430)\\n\",\n      \"2023-11-17 15:04:11 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint11.pt\\n\",\n      \"2023-11-17 15:04:11 | INFO | hw5.seq2seq | end of epoch 11\\n\",\n      \"2023-11-17 15:04:11 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 15:04:11 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 12:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 15:20:13 | INFO | hw5.seq2seq | training loss: 2.7227\\n\",\n      \"2023-11-17 15:20:13 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 15:20:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 15:20:38 | INFO | hw5.seq2seq | example source: and if we look to the future , it's an unsustainable diet .\\n\",\n      \"2023-11-17 15:20:38 | INFO | hw5.seq2seq | example hypothesis: 如果我們看看未來 , 這是一種不永續的飲食 。\\n\",\n      \"2023-11-17 15:20:38 | INFO | hw5.seq2seq | example reference: 如果我們想一想未來這絕不是長久之計\\n\",\n      \"2023-11-17 15:20:38 | INFO | hw5.seq2seq | validation loss:\\t3.1246\\n\",\n      \"2023-11-17 15:20:38 | INFO | hw5.seq2seq | BLEU = 28.04 60.1/35.5/22.0/14.4 (BP = 0.978 ratio = 0.978 hyp_len = 107977 ref_len = 110430)\\n\",\n      \"2023-11-17 15:20:38 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint12.pt\\n\",\n      \"2023-11-17 15:20:38 | INFO | hw5.seq2seq | end of epoch 12\\n\",\n      \"2023-11-17 15:20:38 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 15:20:38 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 13:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 15:36:41 | INFO | hw5.seq2seq | training loss: 2.7035\\n\",\n      \"2023-11-17 15:36:41 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 15:36:41 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9d1f315853cc4401887a82b623f26982\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 15:37:06 | INFO | hw5.seq2seq | example source: when you govern through fear and you govern through cruelty , it just doesn't work .\\n\",\n      \"2023-11-17 15:37:06 | INFO | hw5.seq2seq | example hypothesis: 當你透過恐懼來治理 , 並透過殘忍來治理 , 它就是沒有用 。\\n\",\n      \"2023-11-17 15:37:06 | INFO | hw5.seq2seq | example reference: 透過恐懼 , 透過殘忍來治理國家 , 這是行不通的 。\\n\",\n      \"2023-11-17 15:37:06 | INFO | hw5.seq2seq | validation loss:\\t3.0973\\n\",\n      \"2023-11-17 15:37:06 | INFO | hw5.seq2seq | BLEU = 28.40 60.2/35.7/22.3/14.7 (BP = 0.979 ratio = 0.979 hyp_len = 108163 ref_len = 110430)\\n\",\n      \"2023-11-17 15:37:06 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint13.pt\\n\",\n      \"2023-11-17 15:37:06 | INFO | hw5.seq2seq | end of epoch 13\\n\",\n      \"2023-11-17 15:37:06 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 15:37:06 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f259b16ef14349bb8b44e1f3e7b511f2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 14:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 15:53:08 | INFO | hw5.seq2seq | training loss: 2.6864\\n\",\n      \"2023-11-17 15:53:08 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 15:53:08 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"acfded8327cc4dd28c2f82fe8bf3f203\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 15:53:33 | INFO | hw5.seq2seq | example source: this project breaks ground in just two months .\\n\",\n      \"2023-11-17 15:53:33 | INFO | hw5.seq2seq | example hypothesis: 這個計畫在短短兩個月內就瓦解了地面 。\\n\",\n      \"2023-11-17 15:53:33 | INFO | hw5.seq2seq | example reference: 這個計畫再兩個月就要開工了 。\\n\",\n      \"2023-11-17 15:53:33 | INFO | hw5.seq2seq | validation loss:\\t3.0956\\n\",\n      \"2023-11-17 15:53:33 | INFO | hw5.seq2seq | BLEU = 28.52 59.7/35.4/22.1/14.6 (BP = 0.992 ratio = 0.992 hyp_len = 109562 ref_len = 110430)\\n\",\n      \"2023-11-17 15:53:33 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint14.pt\\n\",\n      \"2023-11-17 15:53:33 | INFO | hw5.seq2seq | end of epoch 14\\n\",\n      \"2023-11-17 15:53:33 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 15:53:33 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"10c10a79c482472fa766be853a822fc9\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 15:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 16:09:35 | INFO | hw5.seq2seq | training loss: 2.6713\\n\",\n      \"2023-11-17 16:09:35 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 16:09:35 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"045c35a0bac548f2850be0ddc59027c5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 16:10:00 | INFO | hw5.seq2seq | example source: and these preservatives had been found in breast cancer tumors .\\n\",\n      \"2023-11-17 16:10:00 | INFO | hw5.seq2seq | example hypothesis: 而這些保存者已經在乳癌腫瘤中發現\\n\",\n      \"2023-11-17 16:10:00 | INFO | hw5.seq2seq | example reference: 而乳癌腫瘤中也發現了這些防腐劑 。\\n\",\n      \"2023-11-17 16:10:00 | INFO | hw5.seq2seq | validation loss:\\t3.0896\\n\",\n      \"2023-11-17 16:10:00 | INFO | hw5.seq2seq | BLEU = 28.76 59.6/35.4/22.2/14.6 (BP = 1.000 ratio = 1.000 hyp_len = 110481 ref_len = 110430)\\n\",\n      \"2023-11-17 16:10:00 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint15.pt\\n\",\n      \"2023-11-17 16:10:00 | INFO | hw5.seq2seq | end of epoch 15\\n\",\n      \"2023-11-17 16:10:00 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 16:10:00 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9bab120e16b643dbb10276b1454d8432\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 16:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 16:26:03 | INFO | hw5.seq2seq | training loss: 2.6580\\n\",\n      \"2023-11-17 16:26:03 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 16:26:03 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6f365fbd22af4e058241c0ca6faccb1e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 16:26:28 | INFO | hw5.seq2seq | example source: history is strewn with the cases when they've all got it wrong .\\n\",\n      \"2023-11-17 16:26:28 | INFO | hw5.seq2seq | example hypothesis: 當他們都搞錯了 , 歷史就會被病例給淹沒 。\\n\",\n      \"2023-11-17 16:26:28 | INFO | hw5.seq2seq | example reference: 歷史上到處都有我們全都錯了的實例\\n\",\n      \"2023-11-17 16:26:28 | INFO | hw5.seq2seq | validation loss:\\t3.0740\\n\",\n      \"2023-11-17 16:26:28 | INFO | hw5.seq2seq | BLEU = 28.33 59.1/34.9/21.8/14.3 (BP = 1.000 ratio = 1.011 hyp_len = 111636 ref_len = 110430)\\n\",\n      \"2023-11-17 16:26:29 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint16.pt\\n\",\n      \"2023-11-17 16:26:29 | INFO | hw5.seq2seq | end of epoch 16\\n\",\n      \"2023-11-17 16:26:29 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 16:26:29 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 17:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 16:42:35 | INFO | hw5.seq2seq | training loss: 2.6452\\n\",\n      \"2023-11-17 16:42:35 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 16:42:35 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 16:43:00 | INFO | hw5.seq2seq | example source: please raise your hand if something applies to you .\\n\",\n      \"2023-11-17 16:43:00 | INFO | hw5.seq2seq | example hypothesis: 如果有東西適用於你 , 請舉手 。\\n\",\n      \"2023-11-17 16:43:00 | INFO | hw5.seq2seq | example reference: 如果這些事曾發生在你身上請舉手 。\\n\",\n      \"2023-11-17 16:43:00 | INFO | hw5.seq2seq | validation loss:\\t3.0590\\n\",\n      \"2023-11-17 16:43:00 | INFO | hw5.seq2seq | BLEU = 28.83 59.6/35.5/22.2/14.7 (BP = 1.000 ratio = 1.001 hyp_len = 110493 ref_len = 110430)\\n\",\n      \"2023-11-17 16:43:00 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint17.pt\\n\",\n      \"2023-11-17 16:43:01 | INFO | hw5.seq2seq | end of epoch 17\\n\",\n      \"2023-11-17 16:43:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 16:43:01 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 18:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 16:59:06 | INFO | hw5.seq2seq | training loss: 2.6339\\n\",\n      \"2023-11-17 16:59:06 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 16:59:06 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 16:59:30 | INFO | hw5.seq2seq | example source: and the fact is , millions is a gross estimate , because we don't really know how many kids die each year of this .\\n\",\n      \"2023-11-17 16:59:30 | INFO | hw5.seq2seq | example hypothesis: 事實是 , 數百萬人是一個粗鄙的估計 , 因為我們不知道每年有多少孩子死於此 。\\n\",\n      \"2023-11-17 16:59:30 | INFO | hw5.seq2seq | example reference: 而且事實是 , 數百萬只是一個粗略的估計 , 因為我們真的不知道每年究竟有多少孩子死於這些疾病 。\\n\",\n      \"2023-11-17 16:59:30 | INFO | hw5.seq2seq | validation loss:\\t3.0663\\n\",\n      \"2023-11-17 16:59:30 | INFO | hw5.seq2seq | BLEU = 28.89 60.6/36.2/22.7/15.0 (BP = 0.982 ratio = 0.982 hyp_len = 108419 ref_len = 110430)\\n\",\n      \"2023-11-17 16:59:30 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint18.pt\\n\",\n      \"2023-11-17 16:59:30 | INFO | hw5.seq2seq | end of epoch 18\\n\",\n      \"2023-11-17 16:59:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 16:59:30 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 19:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 17:15:38 | INFO | hw5.seq2seq | training loss: 2.6233\\n\",\n      \"2023-11-17 17:15:38 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 17:15:38 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 17:16:03 | INFO | hw5.seq2seq | example source: and he didn’t know it at the time , but over the next five decades , he'd draw on these dueling identities to forge a whole new way to think about pain .\\n\",\n      \"2023-11-17 17:16:03 | INFO | hw5.seq2seq | example hypothesis: 他當時並不知道 , 但在接下來的五十年中 , 他會在這些崇拜的身份上畫畫畫 , 來忘記用一種全新的方式來思考痛苦 。\\n\",\n      \"2023-11-17 17:16:03 | INFO | hw5.seq2seq | example reference: 在那時他並不知道但在接下來的50年他將會利用這兩個相對決的生命經驗去探索關於疼痛的新思路\\n\",\n      \"2023-11-17 17:16:03 | INFO | hw5.seq2seq | validation loss:\\t3.0581\\n\",\n      \"2023-11-17 17:16:03 | INFO | hw5.seq2seq | BLEU = 29.06 59.9/35.8/22.5/14.9 (BP = 0.998 ratio = 0.998 hyp_len = 110236 ref_len = 110430)\\n\",\n      \"2023-11-17 17:16:03 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint19.pt\\n\",\n      \"2023-11-17 17:16:03 | INFO | hw5.seq2seq | end of epoch 19\\n\",\n      \"2023-11-17 17:16:03 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 17:16:03 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 20:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 17:32:06 | INFO | hw5.seq2seq | training loss: 2.6142\\n\",\n      \"2023-11-17 17:32:06 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 17:32:06 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 17:32:30 | INFO | hw5.seq2seq | example source: and i have been fortunate enough to find things like the first eggs in the western hemisphere and the first baby dinosaurs in nests , the first dinosaur embryos and massive accumulations of bones .\\n\",\n      \"2023-11-17 17:32:30 | INFO | hw5.seq2seq | example hypothesis: 我很幸運能找到像西半球第一顆蛋和第一隻巢穴裡的恐龍第一顆恐龍寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶寶\\n\",\n      \"2023-11-17 17:32:30 | INFO | hw5.seq2seq | example reference: 和我已經夠幸運能找到在西半球裡的第一只蛋和第一只恐龍寶寶在巢裡第一個恐龍胚胎和大量積累的骨頭\\n\",\n      \"2023-11-17 17:32:30 | INFO | hw5.seq2seq | validation loss:\\t3.0504\\n\",\n      \"2023-11-17 17:32:30 | INFO | hw5.seq2seq | BLEU = 29.12 60.3/36.0/22.7/15.1 (BP = 0.990 ratio = 0.990 hyp_len = 109350 ref_len = 110430)\\n\",\n      \"2023-11-17 17:32:30 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint20.pt\\n\",\n      \"2023-11-17 17:32:30 | INFO | hw5.seq2seq | end of epoch 20\\n\",\n      \"2023-11-17 17:32:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 17:32:30 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 21:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 17:48:31 | INFO | hw5.seq2seq | training loss: 2.6048\\n\",\n      \"2023-11-17 17:48:31 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 17:48:31 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 17:48:55 | INFO | hw5.seq2seq | example source: we've had the biggest transformation of any ancient subject that i could ever imagine with computers .\\n\",\n      \"2023-11-17 17:48:55 | INFO | hw5.seq2seq | example hypothesis: 對於任何我能用電腦想像得到的古老科目 , 我們都有了最大的轉變 。\\n\",\n      \"2023-11-17 17:48:55 | INFO | hw5.seq2seq | example reference: 我們經歷了電腦這個最大的變革比任何古往的科目都要巨大\\n\",\n      \"2023-11-17 17:48:55 | INFO | hw5.seq2seq | validation loss:\\t3.0525\\n\",\n      \"2023-11-17 17:48:55 | INFO | hw5.seq2seq | BLEU = 28.96 59.6/35.6/22.4/14.8 (BP = 1.000 ratio = 1.010 hyp_len = 111481 ref_len = 110430)\\n\",\n      \"2023-11-17 17:48:56 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint21.pt\\n\",\n      \"2023-11-17 17:48:56 | INFO | hw5.seq2seq | end of epoch 21\\n\",\n      \"2023-11-17 17:48:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 17:48:56 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 22:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 18:04:59 | INFO | hw5.seq2seq | training loss: 2.5947\\n\",\n      \"2023-11-17 18:04:59 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 18:04:59 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 18:05:23 | INFO | hw5.seq2seq | example source: there is another visual phenomenon that looks similar to floaters but is in fact unrelated .\\n\",\n      \"2023-11-17 18:05:23 | INFO | hw5.seq2seq | example hypothesis: 還有另一種視覺現象 , 看起來和飛蚊很像 , 但事實上毫無關聯 。\\n\",\n      \"2023-11-17 18:05:23 | INFO | hw5.seq2seq | example reference: 還有另一個視覺現象看起來像飛蚊症但其實毫無關連\\n\",\n      \"2023-11-17 18:05:23 | INFO | hw5.seq2seq | validation loss:\\t3.0477\\n\",\n      \"2023-11-17 18:05:23 | INFO | hw5.seq2seq | BLEU = 28.96 60.6/36.3/22.8/15.2 (BP = 0.980 ratio = 0.981 hyp_len = 108282 ref_len = 110430)\\n\",\n      \"2023-11-17 18:05:24 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint22.pt\\n\",\n      \"2023-11-17 18:05:24 | INFO | hw5.seq2seq | end of epoch 22\\n\",\n      \"2023-11-17 18:05:24 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 18:05:24 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 23:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 18:21:26 | INFO | hw5.seq2seq | training loss: 2.5882\\n\",\n      \"2023-11-17 18:21:26 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 18:21:26 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 18:21:51 | INFO | hw5.seq2seq | example source: ynh: yes , very much so .\\n\",\n      \"2023-11-17 18:21:51 | INFO | hw5.seq2seq | example hypothesis: 尤:是的 , 非常多 。\\n\",\n      \"2023-11-17 18:21:51 | INFO | hw5.seq2seq | example reference: 尤:是的 , 就是這樣 。\\n\",\n      \"2023-11-17 18:21:51 | INFO | hw5.seq2seq | validation loss:\\t3.0291\\n\",\n      \"2023-11-17 18:21:51 | INFO | hw5.seq2seq | BLEU = 29.28 60.1/36.0/22.7/15.0 (BP = 0.999 ratio = 0.999 hyp_len = 110348 ref_len = 110430)\\n\",\n      \"2023-11-17 18:21:51 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint23.pt\\n\",\n      \"2023-11-17 18:21:51 | INFO | hw5.seq2seq | end of epoch 23\\n\",\n      \"2023-11-17 18:21:51 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 18:21:51 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 24:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 18:37:53 | INFO | hw5.seq2seq | training loss: 2.5802\\n\",\n      \"2023-11-17 18:37:53 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 18:37:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 18:38:18 | INFO | hw5.seq2seq | example source: but the first thing you need to do is let go of the bad ideas you have about sex .\\n\",\n      \"2023-11-17 18:38:18 | INFO | hw5.seq2seq | example hypothesis: 但你首先要做的是放下你對於性愛的壞點子 。\\n\",\n      \"2023-11-17 18:38:18 | INFO | hw5.seq2seq | example reference: 但你需要先做一件事 , 放掉你對於性愛的不好想法 。\\n\",\n      \"2023-11-17 18:38:18 | INFO | hw5.seq2seq | validation loss:\\t3.0431\\n\",\n      \"2023-11-17 18:38:18 | INFO | hw5.seq2seq | BLEU = 29.26 60.4/36.3/22.9/15.2 (BP = 0.990 ratio = 0.990 hyp_len = 109352 ref_len = 110430)\\n\",\n      \"2023-11-17 18:38:18 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint24.pt\\n\",\n      \"2023-11-17 18:38:18 | INFO | hw5.seq2seq | end of epoch 24\\n\",\n      \"2023-11-17 18:38:18 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 18:38:18 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 25:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 18:54:18 | INFO | hw5.seq2seq | training loss: 2.5731\\n\",\n      \"2023-11-17 18:54:18 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 18:54:18 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 18:54:43 | INFO | hw5.seq2seq | example source: those subsidies stop companies from competing on equal terms .\\n\",\n      \"2023-11-17 18:54:43 | INFO | hw5.seq2seq | example hypothesis: 那些補助金阻止公司在平等條款上競爭 。\\n\",\n      \"2023-11-17 18:54:43 | INFO | hw5.seq2seq | example reference: 那些補助 , 阻礙了公司之間的公平競爭 。\\n\",\n      \"2023-11-17 18:54:43 | INFO | hw5.seq2seq | validation loss:\\t3.0254\\n\",\n      \"2023-11-17 18:54:43 | INFO | hw5.seq2seq | BLEU = 29.19 60.3/36.2/22.8/15.2 (BP = 0.989 ratio = 0.989 hyp_len = 109257 ref_len = 110430)\\n\",\n      \"2023-11-17 18:54:43 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint25.pt\\n\",\n      \"2023-11-17 18:54:43 | INFO | hw5.seq2seq | end of epoch 25\\n\",\n      \"2023-11-17 18:54:43 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 18:54:43 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 26:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 19:10:48 | INFO | hw5.seq2seq | training loss: 2.5667\\n\",\n      \"2023-11-17 19:10:48 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 19:10:48 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 19:11:11 | INFO | hw5.seq2seq | example source: i believe so , but before we move on , what do we mean by democracy ?\\n\",\n      \"2023-11-17 19:11:11 | INFO | hw5.seq2seq | example hypothesis: 我相信 , 但在我們繼續前 , 我們所謂的民主是什麼意思 ?\\n\",\n      \"2023-11-17 19:11:11 | INFO | hw5.seq2seq | example reference: 我相信是對的 , 但在我們繼續談下去之前 , 我們所說的民主是什麼 ?\\n\",\n      \"2023-11-17 19:11:11 | INFO | hw5.seq2seq | validation loss:\\t3.0291\\n\",\n      \"2023-11-17 19:11:11 | INFO | hw5.seq2seq | BLEU = 29.20 61.2/36.8/23.3/15.6 (BP = 0.971 ratio = 0.971 hyp_len = 107236 ref_len = 110430)\\n\",\n      \"2023-11-17 19:11:12 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint26.pt\\n\",\n      \"2023-11-17 19:11:12 | INFO | hw5.seq2seq | end of epoch 26\\n\",\n      \"2023-11-17 19:11:12 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 19:11:12 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 27:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 19:27:17 | INFO | hw5.seq2seq | training loss: 2.5598\\n\",\n      \"2023-11-17 19:27:17 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 19:27:17 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 19:27:41 | INFO | hw5.seq2seq | example source: so , a team of berkeley researchers with 15 million dollars from the gates foundation is engineering , designing a radical new way to make the key ingredient , called artemisinin , and they're going to make that drug 10 times cheaper .\\n\",\n      \"2023-11-17 19:27:41 | INFO | hw5.seq2seq | example hypothesis: 所以 , 柏克萊大學的研究團隊 , 有一千五百萬美元來自蓋茲基金會的工程 , 設計出一種極端的新方法 , 來製造出關鍵的成份 , 叫做 「 青黴素 」 , 他們要讓那種藥變便宜十倍 。\\n\",\n      \"2023-11-17 19:27:41 | INFO | hw5.seq2seq | example reference: 柏克萊的團隊得到gatesfoundation的1千5百萬的經費 , 以研發設計一顛覆式的新方法來製造一個叫 \\\" 青蒿素 \\\" 的關鍵成分希望能製造出10倍便宜的藥物\\n\",\n      \"2023-11-17 19:27:41 | INFO | hw5.seq2seq | validation loss:\\t3.0357\\n\",\n      \"2023-11-17 19:27:41 | INFO | hw5.seq2seq | BLEU = 29.29 60.8/36.6/23.2/15.5 (BP = 0.980 ratio = 0.980 hyp_len = 108273 ref_len = 110430)\\n\",\n      \"2023-11-17 19:27:41 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint27.pt\\n\",\n      \"2023-11-17 19:27:41 | INFO | hw5.seq2seq | end of epoch 27\\n\",\n      \"2023-11-17 19:27:41 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 19:27:41 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 28:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 19:43:45 | INFO | hw5.seq2seq | training loss: 2.5538\\n\",\n      \"2023-11-17 19:43:45 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 19:43:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 19:44:09 | INFO | hw5.seq2seq | example source: even another black hole won’t destroy it– the two will simply merge into a larger black hole , releasing a bit of energy as gravitational waves in the process .\\n\",\n      \"2023-11-17 19:44:09 | INFO | hw5.seq2seq | example hypothesis: 即使是另一個黑洞也不會毀滅它 。 這兩個洞會簡單地融合成一個更大的黑洞 , 釋放出一點能量作為重力波的過程 。\\n\",\n      \"2023-11-17 19:44:09 | INFO | hw5.seq2seq | example reference: 就連另一個黑洞也無法摧毀它 , 兩個黑洞只會融合成一個更大的黑洞 , 在過程中以重力波的形式釋放出一點能量 。\\n\",\n      \"2023-11-17 19:44:09 | INFO | hw5.seq2seq | validation loss:\\t3.0273\\n\",\n      \"2023-11-17 19:44:09 | INFO | hw5.seq2seq | BLEU = 29.51 60.2/36.1/22.9/15.3 (BP = 0.998 ratio = 0.998 hyp_len = 110176 ref_len = 110430)\\n\",\n      \"2023-11-17 19:44:09 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint28.pt\\n\",\n      \"2023-11-17 19:44:10 | INFO | hw5.seq2seq | end of epoch 28\\n\",\n      \"2023-11-17 19:44:10 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 19:44:10 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 29:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 20:00:19 | INFO | hw5.seq2seq | training loss: 2.5479\\n\",\n      \"2023-11-17 20:00:19 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 20:00:19 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 20:00:43 | INFO | hw5.seq2seq | example source: but the question is: can we own our duality ?\\n\",\n      \"2023-11-17 20:00:43 | INFO | hw5.seq2seq | example hypothesis: 但問題是:我們能擁有我們的二元性嗎 ?\\n\",\n      \"2023-11-17 20:00:43 | INFO | hw5.seq2seq | example reference: 但問題是:我們能擁有屬於我們的二元性嗎 ?\\n\",\n      \"2023-11-17 20:00:43 | INFO | hw5.seq2seq | validation loss:\\t3.0242\\n\",\n      \"2023-11-17 20:00:43 | INFO | hw5.seq2seq | BLEU = 29.37 60.7/36.5/23.1/15.4 (BP = 0.986 ratio = 0.986 hyp_len = 108922 ref_len = 110430)\\n\",\n      \"2023-11-17 20:00:43 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint29.pt\\n\",\n      \"2023-11-17 20:00:43 | INFO | hw5.seq2seq | end of epoch 29\\n\",\n      \"2023-11-17 20:00:43 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 20:00:43 | INFO | fairseq.data.iterators | grouped total_num_itrs = 1873\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 30:   0%|          | 0/1873 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 20:16:50 | INFO | hw5.seq2seq | training loss: 2.5418\\n\",\n      \"2023-11-17 20:16:50 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 20:16:50 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 20:17:15 | INFO | hw5.seq2seq | example source: be serious , it says .\\n\",\n      \"2023-11-17 20:17:15 | INFO | hw5.seq2seq | example hypothesis: 嚴肅一點 , 它說\\n\",\n      \"2023-11-17 20:17:15 | INFO | hw5.seq2seq | example reference: 嚴肅起來 , 信裡寫道\\n\",\n      \"2023-11-17 20:17:15 | INFO | hw5.seq2seq | validation loss:\\t3.0278\\n\",\n      \"2023-11-17 20:17:15 | INFO | hw5.seq2seq | BLEU = 29.73 60.6/36.6/23.2/15.6 (BP = 0.993 ratio = 0.993 hyp_len = 109712 ref_len = 110430)\\n\",\n      \"2023-11-17 20:17:15 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/checkpoints/transformer-bt/checkpoint30.pt\\n\",\n      \"2023-11-17 20:17:15 | INFO | hw5.seq2seq | end of epoch 30\\n\",\n      \"2023-11-17 20:17:15 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # 训练一个 epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Namespace(inputs=['./checkpoints/transformer-bt'], output='./checkpoints/transformer-bt/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/transformer-bt/checkpoint30.pt', './checkpoints/transformer-bt/checkpoint29.pt', './checkpoints/transformer-bt/checkpoint28.pt', './checkpoints/transformer-bt/checkpoint27.pt', './checkpoints/transformer-bt/checkpoint26.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/transformer-bt/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# 对几个 checkpoints 进行平均可以产生类似于 ensemble 的效果\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## 确定用于生成 submission 的模型权重\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 20:17:18 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/transformer-bt/avg_last_5_checkpoint.pt: step=unknown loss=3.027837038040161 bleu=29.730896524436638\\n\",\n      \"2023-11-17 20:17:18 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-17 20:17:18 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 20:17:42 | INFO | hw5.seq2seq | example source: and there is also a frontier in research physics here , it's just that nobody talks about it .\\n\",\n      \"2023-11-17 20:17:42 | INFO | hw5.seq2seq | example hypothesis: 這裡也有研究物理的邊界 , 只是沒有人談論它 。\\n\",\n      \"2023-11-17 20:17:42 | INFO | hw5.seq2seq | example reference: 這裡也有物理研究中尚未完全開拓的疆界 , 只是沒有人在談論它 。\\n\",\n      \"2023-11-17 20:17:42 | INFO | hw5.seq2seq | validation loss:\\t3.0109\\n\",\n      \"2023-11-17 20:17:42 | INFO | hw5.seq2seq | BLEU = 29.72 60.9/36.8/23.4/15.7 (BP = 0.986 ratio = 0.986 hyp_len = 108917 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : 最新的 epoch\\n\",\n    \"# checkpoint_best.pt : 最高的验证 BLEU\\n\",\n    \"# avg_last_5_checkpoint.pt: 最近 5 次 epoch 的平均值\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## 生成预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # 根据预处理前的顺序进行排序\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-17 20:17:42 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020_with_mono/test.en-zh.en\\n\",\n      \"2023-11-17 20:17:42 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020_with_mono/test.en-zh.zh\\n\",\n      \"2023-11-17 20:17:42 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono test en-zh 4000 examples\\n\",\n      \"2023-11-17 20:17:42 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-17 20:17:42 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-17 20:17:42 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-17 20:17:42 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e08ff95c25de4b77aa1d861156898ac3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"prediction:   0%|          | 0/18 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"SyntaxError\",\n     \"evalue\": \"invalid syntax (2944357133.py, line 1)\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;36m  Cell \\u001b[0;32mIn[49], line 1\\u001b[0;36m\\u001b[0m\\n\\u001b[0;31m    if !back_translation:\\u001b[0m\\n\\u001b[0m       ^\\u001b[0m\\n\\u001b[0;31mSyntaxError\\u001b[0m\\u001b[0;31m:\\u001b[0m invalid syntax\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if not BACK_TRANSLATION:\\n\",\n    \"    raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## 训练一个 backward translation 模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. 将 **config** 中的 source_lang 和 target_lang 进行切换\\n\",\n    \"2. 更改 **config** 中的 savedir(例如: \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## 用后向模型生成人造数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### 下载单语言数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: 清洗语料\\n\",\n    \"\\n\",\n    \"1. 移除太长或者太短的句子\\n\",\n    \"2. 统一标点符号\\n\",\n    \"\\n\",\n    \"提示: 你可以使用之前定义的 clean_s() 来执行此操作\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def clean_mono_corpus(prefix, l, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.zh').exists():\\n\",\n    \"        print(f'{prefix}.clean.zh exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}', 'r') as l_in_f:\\n\",\n    \"        with open(f'{prefix}.clean.zh', 'w') as l_out_f:\\n\",\n    \"            for s in l_in_f:\\n\",\n    \"                s = s.strip()\\n\",\n    \"                s = clean_s(s, l)\\n\",\n    \"                s_len = len_s(s, l)\\n\",\n    \"                if min_len > 0: # remove short sentence\\n\",\n    \"                    if s_len < min_len:\\n\",\n    \"                        continue\\n\",\n    \"                if max_len > 0: # remove long sentence\\n\",\n    \"                    if s_len > max_len:\\n\",\n    \"                        continue\\n\",\n    \"                print(s, file=l_out_f)\\n\",\n    \"                \\n\",\n    \"\\n\",\n    \"mono_data_prefix = f'{mono_prefix}/ted_zh_corpus.deduped'\\n\",\n    \"clean_mono_corpus(mono_data_prefix, 'zh')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"**生成伪翻译**\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"\\n\",\n    \"zh_path = mono_prefix / 'ted_zh_corpus.deduped.clean.zh'\\n\",\n    \"en_path = mono_prefix / 'ted_zh_corpus.deduped.clean.en'\\n\",\n    \"\\n\",\n    \"if en_path.exists():\\n\",\n    \"    print(f\\\"{en_path} exists. skipping the generation of psuedo translation.\\\")\\n\",\n    \"\\n\",\n    \"with open(zh_path, 'r') as zh_f:\\n\",\n    \"    with open(en_path, 'w') as en_f:\\n\",\n    \"        for line in zh_f:\\n\",\n    \"            line = line.strip()\\n\",\n    \"            if line:\\n\",\n    \"                # 用'_.'替换，得到一个伪翻译的字符串\\n\",\n    \"                pseudo = '_.'\\n\",\n    \"                # 将伪翻译的字符串写入目标文件中，并换行\\n\",\n    \"                print(pseudo, file=en_f)\\n\",\n    \"            # 如果这一行为空，直接换行\\n\",\n    \"            else:\\n\",\n    \"                print(file=en_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: 子词单位\\n\",\n    \"\\n\",\n    \"使用后向模型的 spm 模型将数据标记为子词单位\\n\",\n    \"\\n\",\n    \"提示: spm 模型位于 DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def spm_encode(prefix, vocab_size, mono_prefix):\\n\",\n    \"    spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"\\n\",\n    \"    in_path = mono_prefix / 'ted_zh_corpus.deduped.clean'\\n\",\n    \"\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = mono_prefix / f'mono.tok.{lang}'\\n\",\n    \"        # if out_path.exists():\\n\",\n    \"        #     print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        # else:\\n\",\n    \"        with open(out_path, 'w') as out_f:\\n\",\n    \"            with open(f'{in_path}.{lang}', 'r') as in_f:\\n\",\n    \"                for line in in_f:\\n\",\n    \"                    line = line.strip()\\n\",\n    \"                    tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                    print(' '.join(tok), file=out_f)\\n\",\n    \"\\n\",\n    \"spm_encode(prefix, vocab_size, mono_prefix)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### 二值化\\n\",\n    \"\\n\",\n    \"使用 fairseq 去二值化数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: 用后向模型生成人造数据\\n\",\n    \"\\n\",\n    \"将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"然后你可以使用 'generate_prediction(model, task, split=\\\"split_name\\\")' 来生成翻译的预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"# 例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 提示: 在 split='mono' 上做预测来创建 prediction_file\\n\",\n    \"task.load_dataset(split=\\\"mono\\\", epoch=1)\\n\",\n    \"generate_prediction(model, task, split='mono', outfile='./prediction.txt' )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: 创建新的数据集\\n\",\n    \"\\n\",\n    \"1. 将预测数据和单语数据结合\\n\",\n    \"2. 使用原始的 spm 模型将数据 tokenize 为子词单位\\n\",\n    \"3. 使用 fairseq 将数据二值化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将 prediction_file (.en) 和 mono.zh (.zh) 结合为新的数据集\\n\",\n    \"#\\n\",\n    \"# 提示: 用 spm 模型 tokenize prediction_file\\n\",\n    \"!cp ./prediction.txt {mono_prefix}/'ted_zh_corpus.deduped.clean.en'\\n\",\n    \"spm_encode(prefix, vocab_size, mono_prefix)\\n\",\n    \"# 输出: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# 提示: 使用 fairseq 再次二值化这两个文件\\n\",\n    \"binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 根据上面准备的所有文件创建一个新的数据集\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"创建新数据集 \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. 修改 **config** 中的 datadir (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. 将 **config** 中的 source_lang 和 target_lang 进行切换 (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. 更改 **config** 中的 savedir (例如: \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/zh/HW05_Gradescope_zh.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Gradescope\\n\",\n    \"\\n\",\n    \"你可以通过搜索 \\\"Gradescope\\\" 来定位代码 (Ctrl + F 或者 Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Sun Nov 19 18:41:00 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   26C    P8    17W / 170W |   4366MiB / 12288MiB |      1%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1142      G   /usr/lib/xorg/Xorg                143MiB |\\n\",\n      \"|    0   N/A  N/A      1451      G   /usr/bin/gnome-shell               23MiB |\\n\",\n      \"|    0   N/A  N/A      1644      G   ...nlogin/bin/sunloginclient        6MiB |\\n\",\n      \"|    0   N/A  N/A      4236      G   /usr/lib/firefox/firefox          116MiB |\\n\",\n      \"|    0   N/A  N/A      6748      C   ...conda3/envs/DL/bin/python     4072MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# 作业描述\\n\",\n    \"- 英译中(繁体)\\n\",\n    \"  - 输入: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - 输出: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - 训练一个 seq2seq 的简单的 RNN 模型来完成翻译\\n\",\n    \"    - 转变模型架构为 transformer，提升性能\\n\",\n    \"    - 使用 Back-translation 进一步提升性能\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# 下载和导入需要的包\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# 固定随机数种子\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# 数据集\\n\",\n    \"\\n\",\n    \"## 英-中 对应的语料\\n\",\n    \"* TED2020\\n\",\n    \"    - 原始: 400,726 (句子)   \\n\",\n    \"    - 处理后: 394,052 (句子)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## 测试集\\n\",\n    \"- 大小: 4,000 (句子)\\n\",\n    \"- **没有提供中文的翻译。(.zh)文件是伪翻译，其中每一行是'。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## 数据集下载\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## 语言\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## 预处理文件\\n\",\n    \"- strQ2B(): 将全角字符转变为半角字符\\n\",\n    \"- clean_s(): 清洗文本，将逗号/破折号/空格等字符删除\\n\",\n    \"- len_s(): 返回文本长度\\n\",\n    \"- clean_corpus: 使用上面的函数对指定的文本文件进行清洗\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## 划分训练/验证集\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000～4000 就够用了\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## 子词单位\\n\",\n    \"不在词表中的单词（OOV）是机器翻译面临的主要问题。这个问题可以通过使用子词（subword）作为基本单位来缓解\\n\",\n    \"- 我们将使用 [sentencepiece](#kudo-richardson-2018-sentencepiece) 包\\n\",\n    \"- 选择 unigram 或者 byte-pair encoding (BPE) 算法\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## 数据二值化（使用 fairseq）\\n\",\n    \"配对源语言和目标语言的文件。\\n\",\n    \"\\n\",\n    \"如果没有对应的文件，就生成伪配对来方便二值化。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# 实验配置\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020_with_mono\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/transformer-bt\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # 设置取数据和处理数据时 cpu 的线程数\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size 按照 token 数量来计算。梯度累积可以增加有效的 batch size。\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # 学习率通过 Noam 调度器进行计算。你可以修改lr_factor来调整最大的学习率。\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # 梯度裁剪可以缓解梯度爆炸\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # 训练的最大轮数\\n\",\n    \"    max_epoch=30,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # 集束搜索中的 beam size\\n\",\n    \"    beam=5,\\n\",\n    \"    # 生成的序列的最大长度为 ax + b，其中 x 是源长度\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # 解码时，通过去除 sentencepiece 符号和 jieba 分词来后处理句子。\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # 检查点\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume 则根据 checkpoint name 进行恢复（文件保存在 config.savedir 下）\\n\",\n    \"\\n\",\n    \"    # 日志记录\\n\",\n    \"    use_wandb=False, # Gradescope. Problem 2: 你可以设置为 True 然后在 wandb 中查看，当然，自己添加代码（在 train_one_epoch() 中）处理也行。\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"BACK_TRANSLATION = False # Boss\\n\",\n    \"if BACK_TRANSLATION:\\n\",\n    \"    config.datadir = \\\"./DATA/data-bin/ted2020\\\"\\n\",\n    \"    config.savedir = \\\"./checkpoints/transformer-back\\\"\\n\",\n    \"    config.source_lang, config.target_lang= tgt_lang, src_lang\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# 日志\\n\",\n    \"- logging 包用于记录普通的信息\\n\",\n    \"- wandb 记录训练过程中的损失/bleu等\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA 环境\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:42:09 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# 数据导入\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## 我们采用了 TranslationTask（来自 fairseq）\\n\",\n    \"* 用于加载上面创建的二值化数据\\n\",\n    \"* 实现数据迭代器（dataloader）\\n\",\n    \"* 内置的 task.source_dictionary 和 task.target_dictionary 也很有用\\n\",\n    \"* 实现集束搜索解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:42:09 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020_with_mono/train.en-zh.en\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020_with_mono/train.en-zh.zh\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono train en-zh 390112 examples\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.data.data_utils | loaded 781,713 examples from: ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.data.data_utils | loaded 781,713 examples from: ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono train1 en-zh 781713 examples\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020_with_mono/valid.en-zh.en\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020_with_mono/valid.en-zh.zh\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020_with_mono valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# 数据集迭代器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* 控制每个 batch 不超过 N 个 token，这样可以优化 GPU 内存效率\\n\",\n    \"* 在每个 epoch 都对训练集进行随机打乱\\n\",\n    \"* 忽略超过最大长度的句子\\n\",\n    \"* 将一个 batch 中的所有句子填充到相同的长度，这样可以利用 GPU 进行并行计算\\n\",\n    \"* 添加 eos 并移动一个 token\\n\",\n    \"    - teacher forcing 技术: 为了训练模型根据前缀预测下一个 token，我们将移动后的目标序列作为解码器的输入。\\n\",\n    \"    - 一般来说，在目标前面加上 bos 就可以了（如下图所示）\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - 但是在 fairseq 中，这是通过将 eos token 移动到开头来实现的。在实验上，这个操作拥有相同的效果。例如:\\n\",\n    \"    ```\\n\",\n    \"    # 目标输出（target）和解码器输入（prev_output_tokens）:\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-19 18:42:09 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-19 18:42:09 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # 如果设置为 False（cached=True），可以加快训练速度。\\n\",\n    \"        # 但是，如果设置为 False，那么在第一次调用这个方法之后，再改变 max_tokens就没有效果了。\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# 模型架构\\n\",\n    \"* 我们再次继承 fairseq 的编码器、解码器和模型，以便在测试阶段可以直接利用 fairseq 的集束搜索解码器。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# 编码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- 编码器（Encoder）是一个循环神经网络（RNN）或者 Transformer 中的编码器。下面的描述是针对 RNN 的。对于每一个输入的 token，编码器会生成一个输出向量和一个隐藏状态向量，并且将隐藏状态向量传递给下一步。换句话说，编码器顺序地读入输入序列，并且在每一个时间步输出一个单独的向量，然后在最后一个时间步输出最终的隐藏状态，或者称为内容向量（content vector）。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: 嵌入的维度，将 one-hot 向量压缩到固定的维度，实现降维的效果\\n\",\n    \"      - encoder_ffn_embed_dim: 隐藏状态和输出向量的维度\\n\",\n    \"      - encoder_layers: RNN 编码器的层数\\n\",\n    \"      - dropout 确定了一个神经元的激活值被设为 0 的概率，用于防止过拟合。通常这个参数在训练时使用，在测试时移除\\n\",\n    \"  - *dictionary*: fairseq 提供的字典。它用于获取填充索引，进而得到编码器的填充掩码（encoder padding mask）\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: 一个表示英语的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: RNN 在每个时间步的输出，可以由注意力机制（Attention）进一步处理\\n\",\n    \"    - *final_hiddens*: 每个时间步的隐藏状态，会被传递给解码器（decoder）进行解码\\n\",\n    \"    - *encoder_padding_mask*: 这个参数告诉解码器哪些位置要忽略\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # 获取 embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # 经过双向的 RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # 由于编码器是双向的，我们需要将两个方向的隐藏状态连接起来\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## 注意力\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- 当输入序列很长时，单独的“内容向量”就不能准确地表示整个序列，注意力机制可以为解码器提供更多信息。\\n\",\n    \"- 根据当前时间步的**解码器embeddings**，将**编码器输出**与**解码器 embeddings** 进行匹配，确定相关性，然后将编码器输出按相关性加权求和作为**解码器** RNN 的输入。\\n\",\n    \"- 常见的注意力实现使用神经网络/点积作为 **query**（解码器 embeddings）和 **key**（编码器输出）之间的相关性，然后用 **softmax** 得到一个分布，最后用该分布对 **value**（编码器输出）进行**加权求和**。\\n\",\n    \"\\n\",\n    \"- 参数:\\n\",\n    \"  - *input_embed_dim*: key 的维度，应该是解码器中用于 attend 其他向量的向量的维度\\n\",\n    \"  - *source_embed_dim*: query 的维度，应该是被 attend 的向量（编码器输出）的维度\\n\",\n    \"  - *output_embed_dim*: value 的维度，应该是 after attention 的向量的维度，符合下一层的期望,\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: key, 用于 attend 其他向量\\n\",\n    \"    - *encoder_outputs*:  query/value, 被 attend 的向量\\n\",\n    \"    - *encoder_padding_mask*: 这个告诉解码器应该忽略那些位置\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: attention 后的上下文向量\\n\",\n    \"    - *attention score*: attention 的分数\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # 将所有的输入的维度改为 batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # 投影到 encoder_outputs 的维度\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # 计算 attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # 取消与 padding 相对应的位置的 attention\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # 在与源序列对应的维度上进行 softmax\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) 加权求和\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# 解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* **解码器**的隐藏状态将由**编码器**的最终隐藏状态（the content vector）初始化\\n\",\n    \"* 同时，**解码器**会根据当前时间步的输入（前一时间步的输出）改变其隐藏状态，并生成一个输出\\n\",\n    \"* 注意力机制可以提高性能\\n\",\n    \"* seq2seq 的步骤是在解码器中实现的，这样以后 Seq2Seq 类可以接受 RNN 和 Transformer，而不需要进一步修改。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: 解码器嵌入的维度，类似于 encoder_embed_dim\\n\",\n    \"      - decoder_ffn_embed_dim: 解码器 RNN 隐藏状态的维度，类似于 encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: RNN 解码器的层数\\n\",\n    \"      - share_decoder_input_output_embed: 通常，解码器的投影矩阵会与解码器输入 embeddings 共享权重\\n\",\n    \"  - *dictionary*: fairseq 提供的字典\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"- 输入:\\n\",\n    \"    - *prev_output_tokens*: 表示右移目标的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: 编码器的输出\\n\",\n    \"    - *incremental_state*: 为了加速测试时的解码，我们会保存每个时间步的隐藏状态。详见forward()。\\n\",\n    \"- 输出:\\n\",\n    \"    - *outputs*: 解码器在每个时间步的输出的对数（softmax之前）\\n\",\n    \"    - *extra*: 未使用\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # 从编码器中提取输出\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # 如果保留了上一个时间步的信息，可以从那里继续，而不是从bos开始\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # 增量状态不存在，要么是训练时，要么是测试时的第一个时间步\\n\",\n    \"            # 为seq2seq做准备：将编码器的隐藏状态传递给解码器的隐藏状态\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # 经过单向的 RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 embedding size（如果隐藏状态与 embedding size 不同，并且 share_embedding 为True\\n\",\n    \"        # 就需要做一个额外的投影）\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, 则记录当前时间步的隐藏状态，在下一个时间步恢复\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(self, incremental_state, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- 由**编码器**和**解码器**组成\\n\",\n    \"- 接收输入并传递给**编码器**\\n\",\n    \"- 将**编码器**的输出传递给**解码器**\\n\",\n    \"- **解码器**会根据前一时间步的输出以及**编码器**的输出进行解码\\n\",\n    \"- 解码完成后，返回**解码器**的输出\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# 模型初始化 (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # 提示: transformer 架构\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # 提示: TODO: 转变为 TransformerEncoder & TransformerDecoder\\n\",\n    \"    # encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # 序列到序列的模型\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"    \\n\",\n    \"    # 初始化 seq2seq 模型很重要, 需要额外的处理\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # 权重初始化\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## 架构相关配置 (Boss)\\n\",\n    \"\\n\",\n    \"为了达成 strong baseline，请参考 [Attention is all you need](#vaswani2017) 中表 3 中 *transformer-base* 的超参数\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=512,\\n\",\n    \"    encoder_ffn_embed_dim=2048,\\n\",\n    \"    encoder_layers=6,\\n\",\n    \"    decoder_embed_dim=512,\\n\",\n    \"    decoder_ffn_embed_dim=2048,\\n\",\n    \"    decoder_layers=6,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# 提示: 这些是 Transformer 的参数补丁\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=8\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=8\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # Transformer 默认参数的补丁（未在上面设置的参数）\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:42:10 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): TransformerEncoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerEncoderLayerBase(\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"  )\\n\",\n      \"  (decoder): TransformerDecoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerDecoderLayerBase(\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (encoder_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (encoder_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"    (output_projection): Linear(in_features=512, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# 优化\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## 损失(Loss): Label Smoothing Regularization\\n\",\n    \"* 让模型学习生成更少集中的分布，防止过度自信\\n\",\n    \"* 有时候正确答案可能不是唯一的。因此，在计算损失时，我们为错误标签保留一些概率。\\n\",\n    \"* 避免过拟合\\n\",\n    \"\\n\",\n    \"代码 [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood 负对数似然，当目标是 one-hot 时的交叉熵。下一行代码等同于F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  保留一些其他标签的概率，这样在计算交叉熵的时候相当于对所有标签的对数概率求和\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # 在计算交叉熵的时候，增加其他标签的损失\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# 通常来说，0.1 已经足够好了\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 优化器: Adam + 学习率调度\\n\",\n    \"在训练 Transformer 时，平方根倒数调度（Inverse square root scheduling）对于稳定性非常重要，在后面也用于RNN。\\n\",\n    \"根据以下公式更新学习率，第一阶段线性增加，然后按时间步的平方根倒数成比例衰减。\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    lr = 1.0 / math.sqrt(d_model) * min(1.0 / math.sqrt(step_num), step_num / (warmup_step * math.sqrt(warmup_step)))\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim 包装，用于实现 rate\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"将梯度乘以常数*c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"更新参数和 rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"实现上面的 `lrate`\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## 调度可视化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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TmDDhg144oknHOV4n7tu69atePfdd/Gvf/0L48aNw9GjR5GZmYno6GjMnz/fUY73uvtJ6Z62VZf29m0Pu8Z6UFhYGORyeav/I6isrGyVdPu7Z599Fjt37sTevXsxZMgQx/bIyEgA6PAeRkZGwmg04tq1ax2WuXz5cqvzXrlyxanMjee5du0aTCZTr/995eXlobKyEomJiVAoFFAoFMjNzcUbb7wBhULh9H9RLfE+uycqKgoJCQlO28aOHYuSkhIA/Oe5O/3yl7/EsmXL8Mgjj2DChAnIyMjA4sWLkZWVBYD3uidI7Z62VaayshJA61arjjAI9SCVSoXExETk5OQ4bc/JycH06dO9VCtpEULgmWeewbZt2/DZZ5+1asqMi4tDZGSk0z00Go3Izc113MPExEQolUqnMuXl5Th+/LijzLRp06DT6fDll186yhw+fBg6nc6pzPHjx1FeXu4os3v3bqjVaiQmJnb/xXvQPffcg2PHjuHo0aOOT1JSEn74wx/i6NGjGD58OO9zN7jjjjtaLf9w6tQpxMbGAuA/z92poaEBPj7OjzC5XO6YPs973f2kdk+nTZuG/fv3O02p3717N6Kjo1t1mXXI5WHV1Cn26fObNm0SJ0+eFJmZmcLf31+cP3/e21WThJ///OciKChI7Nu3T5SXlzs+DQ0NjjKrV68WQUFBYtu2beLYsWPi0UcfbXO65pAhQ8SePXtEfn6+uPvuu9ucrnnLLbcIrVYrtFqtmDBhQpvTNe+55x6Rn58v9uzZI4YMGdIrp8C6ouWsMSF4n7vDl19+KRQKhfjtb38rTp8+Lf75z38KPz8/8e677zrK8D53j/nz54vBgwc7ps9v27ZNhIWFieeee85RhvfafbW1taKgoEAUFBQIAOK1114TBQUFjiVfpHRPa2pqREREhHj00UfFsWPHxLZt20RgYCCnz0vRunXrRGxsrFCpVGLKlCmOqeFkm57Z1uett95ylLFarWLVqlUiMjJSqNVqceedd4pjx445HaexsVE888wzIiQkRPj6+orvfve7oqSkxKlMdXW1+OEPfygCAgJEQECA+OEPfyiuXbvmVObChQtizpw5wtfXV4SEhIhnnnnGaWpmX3JjEOJ97h4ffvihGD9+vFCr1SI+Pl68+eabTt/zPncPvV4vFi1aJIYOHSo0Go0YPny4WLlypTAYDI4yvNfu27t3b5v/TZ4/f74QQnr39OuvvxbJyclCrVaLyMhI8cILL7g1dV4IIWRCuLsEIxEREVHfwDFCRERE1G8xCBEREVG/xSBERERE/RaDEBEREfVbDEJERETUbzEIERERUb/FIERERET9FoMQERER9VsMQkRERNRvMQgRERFRv8UgRERERP0WgxARERH1W/8flADhZtG2wcQAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# 训练过程\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## 训练\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # 自动混合精度（amp）\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # 在第一步之后清空 CUDA 缓存可以减少 OOM（out of memory）的机会\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # 混合精度训练\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # 日志记录\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # 反向传播\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) 处理零梯度的情况\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # 梯度裁剪防止梯度爆炸\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # 日志记录\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## 验证 & 推测\\n\",\n    \"为了防止过拟合，每个训练周期都需要进行验证，以验证模型在未见过的数据上的性能。\\n\",\n    \"- 该过程与训练基本相同，只是多了一个推测步骤。\\n\",\n    \"- 在验证后，我们可以保存模型的权重。\\n\",\n    \"\\n\",\n    \"仅凭验证损失无法描述模型的实际性能\\n\",\n    \"- 基于当前模型直接生成翻译假设，然后使用参考翻译计算BLEU\\n\",\n    \"- 我们也可以手动检查假设的质量\\n\",\n    \"- 我们使用 fairseq 的序列生成器进行集束搜索以生成翻译假设。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq 的集束搜索生成器\\n\",\n    \"# 给定模型和输入序列，通过集束搜索生成翻译假设\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # 将 Tensor 转换为人类可读的句子\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # 对于每个样本，收集输入、假设和参考，稍后用于计算 BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 表示使用集束中的最佳假设\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # 显示 bleu 结果\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# 保存和加载模型权重\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # 保存 epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # 保存 epoch 样本\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # 获取最佳的验证 bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## 训练循环\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:42:10 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-19 18:42:10 | INFO | hw5.seq2seq | encoder: TransformerEncoder\\n\",\n      \"2023-11-19 18:42:10 | INFO | hw5.seq2seq | decoder: TransformerDecoder\\n\",\n      \"2023-11-19 18:42:10 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-19 18:42:10 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-19 18:42:10 | INFO | hw5.seq2seq | num. model params: 52,324,352 (num. trained: 52,324,352)\\n\",\n      \"2023-11-19 18:42:10 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"# try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"# while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"#     # 训练一个 epoch\\n\",\n    \"#     train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"#     stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"#     logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"#     epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Namespace(inputs=['./checkpoints/transformer-bt'], output='./checkpoints/transformer-bt/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/transformer-bt/checkpoint30.pt', './checkpoints/transformer-bt/checkpoint29.pt', './checkpoints/transformer-bt/checkpoint28.pt', './checkpoints/transformer-bt/checkpoint27.pt', './checkpoints/transformer-bt/checkpoint26.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/transformer-bt/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# 对几个 checkpoints 进行平均可以产生类似于 ensemble 的效果\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## 确定用于生成 submission 的模型权重\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-19 18:42:13 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/transformer-bt/avg_last_5_checkpoint.pt: step=unknown loss=3.027837038040161 bleu=29.730896524436638\\n\",\n      \"2023-11-19 18:42:13 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-19 18:42:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-19 18:42:13 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-19 18:42:13 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-19 18:42:13 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"411050ef19b145309ecc5ea4603f8585\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/functional.py:5076: UserWarning: Support for mismatched key_padding_mask and attn_mask is deprecated. Use same type for both instead.\\n\",\n      \"  warnings.warn(\\n\",\n      \"2023-11-19 18:42:37 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-19 18:42:37 | INFO | hw5.seq2seq | example hypothesis: 第一次在美國 , 一群主要是白人 , 投票給一位非裔美國人候選人 。\\n\",\n      \"2023-11-19 18:42:37 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-19 18:42:37 | INFO | hw5.seq2seq | validation loss:\\t3.0109\\n\",\n      \"2023-11-19 18:42:37 | INFO | hw5.seq2seq | BLEU = 29.72 60.9/36.8/23.4/15.7 (BP = 0.986 ratio = 0.986 hyp_len = 108917 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : 最新的 epoch\\n\",\n    \"# checkpoint_best.pt : 最高的验证 BLEU\\n\",\n    \"# avg_last_5_checkpoint.pt: 最近 5 次 epoch 的平均值\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## 生成预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # 根据预处理前的顺序进行排序\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Gradescope\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Problem 1: Visualize Positional Embedding\\n\",\n    \"\\n\",\n    \"推荐阅读: [All Pairs Cosine Similarity in PyTorch](https://medium.com/@dhruvbird/all-pairs-cosine-similarity-in-pytorch-867e722c8572)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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f7H9UykRA/lUKpVKpYqS5s2bR0NDw7Qr2PrV3d1dNH9jYyOdnZ1Fv+OXQl+lUqlUqpDV3NzMkiVLClanBVi/fv2UK88ed9xxB+R/8sknWbp0KU1NTUW/41dsod/S0sLNN988ZTwl6dL6mV5aPzNL62h6af1ML62f3OJ2X//613nwwQd59dVXueaaa9i6dWt+3v1NN93ERRddlM+/fPly/vCHP7BixQpeffVVHnzwQR544AGuu+66ko8Z2yl7KpVKpVJFXffeey+33XYb27dvZ/Hixdxxxx28//3vB+Diiy/m97//PT/96U/z+Tds2MA111yTX5znhhtuKGtxHoW+SqVSqVQJUWzd+yqVSqVSqQql0FepVCqVKiFS6KtUKpVKlRAp9FUqlUqlSohiC/17772XRYsWkUqlWLJkCU8//fRsn1LNtXr1at773vfS3t7O/PnzOeecc/j1r39dkMdxHFatWkVPTw9z5szhlFNO4eWXXy7IMzY2xpVXXsm8efNoa2vj7LPP5rXXXgvzUkLR6tWrqauro7e3N78v6fXz+uuv8/GPf5zOzk5aW1t597vfzcaNG/PpSa6f/fv38/d///csWrSIOXPmcMQRR3DLLbcwOen9k3qS6uepp57iIx/5CD09PdTV1fH973+/ID2outizZw8XXngh6XSadDrNhRdeSH9/f42vLsYqaYV+y/Too486TU1Nzte+9jXnlVdeca6++mqnra3N+cMf/jDbp1ZTnX766c43vvEN56WXXnI2b97snHnmmc5b3vIWZ+/evfk8X/ziF5329nbne9/7nvPiiy865513nnPIIYc4g4OD+TzLly93Dj30UGf9+vXOL3/5S+cDH/iA8653vcvZv3//bFxWTfTzn//ceetb3+q8853vdK6++ur8/iTXz+7du53DDz/cufjii52f/exnzpYtW5wf/vCHzm9/+9t8niTXz+c//3mns7PT+dd//Vdny5Ytzr/8y784Bx10kHPnnXfm8ySpftatW+esXLnS+d73vucAztq1awvSg6qLD33oQ87ixYudZ5991nn22WedxYsXO2eddVZYlxk7xRL6f/Znf+YsX768YN/b3vY258Ybb5ylM5odvfnmmw7gbNiwwXEcx5mcnHS6u7udL37xi/k8o6OjTjqddr761a86juM4/f39TlNTk/Poo4/m87z++utOfX2988QTT4R7ATXS0NCQc+SRRzrr1693Tj755Dz0k14/N9xwg3PiiSdOmZ70+jnzzDOdv/3bvy3Y99GPftT5+Mc/7jhOsuvHD/2g6uKVV15xAOf555/P53nuueccwPnP//zPGl9VPBU79/74+DgbN25k2bJlBfuXLVvGs88+O0tnNTsaGBgAvH8c3LJlC319fQV109LSwsknn5yvm40bNzIxMVGQp6enh8WLF8em/i6//HLOPPNMTj311IL9Sa+fxx9/nKVLl/JXf/VXzJ8/n2OOOYavfe1r+fSk18+JJ57Ij370I37zm98A8Ktf/YpnnnmGD3/4w4DWj6mg6uK5554jnU5z7LHH5vO8733vI51Ox6q+wlTs/mWvkr8rjKMcx2HFihWceOKJLF68GCB//cXq5g9/+EM+T3NzMwcffPABeeJQf48++ii//OUveeGFFw5IS3r9/O53v+O+++5jxYoVfPazn+XnP/85V111FS0tLVx00UWJr58bbriBgYEB3va2t9HQ0EA2m+ULX/gCH/vYxwC9f0wFVRd9fX3Mnz//gPLnz58fq/oKU7GDvqjcvyuMm6644gr+4z/+g2eeeeaAtErqJg71t23bNq6++mqefPLJaf9GM6n1Mzk5ydKlS7n11lsBOOaYY3j55Ze57777Ctb/Tmr9rFmzhoceeoiHH36Yd7zjHWzevJne3l56enr4xCc+kc+X1PoppiDqolj+uNZXGIqde7+SvyuMm6688koef/xxfvKTn3DYYYfl93d3dwNMWzfd3d2Mj4+zZ8+eKfPYqo0bN/Lmm2+yZMkSGhsbaWxsZMOGDXzlK1+hsbExf31JrZ9DDjmEt7/97QX7jjrqKLZu3Qro/fOZz3yGG2+8kb/+67/m6KOP5sILL+Saa65h9erVgNaPqaDqoru7mz/+8Y8HlL9jx45Y1VeYih30K/m7wrjIcRyuuOIKHnvsMX784x+zaNGigvRFixbR3d1dUDfj4+Ns2LAhXzdLliyhqampIM/27dt56aWXrK+/D37wg7z44ots3rw5vy1dupQLLriAzZs3c8QRRyS6fk444YQDpnj+5je/4fDDDwf0/hkZGaG+vrDJbGhoyE/ZS3r9mAqqLo477jgGBgb4+c9/ns/zs5/9jIGBgVjVV6iajdGDtZZM2XvggQecV155xent7XXa2tqc3//+97N9ajXV3/3d3znpdNr56U9/6mzfvj2/jYyM5PN88YtfdNLptPPYY485L774ovOxj32s6DSaww47zPnhD3/o/PKXv3T+/M//3MopRaXIHL3vOMmun5///OdOY2Oj84UvfMH5r//6L+e73/2u09ra6jz00EP5PEmun0984hPOoYcemp+y99hjjznz5s1zrr/++nyeJNXP0NCQs2nTJmfTpk0O4Nx+++3Opk2b8lOjg6qLD33oQ8473/lO57nnnnOee+455+ijj9Ype1UoltB3HMe55557nMMPP9xpbm523vOe9+SnrcVZQNHtG9/4Rj7P5OSkc/PNNzvd3d1OS0uL8/73v9958cUXC8rZt2+fc8UVVzhz58515syZ45x11lnO1q1bQ76acOSHftLr5wc/+IGzePFip6WlxXnb297m3H///QXpSa6fwcFB5+qrr3be8pa3OKlUyjniiCOclStXOmNjY/k8Saqfn/zkJ0Xbm0984hOO4wRXF7t27XIuuOACp7293Wlvb3cuuOACZ8+ePSFdZfykf62rUqlUKlVCFLuYvkqlUqlUquJS6KtUKpVKlRAp9FUqlUqlSogU+iqVSqVSJUQKfZVKpVKpEiKFvkqlUqlUCZFCX6VSqVSqhEihr1KpVCpVQqTQV6lUKpUqIVLoq1QqlUqVECn0VSqVSqVKiP5/Y4Ad4TMvPNQAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# 计算余弦相似度矩阵\\n\",\n    \"def get_cosine_similarity_matrix(x):\\n\",\n    \"    x = x / x.norm(dim=1, keepdim=True)\\n\",\n    \"    sim = torch.mm(x, x.t())\\n\",\n    \"    return sim\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"# 获取 decoder 中的 positional embeddings\\n\",\n    \"pos_emb = model.decoder.embed_positions.weights.cpu().detach()\\n\",\n    \"sim = get_cosine_similarity_matrix(pos_emb)\\n\",\n    \"# sim = F.cosine_similarity(pos_emb.unsqueeze(1), pos_emb.unsqueeze(0), dim=-1) # 一样的\\n\",\n    \"\\n\",\n    \"# # 绘制 positional embeddings 的余弦相似度矩阵的热力图\\n\",\n    \"plt.imshow(sim, cmap=\\\"hot\\\", vmin=0, vmax=1)\\n\",\n    \"plt.colorbar()\\n\",\n    \"\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 50,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[50], line 2\\u001b[0m\\n\\u001b[1;32m      1\\u001b[0m \\u001b[38;5;28;01mif\\u001b[39;00m \\u001b[38;5;129;01mnot\\u001b[39;00m BACK_TRANSLATION:\\n\\u001b[0;32m----> 2\\u001b[0m     \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if not BACK_TRANSLATION:\\n\",\n    \"    raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation (Boss)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## 训练一个 backward translation 模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. 将 **config** 中的 source_lang 和 target_lang 进行切换\\n\",\n    \"2. 更改 **config** 中的 savedir(例如: \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## 用后向模型生成人造数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### 下载单语言数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: 清洗语料\\n\",\n    \"\\n\",\n    \"1. 移除太长或者太短的句子\\n\",\n    \"2. 统一标点符号\\n\",\n    \"\\n\",\n    \"提示: 你可以使用之前定义的 clean_s() 来执行此操作\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def clean_mono_corpus(prefix, l, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.zh').exists():\\n\",\n    \"        print(f'{prefix}.clean.zh exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}', 'r') as l_in_f:\\n\",\n    \"        with open(f'{prefix}.clean.zh', 'w') as l_out_f:\\n\",\n    \"            for s in l_in_f:\\n\",\n    \"                s = s.strip()\\n\",\n    \"                s = clean_s(s, l)\\n\",\n    \"                s_len = len_s(s, l)\\n\",\n    \"                if min_len > 0: # remove short sentence\\n\",\n    \"                    if s_len < min_len:\\n\",\n    \"                        continue\\n\",\n    \"                if max_len > 0: # remove long sentence\\n\",\n    \"                    if s_len > max_len:\\n\",\n    \"                        continue\\n\",\n    \"                print(s, file=l_out_f)\\n\",\n    \"                \\n\",\n    \"\\n\",\n    \"mono_data_prefix = f'{mono_prefix}/ted_zh_corpus.deduped'\\n\",\n    \"clean_mono_corpus(mono_data_prefix, 'zh')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"source\": [\n    \"**生成伪翻译**\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"\\n\",\n    \"zh_path = mono_prefix / 'ted_zh_corpus.deduped.clean.zh'\\n\",\n    \"en_path = mono_prefix / 'ted_zh_corpus.deduped.clean.en'\\n\",\n    \"\\n\",\n    \"if en_path.exists():\\n\",\n    \"    print(f\\\"{en_path} exists. skipping the generation of psuedo translation.\\\")\\n\",\n    \"\\n\",\n    \"with open(zh_path, 'r') as zh_f:\\n\",\n    \"    with open(en_path, 'w') as en_f:\\n\",\n    \"        for line in zh_f:\\n\",\n    \"            line = line.strip()\\n\",\n    \"            if line:\\n\",\n    \"                # 用'_.'替换，得到一个伪翻译的字符串\\n\",\n    \"                pseudo = '_.'\\n\",\n    \"                # 将伪翻译的字符串写入目标文件中，并换行\\n\",\n    \"                print(pseudo, file=en_f)\\n\",\n    \"            # 如果这一行为空，直接换行\\n\",\n    \"            else:\\n\",\n    \"                print(file=en_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: 子词单位\\n\",\n    \"\\n\",\n    \"使用后向模型的 spm 模型将数据标记为子词单位\\n\",\n    \"\\n\",\n    \"提示: spm 模型位于 DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def spm_encode(prefix, vocab_size, mono_prefix):\\n\",\n    \"    spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"\\n\",\n    \"    in_path = mono_prefix / 'ted_zh_corpus.deduped.clean'\\n\",\n    \"\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = mono_prefix / f'mono.tok.{lang}'\\n\",\n    \"        # if out_path.exists():\\n\",\n    \"        #     print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        # else:\\n\",\n    \"        with open(out_path, 'w') as out_f:\\n\",\n    \"            with open(f'{in_path}.{lang}', 'r') as in_f:\\n\",\n    \"                for line in in_f:\\n\",\n    \"                    line = line.strip()\\n\",\n    \"                    tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                    print(' '.join(tok), file=out_f)\\n\",\n    \"\\n\",\n    \"spm_encode(prefix, vocab_size, mono_prefix)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### 二值化\\n\",\n    \"\\n\",\n    \"使用 fairseq 去二值化数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: 用后向模型生成人造数据\\n\",\n    \"\\n\",\n    \"将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"然后你可以使用 'generate_prediction(model, task, split=\\\"split_name\\\")' 来生成翻译的预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"# 例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 提示: 在 split='mono' 上做预测来创建 prediction_file\\n\",\n    \"task.load_dataset(split=\\\"mono\\\", epoch=1)\\n\",\n    \"generate_prediction(model, task, split='mono', outfile='./prediction.txt' )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: 创建新的数据集\\n\",\n    \"\\n\",\n    \"1. 将预测数据和单语数据结合\\n\",\n    \"2. 使用原始的 spm 模型将数据 tokenize 为子词单位\\n\",\n    \"3. 使用 fairseq 将数据二值化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将 prediction_file (.en) 和 mono.zh (.zh) 结合为新的数据集\\n\",\n    \"#\\n\",\n    \"# 提示: 用 spm 模型 tokenize prediction_file\\n\",\n    \"!cp ./prediction.txt {mono_prefix}/'ted_zh_corpus.deduped.clean.en'\\n\",\n    \"spm_encode(prefix, vocab_size, mono_prefix)\\n\",\n    \"# 输出: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# 提示: 使用 fairseq 再次二值化这两个文件\\n\",\n    \"binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 根据上面准备的所有文件创建一个新的数据集\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"创建新数据集 \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. 修改 **config** 中的 datadir (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. 将 **config** 中的 source_lang 和 target_lang 进行切换 (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. 更改 **config** 中的 savedir (例如: \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/zh/HW05_Medium_zh_18.9.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Medium Baseline\\n\",\n    \"你可以通过搜索 \\\"Medium\\\" 来检查是哪些地方做了改变 (Ctrl + F 或者 Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# 作业描述\\n\",\n    \"- 英译中(繁体)\\n\",\n    \"  - 输入: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - 输出: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - 训练一个 seq2seq 的简单的 RNN 模型来完成翻译\\n\",\n    \"    - 转变模型架构为 transformer，提升性能\\n\",\n    \"    - 使用 Back-translation 进一步提升性能\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Wed Nov 15 18:12:08 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   28C    P8    20W / 170W |    367MiB / 12288MiB |     13%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1190      G   /usr/lib/xorg/Xorg                153MiB |\\n\",\n      \"|    0   N/A  N/A      1505      G   /usr/bin/gnome-shell               24MiB |\\n\",\n      \"|    0   N/A  N/A      1708      G   ...nlogin/bin/sunloginclient        6MiB |\\n\",\n      \"|    0   N/A  N/A     53123      G   /usr/lib/firefox/firefox          180MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# 下载和导入需要的包\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# 固定随机数种子\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# 数据集\\n\",\n    \"\\n\",\n    \"## 英-中 对应的语料\\n\",\n    \"* TED2020\\n\",\n    \"    - 原始: 400,726 (句子)   \\n\",\n    \"    - 处理后: 394,052 (句子)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## 测试集\\n\",\n    \"- 大小: 4,000 (句子)\\n\",\n    \"- **没有提供中文的翻译。(.zh)文件是伪翻译，其中每一行是'。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## 数据集下载\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## 语言\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## 预处理文件\\n\",\n    \"- strQ2B(): 将全角字符转变为半角字符\\n\",\n    \"- clean_s(): 清洗文本，将逗号/破折号/空格等字符删除\\n\",\n    \"- len_s(): 返回文本长度\\n\",\n    \"- clean_corpus: 使用上面的函数对指定的文本文件进行清洗\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## 划分训练/验证集\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000～4000 就够用了\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## 子词单位\\n\",\n    \"不在词表中的单词（OOV）是机器翻译面临的主要问题。这个问题可以通过使用子词（subword）作为基本单位来缓解\\n\",\n    \"- 我们将使用 [sentencepiece](#kudo-richardson-2018-sentencepiece) 包\\n\",\n    \"- 选择 unigram 或者 byte-pair encoding (BPE) 算法\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## 数据二值化（使用 fairseq）\\n\",\n    \"配对源语言和目标语言的文件。\\n\",\n    \"\\n\",\n    \"如果没有对应的文件，就生成伪配对来方便二值化。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# 实验配置\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/rnn\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # 设置取数据和处理数据时 cpu 的线程数\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size 按照 token 数量来计算。梯度累积可以增加有效的 batch size。\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # 学习率通过 Noam 调度器进行计算。你可以修改lr_factor来调整最大的学习率。\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # 梯度裁剪可以缓解梯度爆炸\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # 训练的最大轮数 (Medium)\\n\",\n    \"    max_epoch=30,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # 集束搜索中的 beam size\\n\",\n    \"    beam=5,\\n\",\n    \"    # 生成的序列的最大长度为 ax + b，其中 x 是源长度\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # 解码时，通过去除 sentencepiece 符号和 jieba 分词来后处理句子。\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # 检查点\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume 则根据 checkpoint name 进行恢复（文件保存在 config.savedir 下）\\n\",\n    \"\\n\",\n    \"    # 日志记录\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# 日志\\n\",\n    \"- logging 包用于记录普通的信息\\n\",\n    \"- wandb 记录训练过程中的损失/bleu等\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA 环境\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:13:17 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# 数据导入\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## 我们采用了 TranslationTask（来自 fairseq）\\n\",\n    \"* 用于加载上面创建的二值化数据\\n\",\n    \"* 实现数据迭代器（dataloader）\\n\",\n    \"* 内置的 task.source_dictionary 和 task.target_dictionary 也很有用\\n\",\n    \"* 实现集束搜索解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:13:17 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:13:17 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.en\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.zh\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 train en-zh 390112 examples\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.en\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.zh\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# 数据集迭代器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* 控制每个 batch 不超过 N 个 token，这样可以优化 GPU 内存效率\\n\",\n    \"* 在每个 epoch 都对训练集进行随机打乱\\n\",\n    \"* 忽略超过最大长度的句子\\n\",\n    \"* 将一个 batch 中的所有句子填充到相同的长度，这样可以利用 GPU 进行并行计算\\n\",\n    \"* 添加 eos 并移动一个 token\\n\",\n    \"    - teacher forcing 技术: 为了训练模型根据前缀预测下一个 token，我们将移动后的目标序列作为解码器的输入。\\n\",\n    \"    - 一般来说，在目标前面加上 bos 就可以了（如下图所示）\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - 但是在 fairseq 中，这是通过将 eos token 移动到开头来实现的。在实验上，这个操作拥有相同的效果。例如:\\n\",\n    \"    ```\\n\",\n    \"    # 目标输出（target）和解码器输入（prev_output_tokens）:\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:13:17 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-15 18:13:17 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-15 18:13:17 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # 如果设置为 False（cached=True），可以加快训练速度。\\n\",\n    \"        # 但是，如果设置为 False，那么在第一次调用这个方法之后，再改变 max_tokens就没有效果了。\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# 模型架构\\n\",\n    \"* 我们再次继承 fairseq 的编码器、解码器和模型，以便在测试阶段可以直接利用 fairseq 的集束搜索解码器。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# 编码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- 编码器（Encoder）是一个循环神经网络（RNN）或者 Transformer 中的编码器。下面的描述是针对 RNN 的。对于每一个输入的 token，编码器会生成一个输出向量和一个隐藏状态向量，并且将隐藏状态向量传递给下一步。换句话说，编码器顺序地读入输入序列，并且在每一个时间步输出一个单独的向量，然后在最后一个时间步输出最终的隐藏状态，或者称为内容向量（content vector）。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: 嵌入的维度，将 one-hot 向量压缩到固定的维度，实现降维的效果\\n\",\n    \"      - encoder_ffn_embed_dim: 隐藏状态和输出向量的维度\\n\",\n    \"      - encoder_layers: RNN 编码器的层数\\n\",\n    \"      - dropout 确定了一个神经元的激活值被设为 0 的概率，用于防止过拟合。通常这个参数在训练时使用，在测试时移除\\n\",\n    \"  - *dictionary*: fairseq 提供的字典。它用于获取填充索引，进而得到编码器的填充掩码（encoder padding mask）\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: 一个表示英语的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: RNN 在每个时间步的输出，可以由注意力机制（Attention）进一步处理\\n\",\n    \"    - *final_hiddens*: 每个时间步的隐藏状态，会被传递给解码器（decoder）进行解码\\n\",\n    \"    - *encoder_padding_mask*: 这个参数告诉解码器哪些位置要忽略\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # 获取 embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # 经过双向的 RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # 由于编码器是双向的，我们需要将两个方向的隐藏状态连接起来\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## 注意力\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- 当输入序列很长时，单独的“内容向量”就不能准确地表示整个序列，注意力机制可以为解码器提供更多信息。\\n\",\n    \"- 根据当前时间步的**解码器embeddings**，将**编码器输出**与**解码器 embeddings** 进行匹配，确定相关性，然后将编码器输出按相关性加权求和作为**解码器** RNN 的输入。\\n\",\n    \"- 常见的注意力实现使用神经网络/点积作为 **query**（解码器 embeddings）和 **key**（编码器输出）之间的相关性，然后用 **softmax** 得到一个分布，最后用该分布对 **value**（编码器输出）进行**加权求和**。\\n\",\n    \"\\n\",\n    \"- 参数:\\n\",\n    \"  - *input_embed_dim*: key 的维度，应该是解码器中用于 attend 其他向量的向量的维度\\n\",\n    \"  - *source_embed_dim*: query 的维度，应该是被 attend 的向量（编码器输出）的维度\\n\",\n    \"  - *output_embed_dim*: value 的维度，应该是 after attention 的向量的维度，符合下一层的期望,\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: key, 用于 attend 其他向量\\n\",\n    \"    - *encoder_outputs*:  query/value, 被 attend 的向量\\n\",\n    \"    - *encoder_padding_mask*: 这个告诉解码器应该忽略那些位置\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: attention 后的上下文向量\\n\",\n    \"    - *attention score*: attention 的分数\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # 将所有的输入的维度改为 batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # 投影到 encoder_outputs 的维度\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # 计算 attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # 取消与 padding 相对应的位置的 attention\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # 在与源序列对应的维度上进行 softmax\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) 加权求和\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# 解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* **解码器**的隐藏状态将由**编码器**的最终隐藏状态（the content vector）初始化\\n\",\n    \"* 同时，**解码器**会根据当前时间步的输入（前一时间步的输出）改变其隐藏状态，并生成一个输出\\n\",\n    \"* 注意力机制可以提高性能\\n\",\n    \"* seq2seq 的步骤是在解码器中实现的，这样以后 Seq2Seq 类可以接受 RNN 和 Transformer，而不需要进一步修改。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: 解码器嵌入的维度，类似于 encoder_embed_dim\\n\",\n    \"      - decoder_ffn_embed_dim: 解码器 RNN 隐藏状态的维度，类似于 encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: RNN 解码器的层数\\n\",\n    \"      - share_decoder_input_output_embed: 通常，解码器的投影矩阵会与解码器输入 embeddings 共享权重\\n\",\n    \"  - *dictionary*: fairseq 提供的字典\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"- 输入:\\n\",\n    \"    - *prev_output_tokens*: 表示右移目标的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: 编码器的输出\\n\",\n    \"    - *incremental_state*: 为了加速测试时的解码，我们会保存每个时间步的隐藏状态。详见forward()。\\n\",\n    \"- 输出:\\n\",\n    \"    - *outputs*: 解码器在每个时间步的输出的对数（softmax之前）\\n\",\n    \"    - *extra*: 未使用\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # 从编码器中提取输出\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # 如果保留了上一个时间步的信息，可以从那里继续，而不是从bos开始\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # 增量状态不存在，要么是训练时，要么是测试时的第一个时间步\\n\",\n    \"            # 为seq2seq做准备：将编码器的隐藏状态传递给解码器的隐藏状态\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # 经过单向的 RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 embedding size（如果隐藏状态与 embedding size 不同，并且 share_embedding 为True\\n\",\n    \"        # 就需要做一个额外的投影）\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, 则记录当前时间步的隐藏状态，在下一个时间步恢复\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(self, incremental_state, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- 由**编码器**和**解码器**组成\\n\",\n    \"- 接收输入并传递给**编码器**\\n\",\n    \"- 将**编码器**的输出传递给**解码器**\\n\",\n    \"- **解码器**会根据前一时间步的输出以及**编码器**的输出进行解码\\n\",\n    \"- 解码完成后，返回**解码器**的输出\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# 模型初始化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # 提示: transformer 架构\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # 提示: TODO: 转变为 TransformerEncoder & TransformerDecoder\\n\",\n    \"    encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    # encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # 序列到序列的模型\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # 初始化 seq2seq 模型很重要, 需要额外的处理\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # 权重初始化\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## 架构相关配置\\n\",\n    \"\\n\",\n    \"为了达成 strong baseline，请参考 [Attention is all you need](#vaswani2017) 中表 3 中 *transformer-base* 的超参数\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=256,\\n\",\n    \"    encoder_ffn_embed_dim=512,\\n\",\n    \"    encoder_layers=1,\\n\",\n    \"    decoder_embed_dim=256,\\n\",\n    \"    decoder_ffn_embed_dim=1024,\\n\",\n    \"    decoder_layers=1,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# 提示: 这些是 Transformer 的参数补丁\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=4\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=4\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # Transformer 默认参数的补丁（未在上面设置的参数）\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"# add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/modules/rnn.py:82: UserWarning: dropout option adds dropout after all but last recurrent layer, so non-zero dropout expects num_layers greater than 1, but got dropout=0.3 and num_layers=1\\n\",\n      \"  warnings.warn(\\\"dropout option adds dropout after all but last \\\"\\n\",\n      \"2023-11-15 18:13:18 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): RNNEncoder(\\n\",\n      \"    (embed_tokens): Embedding(7992, 256, padding_idx=1)\\n\",\n      \"    (dropout_in_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (rnn): GRU(256, 512, dropout=0.3, bidirectional=True)\\n\",\n      \"    (dropout_out_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"  )\\n\",\n      \"  (decoder): RNNDecoder(\\n\",\n      \"    (embed_tokens): Embedding(7992, 256, padding_idx=1)\\n\",\n      \"    (dropout_in_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (rnn): GRU(256, 1024, dropout=0.3)\\n\",\n      \"    (attention): AttentionLayer(\\n\",\n      \"      (input_proj): Linear(in_features=256, out_features=1024, bias=False)\\n\",\n      \"      (output_proj): Linear(in_features=1280, out_features=256, bias=False)\\n\",\n      \"    )\\n\",\n      \"    (dropout_out_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (project_out_dim): Linear(in_features=1024, out_features=256, bias=True)\\n\",\n      \"    (output_projection): Linear(in_features=256, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# 优化\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## 损失(Loss): Label Smoothing Regularization\\n\",\n    \"* 让模型学习生成更少集中的分布，防止过度自信\\n\",\n    \"* 有时候正确答案可能不是唯一的。因此，在计算损失时，我们为错误标签保留一些概率。\\n\",\n    \"* 避免过拟合\\n\",\n    \"\\n\",\n    \"代码 [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood 负对数似然，当目标是 one-hot 时的交叉熵。下一行代码等同于F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  保留一些其他标签的概率，这样在计算交叉熵的时候相当于对所有标签的对数概率求和\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # 在计算交叉熵的时候，增加其他标签的损失\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# 通常来说，0.1 已经足够好了\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 优化器: Adam + 学习率调度 (Medium)\\n\",\n    \"在训练 Transformer 时，平方根倒数调度（Inverse square root scheduling）对于稳定性非常重要，在后面也用于RNN。\\n\",\n    \"根据以下公式更新学习率，第一阶段线性增加，然后按时间步的平方根倒数成比例衰减。\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    # TODO: 将 lr 从常数修改为上面显示的公式\\n\",\n    \"    lr = 1.0 / math.sqrt(d_model) * min(1.0 / math.sqrt(step_num), step_num / (warmup_step * math.sqrt(warmup_step)))\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim 包装，用于实现 rate\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"将梯度乘以常数*c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"更新参数和 rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"实现上面的 `lrate`\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## 调度可视化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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tXj44YdRVVVl7yW7NfauCDeXDli3bp04duyYSEpKEl5eXuLcuXNCCCEWLVokEhISpHhz6YAFCxaIY8eOiXXr1rUoHfDDDz8IuVwuli9fLo4fPy6WL1/eonTAf//3fwuNRiP27NkjiouLpe36xz2XL18uNBqN2LJli8jLyxNPP/201dIBffr0Ebt27RJZWVnigQce6FalA86X1YiwhV+JsIVfiaamJkd3h4jIqd349FRTU5OoMZgcst3Kf7NvfEJcCCFmz54tpk2bZvNzo0aNEq+99lq7zhkfHy9ee+018frrr4thw4ZZHGvLU+43e7q+LU+536iznoazuyhlfHw8ysvL8eabb6K4uBhRUVHYsWMHwsLCADSP1FyfFYaHh2PHjh1YsGABVq1ahZCQELz//vt48sknpZixY8di48aNeO2117B06VL0798fmzZtwqhRo6SYNWvWAAAmTpxo0Z9PPvkEzz33HADglVdeQV1dHX77299KRSl37twJb29vKf5///d/4e7ujhkzZkhFKT/99NNOKY/uCLq6a+X6y2uMCOihcmBviIhcS52pEZH/798OOfexN+PgqWzfizVufELcbM+ePQgMDETPnj0xYcIEvPXWWwgMDATQvATl4MGDmDVrFsaOHYszZ85g0KBBeOutt3DfffdJbUycOBH9+vXDp59+Ku375JNPcObMGXz++ef4n//5nxb9ycjIwIIFCyz2xcXF4b333gNw7en6RYsWWcRc/3T9zZ5yf+GFF+y8Su3Xrr+V3/72t/jtb39r9dj1F9NswoQJyMrKstnmr371K/zqV79q9bhoQxl6mUyGZcuWYdmyZa3GqNVq/PWvf8Vf//rXm7bnigwNjdLPxZX1TJaIiLo5YeUJcQCYPHkynnrqKYSFhSE/Px9Lly7FAw88gMzMTKhUKpw9exYAsGzZMvzpT3/C8OHD8dlnn+HBBx/EkSNHMGDAAABA3759ERwcLLV76tQpLFq0CPv27YO7u/U04mZPubfl6XpbT7mfP3/e7ut0K/huuG6mytAg/VxUWYehfTQO7A0RkWvxUMhx7M04h527PcxPiO/fv99if3x8vPRzVFQUYmJiEBYWhq+//hpPPPEEmpqaAAAvvPAC/uM//gMAMGLECOzevRsff/wxUlJSAACfffaZ1E5jYyOeeeYZvPHGG7jzzjtt9qstT6d3VExn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YsuWLSIvL088/fTTIjg4WOj1eikmMTFR9OnTR+zatUtkZWWJBx54QAwbNkw0NDS06ft31tNwRERE1Hlu5f5td7IkhBCrVq0SYWFhQqlUipEjR4r09HTp2OzZs8WECRMs4vfs2SNGjBghlEql6Nevn1izZk2LNjdv3iwGDhwoFAqFGDRokEhNTbXrvEI0lw94/fXXhVarFSqVSowfP17k5eVZxNTV1Ym5c+cKPz8/4eHhIaZOnSoKCgra/N2ZLBEREbmeW7l/y4S4utqa2kSv10Oj0UCn03FKjoiIyEXcyv2b74YjIiIisoHJEhEREZENTJaIiIiIbGCyRERERGQDkyUiIiIiG5gsEREREdnAZImIiIjIBiZLRERERDYwWSIiIiKywd3RHXA15oLner3ewT0hIiKitjLft9vz4hImS3aqqqoCAISGhjq4J0RERGSvqqoqaDQauz7Dd8PZqampCRcvXoS3tzdkMlmHtq3X6xEaGorCwkK+d64T8Tp3DV7nrsHr3HV4rbtGZ11nIQSqqqoQEhICNzf7ViFxZMlObm5u6NOnT6eew8fHh/8idgFe567B69w1eJ27Dq911+iM62zviJIZF3gTERER2cBkiYiIiMgGJktORKVS4fXXX4dKpXJ0V7o1XueuwevcNXiduw6vdddwxuvMBd5ERERENnBkiYiIiMgGJktERERENjBZIiIiIrKByRIRERGRDUyWnMTq1asRHh4OtVqN6Oho7Nu3z9FdchopKSm4++674e3tjcDAQEyfPh2//PKLRYwQAsuWLUNISAg8PDwwceJEHD161CLGYDDgxRdfREBAALy8vPDYY4/hwoULFjEVFRVISEiARqOBRqNBQkICKisrLWIKCgrw6KOPwsvLCwEBAZg3bx6MRmOnfHdHSklJgUwmQ1JSkrSP17ljFBUV4de//jX8/f3h6emJ4cOHIzMzUzrO63zrGhoa8NprryE8PBweHh6IiIjAm2++iaamJimG17l99u7di0cffRQhISGQyWTYtm2bxXFnu655eXmYMGECPDw80Lt3b7z55pv2vx9OkMNt3LhRKBQK8be//U0cO3ZMzJ8/X3h5eYnz5887umtOIS4uTnzyySfiyJEjIicnRzzyyCOib9++orq6WopZvny58Pb2FqmpqSIvL0/Ex8eL4OBgodfrpZjExETRu3dvkZaWJrKy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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# 训练过程\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## 训练\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # 自动混合精度（amp）\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # 在第一步之后清空 CUDA 缓存可以减少 OOM（out of memory）的机会\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # 混合精度训练\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # 日志记录\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # 反向传播\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) 处理零梯度的情况\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # 梯度裁剪防止梯度爆炸\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # 日志记录\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## 验证 & 推测\\n\",\n    \"为了防止过拟合，每个训练周期都需要进行验证，以验证模型在未见过的数据上的性能。\\n\",\n    \"- 该过程与训练基本相同，只是多了一个推测步骤。\\n\",\n    \"- 在验证后，我们可以保存模型的权重。\\n\",\n    \"\\n\",\n    \"仅凭验证损失无法描述模型的实际性能\\n\",\n    \"- 基于当前模型直接生成翻译假设，然后使用参考翻译计算BLEU\\n\",\n    \"- 我们也可以手动检查假设的质量\\n\",\n    \"- 我们使用 fairseq 的序列生成器进行集束搜索以生成翻译假设。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq 的集束搜索生成器\\n\",\n    \"# 给定模型和输入序列，通过集束搜索生成翻译假设\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # 将 Tensor 转换为人类可读的句子\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # 对于每个样本，收集输入、假设和参考，稍后用于计算 BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 表示使用集束中的最佳假设\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # 显示 bleu 结果\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# 保存和加载模型权重\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # 保存 epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # 保存 epoch 样本\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # 获取最佳的验证 bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## 训练循环\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:13:19 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-15 18:13:19 | INFO | hw5.seq2seq | encoder: RNNEncoder\\n\",\n      \"2023-11-15 18:13:19 | INFO | hw5.seq2seq | decoder: RNNDecoder\\n\",\n      \"2023-11-15 18:13:19 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-15 18:13:19 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-15 18:13:19 | INFO | hw5.seq2seq | num. model params: 11,247,872 (num. trained: 11,247,872)\\n\",\n      \"2023-11-15 18:13:19 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:13:19 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:13:19 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-15 18:13:19 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-15 18:13:19 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-15 18:13:19 | WARNING | fairseq.tasks.fairseq_task | 1 samples have invalid sizes and will be skipped, max_positions=(1024, 1024), first few sample ids=[326653]\\n\",\n      \"2023-11-15 18:13:19 | INFO | hw5.seq2seq | no checkpoints found at checkpoints/rnn/checkpoint_last.pt!\\n\",\n      \"2023-11-15 18:13:19 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 1:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:14:32 | INFO | hw5.seq2seq | training loss: 7.1006\\n\",\n      \"2023-11-15 18:14:32 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:14:32 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:14:32 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-15 18:14:32 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-15 18:14:32 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:14:40 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-15 18:14:40 | INFO | hw5.seq2seq | example hypothesis: 一年 , 一年 , 一年 , 一年 , 一年 , 一年 。 」\\n\",\n      \"2023-11-15 18:14:40 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-15 18:14:40 | INFO | hw5.seq2seq | validation loss:\\t6.6061\\n\",\n      \"2023-11-15 18:14:40 | INFO | hw5.seq2seq | BLEU = 0.05 17.1/0.6/0.0/0.0 (BP = 0.435 ratio = 0.546 hyp_len = 60297 ref_len = 110430)\\n\",\n      \"2023-11-15 18:14:40 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint1.pt\\n\",\n      \"2023-11-15 18:14:40 | INFO | hw5.seq2seq | end of epoch 1\\n\",\n      \"2023-11-15 18:14:40 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:14:40 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 2:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:15:54 | INFO | hw5.seq2seq | training loss: 6.3447\\n\",\n      \"2023-11-15 18:15:54 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:15:54 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:16:03 | INFO | hw5.seq2seq | example source: and it just sounds like the most egotistical request you could make , if you were going to pray .\\n\",\n      \"2023-11-15 18:16:03 | INFO | hw5.seq2seq | example hypothesis: 很重要的 , 我們也要在這個人 , 會讓他們 , 都能做什麼 。\\n\",\n      \"2023-11-15 18:16:03 | INFO | hw5.seq2seq | example reference: 這聽起來像是你所能想到的最自我中心的禱告祈求 。\\n\",\n      \"2023-11-15 18:16:03 | INFO | hw5.seq2seq | validation loss:\\t5.9830\\n\",\n      \"2023-11-15 18:16:03 | INFO | hw5.seq2seq | BLEU = 0.90 19.2/2.5/0.4/0.1 (BP = 0.865 ratio = 0.873 hyp_len = 96429 ref_len = 110430)\\n\",\n      \"2023-11-15 18:16:03 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint2.pt\\n\",\n      \"2023-11-15 18:16:03 | INFO | hw5.seq2seq | end of epoch 2\\n\",\n      \"2023-11-15 18:16:03 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:16:03 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 3:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:17:18 | INFO | hw5.seq2seq | training loss: 5.7720\\n\",\n      \"2023-11-15 18:17:18 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:17:18 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:17:28 | INFO | hw5.seq2seq | example source: but empathy really should get you points if you do it when it's hard to do .\\n\",\n      \"2023-11-15 18:17:28 | INFO | hw5.seq2seq | example hypothesis: 但是 , 請你去做什麼事 , 你就知道你會做什麼事 。\\n\",\n      \"2023-11-15 18:17:28 | INFO | hw5.seq2seq | example reference: 同理心應該是在很難有同理心的情況下產生才能夠得分才對 。\\n\",\n      \"2023-11-15 18:17:28 | INFO | hw5.seq2seq | validation loss:\\t5.4271\\n\",\n      \"2023-11-15 18:17:28 | INFO | hw5.seq2seq | BLEU = 2.07 18.7/3.7/0.9/0.3 (BP = 1.000 ratio = 1.109 hyp_len = 122463 ref_len = 110430)\\n\",\n      \"2023-11-15 18:17:28 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint3.pt\\n\",\n      \"2023-11-15 18:17:28 | INFO | hw5.seq2seq | end of epoch 3\\n\",\n      \"2023-11-15 18:17:28 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:17:28 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 4:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:18:43 | INFO | hw5.seq2seq | training loss: 5.3017\\n\",\n      \"2023-11-15 18:18:43 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:18:43 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:18:52 | INFO | hw5.seq2seq | example source: but most biologics also have a flaw .\\n\",\n      \"2023-11-15 18:18:52 | INFO | hw5.seq2seq | example hypothesis: 但大部分生物的生物物種 。\\n\",\n      \"2023-11-15 18:18:52 | INFO | hw5.seq2seq | example reference: 但 , 大部分的生物藥都有個瑕疵 。\\n\",\n      \"2023-11-15 18:18:52 | INFO | hw5.seq2seq | validation loss:\\t4.9340\\n\",\n      \"2023-11-15 18:18:52 | INFO | hw5.seq2seq | BLEU = 7.10 31.4/11.5/5.1/2.4 (BP = 0.869 ratio = 0.877 hyp_len = 96809 ref_len = 110430)\\n\",\n      \"2023-11-15 18:18:52 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint4.pt\\n\",\n      \"2023-11-15 18:18:52 | INFO | hw5.seq2seq | end of epoch 4\\n\",\n      \"2023-11-15 18:18:52 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:18:52 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 5:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:20:06 | INFO | hw5.seq2seq | training loss: 4.9152\\n\",\n      \"2023-11-15 18:20:06 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:20:06 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:20:15 | INFO | hw5.seq2seq | example source: but i believe now that we're moving into a new age , and that age the new york times dubbed recently as \\\" the age of behavior . \\\"\\n\",\n      \"2023-11-15 18:20:15 | INFO | hw5.seq2seq | example hypothesis: 但我相信我們現在正在改變一個新的年齡 , 而這個年齡的歷史 , 《紐約時報》的時代 , 數位革命了新時代 。\\n\",\n      \"2023-11-15 18:20:15 | INFO | hw5.seq2seq | example reference: 但我相信現在我們正在進入一個新的時代 , 而且最近這個時代被紐約時報稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-15 18:20:15 | INFO | hw5.seq2seq | validation loss:\\t4.5939\\n\",\n      \"2023-11-15 18:20:15 | INFO | hw5.seq2seq | BLEU = 10.33 32.9/14.0/6.9/3.6 (BP = 1.000 ratio = 1.011 hyp_len = 111643 ref_len = 110430)\\n\",\n      \"2023-11-15 18:20:15 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint5.pt\\n\",\n      \"2023-11-15 18:20:15 | INFO | hw5.seq2seq | end of epoch 5\\n\",\n      \"2023-11-15 18:20:15 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:20:15 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 6:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:21:29 | INFO | hw5.seq2seq | training loss: 4.6943\\n\",\n      \"2023-11-15 18:21:29 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:21:29 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:21:38 | INFO | hw5.seq2seq | example source: as we have hot blood running through our veins and arteries , so , too , the earth has hot water running through its cracks and faults .\\n\",\n      \"2023-11-15 18:21:38 | INFO | hw5.seq2seq | example hypothesis: 隨著我們的海豚和客戶來說 , 地球有熱水流行 , 所以 , 地球的水流動在我們的海域中 , 來到我們的海豚和客戶 。\\n\",\n      \"2023-11-15 18:21:38 | INFO | hw5.seq2seq | example reference: 就如我們身體𥚃有熱騰騰的血液經過靜脈和動脈 , 同樣地 , 地球也有熱流穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-15 18:21:38 | INFO | hw5.seq2seq | validation loss:\\t4.3978\\n\",\n      \"2023-11-15 18:21:38 | INFO | hw5.seq2seq | BLEU = 12.22 38.3/17.6/8.9/4.8 (BP = 0.936 ratio = 0.938 hyp_len = 103587 ref_len = 110430)\\n\",\n      \"2023-11-15 18:21:38 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint6.pt\\n\",\n      \"2023-11-15 18:21:38 | INFO | hw5.seq2seq | end of epoch 6\\n\",\n      \"2023-11-15 18:21:38 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:21:38 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 7:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:22:52 | INFO | hw5.seq2seq | training loss: 4.5340\\n\",\n      \"2023-11-15 18:22:52 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:22:52 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:23:01 | INFO | hw5.seq2seq | example source: entirely new requirement .\\n\",\n      \"2023-11-15 18:23:01 | INFO | hw5.seq2seq | example hypothesis: 全新的需求 。\\n\",\n      \"2023-11-15 18:23:01 | INFO | hw5.seq2seq | example reference: 這是全新的要求 。\\n\",\n      \"2023-11-15 18:23:01 | INFO | hw5.seq2seq | validation loss:\\t4.3023\\n\",\n      \"2023-11-15 18:23:01 | INFO | hw5.seq2seq | BLEU = 12.82 43.1/20.6/10.8/6.0 (BP = 0.828 ratio = 0.842 hyp_len = 92933 ref_len = 110430)\\n\",\n      \"2023-11-15 18:23:01 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint7.pt\\n\",\n      \"2023-11-15 18:23:01 | INFO | hw5.seq2seq | end of epoch 7\\n\",\n      \"2023-11-15 18:23:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:23:01 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 8:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:24:14 | INFO | hw5.seq2seq | training loss: 4.4320\\n\",\n      \"2023-11-15 18:24:14 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:24:14 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:24:23 | INFO | hw5.seq2seq | example source: by 1960 we had telephone bills , bank statements were being produced by computers .\\n\",\n      \"2023-11-15 18:24:23 | INFO | hw5.seq2seq | example hypothesis: 1960年 , 銀行的銀行 , 銀行 , 銀行 , 銀行 , 銀行 , 銀行 , 銀行 , 銀行 。\\n\",\n      \"2023-11-15 18:24:23 | INFO | hw5.seq2seq | example reference: 到了1960年 , 我們的電話和銀行帳單都交由電腦處理\\n\",\n      \"2023-11-15 18:24:23 | INFO | hw5.seq2seq | validation loss:\\t4.1894\\n\",\n      \"2023-11-15 18:24:23 | INFO | hw5.seq2seq | BLEU = 14.35 42.9/20.8/11.1/6.3 (BP = 0.909 ratio = 0.913 hyp_len = 100858 ref_len = 110430)\\n\",\n      \"2023-11-15 18:24:23 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint8.pt\\n\",\n      \"2023-11-15 18:24:23 | INFO | hw5.seq2seq | end of epoch 8\\n\",\n      \"2023-11-15 18:24:23 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:24:23 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 9:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:25:37 | INFO | hw5.seq2seq | training loss: 4.3585\\n\",\n      \"2023-11-15 18:25:37 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:25:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:25:46 | INFO | hw5.seq2seq | example source: they started making their own video games .\\n\",\n      \"2023-11-15 18:25:46 | INFO | hw5.seq2seq | example hypothesis: 他們開始製作自己的影片遊戲 。\\n\",\n      \"2023-11-15 18:25:46 | INFO | hw5.seq2seq | example reference: 他們開始製造自己的電玩遊戲 。\\n\",\n      \"2023-11-15 18:25:46 | INFO | hw5.seq2seq | validation loss:\\t4.1391\\n\",\n      \"2023-11-15 18:25:46 | INFO | hw5.seq2seq | BLEU = 15.06 43.1/21.1/11.3/6.3 (BP = 0.944 ratio = 0.946 hyp_len = 104423 ref_len = 110430)\\n\",\n      \"2023-11-15 18:25:46 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint9.pt\\n\",\n      \"2023-11-15 18:25:46 | INFO | hw5.seq2seq | end of epoch 9\\n\",\n      \"2023-11-15 18:25:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:25:46 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 10:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:27:01 | INFO | hw5.seq2seq | training loss: 4.2966\\n\",\n      \"2023-11-15 18:27:01 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:27:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:27:11 | INFO | hw5.seq2seq | example source: a perfect example of this is spanish contemporary artist fernando vicente .\\n\",\n      \"2023-11-15 18:27:11 | INFO | hw5.seq2seq | example hypothesis: 一個完美的例子是西班牙藝術家甘迺迪 。\\n\",\n      \"2023-11-15 18:27:11 | INFO | hw5.seq2seq | example reference: 一個最有代表性的例子是西班牙現代藝術家費南多·維森特 。\\n\",\n      \"2023-11-15 18:27:11 | INFO | hw5.seq2seq | validation loss:\\t4.0866\\n\",\n      \"2023-11-15 18:27:11 | INFO | hw5.seq2seq | BLEU = 15.55 42.8/20.9/11.3/6.3 (BP = 0.978 ratio = 0.978 hyp_len = 107978 ref_len = 110430)\\n\",\n      \"2023-11-15 18:27:11 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint10.pt\\n\",\n      \"2023-11-15 18:27:11 | INFO | hw5.seq2seq | end of epoch 10\\n\",\n      \"2023-11-15 18:27:11 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:27:11 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 11:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:28:26 | INFO | hw5.seq2seq | training loss: 4.2502\\n\",\n      \"2023-11-15 18:28:26 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:28:26 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:28:36 | INFO | hw5.seq2seq | example source: right . as you can see , bart simpson is having a little argument .\\n\",\n      \"2023-11-15 18:28:36 | INFO | hw5.seq2seq | example hypothesis: 如你所見 , 巴特·史蒂芬森的辯論是有一些辯論 。\\n\",\n      \"2023-11-15 18:28:36 | INFO | hw5.seq2seq | example reference: 好 , 如你所見bartsimpson正和它老爸爭執\\n\",\n      \"2023-11-15 18:28:36 | INFO | hw5.seq2seq | validation loss:\\t4.0442\\n\",\n      \"2023-11-15 18:28:36 | INFO | hw5.seq2seq | BLEU = 15.36 41.0/20.2/10.9/6.2 (BP = 1.000 ratio = 1.051 hyp_len = 116094 ref_len = 110430)\\n\",\n      \"2023-11-15 18:28:36 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint11.pt\\n\",\n      \"2023-11-15 18:28:36 | INFO | hw5.seq2seq | end of epoch 11\\n\",\n      \"2023-11-15 18:28:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:28:36 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 12:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:29:50 | INFO | hw5.seq2seq | training loss: 4.2093\\n\",\n      \"2023-11-15 18:29:50 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:29:50 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:29:59 | INFO | hw5.seq2seq | example source: and if we look to the future , it's an unsustainable diet .\\n\",\n      \"2023-11-15 18:29:59 | INFO | hw5.seq2seq | example hypothesis: 如果我們看看未來 , 它是永續的飲食 。\\n\",\n      \"2023-11-15 18:29:59 | INFO | hw5.seq2seq | example reference: 如果我們想一想未來這絕不是長久之計\\n\",\n      \"2023-11-15 18:29:59 | INFO | hw5.seq2seq | validation loss:\\t4.0163\\n\",\n      \"2023-11-15 18:29:59 | INFO | hw5.seq2seq | BLEU = 16.40 45.4/22.8/12.4/7.1 (BP = 0.945 ratio = 0.946 hyp_len = 104481 ref_len = 110430)\\n\",\n      \"2023-11-15 18:29:59 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint12.pt\\n\",\n      \"2023-11-15 18:29:59 | INFO | hw5.seq2seq | end of epoch 12\\n\",\n      \"2023-11-15 18:29:59 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:29:59 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 13:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:31:13 | INFO | hw5.seq2seq | training loss: 4.1805\\n\",\n      \"2023-11-15 18:31:13 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:31:13 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e6c933070a37444f873edd7698af914c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:31:22 | INFO | hw5.seq2seq | example source: when you govern through fear and you govern through cruelty , it just doesn't work .\\n\",\n      \"2023-11-15 18:31:22 | INFO | hw5.seq2seq | example hypothesis: 當你從恐懼中走過來 , 只是沒有工作 。\\n\",\n      \"2023-11-15 18:31:22 | INFO | hw5.seq2seq | example reference: 透過恐懼 , 透過殘忍來治理國家 , 這是行不通的 。\\n\",\n      \"2023-11-15 18:31:22 | INFO | hw5.seq2seq | validation loss:\\t3.9980\\n\",\n      \"2023-11-15 18:31:22 | INFO | hw5.seq2seq | BLEU = 16.40 45.7/22.9/12.5/7.2 (BP = 0.938 ratio = 0.940 hyp_len = 103799 ref_len = 110430)\\n\",\n      \"2023-11-15 18:31:22 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint13.pt\\n\",\n      \"2023-11-15 18:31:22 | INFO | hw5.seq2seq | end of epoch 13\\n\",\n      \"2023-11-15 18:31:22 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:31:22 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fbee695b668e4f1d99070dfd7bfdfb21\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 14:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:32:35 | INFO | hw5.seq2seq | training loss: 4.1507\\n\",\n      \"2023-11-15 18:32:35 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:32:35 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"4f19f8750cf24f8d8c53aea2d0a1c53e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:32:44 | INFO | hw5.seq2seq | example source: this project breaks ground in just two months .\\n\",\n      \"2023-11-15 18:32:44 | INFO | hw5.seq2seq | example hypothesis: 這個計畫打破了兩個月 。\\n\",\n      \"2023-11-15 18:32:44 | INFO | hw5.seq2seq | example reference: 這個計畫再兩個月就要開工了 。\\n\",\n      \"2023-11-15 18:32:44 | INFO | hw5.seq2seq | validation loss:\\t3.9808\\n\",\n      \"2023-11-15 18:32:44 | INFO | hw5.seq2seq | BLEU = 16.61 46.6/23.6/12.9/7.4 (BP = 0.924 ratio = 0.927 hyp_len = 102377 ref_len = 110430)\\n\",\n      \"2023-11-15 18:32:44 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint14.pt\\n\",\n      \"2023-11-15 18:32:44 | INFO | hw5.seq2seq | end of epoch 14\\n\",\n      \"2023-11-15 18:32:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:32:44 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3efb393550914158a461ec1e15cfb068\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 15:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:33:58 | INFO | hw5.seq2seq | training loss: 4.1270\\n\",\n      \"2023-11-15 18:33:58 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:33:58 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"06f023a947ee4613b33b6f7c3691dbae\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:34:07 | INFO | hw5.seq2seq | example source: and these preservatives had been found in breast cancer tumors .\\n\",\n      \"2023-11-15 18:34:07 | INFO | hw5.seq2seq | example hypothesis: 這些保守派已經發現了乳癌腫瘤 。\\n\",\n      \"2023-11-15 18:34:07 | INFO | hw5.seq2seq | example reference: 而乳癌腫瘤中也發現了這些防腐劑 。\\n\",\n      \"2023-11-15 18:34:07 | INFO | hw5.seq2seq | validation loss:\\t3.9614\\n\",\n      \"2023-11-15 18:34:07 | INFO | hw5.seq2seq | BLEU = 16.97 46.8/23.9/13.1/7.6 (BP = 0.931 ratio = 0.933 hyp_len = 103073 ref_len = 110430)\\n\",\n      \"2023-11-15 18:34:07 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint15.pt\\n\",\n      \"2023-11-15 18:34:07 | INFO | hw5.seq2seq | end of epoch 15\\n\",\n      \"2023-11-15 18:34:07 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:34:07 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3f429e90a21e4f35995ace9a44f3acaa\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 16:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:35:21 | INFO | hw5.seq2seq | training loss: 4.1043\\n\",\n      \"2023-11-15 18:35:21 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:35:21 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0833c667592c4a3ab0c65230ba7fcb42\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:35:30 | INFO | hw5.seq2seq | example source: history is strewn with the cases when they've all got it wrong .\\n\",\n      \"2023-11-15 18:35:30 | INFO | hw5.seq2seq | example hypothesis: 歷史是從這些情況下降低的 , 當他們有了錯誤的情況時 , 他們都錯了 。\\n\",\n      \"2023-11-15 18:35:30 | INFO | hw5.seq2seq | example reference: 歷史上到處都有我們全都錯了的實例\\n\",\n      \"2023-11-15 18:35:30 | INFO | hw5.seq2seq | validation loss:\\t3.9372\\n\",\n      \"2023-11-15 18:35:30 | INFO | hw5.seq2seq | BLEU = 17.27 44.6/22.5/12.4/7.2 (BP = 1.000 ratio = 1.000 hyp_len = 110457 ref_len = 110430)\\n\",\n      \"2023-11-15 18:35:30 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint16.pt\\n\",\n      \"2023-11-15 18:35:30 | INFO | hw5.seq2seq | end of epoch 16\\n\",\n      \"2023-11-15 18:35:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:35:30 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"07a3890a8f6e4fbdacf2b15fbf313355\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 17:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:36:44 | INFO | hw5.seq2seq | training loss: 4.0858\\n\",\n      \"2023-11-15 18:36:44 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:36:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8753e837edd34cd2b49afa517668e80b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:36:53 | INFO | hw5.seq2seq | example source: please raise your hand if something applies to you .\\n\",\n      \"2023-11-15 18:36:53 | INFO | hw5.seq2seq | example hypothesis: 請舉起你的手 , 請舉舉你的手 。\\n\",\n      \"2023-11-15 18:36:53 | INFO | hw5.seq2seq | example reference: 如果這些事曾發生在你身上請舉手 。\\n\",\n      \"2023-11-15 18:36:53 | INFO | hw5.seq2seq | validation loss:\\t3.9238\\n\",\n      \"2023-11-15 18:36:53 | INFO | hw5.seq2seq | BLEU = 17.58 45.0/22.9/12.6/7.3 (BP = 1.000 ratio = 1.008 hyp_len = 111361 ref_len = 110430)\\n\",\n      \"2023-11-15 18:36:53 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint17.pt\\n\",\n      \"2023-11-15 18:36:53 | INFO | hw5.seq2seq | end of epoch 17\\n\",\n      \"2023-11-15 18:36:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:36:53 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"429e6b0c26f445178cc5dd0835558058\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 18:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:38:07 | INFO | hw5.seq2seq | training loss: 4.0693\\n\",\n      \"2023-11-15 18:38:07 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:38:07 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0321aa84d03242ceb585d2595c384ace\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:38:16 | INFO | hw5.seq2seq | example source: and the fact is , millions is a gross estimate , because we don't really know how many kids die each year of this .\\n\",\n      \"2023-11-15 18:38:16 | INFO | hw5.seq2seq | example hypothesis: 事實上 , 數百萬的悲劇是 , 因為我們不知道每年有多少孩子死亡 。\\n\",\n      \"2023-11-15 18:38:16 | INFO | hw5.seq2seq | example reference: 而且事實是 , 數百萬只是一個粗略的估計 , 因為我們真的不知道每年究竟有多少孩子死於這些疾病 。\\n\",\n      \"2023-11-15 18:38:16 | INFO | hw5.seq2seq | validation loss:\\t3.9136\\n\",\n      \"2023-11-15 18:38:16 | INFO | hw5.seq2seq | BLEU = 17.74 45.3/23.1/12.7/7.4 (BP = 1.000 ratio = 1.004 hyp_len = 110826 ref_len = 110430)\\n\",\n      \"2023-11-15 18:38:16 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint18.pt\\n\",\n      \"2023-11-15 18:38:17 | INFO | hw5.seq2seq | end of epoch 18\\n\",\n      \"2023-11-15 18:38:17 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:38:17 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"da64e3347e2e4e8aacae3520eecd1860\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 19:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:39:30 | INFO | hw5.seq2seq | training loss: 4.0533\\n\",\n      \"2023-11-15 18:39:30 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:39:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0b0d38ae4d5a475ab59842ec9290608c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:39:39 | INFO | hw5.seq2seq | example source: and he didn’t know it at the time , but over the next five decades , he'd draw on these dueling identities to forge a whole new way to think about pain .\\n\",\n      \"2023-11-15 18:39:39 | INFO | hw5.seq2seq | example hypothesis: 當時他還沒知道 , 但在接下來的五十年 , 他會畫出這張圖片 , 去思考痛苦 。\\n\",\n      \"2023-11-15 18:39:39 | INFO | hw5.seq2seq | example reference: 在那時他並不知道但在接下來的50年他將會利用這兩個相對決的生命經驗去探索關於疼痛的新思路\\n\",\n      \"2023-11-15 18:39:39 | INFO | hw5.seq2seq | validation loss:\\t3.9054\\n\",\n      \"2023-11-15 18:39:39 | INFO | hw5.seq2seq | BLEU = 17.98 46.0/23.6/13.0/7.6 (BP = 0.993 ratio = 0.993 hyp_len = 109710 ref_len = 110430)\\n\",\n      \"2023-11-15 18:39:39 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint19.pt\\n\",\n      \"2023-11-15 18:39:39 | INFO | hw5.seq2seq | end of epoch 19\\n\",\n      \"2023-11-15 18:39:39 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:39:39 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"18ec6122deb9472292c50d91f1c1a23d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 20:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:40:53 | INFO | hw5.seq2seq | training loss: 4.0388\\n\",\n      \"2023-11-15 18:40:53 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:40:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"015f0a8afd8d4005ac194f4be575a281\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:41:02 | INFO | hw5.seq2seq | example source: and i have been fortunate enough to find things like the first eggs in the western hemisphere and the first baby dinosaurs in nests , the first dinosaur embryos and massive accumulations of bones .\\n\",\n      \"2023-11-15 18:41:02 | INFO | hw5.seq2seq | example hypothesis: 我很幸運能找到像第一個嬰兒恐龍胚胎和大大的蛋 , 在西半球中 , 第一個嬰兒恐龍胚胎和大大的蛋 。\\n\",\n      \"2023-11-15 18:41:02 | INFO | hw5.seq2seq | example reference: 和我已經夠幸運能找到在西半球裡的第一只蛋和第一只恐龍寶寶在巢裡第一個恐龍胚胎和大量積累的骨頭\\n\",\n      \"2023-11-15 18:41:02 | INFO | hw5.seq2seq | validation loss:\\t3.9010\\n\",\n      \"2023-11-15 18:41:02 | INFO | hw5.seq2seq | BLEU = 17.78 47.0/24.0/13.2/7.7 (BP = 0.967 ratio = 0.967 hyp_len = 106821 ref_len = 110430)\\n\",\n      \"2023-11-15 18:41:02 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint20.pt\\n\",\n      \"2023-11-15 18:41:02 | INFO | hw5.seq2seq | end of epoch 20\\n\",\n      \"2023-11-15 18:41:02 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:41:02 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e81f873f61d4474996cc4c7f72e8b42d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 21:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:42:15 | INFO | hw5.seq2seq | training loss: 4.0245\\n\",\n      \"2023-11-15 18:42:15 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:42:15 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9a9ddf3a04c643bca968acac85f67f92\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:42:24 | INFO | hw5.seq2seq | example source: we've had the biggest transformation of any ancient subject that i could ever imagine with computers .\\n\",\n      \"2023-11-15 18:42:24 | INFO | hw5.seq2seq | example hypothesis: 我們有最大的轉變 , 可能我能想像到電腦 , 任何古代主題都可以想像 。\\n\",\n      \"2023-11-15 18:42:25 | INFO | hw5.seq2seq | example reference: 我們經歷了電腦這個最大的變革比任何古往的科目都要巨大\\n\",\n      \"2023-11-15 18:42:25 | INFO | hw5.seq2seq | validation loss:\\t3.8818\\n\",\n      \"2023-11-15 18:42:25 | INFO | hw5.seq2seq | BLEU = 18.18 46.3/23.6/13.1/7.6 (BP = 1.000 ratio = 1.006 hyp_len = 111137 ref_len = 110430)\\n\",\n      \"2023-11-15 18:42:25 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint21.pt\\n\",\n      \"2023-11-15 18:42:25 | INFO | hw5.seq2seq | end of epoch 21\\n\",\n      \"2023-11-15 18:42:25 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:42:25 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"93805ddce08d4648a3a8de6640d4c1db\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 22:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:43:38 | INFO | hw5.seq2seq | training loss: 4.0140\\n\",\n      \"2023-11-15 18:43:38 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:43:38 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"43a2491befb24491a573dcf6e6a4ac8e\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:43:47 | INFO | hw5.seq2seq | example source: there is another visual phenomenon that looks similar to floaters but is in fact unrelated .\\n\",\n      \"2023-11-15 18:43:47 | INFO | hw5.seq2seq | example hypothesis: 這裡有另一個視覺現象 , 看起來相似的視覺現象 , 但事實不相關 。\\n\",\n      \"2023-11-15 18:43:47 | INFO | hw5.seq2seq | example reference: 還有另一個視覺現象看起來像飛蚊症但其實毫無關連\\n\",\n      \"2023-11-15 18:43:47 | INFO | hw5.seq2seq | validation loss:\\t3.8889\\n\",\n      \"2023-11-15 18:43:47 | INFO | hw5.seq2seq | BLEU = 17.99 46.7/24.0/13.3/7.7 (BP = 0.977 ratio = 0.978 hyp_len = 107965 ref_len = 110430)\\n\",\n      \"2023-11-15 18:43:47 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint22.pt\\n\",\n      \"2023-11-15 18:43:47 | INFO | hw5.seq2seq | end of epoch 22\\n\",\n      \"2023-11-15 18:43:47 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:43:47 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c147c2f5bb224fad81d2a4955de6f6cf\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 23:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:45:00 | INFO | hw5.seq2seq | training loss: 4.0036\\n\",\n      \"2023-11-15 18:45:00 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:45:00 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"35fb63b8dab1472ca92ffc50e052520a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:45:10 | INFO | hw5.seq2seq | example source: ynh: yes , very much so .\\n\",\n      \"2023-11-15 18:45:10 | INFO | hw5.seq2seq | example hypothesis: 尤:是的 , 太多了 。\\n\",\n      \"2023-11-15 18:45:10 | INFO | hw5.seq2seq | example reference: 尤:是的 , 就是這樣 。\\n\",\n      \"2023-11-15 18:45:10 | INFO | hw5.seq2seq | validation loss:\\t3.8757\\n\",\n      \"2023-11-15 18:45:10 | INFO | hw5.seq2seq | BLEU = 17.90 45.6/23.2/12.9/7.5 (BP = 1.000 ratio = 1.024 hyp_len = 113044 ref_len = 110430)\\n\",\n      \"2023-11-15 18:45:10 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint23.pt\\n\",\n      \"2023-11-15 18:45:10 | INFO | hw5.seq2seq | end of epoch 23\\n\",\n      \"2023-11-15 18:45:10 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:45:10 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"3155a0334c8744c78ea618dc5ace9f1c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 24:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:46:23 | INFO | hw5.seq2seq | training loss: 3.9916\\n\",\n      \"2023-11-15 18:46:23 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:46:23 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7f6375eaeba24c58a541ee14abccca88\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:46:32 | INFO | hw5.seq2seq | example source: but the first thing you need to do is let go of the bad ideas you have about sex .\\n\",\n      \"2023-11-15 18:46:32 | INFO | hw5.seq2seq | example hypothesis: 但你要做的第一件事 , 就是讓壞點子在性別上 。\\n\",\n      \"2023-11-15 18:46:32 | INFO | hw5.seq2seq | example reference: 但你需要先做一件事 , 放掉你對於性愛的不好想法 。\\n\",\n      \"2023-11-15 18:46:32 | INFO | hw5.seq2seq | validation loss:\\t3.8649\\n\",\n      \"2023-11-15 18:46:32 | INFO | hw5.seq2seq | BLEU = 18.27 47.0/24.1/13.4/7.8 (BP = 0.985 ratio = 0.985 hyp_len = 108820 ref_len = 110430)\\n\",\n      \"2023-11-15 18:46:32 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint24.pt\\n\",\n      \"2023-11-15 18:46:32 | INFO | hw5.seq2seq | end of epoch 24\\n\",\n      \"2023-11-15 18:46:32 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:46:32 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"54d1f1a2c5e9438aa73a2a77cf2a93af\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 25:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:47:45 | INFO | hw5.seq2seq | training loss: 3.9839\\n\",\n      \"2023-11-15 18:47:45 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:47:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9885ea6e6aa5447596c78007ebf86c77\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:47:54 | INFO | hw5.seq2seq | example source: those subsidies stop companies from competing on equal terms .\\n\",\n      \"2023-11-15 18:47:54 | INFO | hw5.seq2seq | example hypothesis: 那些補助者停止公司從競爭對平等等等 。\\n\",\n      \"2023-11-15 18:47:54 | INFO | hw5.seq2seq | example reference: 那些補助 , 阻礙了公司之間的公平競爭 。\\n\",\n      \"2023-11-15 18:47:54 | INFO | hw5.seq2seq | validation loss:\\t3.8574\\n\",\n      \"2023-11-15 18:47:54 | INFO | hw5.seq2seq | BLEU = 18.25 47.2/24.3/13.5/7.9 (BP = 0.976 ratio = 0.976 hyp_len = 107765 ref_len = 110430)\\n\",\n      \"2023-11-15 18:47:54 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint25.pt\\n\",\n      \"2023-11-15 18:47:54 | INFO | hw5.seq2seq | end of epoch 25\\n\",\n      \"2023-11-15 18:47:54 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:47:54 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"42c19354febe41f6b2c7ae2515f19a29\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 26:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:49:07 | INFO | hw5.seq2seq | training loss: 3.9701\\n\",\n      \"2023-11-15 18:49:07 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:49:07 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fefcbedc5f814bd991c6fbaff431f9a6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:49:16 | INFO | hw5.seq2seq | example source: i believe so , but before we move on , what do we mean by democracy ?\\n\",\n      \"2023-11-15 18:49:16 | INFO | hw5.seq2seq | example hypothesis: 我相信 , 但在我們移動之前 , 我們要怎麼說 ?\\n\",\n      \"2023-11-15 18:49:16 | INFO | hw5.seq2seq | example reference: 我相信是對的 , 但在我們繼續談下去之前 , 我們所說的民主是什麼 ?\\n\",\n      \"2023-11-15 18:49:16 | INFO | hw5.seq2seq | validation loss:\\t3.8530\\n\",\n      \"2023-11-15 18:49:16 | INFO | hw5.seq2seq | BLEU = 18.28 47.5/24.5/13.6/7.9 (BP = 0.971 ratio = 0.971 hyp_len = 107269 ref_len = 110430)\\n\",\n      \"2023-11-15 18:49:16 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint26.pt\\n\",\n      \"2023-11-15 18:49:16 | INFO | hw5.seq2seq | end of epoch 26\\n\",\n      \"2023-11-15 18:49:16 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:49:16 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"78517f6e3a2e428ba0fbcef97b819c65\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 27:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:50:30 | INFO | hw5.seq2seq | training loss: 3.9627\\n\",\n      \"2023-11-15 18:50:30 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:50:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"33602e1660574dffa03b6c1537024a94\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:50:39 | INFO | hw5.seq2seq | example source: so , a team of berkeley researchers with 15 million dollars from the gates foundation is engineering , designing a radical new way to make the key ingredient , called artemisinin , and they're going to make that drug 10 times cheaper .\\n\",\n      \"2023-11-15 18:50:39 | INFO | hw5.seq2seq | example hypothesis: 因此 , 一位團隊成員 , 在gates基金會的團隊中 , 設計了一個新的方法 , 創造出一種新的方法 , 創造出一種新的方法 , 來製造出一種更便宜的新方法 , 叫做 「 糖尿病 」 , 大約有15百萬美元 。\\n\",\n      \"2023-11-15 18:50:39 | INFO | hw5.seq2seq | example reference: 柏克萊的團隊得到gatesfoundation的1千5百萬的經費 , 以研發設計一顛覆式的新方法來製造一個叫 \\\" 青蒿素 \\\" 的關鍵成分希望能製造出10倍便宜的藥物\\n\",\n      \"2023-11-15 18:50:39 | INFO | hw5.seq2seq | validation loss:\\t3.8493\\n\",\n      \"2023-11-15 18:50:39 | INFO | hw5.seq2seq | BLEU = 18.45 47.2/24.3/13.5/7.9 (BP = 0.988 ratio = 0.988 hyp_len = 109148 ref_len = 110430)\\n\",\n      \"2023-11-15 18:50:39 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint27.pt\\n\",\n      \"2023-11-15 18:50:39 | INFO | hw5.seq2seq | end of epoch 27\\n\",\n      \"2023-11-15 18:50:39 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:50:39 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"56333525bb80466c98b60f8e310a9f97\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 28:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:51:52 | INFO | hw5.seq2seq | training loss: 3.9559\\n\",\n      \"2023-11-15 18:51:52 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:51:52 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"184ff9886b0c43c5b638b1fc93008e5f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:52:01 | INFO | hw5.seq2seq | example source: even another black hole won’t destroy it– the two will simply merge into a larger black hole , releasing a bit of energy as gravitational waves in the process .\\n\",\n      \"2023-11-15 18:52:01 | INFO | hw5.seq2seq | example hypothesis: 即使另一個黑洞 , 不會摧毀它 , 兩者會將能量轉換成更大的黑洞 , 將能量轉換為重力波 。\\n\",\n      \"2023-11-15 18:52:01 | INFO | hw5.seq2seq | example reference: 就連另一個黑洞也無法摧毀它 , 兩個黑洞只會融合成一個更大的黑洞 , 在過程中以重力波的形式釋放出一點能量 。\\n\",\n      \"2023-11-15 18:52:01 | INFO | hw5.seq2seq | validation loss:\\t3.8453\\n\",\n      \"2023-11-15 18:52:01 | INFO | hw5.seq2seq | BLEU = 18.53 47.1/24.2/13.4/7.9 (BP = 0.996 ratio = 0.996 hyp_len = 109952 ref_len = 110430)\\n\",\n      \"2023-11-15 18:52:01 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint28.pt\\n\",\n      \"2023-11-15 18:52:01 | INFO | hw5.seq2seq | end of epoch 28\\n\",\n      \"2023-11-15 18:52:01 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:52:01 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"79d0c8b48f9d4d97b8770f2f6b3889af\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 29:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:53:14 | INFO | hw5.seq2seq | training loss: 3.9466\\n\",\n      \"2023-11-15 18:53:14 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:53:14 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"50c06c3d5ad44f96abfc2bca5f5bb499\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:53:23 | INFO | hw5.seq2seq | example source: but the question is: can we own our duality ?\\n\",\n      \"2023-11-15 18:53:23 | INFO | hw5.seq2seq | example hypothesis: 但問題是:我們是否能擁有我們的責任 ?\\n\",\n      \"2023-11-15 18:53:23 | INFO | hw5.seq2seq | example reference: 但問題是:我們能擁有屬於我們的二元性嗎 ?\\n\",\n      \"2023-11-15 18:53:23 | INFO | hw5.seq2seq | validation loss:\\t3.8393\\n\",\n      \"2023-11-15 18:53:23 | INFO | hw5.seq2seq | BLEU = 18.70 47.4/24.5/13.6/7.9 (BP = 0.993 ratio = 0.993 hyp_len = 109710 ref_len = 110430)\\n\",\n      \"2023-11-15 18:53:23 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint29.pt\\n\",\n      \"2023-11-15 18:53:23 | INFO | hw5.seq2seq | end of epoch 29\\n\",\n      \"2023-11-15 18:53:23 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:53:23 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"561981d2bba34d5c89782228a7231f09\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 30:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:54:36 | INFO | hw5.seq2seq | training loss: 3.9400\\n\",\n      \"2023-11-15 18:54:36 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:54:36 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"5ac3baaf64214b46bfeeaba54cf1df25\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:54:46 | INFO | hw5.seq2seq | example source: be serious , it says .\\n\",\n      \"2023-11-15 18:54:46 | INFO | hw5.seq2seq | example hypothesis: 很嚴肅 , 說了 。\\n\",\n      \"2023-11-15 18:54:46 | INFO | hw5.seq2seq | example reference: 嚴肅起來 , 信裡寫道\\n\",\n      \"2023-11-15 18:54:46 | INFO | hw5.seq2seq | validation loss:\\t3.8368\\n\",\n      \"2023-11-15 18:54:46 | INFO | hw5.seq2seq | BLEU = 17.98 45.7/23.3/12.9/7.6 (BP = 1.000 ratio = 1.044 hyp_len = 115328 ref_len = 110430)\\n\",\n      \"2023-11-15 18:54:46 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint30.pt\\n\",\n      \"2023-11-15 18:54:46 | INFO | hw5.seq2seq | end of epoch 30\\n\",\n      \"2023-11-15 18:54:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # 训练一个 epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Namespace(inputs=['./checkpoints/rnn'], output='./checkpoints/rnn/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/rnn/checkpoint30.pt', './checkpoints/rnn/checkpoint29.pt', './checkpoints/rnn/checkpoint28.pt', './checkpoints/rnn/checkpoint27.pt', './checkpoints/rnn/checkpoint26.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/rnn/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# 对几个 checkpoints 进行平均可以产生类似于 ensemble 的效果\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## 确定用于生成 submission 的模型权重\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:54:48 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/rnn/avg_last_5_checkpoint.pt: step=unknown loss=3.8368029594421387 bleu=17.978629598087807\\n\",\n      \"2023-11-15 18:54:48 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 18:54:48 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:54:57 | INFO | hw5.seq2seq | example source: and there is also a frontier in research physics here , it's just that nobody talks about it .\\n\",\n      \"2023-11-15 18:54:57 | INFO | hw5.seq2seq | example hypothesis: 在研究物理學的領域中 , 這裡有一件更重要的事 , 沒人會談論它 。\\n\",\n      \"2023-11-15 18:54:57 | INFO | hw5.seq2seq | example reference: 這裡也有物理研究中尚未完全開拓的疆界 , 只是沒有人在談論它 。\\n\",\n      \"2023-11-15 18:54:57 | INFO | hw5.seq2seq | validation loss:\\t3.8031\\n\",\n      \"2023-11-15 18:54:57 | INFO | hw5.seq2seq | BLEU = 18.90 47.6/24.6/13.8/8.1 (BP = 0.994 ratio = 0.994 hyp_len = 109812 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : 最新的 epoch\\n\",\n    \"# checkpoint_best.pt : 最高的验证 BLEU\\n\",\n    \"# avg_last_5_checkpoint.pt: 最近 5 次 epoch 的平均值\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## 生成预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # 根据预处理前的顺序进行排序\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 18:54:57 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.en\\n\",\n      \"2023-11-15 18:54:57 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.zh\\n\",\n      \"2023-11-15 18:54:57 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 test en-zh 4000 examples\\n\",\n      \"2023-11-15 18:54:57 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 18:54:57 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-15 18:54:57 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-15 18:54:57 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"49152ec8f67c4b5eacbfa57539da11bc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"prediction:   0%|          | 0/18 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[49], line 1\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0m \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## 训练一个 backward translation 模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. 将 **config** 中的 source_lang 和 target_lang 进行切换\\n\",\n    \"2. 更改 **config** 中的 savedir(例如: \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## 用后向模型生成人造数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### 下载单语言数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: 清洗语料\\n\",\n    \"\\n\",\n    \"1. 移除太长或者太短的句子\\n\",\n    \"2. 统一标点符号\\n\",\n    \"\\n\",\n    \"提示: 你可以使用之前定义的 clean_s() 来执行此操作\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: 子词单位\\n\",\n    \"\\n\",\n    \"使用后向模型的 spm 模型将数据标记为子词单位\\n\",\n    \"\\n\",\n    \"提示: spm 模型位于 DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### 二值化\\n\",\n    \"\\n\",\n    \"使用 fairseq 去二值化数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: 用后向模型生成人造数据\\n\",\n    \"\\n\",\n    \"将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"然后你可以使用 'generate_prediction(model, task, split=\\\"split_name\\\")' 来生成翻译的预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"# 例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: 在 split='mono' 上做预测来创建 prediction_file\\n\",\n    \"# generate_prediction( ... ,split=... ,outfile=... )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: 创建新的数据集\\n\",\n    \"\\n\",\n    \"1. 将预测数据和单语数据结合\\n\",\n    \"2. 使用原始的 spm 模型将数据 tokenize 为子词单位\\n\",\n    \"3. 使用 fairseq 将数据二值化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将 prediction_file (.en) 和 mono.zh (.zh) 结合为新的数据集\\n\",\n    \"#\\n\",\n    \"# 提示: 用 spm 模型 tokenize prediction_file\\n\",\n    \"# spm_model.encode(line, out_type=str)\\n\",\n    \"# 输出: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# 提示: 使用 fairseq 再次二值化这两个文件\\n\",\n    \"# binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"# src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"# tgt_dict_file = src_dict_file\\n\",\n    \"# monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"# if binpath.exists():\\n\",\n    \"#     print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"# else:\\n\",\n    \"#     !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"#         --source-lang 'zh'\\\\\\n\",\n    \"#         --target-lang 'en'\\\\\\n\",\n    \"#         --trainpref {monopref}\\\\\\n\",\n    \"#         --destdir {binpath}\\\\\\n\",\n    \"#         --srcdict {src_dict_file}\\\\\\n\",\n    \"#         --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"#         --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 根据上面准备的所有文件创建一个新的数据集\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"创建新数据集 \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. 修改 **config** 中的 datadir (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. 将 **config** 中的 source_lang 和 target_lang 进行切换 (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. 更改 **config** 中的 savedir (例如: \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/zh/HW05_Simple_zh_16.63.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Simple Baseline\\n\",\n    \"只是运行了 sample code，在这里你可以直接看到运行的结果。\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# 作业描述\\n\",\n    \"- 英译中(繁体)\\n\",\n    \"  - 输入: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - 输出: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - 训练一个 seq2seq 的简单的 RNN 模型来完成翻译\\n\",\n    \"    - 转变模型架构为 transformer，提升性能\\n\",\n    \"    - 使用 Back-translation 进一步提升性能\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Mon Nov 13 12:18:46 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   29C    P8    20W / 170W |   5155MiB / 12288MiB |     21%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1190      G   /usr/lib/xorg/Xorg                168MiB |\\n\",\n      \"|    0   N/A  N/A      1505      G   /usr/bin/gnome-shell               31MiB |\\n\",\n      \"|    0   N/A  N/A      1708      G   ...nlogin/bin/sunloginclient        9MiB |\\n\",\n      \"|    0   N/A  N/A     39568      G   ...2gtk-4.0/WebKitWebProcess       11MiB |\\n\",\n      \"|    0   N/A  N/A     53123      G   /usr/lib/firefox/firefox          181MiB |\\n\",\n      \"|    0   N/A  N/A     65640      C   ...conda3/envs/DL/bin/python     4748MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# 下载和导入需要的包\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:20:41 | INFO | fairseq.tasks.text_to_speech | Please install tensorboardX: pip install tensorboardX\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# 固定随机数种子\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# 数据集\\n\",\n    \"\\n\",\n    \"## 英-中 对应的语料\\n\",\n    \"* TED2020\\n\",\n    \"    - 原始: 400,726 (句子)   \\n\",\n    \"    - 处理后: 394,052 (句子)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## 测试集\\n\",\n    \"- 大小: 4,000 (句子)\\n\",\n    \"- **没有提供中文的翻译。(.zh)文件是伪翻译，其中每一行是'。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## 数据集下载\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"--2023-11-13 12:20:42--  https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\n\",\n      \"Connecting to 127.0.0.1:7890... connected.\\n\",\n      \"Proxy request sent, awaiting response... 302 Found\\n\",\n      \"Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/607707172/918e802f-f236-44b6-9cd2-eada3d25df84?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231113%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231113T042043Z&X-Amz-Expires=300&X-Amz-Signature=8e1a707f7c485ecca0f31f1ecac4ff7838dff5f1211afc51e6aa81bb1e6156c9&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=607707172&response-content-disposition=attachment%3B%20filename%3Dml2023.hw5.data.tgz&response-content-type=application%2Foctet-stream [following]\\n\",\n      \"--2023-11-13 12:20:43--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/607707172/918e802f-f236-44b6-9cd2-eada3d25df84?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231113%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231113T042043Z&X-Amz-Expires=300&X-Amz-Signature=8e1a707f7c485ecca0f31f1ecac4ff7838dff5f1211afc51e6aa81bb1e6156c9&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=607707172&response-content-disposition=attachment%3B%20filename%3Dml2023.hw5.data.tgz&response-content-type=application%2Foctet-stream\\n\",\n      \"Connecting to 127.0.0.1:7890... connected.\\n\",\n      \"Proxy request sent, awaiting response... 200 OK\\n\",\n      \"Length: 72366080 (69M) [application/octet-stream]\\n\",\n      \"Saving to: ‘/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/ted2020.tgz’\\n\",\n      \"\\n\",\n      \"/home/hoperj/DeepLe 100%[===================>]  69.01M  1.82MB/s    in 39s     \\n\",\n      \"\\n\",\n      \"2023-11-13 12:21:23 (1.77 MB/s) - ‘/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/ted2020.tgz’ saved [72366080/72366080]\\n\",\n      \"\\n\",\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"--2023-11-13 12:21:24--  https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\n\",\n      \"Connecting to 127.0.0.1:7890... connected.\\n\",\n      \"Proxy request sent, awaiting response... 302 Found\\n\",\n      \"Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/607707172/e9e4475e-e6e9-4e60-8aab-0f4684e27e44?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231113%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231113T042124Z&X-Amz-Expires=300&X-Amz-Signature=99d6367035857a24ac7540016ece6dd6b2632b1955de7ac808eb794d1dc894ab&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=607707172&response-content-disposition=attachment%3B%20filename%3Dml2023.hw5.test.tgz&response-content-type=application%2Foctet-stream [following]\\n\",\n      \"--2023-11-13 12:21:24--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/607707172/e9e4475e-e6e9-4e60-8aab-0f4684e27e44?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231113%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231113T042124Z&X-Amz-Expires=300&X-Amz-Signature=99d6367035857a24ac7540016ece6dd6b2632b1955de7ac808eb794d1dc894ab&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=607707172&response-content-disposition=attachment%3B%20filename%3Dml2023.hw5.test.tgz&response-content-type=application%2Foctet-stream\\n\",\n      \"Connecting to 127.0.0.1:7890... connected.\\n\",\n      \"Proxy request sent, awaiting response... 200 OK\\n\",\n      \"Length: 409600 (400K) [application/octet-stream]\\n\",\n      \"Saving to: ‘/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/test.tgz’\\n\",\n      \"\\n\",\n      \"/home/hoperj/DeepLe 100%[===================>] 400.00K   528KB/s    in 0.8s    \\n\",\n      \"\\n\",\n      \"2023-11-13 12:21:26 (528 KB/s) - ‘/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/test.tgz’ saved [409600/409600]\\n\",\n      \"\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## 语言\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## 预处理文件\\n\",\n    \"- strQ2B(): 将全角字符转变为半角字符\\n\",\n    \"- clean_s(): 清洗文本，将逗号/破折号/空格等字符删除\\n\",\n    \"- len_s(): 返回文本长度\\n\",\n    \"- clean_corpus: 使用上面的函数对指定的文本文件进行清洗\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## 划分训练/验证集\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000～4000 就够用了\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## 子词单位\\n\",\n    \"不在词表中的单词（OOV）是机器翻译面临的主要问题。这个问题可以通过使用子词（subword）作为基本单位来缓解\\n\",\n    \"- 我们将使用 [sentencepiece](#kudo-richardson-2018-sentencepiece) 包\\n\",\n    \"- 选择 unigram 或者 byte-pair encoding (BPE) 算法\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"sentencepiece_trainer.cc(77) LOG(INFO) Starts training with : \\n\",\n      \"trainer_spec {\\n\",\n      \"  input: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.clean.en\\n\",\n      \"  input: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.clean.en\\n\",\n      \"  input: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.clean.zh\\n\",\n      \"  input: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.clean.zh\\n\",\n      \"  input_format: \\n\",\n      \"  model_prefix: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/spm8000\\n\",\n      \"  model_type: UNIGRAM\\n\",\n      \"  vocab_size: 8000\\n\",\n      \"  self_test_sample_size: 0\\n\",\n      \"  character_coverage: 1\\n\",\n      \"  input_sentence_size: 1000000\\n\",\n      \"  shuffle_input_sentence: 1\\n\",\n      \"  seed_sentencepiece_size: 1000000\\n\",\n      \"  shrinking_factor: 0.75\\n\",\n      \"  max_sentence_length: 4192\\n\",\n      \"  num_threads: 16\\n\",\n      \"  num_sub_iterations: 2\\n\",\n      \"  max_sentencepiece_length: 16\\n\",\n      \"  split_by_unicode_script: 1\\n\",\n      \"  split_by_number: 1\\n\",\n      \"  split_by_whitespace: 1\\n\",\n      \"  split_digits: 0\\n\",\n      \"  treat_whitespace_as_suffix: 0\\n\",\n      \"  allow_whitespace_only_pieces: 0\\n\",\n      \"  required_chars: \\n\",\n      \"  byte_fallback: 0\\n\",\n      \"  vocabulary_output_piece_score: 1\\n\",\n      \"  train_extremely_large_corpus: 0\\n\",\n      \"  hard_vocab_limit: 1\\n\",\n      \"  use_all_vocab: 0\\n\",\n      \"  unk_id: 0\\n\",\n      \"  bos_id: 1\\n\",\n      \"  eos_id: 2\\n\",\n      \"  pad_id: -1\\n\",\n      \"  unk_piece: <unk>\\n\",\n      \"  bos_piece: <s>\\n\",\n      \"  eos_piece: </s>\\n\",\n      \"  pad_piece: <pad>\\n\",\n      \"  unk_surface:  ⁇ \\n\",\n      \"  enable_differential_privacy: 0\\n\",\n      \"  differential_privacy_noise_level: 0\\n\",\n      \"  differential_privacy_clipping_threshold: 0\\n\",\n      \"}\\n\",\n      \"normalizer_spec {\\n\",\n      \"  name: nmt_nfkc_cf\\n\",\n      \"  add_dummy_prefix: 1\\n\",\n      \"  remove_extra_whitespaces: 1\\n\",\n      \"  escape_whitespaces: 1\\n\",\n      \"  normalization_rule_tsv: \\n\",\n      \"}\\n\",\n      \"denormalizer_spec {}\\n\",\n      \"trainer_interface.cc(350) LOG(INFO) SentenceIterator is not specified. Using MultiFileSentenceIterator.\\n\",\n      \"trainer_interface.cc(181) LOG(INFO) Loading corpus: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.clean.en\\n\",\n      \"trainer_interface.cc(181) LOG(INFO) Loading corpus: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.clean.en\\n\",\n      \"trainer_interface.cc(181) LOG(INFO) Loading corpus: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.clean.zh\\n\",\n      \"trainer_interface.cc(181) LOG(INFO) Loading corpus: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.clean.zh\\n\",\n      \"trainer_interface.cc(406) LOG(INFO) Loaded all 788104 sentences\\n\",\n      \"trainer_interface.cc(422) LOG(INFO) Adding meta_piece: <unk>\\n\",\n      \"trainer_interface.cc(422) LOG(INFO) Adding meta_piece: <s>\\n\",\n      \"trainer_interface.cc(422) LOG(INFO) Adding meta_piece: </s>\\n\",\n      \"trainer_interface.cc(427) LOG(INFO) Normalizing sentences...\\n\",\n      \"trainer_interface.cc(536) LOG(INFO) all chars count=51443962\\n\",\n      \"trainer_interface.cc(547) LOG(INFO) Done: 100% characters are covered.\\n\",\n      \"trainer_interface.cc(557) LOG(INFO) Alphabet size=5987\\n\",\n      \"trainer_interface.cc(558) LOG(INFO) Final character coverage=1\\n\",\n      \"trainer_interface.cc(590) LOG(INFO) Done! preprocessed 788104 sentences.\\n\",\n      \"unigram_model_trainer.cc(146) LOG(INFO) Making suffix array...\\n\",\n      \"unigram_model_trainer.cc(150) LOG(INFO) Extracting frequent sub strings...\\n\",\n      \"unigram_model_trainer.cc(201) LOG(INFO) Initialized 1000000 seed sentencepieces\\n\",\n      \"trainer_interface.cc(596) LOG(INFO) Tokenizing input sentences with whitespace: 788104\\n\",\n      \"trainer_interface.cc(607) LOG(INFO) Done! 844374\\n\",\n      \"unigram_model_trainer.cc(491) LOG(INFO) Using 844374 sentences for EM training\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=576480 obj=13.8117 num_tokens=3909180 num_tokens/piece=6.78112\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=503627 obj=11.7042 num_tokens=3922540 num_tokens/piece=7.78858\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=376874 obj=11.6819 num_tokens=4017601 num_tokens/piece=10.6603\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=375625 obj=11.6563 num_tokens=4018927 num_tokens/piece=10.6993\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=281660 obj=11.7315 num_tokens=4169432 num_tokens/piece=14.8031\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=281582 obj=11.7059 num_tokens=4170004 num_tokens/piece=14.8092\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=211179 obj=11.8056 num_tokens=4342465 num_tokens/piece=20.563\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=211174 obj=11.7772 num_tokens=4342982 num_tokens/piece=20.5659\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=158379 obj=11.8934 num_tokens=4522465 num_tokens/piece=28.5547\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=158377 obj=11.8644 num_tokens=4522703 num_tokens/piece=28.5566\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=118782 obj=11.9983 num_tokens=4713496 num_tokens/piece=39.6819\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=118782 obj=11.9689 num_tokens=4713857 num_tokens/piece=39.6849\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=89086 obj=12.1227 num_tokens=4924973 num_tokens/piece=55.2834\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=89086 obj=12.0907 num_tokens=4925145 num_tokens/piece=55.2853\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=66814 obj=12.2688 num_tokens=5158833 num_tokens/piece=77.2119\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=66814 obj=12.2326 num_tokens=5158978 num_tokens/piece=77.214\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=50110 obj=12.4399 num_tokens=5415682 num_tokens/piece=108.076\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=50110 obj=12.3989 num_tokens=5415973 num_tokens/piece=108.082\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=37582 obj=12.6422 num_tokens=5705665 num_tokens/piece=151.819\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=37582 obj=12.5933 num_tokens=5705869 num_tokens/piece=151.825\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=28186 obj=12.8866 num_tokens=6032786 num_tokens/piece=214.035\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=28186 obj=12.8275 num_tokens=6032712 num_tokens/piece=214.032\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=21139 obj=13.192 num_tokens=6418740 num_tokens/piece=303.644\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=21139 obj=13.1188 num_tokens=6418722 num_tokens/piece=303.644\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=15854 obj=13.5938 num_tokens=6862673 num_tokens/piece=432.867\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=15854 obj=13.4992 num_tokens=6862589 num_tokens/piece=432.862\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=11890 obj=14.1524 num_tokens=7418874 num_tokens/piece=623.959\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=11890 obj=14.0214 num_tokens=7419710 num_tokens/piece=624.029\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=8917 obj=15.0586 num_tokens=8210830 num_tokens/piece=920.806\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=8917 obj=14.8401 num_tokens=8210707 num_tokens/piece=920.793\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=0 size=8800 obj=14.8908 num_tokens=8252365 num_tokens/piece=937.769\\n\",\n      \"unigram_model_trainer.cc(507) LOG(INFO) EM sub_iter=1 size=8800 obj=14.8794 num_tokens=8252375 num_tokens/piece=937.77\\n\",\n      \"trainer_interface.cc(685) LOG(INFO) Saving model: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/spm8000.model\\n\",\n      \"trainer_interface.cc(697) LOG(INFO) Saving vocabs: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/spm8000.vocab\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## 数据二值化（使用 fairseq）\\n\",\n    \"配对源语言和目标语言的文件。\\n\",\n    \"\\n\",\n    \"如果没有对应的文件，就生成伪配对来方便二值化。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:22:33 | INFO | fairseq.tasks.text_to_speech | Please install tensorboardX: pip install tensorboardX\\n\",\n      \"2023-11-13 12:22:33 | INFO | fairseq_cli.preprocess | Namespace(no_progress_bar=False, log_interval=100, log_format=None, log_file=None, aim_repo=None, aim_run_hash=None, tensorboard_logdir=None, wandb_project=None, azureml_logging=False, seed=1, cpu=False, tpu=False, bf16=False, memory_efficient_bf16=False, fp16=False, memory_efficient_fp16=False, fp16_no_flatten_grads=False, fp16_init_scale=128, fp16_scale_window=None, fp16_scale_tolerance=0.0, on_cpu_convert_precision=False, min_loss_scale=0.0001, threshold_loss_scale=None, amp=False, amp_batch_retries=2, amp_init_scale=128, amp_scale_window=None, user_dir=None, empty_cache_freq=0, all_gather_list_size=16384, model_parallel_size=1, quantization_config_path=None, profile=False, reset_logging=False, suppress_crashes=False, use_plasma_view=False, plasma_path='/tmp/plasma', criterion='cross_entropy', tokenizer=None, bpe=None, optimizer=None, lr_scheduler='fixed', scoring='bleu', task='translation', source_lang='en', target_lang='zh', trainpref='/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train', validpref='/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid', testpref='/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/test', align_suffix=None, destdir='DATA/data-bin/ted2020', thresholdtgt=0, thresholdsrc=0, tgtdict=None, srcdict=None, nwordstgt=-1, nwordssrc=-1, alignfile=None, dataset_impl='mmap', joined_dictionary=True, only_source=False, padding_factor=8, workers=2, dict_only=False)\\n\",\n      \"2023-11-13 12:22:44 | INFO | fairseq_cli.preprocess | [en] Dictionary: 7992 types\\n\",\n      \"2023-11-13 12:23:13 | INFO | fairseq_cli.preprocess | [en] /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.en: 390112 sents, 12211901 tokens, 0.0% replaced (by <unk>)\\n\",\n      \"2023-11-13 12:23:13 | INFO | fairseq_cli.preprocess | [en] Dictionary: 7992 types\\n\",\n      \"2023-11-13 12:23:13 | INFO | fairseq_cli.preprocess | [en] /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.en: 3940 sents, 121903 tokens, 0.0% replaced (by <unk>)\\n\",\n      \"2023-11-13 12:23:13 | INFO | fairseq_cli.preprocess | [en] Dictionary: 7992 types\\n\",\n      \"2023-11-13 12:23:14 | INFO | fairseq_cli.preprocess | [en] /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/test.en: 4000 sents, 126847 tokens, 0.0% replaced (by <unk>)\\n\",\n      \"2023-11-13 12:23:14 | INFO | fairseq_cli.preprocess | [zh] Dictionary: 7992 types\\n\",\n      \"2023-11-13 12:23:39 | INFO | fairseq_cli.preprocess | [zh] /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.zh: 390112 sents, 9538808 tokens, 0.0% replaced (by <unk>)\\n\",\n      \"2023-11-13 12:23:39 | INFO | fairseq_cli.preprocess | [zh] Dictionary: 7992 types\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq_cli.preprocess | [zh] /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.zh: 3940 sents, 95167 tokens, 0.0147% replaced (by <unk>)\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq_cli.preprocess | [zh] Dictionary: 7992 types\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq_cli.preprocess | [zh] /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/test.zh: 4000 sents, 8000 tokens, 0.0% replaced (by <unk>)\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq_cli.preprocess | Wrote preprocessed data to DATA/data-bin/ted2020\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# 实验配置\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/rnn\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # 设置取数据和处理数据时 cpu 的线程数\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size 按照 token 数量来计算。梯度累积可以增加有效的 batch size。\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # 学习率通过 Noam 调度器进行计算。你可以修改lr_factor来调整最大的学习率。\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # 梯度裁剪可以缓解梯度爆炸\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # 训练的最大轮数\\n\",\n    \"    max_epoch=15,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # 集束搜索中的 beam size\\n\",\n    \"    beam=5,\\n\",\n    \"    # 生成的序列的最大长度为 ax + b，其中 x 是源长度\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # 解码时，通过去除 sentencepiece 符号和 jieba 分词来后处理句子。\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # 检查点\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume 则根据 checkpoint name 进行恢复（文件保存在 config.savedir 下）\\n\",\n    \"\\n\",\n    \"    # 日志记录\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# 日志\\n\",\n    \"- logging 包用于记录普通的信息\\n\",\n    \"- wandb 记录训练过程中的损失/bleu等\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA 环境\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:23:40 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# 数据导入\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## 我们采用了 TranslationTask（来自 fairseq）\\n\",\n    \"* 用于加载上面创建的二值化数据\\n\",\n    \"* 实现数据迭代器（dataloader）\\n\",\n    \"* 内置的 task.source_dictionary 和 task.target_dictionary 也很有用\\n\",\n    \"* 实现集束搜索解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:23:40 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:23:40 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.en\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.zh\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 train en-zh 390112 examples\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.en\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.zh\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# 数据集迭代器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* 控制每个 batch 不超过 N 个 token，这样可以优化 GPU 内存效率\\n\",\n    \"* 在每个 epoch 都对训练集进行随机打乱\\n\",\n    \"* 忽略超过最大长度的句子\\n\",\n    \"* 将一个 batch 中的所有句子填充到相同的长度，这样可以利用 GPU 进行并行计算\\n\",\n    \"* 添加 eos 并移动一个 token\\n\",\n    \"    - teacher forcing 技术: 为了训练模型根据前缀预测下一个 token，我们将移动后的目标序列作为解码器的输入。\\n\",\n    \"    - 一般来说，在目标前面加上 bos 就可以了（如下图所示）\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - 但是在 fairseq 中，这是通过将 eos token 移动到开头来实现的。在实验上，这个操作拥有相同的效果。例如:\\n\",\n    \"    ```\\n\",\n    \"    # 目标输出（target）和解码器输入（prev_output_tokens）:\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:23:40 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-13 12:23:40 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-13 12:23:40 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # 如果设置为 False（cached=True），可以加快训练速度。\\n\",\n    \"        # 但是，如果设置为 False，那么在第一次调用这个方法之后，再改变 max_tokens就没有效果了。\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# 模型架构\\n\",\n    \"* 我们再次继承 fairseq 的编码器、解码器和模型，以便在测试阶段可以直接利用 fairseq 的集束搜索解码器。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# 编码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- 编码器（Encoder）是一个循环神经网络（RNN）或者 Transformer 中的编码器。下面的描述是针对 RNN 的。对于每一个输入的 token，编码器会生成一个输出向量和一个隐藏状态向量，并且将隐藏状态向量传递给下一步。换句话说，编码器顺序地读入输入序列，并且在每一个时间步输出一个单独的向量，然后在最后一个时间步输出最终的隐藏状态，或者称为内容向量（content vector）。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: 嵌入的维度，将 one-hot 向量压缩到固定的维度，实现降维的效果\\n\",\n    \"      - encoder_ffn_embed_dim: 隐藏状态和输出向量的维度\\n\",\n    \"      - encoder_layers: RNN 编码器的层数\\n\",\n    \"      - dropout 确定了一个神经元的激活值被设为 0 的概率，用于防止过拟合。通常这个参数在训练时使用，在测试时移除\\n\",\n    \"  - *dictionary*: fairseq 提供的字典。它用于获取填充索引，进而得到编码器的填充掩码（encoder padding mask）\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: 一个表示英语的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: RNN 在每个时间步的输出，可以由注意力机制（Attention）进一步处理\\n\",\n    \"    - *final_hiddens*: 每个时间步的隐藏状态，会被传递给解码器（decoder）进行解码\\n\",\n    \"    - *encoder_padding_mask*: 这个参数告诉解码器哪些位置要忽略\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # 获取 embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # 经过双向的 RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # 由于编码器是双向的，我们需要将两个方向的隐藏状态连接起来\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## 注意力\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- 当输入序列很长时，单独的“内容向量”就不能准确地表示整个序列，注意力机制可以为解码器提供更多信息。\\n\",\n    \"- 根据当前时间步的**解码器embeddings**，将**编码器输出**与**解码器 embeddings** 进行匹配，确定相关性，然后将编码器输出按相关性加权求和作为**解码器** RNN 的输入。\\n\",\n    \"- 常见的注意力实现使用神经网络/点积作为 **query**（解码器 embeddings）和 **key**（编码器输出）之间的相关性，然后用 **softmax** 得到一个分布，最后用该分布对 **value**（编码器输出）进行**加权求和**。\\n\",\n    \"\\n\",\n    \"- 参数:\\n\",\n    \"  - *input_embed_dim*: key 的维度，应该是解码器中用于 attend 其他向量的向量的维度\\n\",\n    \"  - *source_embed_dim*: query 的维度，应该是被 attend 的向量（编码器输出）的维度\\n\",\n    \"  - *output_embed_dim*: value 的维度，应该是 after attention 的向量的维度，符合下一层的期望,\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: key, 用于 attend 其他向量\\n\",\n    \"    - *encoder_outputs*:  query/value, 被 attend 的向量\\n\",\n    \"    - *encoder_padding_mask*: 这个告诉解码器应该忽略那些位置\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: attention 后的上下文向量\\n\",\n    \"    - *attention score*: attention 的分数\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # 将所有的输入的维度改为 batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # 投影到 encoder_outputs 的维度\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # 计算 attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # 取消与 padding 相对应的位置的 attention\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # 在与源序列对应的维度上进行 softmax\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) 加权求和\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# 解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* **解码器**的隐藏状态将由**编码器**的最终隐藏状态（the content vector）初始化\\n\",\n    \"* 同时，**解码器**会根据当前时间步的输入（前一时间步的输出）改变其隐藏状态，并生成一个输出\\n\",\n    \"* 注意力机制可以提高性能\\n\",\n    \"* seq2seq 的步骤是在解码器中实现的，这样以后 Seq2Seq 类可以接受 RNN 和 Transformer，而不需要进一步修改。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: 解码器嵌入的维度，类似于 encoder_embed_dim\\n\",\n    \"      - decoder_ffn_embed_dim: 解码器 RNN 隐藏状态的维度，类似于 encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: RNN 解码器的层数\\n\",\n    \"      - share_decoder_input_output_embed: 通常，解码器的投影矩阵会与解码器输入 embeddings 共享权重\\n\",\n    \"  - *dictionary*: fairseq 提供的字典\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"- 输入:\\n\",\n    \"    - *prev_output_tokens*: 表示右移目标的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: 编码器的输出\\n\",\n    \"    - *incremental_state*: 为了加速测试时的解码，我们会保存每个时间步的隐藏状态。详见forward()。\\n\",\n    \"- 输出:\\n\",\n    \"    - *outputs*: 解码器在每个时间步的输出的对数（softmax之前）\\n\",\n    \"    - *extra*: 未使用\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # 从编码器中提取输出\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # 如果保留了上一个时间步的信息，可以从那里继续，而不是从bos开始\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # 增量状态不存在，要么是训练时，要么是测试时的第一个时间步\\n\",\n    \"            # 为seq2seq做准备：将编码器的隐藏状态传递给解码器的隐藏状态\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # 经过单向的 RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 embedding size（如果隐藏状态与 embedding size 不同，并且 share_embedding 为True\\n\",\n    \"        # 就需要做一个额外的投影）\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, 则记录当前时间步的隐藏状态，在下一个时间步恢复\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(self, incremental_state, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- 由**编码器**和**解码器**组成\\n\",\n    \"- 接收输入并传递给**编码器**\\n\",\n    \"- 将**编码器**的输出传递给**解码器**\\n\",\n    \"- **解码器**会根据前一时间步的输出以及**编码器**的输出进行解码\\n\",\n    \"- 解码完成后，返回**解码器**的输出\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# 模型初始化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # 提示: transformer 架构\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # 提示: TODO: 转变为 TransformerEncoder & TransformerDecoder\\n\",\n    \"    encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    # encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # 序列到序列的模型\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # 初始化 seq2seq 模型很重要, 需要额外的处理\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # 权重初始化\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## 架构相关配置\\n\",\n    \"\\n\",\n    \"为了达成 strong baseline，请参考 [Attention is all you need](#vaswani2017) 中表 3 中 *transformer-base* 的超参数\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=256,\\n\",\n    \"    encoder_ffn_embed_dim=512,\\n\",\n    \"    encoder_layers=1,\\n\",\n    \"    decoder_embed_dim=256,\\n\",\n    \"    decoder_ffn_embed_dim=1024,\\n\",\n    \"    decoder_layers=1,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# 提示: 这些是 Transformer 的参数补丁\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=4\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=4\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # Transformer 默认参数的补丁（未在上面设置的参数）\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"# add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/modules/rnn.py:82: UserWarning: dropout option adds dropout after all but last recurrent layer, so non-zero dropout expects num_layers greater than 1, but got dropout=0.3 and num_layers=1\\n\",\n      \"  warnings.warn(\\\"dropout option adds dropout after all but last \\\"\\n\",\n      \"2023-11-13 12:23:41 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): RNNEncoder(\\n\",\n      \"    (embed_tokens): Embedding(7992, 256, padding_idx=1)\\n\",\n      \"    (dropout_in_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (rnn): GRU(256, 512, dropout=0.3, bidirectional=True)\\n\",\n      \"    (dropout_out_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"  )\\n\",\n      \"  (decoder): RNNDecoder(\\n\",\n      \"    (embed_tokens): Embedding(7992, 256, padding_idx=1)\\n\",\n      \"    (dropout_in_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (rnn): GRU(256, 1024, dropout=0.3)\\n\",\n      \"    (attention): AttentionLayer(\\n\",\n      \"      (input_proj): Linear(in_features=256, out_features=1024, bias=False)\\n\",\n      \"      (output_proj): Linear(in_features=1280, out_features=256, bias=False)\\n\",\n      \"    )\\n\",\n      \"    (dropout_out_module): Dropout(p=0.3, inplace=False)\\n\",\n      \"    (project_out_dim): Linear(in_features=1024, out_features=256, bias=True)\\n\",\n      \"    (output_projection): Linear(in_features=256, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# 优化\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## 损失(Loss): Label Smoothing Regularization\\n\",\n    \"* 让模型学习生成更少集中的分布，防止过度自信\\n\",\n    \"* 有时候正确答案可能不是唯一的。因此，在计算损失时，我们为错误标签保留一些概率。\\n\",\n    \"* 避免过拟合\\n\",\n    \"\\n\",\n    \"代码 [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood 负对数似然，当目标是 one-hot 时的交叉熵。下一行代码等同于F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  保留一些其他标签的概率，这样在计算交叉熵的时候相当于对所有标签的对数概率求和\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # 在计算交叉熵的时候，增加其他标签的损失\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# 通常来说，0.1 已经足够好了\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 优化器: Adam + 学习率调度\\n\",\n    \"在训练 Transformer 时，平方根倒数调度（Inverse square root scheduling）对于稳定性非常重要，在后面也用于RNN。\\n\",\n    \"根据以下公式更新学习率，第一阶段线性增加，然后按时间步的平方根倒数成比例衰减。\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    # TODO: 将 lr 从常数修改为上面显示的公式\\n\",\n    \"    lr = 0.001\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim 包装，用于实现 rate\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"将梯度乘以常数*c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"更新参数和 rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"实现上面的 `lrate`\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## 调度可视化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDpdU6DasGEDkpKSEB4eDqvVij179gxYX1tbC6vVivDwcIwbNw6bNm3yqbHb7UhJSYHJZEJKSgoqKys120tLS/HAAw8gMjISMTExmDNnDo4dO6apERG8+OKLiI+Px9ChQ/HQQw/ho48+UrefOnUKISEhfpetW7eqdWPHjvXZXlxcfC1TRURERHeAoAPVli1bUFhYiJUrV8LpdCIzMxPTp09HS0uL3/rm5mbMmDEDmZmZcDqdWLFiBZYsWQK73a7WOBwOzJ07FzabDUeOHIHNZkNeXh7279+v1tTW1uKFF17Avn37UF1djd7eXmRnZ6Orq0utefXVV7F27VqsW7cOBw8ehNlsxmOPPYbOzk4AwOjRo9Ha2qpZ1qxZg2HDhmH69Omacb/00kuaulWrVgU7VURERHSnkCBNmjRJ8vPzNW0Wi0WKi4v91i9fvlwsFoumbdGiRZKRkaGu5+XlSW5urqYmJydH5s2bF3AcbW1tAkBqa2tFRKS/v1/MZrOUlZWpNV9//bUoiiKbNm0K2M/9998vP/vZzzRtiYmJ8tprrwXc52rcbrcAELfbfc19EBER0XdLz/k7qCtUXq8X9fX1yM7O1rRnZ2ejrq7O7z4Oh8OnPicnB4cOHUJPT8+ANYH6BAC32w0AiIqKAvDNlTCXy6Xpx2QyISsrK2A/9fX1aGhowHPPPeez7ZVXXsHIkSNx//334+WXX4bX6w04lu7ubng8Hs1CREREd46wYIrb29vR19eH2NhYTXtsbCxcLpfffVwul9/63t5etLe3Iy4uLmBNoD5FBEVFRXjwwQeRmpqqHufyflf2c/r0ab/9lJeX495778XUqVM17UuXLkVaWhpGjBiBAwcOoKSkBM3NzfjXf/1Xv/2UlpZizZo1frcRERHR7S+oQHVZSEiIZl1EfNquVn9lezB9FhQU4MMPP8TevXuveWyXLl3CW2+9hV/+8pc+25YtW6b+efz48RgxYgR+8pOfqFetrlRSUoKioiJ13ePxYPTo0X7HTkRERLefoAJVdHQ0QkNDfa4ctbW1+VwZusxsNvutDwsLU8NJoBp/fS5evBg7duzA7t27kZCQoDkO8M2Vqri4uKv2s23bNly8eBHPPPPMQB8ZAJCRkQEAOHHihN9AZTKZYDKZrtoPERER3Z6CeobKaDTCarWiurpa015dXe1z2+yyKVOm+NTv3LkT6enpMBgMA9Z8u08RQUFBAbZv3473338fSUlJmvqkpCSYzWZNP16vF7W1tX7HVl5ejlmzZmHUqFFX/dxOpxMANEGNiIiISBXsU+wVFRViMBikvLxcmpqapLCwUIYNGyanTp0SEZHi4mKx2Wxq/cmTJyUiIkKWLVsmTU1NUl5eLgaDQbZt26bWfPDBBxIaGiplZWXy8ccfS1lZmYSFhcm+ffvUmueff14URZGamhppbW1Vl4sXL6o1ZWVloiiKbN++XRobG+Wpp56SuLg48Xg8ms9w/PhxCQkJkf/3//6fz+erq6uTtWvXitPplJMnT8qWLVskPj5eZs2aNeg54rf8iIiIbj16zt9BByoRkfXr10tiYqIYjUZJS0tTX10gIrJgwQLJysrS1NfU1MjEiRPFaDTK2LFjZePGjT59bt26VZKTk8VgMIjFYhG73a4dKOB32bx5s1rT398vq1evFrPZLCaTSaZNmyaNjY0+xyopKZGEhATp6+vz2VZfXy+TJ08WRVEkPDxckpOTZfXq1dLV1TXo+WGgIiIiuvXoOX+HiPz1CXG6bjweDxRFgdvtxvDhw2/2cIiIiGgQ9Jy/+Vt+RERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESk0zUFqg0bNiApKQnh4eGwWq3Ys2fPgPW1tbWwWq0IDw/HuHHjsGnTJp8au92OlJQUmEwmpKSkoLKyUrO9tLQUDzzwACIjIxETE4M5c+bg2LFjmhoRwYsvvoj4+HgMHToUDz30ED766CNNzUMPPYSQkBDNMm/ePE1NR0cHbDYbFEWBoiiw2Wy4cOFCEDNEREREd5KgA9WWLVtQWFiIlStXwul0IjMzE9OnT0dLS4vf+ubmZsyYMQOZmZlwOp1YsWIFlixZArvdrtY4HA7MnTsXNpsNR44cgc1mQ15eHvbv36/W1NbW4oUXXsC+fftQXV2N3t5eZGdno6urS6159dVXsXbtWqxbtw4HDx6E2WzGY489hs7OTs2YFi5ciNbWVnX5zW9+o9n+9NNPo6GhAVVVVaiqqkJDQwNsNluwU0VERER3CgnSpEmTJD8/X9NmsVikuLjYb/3y5cvFYrFo2hYtWiQZGRnqel5enuTm5mpqcnJyZN68eQHH0dbWJgCktrZWRET6+/vFbDZLWVmZWvP111+LoiiyadMmtS0rK0uWLl0asN+mpiYBIPv27VPbHA6HAJBPPvkk4H7f5na7BYC43e5B1RMREdHNp+f8HdQVKq/Xi/r6emRnZ2vas7OzUVdX53cfh8PhU5+Tk4NDhw6hp6dnwJpAfQKA2+0GAERFRQH45kqYy+XS9GMymZCVleXTz5tvvono6Gj86Ec/wi9+8QvNFSyHwwFFUTB58mS1LSMjA4qiBBxPd3c3PB6PZiEiIqI7R1gwxe3t7ejr60NsbKymPTY2Fi6Xy+8+LpfLb31vby/a29sRFxcXsCZQnyKCoqIiPPjgg0hNTVWPc3m/K/s5ffq0uj5//nwkJSXBbDbj6NGjKCkpwZEjR1BdXa32ExMT43PMmJiYgOMpLS3FmjVr/G4jIiKi219QgeqykJAQzbqI+LRdrf7K9mD6LCgowIcffoi9e/cGPbaFCxeqf05NTcU999yD9PR0HD58GGlpaX77uNp4SkpKUFRUpK57PB6MHj3aby0RERHdfoK65RcdHY3Q0FCfKzVtbW0+V4YuM5vNfuvDwsIwcuTIAWv89bl48WLs2LEDu3btQkJCguY4AIIaGwCkpaXBYDDg+PHjaj/nzp3zqfviiy8C9mMymTB8+HDNQkRERHeOoAKV0WiE1WpVb49dVl1djalTp/rdZ8qUKT71O3fuRHp6OgwGw4A13+5TRFBQUIDt27fj/fffR1JSkqb+8m28b/fj9XpRW1sbcGwA8NFHH6GnpwdxcXHqWNxuNw4cOKDW7N+/H263e8B+iIiI6A4W7FPsFRUVYjAYpLy8XJqamqSwsFCGDRsmp06dEhGR4uJisdlsav3JkyclIiJCli1bJk1NTVJeXi4Gg0G2bdum1nzwwQcSGhoqZWVl8vHHH0tZWZmEhYVpvmn3/PPPi6IoUlNTI62trepy8eJFtaasrEwURZHt27dLY2OjPPXUUxIXFycej0dERE6cOCFr1qyRgwcPSnNzs/zpT38Si8UiEydOlN7eXrWf3NxcGT9+vDgcDnE4HHLffffJzJkzBz1H/JYfERHRrUfP+TvoQCUisn79eklMTBSj0ShpaWnqqwtERBYsWCBZWVma+pqaGpk4caIYjUYZO3asbNy40afPrVu3SnJyshgMBrFYLGK327UDBfwumzdvVmv6+/tl9erVYjabxWQyybRp06SxsVHd3tLSItOmTZOoqCgxGo1y9913y5IlS+T8+fOaY50/f17mz58vkZGREhkZKfPnz5eOjo5Bzw8DFRER0a1Hz/k7ROSvT4jTdePxeKAoCtxuN5+nIiIiukXoOX/zt/yIiIiIdGKgIiIiItKJgYqIiIhIJwYqIiIiIp0YqIiIiIh0YqAiIiIi0omBioiIiEgnBioiIiIinRioiIiIiHRioCIiIiLSiYGKiIiISCcGKiIiIiKdGKiIiIiIdGKgIiIiItKJgYqIiIhIJwYqIiIiIp0YqIiIiIh0YqAiIiIi0omBioiIiEgnBioiIiIinRioiIiIiHRioCIiIiLSiYGKiIiISCcGKiIiIiKdGKiIiIiIdGKgIiIiItKJgYqIiIhIJwYqIiIiIp0YqIiIiIh0YqAiIiIi0omBioiIiEinawpUGzZsQFJSEsLDw2G1WrFnz54B62tra2G1WhEeHo5x48Zh06ZNPjV2ux0pKSkwmUxISUlBZWWlZntpaSkeeOABREZGIiYmBnPmzMGxY8c0NSKCF198EfHx8Rg6dCgeeughfPTRR+r2L7/8EosXL0ZycjIiIiIwZswYLFmyBG63W9PP2LFjERISolmKi4uDnSYiIiK6QwQdqLZs2YLCwkKsXLkSTqcTmZmZmD59OlpaWvzWNzc3Y8aMGcjMzITT6cSKFSuwZMkS2O12tcbhcGDu3Lmw2Ww4cuQIbDYb8vLysH//frWmtrYWL7zwAvbt24fq6mr09vYiOzsbXV1das2rr76KtWvXYt26dTh48CDMZjMee+wxdHZ2AgDOnj2Ls2fP4le/+hUaGxvxu9/9DlVVVXjuued8xv3SSy+htbVVXVatWhXsVBEREdGdQoI0adIkyc/P17RZLBYpLi72W798+XKxWCyatkWLFklGRoa6npeXJ7m5uZqanJwcmTdvXsBxtLW1CQCpra0VEZH+/n4xm81SVlam1nz99deiKIps2rQpYD9//OMfxWg0Sk9Pj9qWmJgor732WsB9rsbtdgsAcbvd19wHERERfbf0nL+DukLl9XpRX1+P7OxsTXt2djbq6ur87uNwOHzqc3JycOjQIfT09AxYE6hPAOptuqioKADfXAlzuVyafkwmE7Kysq7az/DhwxEWFqZpf+WVVzBy5Ejcf//9ePnll+H1egP20d3dDY/Ho1mIiIjozhF29ZL/0t7ejr6+PsTGxmraY2Nj4XK5/O7jcrn81vf29qK9vR1xcXEBawL1KSIoKirCgw8+iNTUVPU4l/e7sp/Tp0/77ef8+fP4p3/6JyxatEjTvnTpUqSlpWHEiBE4cOAASkpK0NzcjH/913/1209paSnWrFnjdxsRERHd/oIKVJeFhIRo1kXEp+1q9Ve2B9NnQUEBPvzwQ+zdu/eax+bxePD4448jJSUFq1ev1mxbtmyZ+ufx48djxIgR+MlPfqJetbpSSUkJioqKNH2PHj3a79iJiIjo9hNUoIqOjkZoaKjPlaO2tjafK0OXmc1mv/VhYWFqOAlU46/PxYsXY8eOHdi9ezcSEhI0xwG+uVIVFxc3YD+dnZ3Izc3FXXfdhcrKShgMhgE/d0ZGBgDgxIkTfgOVyWSCyWQasA8iIiK6fQX1DJXRaITVakV1dbWmvbq6GlOnTvW7z5QpU3zqd+7cifT0dDXIBKr5dp8igoKCAmzfvh3vv/8+kpKSNPVJSUkwm82afrxeL2prazX9eDweZGdnw2g0YseOHQgPD7/q53Y6nQCgCWpEREREqmCfYq+oqBCDwSDl5eXS1NQkhYWFMmzYMDl16pSIiBQXF4vNZlPrT548KREREbJs2TJpamqS8vJyMRgMsm3bNrXmgw8+kNDQUCkrK5OPP/5YysrKJCwsTPbt26fWPP/886IoitTU1Ehra6u6XLx4Ua0pKysTRVFk+/bt0tjYKE899ZTExcWJx+MRERGPxyOTJ0+W++67T06cOKHpp7e3V0RE6urqZO3ateJ0OuXkyZOyZcsWiY+Pl1mzZg16jvgtPyIioluPnvN30IFKRGT9+vWSmJgoRqNR0tLS1FcXiIgsWLBAsrKyNPU1NTUyceJEMRqNMnbsWNm4caNPn1u3bpXk5GQxGAxisVjEbrdrBwr4XTZv3qzW9Pf3y+rVq8VsNovJZJJp06ZJY2Ojun3Xrl0B+2lubhYRkfr6epk8ebIoiiLh4eGSnJwsq1evlq6urkHPDwMVERHRrUfP+TtE5K9PiNN14/F4oCiK+koGIiIi+v7Tc/7mb/kRERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFO1xSoNmzYgKSkJISHh8NqtWLPnj0D1tfW1sJqtSI8PBzjxo3Dpk2bfGrsdjtSUlJgMpmQkpKCyspKzfbS0lI88MADiIyMRExMDObMmYNjx45pakQEL774IuLj4zF06FA89NBD+OijjzQ13d3dWLx4MaKjozFs2DDMmjULn3/+uaamo6MDNpsNiqJAURTYbDZcuHAhiBkiIiKiO0nQgWrLli0oLCzEypUr4XQ6kZmZienTp6OlpcVvfXNzM2bMmIHMzEw4nU6sWLECS5Ysgd1uV2scDgfmzp0Lm82GI0eOwGazIS8vD/v371dramtr8cILL2Dfvn2orq5Gb28vsrOz0dXVpda8+uqrWLt2LdatW4eDBw/CbDbjscceQ2dnp1pTWFiIyspKVFRUYO/evfjqq68wc+ZM9PX1qTVPP/00GhoaUFVVhaqqKjQ0NMBmswU7VURERHSnkCBNmjRJ8vPzNW0Wi0WKi4v91i9fvlwsFoumbdGiRZKRkaGu5+XlSW5urqYmJydH5s2bF3AcbW1tAkBqa2tFRKS/v1/MZrOUlZWpNV9//bUoiiKbNm0SEZELFy6IwWCQiooKtebMmTMyZMgQqaqqEhGRpqYmASD79u1TaxwOhwCQTz75JOB4vs3tdgsAcbvdg6onIiKim0/P+TssmPDl9XpRX1+P4uJiTXt2djbq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tvrdp7y8HPfeey+mTp2qaV+6dCkqKiqwa9cuFBQU4PXXX8fPf/7zgMcuLS2FoijqMnr06EGPm4iIiG591/RQekhIiGZdRHzarlZ/ZXuwfV7JYDDAbrfj008/RVRUFCIiIlBTU4Pp06cjNDTUp/7SpUt46623/F6dWrZsGbKysjB+/Hj83d/9HTZt2oTy8nKcP3/e77FLSkrgdrvV5bPPPhv0uImIiOjWFxZMcXR0NEJDQ32uHLW1tflcYbrMbDb7rQ8LC8PIkSMHrAnUZyBWqxUNDQ1wu93wer0YNWoUJk+ejPT0dJ/abdu24eLFi3jmmWeu2m9GRgYA4MSJE+qYv81kMsFkMgU1ViIiIrp9BHWFymg0wmq1orq6WtNeXV3tc9vssilTpvjU79y5E+np6TAYDAPWBOrzahRFwahRo3D8+HEcOnQIs2fP9qkpLy/HrFmzMGrUqKv253Q6AQBxcXHXNB4iIiK6vQV1hQoAioqKYLPZkJ6ejilTpuC3v/0tWlpakJ+fD+Cb219nzpzB73//ewBAfn4+1q1bh6KiIixcuBAOhwPl5eV4++231T6XLl2KadOm4ZVXXsHs2bPx7rvv4r333tM8TP7VV1/hxIkT6npzczMaGhoQFRWFMWPGAAC2bt2KUaNGYcyYMWhsbMTSpUsxZ84cnwfeT5w4gd27d+PPf/6zz+dzOBzYt28fHn74YSiKgoMHD2LZsmWYNWuWehwiIiIijWv5WuH69eslMTFRjEajpKWlSW1trbptwYIFkpWVpamvqamRiRMnitFolLFjx8rGjRt9+ty6daskJyeLwWAQi8Uidrtds33Xrl0CwGdZsGCBWvPrX/9aEhISxGAwyJgxY2TVqlXS3d3tc6ySkhJJSEiQvr4+n2319fUyefJkURRFwsPDJTk5WVavXi1dXV2Dnh++NoGIiOjWo+f8HSLy1yfE6brxeDxQFAVutxvDhw+/2cMhIiKiQdBz/uZv+RERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU7XFKg2bNiApKQkhIeHw2q1Ys+ePQPW19bWwmq1Ijw8HOPGjcOmTZt8aux2O1JSUmAymZCSkoLKykrN9t27d+OJJ55AfHw8QkJC8M477/j0ce7cOTz77LOIj49HREQEcnNzcfz4cU3NQw89hJCQEM0yb948TU1HRwdsNhsURYGiKLDZbLhw4cLgJoeIiIjuOEEHqi1btqCwsBArV66E0+lEZmYmpk+fjpaWFr/1zc3NmDFjBjIzM+F0OrFixQosWbIEdrtdrXE4HJg7dy5sNhuOHDkCm82GvLw87N+/X63p6urChAkTsG7dOr/HERHMmTMHJ0+exLvvvgun04nExEQ8+uij6Orq0tQuXLgQra2t6vKb3/xGs/3pp59GQ0MDqqqqUFVVhYaGBthstmCnioiIiO4UEqRJkyZJfn6+ps1isUhxcbHf+uXLl4vFYtG0LVq0SDIyMtT1vLw8yc3N1dTk5OTIvHnz/PYJQCorKzVtx44dEwBy9OhRta23t1eioqLkjTfeUNuysrJk6dKlAT9fU1OTAJB9+/apbQ6HQwDIJ598EnC/b3O73QJA3G73oOqJiIjo5tNz/g7qCpXX60V9fT2ys7M17dnZ2airq/O7j8Ph8KnPycnBoUOH0NPTM2BNoD796e7uBgCEh4erbaGhoTAajdi7d6+m9s0330R0dDR+9KMf4Re/+AU6Ozs141UUBZMnT1bbMjIyoChKwPF0d3fD4/FoFiIiIrpzBBWo2tvb0dfXh9jYWE17bGwsXC6X331cLpff+t7eXrS3tw9YE6hPfywWCxITE1FSUoKOjg54vV6UlZXB5XKhtbVVrZs/fz7efvtt1NTU4Je//CXsdjuefPJJzXhjYmJ8+o+JiQk4ntLSUvV5K0VRMHr06EGPm4iIiG59YdeyU0hIiGZdRHzarlZ/ZXuwfV7JYDDAbrfjueeeQ1RUFEJDQ/Hoo49i+vTpmrqFCxeqf05NTcU999yD9PR0HD58GGlpaX7HcrXxlJSUoKioSF33eDwMVURERHeQoAJVdHQ0QkNDfa7UtLW1+VxhusxsNvutDwsLw8iRIwesCdRnIFarFQ0NDXC73fB6vRg1ahQmT56M9PT0gPukpaXBYDDg+PHjSEtLg9lsxrlz53zqvvjii4DjMZlMMJlMQY2ViIiIbh9B3fIzGo2wWq2orq7WtFdXV2Pq1Kl+95kyZYpP/c6dO5Geng6DwTBgTaA+r0ZRFIwaNQrHjx/HoUOHMHv27IC1H330EXp6ehAXF6eOxe1248CBA2rN/v374Xa7r3k8REREdJsL9in2iooKMRgMUl5eLk1NTVJYWCjDhg2TU6dOiYhIcXGx2Gw2tf7kyZMSEREhy5Ytk6amJikvLxeDwSDbtm1Taz744AMJDQ2VsrIy+fjjj6WsrEzCwsI037Tr7OwUp9MpTqdTAMjatWvF6XTK6dOn1Zo//vGPsmvXLvnLX/4i77zzjiQmJsqTTz6pbj9x4oSsWbNGDh48KM3NzfKnP/1JLBaLTJw4UXp7e9W63NxcGT9+vDgcDnE4HHLffffJzJkzBz1H/JYfERHRrUfP+TvoQCUisn79eklMTBSj0ShpaWlSW1urbluwYIFkZWVp6mtqamTixIliNBpl7NixsnHjRp8+t27dKsnJyWIwGMRisYjdbtds37VrlwDwWRYsWKDW/PrXv5aEhAQxGAwyZswYWbVqlXR3d6vbW1paZNq0aRIVFSVGo1HuvvtuWbJkiZw/f15zrPPnz8v8+fMlMjJSIiMjZf78+dLR0THo+WGgIiIiuvXoOX+HiPz1CXG6bjweDxRFgdvtxvDhw2/2cIiIiGgQ9Jy/+Vt+RERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESkEwMVERERkU4MVEREREQ6MVARERER6cRARURERKQTAxURERGRTgxURERERDoxUBERERHpxEBFREREpBMDFREREZFODFREREREOjFQEREREenEQEVERESk0zUFqg0bNiApKQnh4eGwWq3Ys2fPgPW1tbWwWq0IDw/HuHHjsGnTJp8au92OlJQUmEwmpKSkoLKyUrN99+7deOKJJxAfH4+QkBC88847Pn2cO3cOzz77LOLj4xEREYHc3FwcP35c3f7ll19i8eLFSE5ORkREBMaMGYMlS5bA7XZr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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# 训练过程\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## 训练\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # 自动混合精度（amp）\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # 在第一步之后清空 CUDA 缓存可以减少 OOM（out of memory）的机会\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # 混合精度训练\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # 日志记录\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # 反向传播\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) 处理零梯度的情况\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # 梯度裁剪防止梯度爆炸\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # 日志记录\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## 验证 & 推测\\n\",\n    \"为了防止过拟合，每个训练周期都需要进行验证，以验证模型在未见过的数据上的性能。\\n\",\n    \"- 该过程与训练基本相同，只是多了一个推测步骤。\\n\",\n    \"- 在验证后，我们可以保存模型的权重。\\n\",\n    \"\\n\",\n    \"仅凭验证损失无法描述模型的实际性能\\n\",\n    \"- 基于当前模型直接生成翻译假设，然后使用参考翻译计算BLEU\\n\",\n    \"- 我们也可以手动检查假设的质量\\n\",\n    \"- 我们使用 fairseq 的序列生成器进行集束搜索以生成翻译假设。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq 的集束搜索生成器\\n\",\n    \"# 给定模型和输入序列，通过集束搜索生成翻译假设\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # 将 Tensor 转换为人类可读的句子\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # 对于每个样本，收集输入、假设和参考，稍后用于计算 BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 表示使用集束中的最佳假设\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # 显示 bleu 结果\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# 保存和加载模型权重\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # 保存 epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # 保存 epoch 样本\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # 获取最佳的验证 bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## 训练循环\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:23:42 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-13 12:23:42 | INFO | hw5.seq2seq | encoder: RNNEncoder\\n\",\n      \"2023-11-13 12:23:42 | INFO | hw5.seq2seq | decoder: RNNDecoder\\n\",\n      \"2023-11-13 12:23:42 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-13 12:23:42 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-13 12:23:42 | INFO | hw5.seq2seq | num. model params: 11,247,872 (num. trained: 11,247,872)\\n\",\n      \"2023-11-13 12:23:42 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:23:42 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:23:42 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-13 12:23:42 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-13 12:23:42 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-13 12:23:42 | WARNING | fairseq.tasks.fairseq_task | 1 samples have invalid sizes and will be skipped, max_positions=(1024, 1024), first few sample ids=[326653]\\n\",\n      \"2023-11-13 12:23:42 | INFO | hw5.seq2seq | no checkpoints found at checkpoints/rnn/checkpoint_last.pt!\\n\",\n      \"2023-11-13 12:23:42 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 1:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:24:56 | INFO | hw5.seq2seq | training loss: 6.3430\\n\",\n      \"2023-11-13 12:24:56 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:24:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:24:56 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-13 12:24:56 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-13 12:24:56 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:25:05 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-13 12:25:05 | INFO | hw5.seq2seq | example hypothesis: 例如 , 美國的美國人是美國人 , 最重要的是 , 美國人是美國的國家 。\\n\",\n      \"2023-11-13 12:25:05 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-13 12:25:05 | INFO | hw5.seq2seq | validation loss:\\t5.6081\\n\",\n      \"2023-11-13 12:25:05 | INFO | hw5.seq2seq | BLEU = 1.93 24.6/5.1/1.3/0.3 (BP = 0.728 ratio = 0.759 hyp_len = 83832 ref_len = 110430)\\n\",\n      \"2023-11-13 12:25:05 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint1.pt\\n\",\n      \"2023-11-13 12:25:05 | INFO | hw5.seq2seq | end of epoch 1\\n\",\n      \"2023-11-13 12:25:05 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:25:05 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 2:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:26:18 | INFO | hw5.seq2seq | training loss: 5.3838\\n\",\n      \"2023-11-13 12:26:18 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:26:18 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:26:29 | INFO | hw5.seq2seq | example source: and it just sounds like the most egotistical request you could make , if you were going to pray .\\n\",\n      \"2023-11-13 12:26:29 | INFO | hw5.seq2seq | example hypothesis: 這只是聽起來 , 只要你會說 , 如果你們能做 , 如果你能做 , 假如 , 假如 , 假如 , 假如 。\\n\",\n      \"2023-11-13 12:26:29 | INFO | hw5.seq2seq | example reference: 這聽起來像是你所能想到的最自我中心的禱告祈求 。\\n\",\n      \"2023-11-13 12:26:29 | INFO | hw5.seq2seq | validation loss:\\t4.9287\\n\",\n      \"2023-11-13 12:26:29 | INFO | hw5.seq2seq | BLEU = 6.57 25.8/9.4/4.1/1.9 (BP = 1.000 ratio = 1.137 hyp_len = 125551 ref_len = 110430)\\n\",\n      \"2023-11-13 12:26:29 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint2.pt\\n\",\n      \"2023-11-13 12:26:29 | INFO | hw5.seq2seq | end of epoch 2\\n\",\n      \"2023-11-13 12:26:29 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:26:29 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 3:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:27:43 | INFO | hw5.seq2seq | training loss: 4.9355\\n\",\n      \"2023-11-13 12:27:43 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:27:43 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:27:53 | INFO | hw5.seq2seq | example source: but empathy really should get you points if you do it when it's hard to do .\\n\",\n      \"2023-11-13 12:27:53 | INFO | hw5.seq2seq | example hypothesis: 但同理心是很難做的事 。\\n\",\n      \"2023-11-13 12:27:53 | INFO | hw5.seq2seq | example reference: 同理心應該是在很難有同理心的情況下產生才能夠得分才對 。\\n\",\n      \"2023-11-13 12:27:53 | INFO | hw5.seq2seq | validation loss:\\t4.5967\\n\",\n      \"2023-11-13 12:27:53 | INFO | hw5.seq2seq | BLEU = 9.98 31.9/13.6/6.7/3.4 (BP = 1.000 ratio = 1.073 hyp_len = 118507 ref_len = 110430)\\n\",\n      \"2023-11-13 12:27:53 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint3.pt\\n\",\n      \"2023-11-13 12:27:53 | INFO | hw5.seq2seq | end of epoch 3\\n\",\n      \"2023-11-13 12:27:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:27:53 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 4:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:29:07 | INFO | hw5.seq2seq | training loss: 4.7172\\n\",\n      \"2023-11-13 12:29:07 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:29:07 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:29:16 | INFO | hw5.seq2seq | example source: but most biologics also have a flaw .\\n\",\n      \"2023-11-13 12:29:16 | INFO | hw5.seq2seq | example hypothesis: 但大部分生物的生物學家也有了 。\\n\",\n      \"2023-11-13 12:29:16 | INFO | hw5.seq2seq | example reference: 但 , 大部分的生物藥都有個瑕疵 。\\n\",\n      \"2023-11-13 12:29:16 | INFO | hw5.seq2seq | validation loss:\\t4.4348\\n\",\n      \"2023-11-13 12:29:16 | INFO | hw5.seq2seq | BLEU = 11.64 38.5/17.5/8.9/4.7 (BP = 0.899 ratio = 0.904 hyp_len = 99822 ref_len = 110430)\\n\",\n      \"2023-11-13 12:29:16 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint4.pt\\n\",\n      \"2023-11-13 12:29:16 | INFO | hw5.seq2seq | end of epoch 4\\n\",\n      \"2023-11-13 12:29:16 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:29:16 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 5:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:30:30 | INFO | hw5.seq2seq | training loss: 4.5851\\n\",\n      \"2023-11-13 12:30:30 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:30:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:30:40 | INFO | hw5.seq2seq | example source: but i believe now that we're moving into a new age , and that age the new york times dubbed recently as \\\" the age of behavior . \\\"\\n\",\n      \"2023-11-13 12:30:40 | INFO | hw5.seq2seq | example hypothesis: 但我相信我們現在正在移動到新年齡 , 年齡的年齡 , 年齡的年齡 , 年齡的年齡 , 年齡開始了 。\\n\",\n      \"2023-11-13 12:30:40 | INFO | hw5.seq2seq | example reference: 但我相信現在我們正在進入一個新的時代 , 而且最近這個時代被紐約時報稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-13 12:30:40 | INFO | hw5.seq2seq | validation loss:\\t4.3168\\n\",\n      \"2023-11-13 12:30:40 | INFO | hw5.seq2seq | BLEU = 12.62 36.9/17.0/8.7/4.7 (BP = 1.000 ratio = 1.024 hyp_len = 113083 ref_len = 110430)\\n\",\n      \"2023-11-13 12:30:40 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint5.pt\\n\",\n      \"2023-11-13 12:30:40 | INFO | hw5.seq2seq | end of epoch 5\\n\",\n      \"2023-11-13 12:30:40 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:30:40 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 6:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:31:53 | INFO | hw5.seq2seq | training loss: 4.5017\\n\",\n      \"2023-11-13 12:31:53 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:31:53 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:32:02 | INFO | hw5.seq2seq | example source: as we have hot blood running through our veins and arteries , so , too , the earth has hot water running through its cracks and faults .\\n\",\n      \"2023-11-13 12:32:02 | INFO | hw5.seq2seq | example hypothesis: 如我們所見過的血液流流過濾水 , 透過我們的水流過 , 地球上有熱血流流過濾水流流 。\\n\",\n      \"2023-11-13 12:32:02 | INFO | hw5.seq2seq | example reference: 就如我們身體𥚃有熱騰騰的血液經過靜脈和動脈 , 同樣地 , 地球也有熱流穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-13 12:32:02 | INFO | hw5.seq2seq | validation loss:\\t4.2551\\n\",\n      \"2023-11-13 12:32:02 | INFO | hw5.seq2seq | BLEU = 13.41 43.2/20.7/10.8/5.9 (BP = 0.866 ratio = 0.874 hyp_len = 96512 ref_len = 110430)\\n\",\n      \"2023-11-13 12:32:02 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint6.pt\\n\",\n      \"2023-11-13 12:32:02 | INFO | hw5.seq2seq | end of epoch 6\\n\",\n      \"2023-11-13 12:32:02 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:32:02 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 7:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:33:16 | INFO | hw5.seq2seq | training loss: 4.4363\\n\",\n      \"2023-11-13 12:33:16 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:33:16 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:33:24 | INFO | hw5.seq2seq | example source: entirely new requirement .\\n\",\n      \"2023-11-13 12:33:24 | INFO | hw5.seq2seq | example hypothesis: 全新的需求\\n\",\n      \"2023-11-13 12:33:24 | INFO | hw5.seq2seq | example reference: 這是全新的要求 。\\n\",\n      \"2023-11-13 12:33:24 | INFO | hw5.seq2seq | validation loss:\\t4.2428\\n\",\n      \"2023-11-13 12:33:24 | INFO | hw5.seq2seq | BLEU = 13.12 45.6/22.2/11.7/6.5 (BP = 0.787 ratio = 0.807 hyp_len = 89074 ref_len = 110430)\\n\",\n      \"2023-11-13 12:33:24 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint7.pt\\n\",\n      \"2023-11-13 12:33:24 | INFO | hw5.seq2seq | end of epoch 7\\n\",\n      \"2023-11-13 12:33:24 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:33:24 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 8:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:34:37 | INFO | hw5.seq2seq | training loss: 4.3919\\n\",\n      \"2023-11-13 12:34:37 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:34:37 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:34:46 | INFO | hw5.seq2seq | example source: by 1960 we had telephone bills , bank statements were being produced by computers .\\n\",\n      \"2023-11-13 12:34:46 | INFO | hw5.seq2seq | example hypothesis: 在1960年 , 銀行被電腦設施了 。\\n\",\n      \"2023-11-13 12:34:46 | INFO | hw5.seq2seq | example reference: 到了1960年 , 我們的電話和銀行帳單都交由電腦處理\\n\",\n      \"2023-11-13 12:34:46 | INFO | hw5.seq2seq | validation loss:\\t4.1573\\n\",\n      \"2023-11-13 12:34:46 | INFO | hw5.seq2seq | BLEU = 14.56 44.5/21.8/11.6/6.5 (BP = 0.884 ratio = 0.890 hyp_len = 98303 ref_len = 110430)\\n\",\n      \"2023-11-13 12:34:46 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint8.pt\\n\",\n      \"2023-11-13 12:34:46 | INFO | hw5.seq2seq | end of epoch 8\\n\",\n      \"2023-11-13 12:34:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:34:46 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 9:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:36:00 | INFO | hw5.seq2seq | training loss: 4.3555\\n\",\n      \"2023-11-13 12:36:00 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:36:00 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:36:09 | INFO | hw5.seq2seq | example source: they started making their own video games .\\n\",\n      \"2023-11-13 12:36:09 | INFO | hw5.seq2seq | example hypothesis: 他們開始製作自己的影片遊戲 。\\n\",\n      \"2023-11-13 12:36:09 | INFO | hw5.seq2seq | example reference: 他們開始製造自己的電玩遊戲 。\\n\",\n      \"2023-11-13 12:36:09 | INFO | hw5.seq2seq | validation loss:\\t4.1238\\n\",\n      \"2023-11-13 12:36:09 | INFO | hw5.seq2seq | BLEU = 14.75 43.5/21.2/11.3/6.3 (BP = 0.921 ratio = 0.924 hyp_len = 102037 ref_len = 110430)\\n\",\n      \"2023-11-13 12:36:09 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint9.pt\\n\",\n      \"2023-11-13 12:36:09 | INFO | hw5.seq2seq | end of epoch 9\\n\",\n      \"2023-11-13 12:36:09 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:36:09 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 10:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:37:23 | INFO | hw5.seq2seq | training loss: 4.3219\\n\",\n      \"2023-11-13 12:37:23 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:37:23 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:37:32 | INFO | hw5.seq2seq | example source: a perfect example of this is spanish contemporary artist fernando vicente .\\n\",\n      \"2023-11-13 12:37:32 | INFO | hw5.seq2seq | example hypothesis: 最棒的例子是西班牙裔藝術家 。\\n\",\n      \"2023-11-13 12:37:32 | INFO | hw5.seq2seq | example reference: 一個最有代表性的例子是西班牙現代藝術家費南多·維森特 。\\n\",\n      \"2023-11-13 12:37:32 | INFO | hw5.seq2seq | validation loss:\\t4.1059\\n\",\n      \"2023-11-13 12:37:32 | INFO | hw5.seq2seq | BLEU = 15.26 41.6/20.2/10.8/6.0 (BP = 1.000 ratio = 1.009 hyp_len = 111374 ref_len = 110430)\\n\",\n      \"2023-11-13 12:37:32 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint10.pt\\n\",\n      \"2023-11-13 12:37:32 | INFO | hw5.seq2seq | end of epoch 10\\n\",\n      \"2023-11-13 12:37:32 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:37:32 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 11:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:38:46 | INFO | hw5.seq2seq | training loss: 4.2947\\n\",\n      \"2023-11-13 12:38:46 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:38:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:38:55 | INFO | hw5.seq2seq | example source: right . as you can see , bart simpson is having a little argument .\\n\",\n      \"2023-11-13 12:38:55 | INFO | hw5.seq2seq | example hypothesis: 如你所見 , 巴特·塞普森有一些爭論 。\\n\",\n      \"2023-11-13 12:38:55 | INFO | hw5.seq2seq | example reference: 好 , 如你所見bartsimpson正和它老爸爭執\\n\",\n      \"2023-11-13 12:38:55 | INFO | hw5.seq2seq | validation loss:\\t4.0754\\n\",\n      \"2023-11-13 12:38:55 | INFO | hw5.seq2seq | BLEU = 16.02 43.1/21.2/11.3/6.4 (BP = 0.998 ratio = 0.998 hyp_len = 110179 ref_len = 110430)\\n\",\n      \"2023-11-13 12:38:55 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint11.pt\\n\",\n      \"2023-11-13 12:38:55 | INFO | hw5.seq2seq | end of epoch 11\\n\",\n      \"2023-11-13 12:38:55 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:38:55 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 12:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:40:09 | INFO | hw5.seq2seq | training loss: 4.2722\\n\",\n      \"2023-11-13 12:40:09 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:40:09 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:40:18 | INFO | hw5.seq2seq | example source: and if we look to the future , it's an unsustainable diet .\\n\",\n      \"2023-11-13 12:40:18 | INFO | hw5.seq2seq | example hypothesis: 如果我們看看未來 , 它是永續的飲食 。\\n\",\n      \"2023-11-13 12:40:18 | INFO | hw5.seq2seq | example reference: 如果我們想一想未來這絕不是長久之計\\n\",\n      \"2023-11-13 12:40:18 | INFO | hw5.seq2seq | validation loss:\\t4.0663\\n\",\n      \"2023-11-13 12:40:18 | INFO | hw5.seq2seq | BLEU = 15.51 44.7/22.0/11.7/6.5 (BP = 0.937 ratio = 0.939 hyp_len = 103647 ref_len = 110430)\\n\",\n      \"2023-11-13 12:40:18 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint12.pt\\n\",\n      \"2023-11-13 12:40:18 | INFO | hw5.seq2seq | end of epoch 12\\n\",\n      \"2023-11-13 12:40:18 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:40:18 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 13:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:41:34 | INFO | hw5.seq2seq | training loss: 4.2558\\n\",\n      \"2023-11-13 12:41:34 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:41:34 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8a62c8ef9573475aad081f493a1efdf2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:41:43 | INFO | hw5.seq2seq | example source: when you govern through fear and you govern through cruelty , it just doesn't work .\\n\",\n      \"2023-11-13 12:41:43 | INFO | hw5.seq2seq | example hypothesis: 當你穿越恐懼 , 直到殘酷 , 只是不行的 。\\n\",\n      \"2023-11-13 12:41:43 | INFO | hw5.seq2seq | example reference: 透過恐懼 , 透過殘忍來治理國家 , 這是行不通的 。\\n\",\n      \"2023-11-13 12:41:43 | INFO | hw5.seq2seq | validation loss:\\t4.0592\\n\",\n      \"2023-11-13 12:41:43 | INFO | hw5.seq2seq | BLEU = 15.88 45.1/22.3/12.0/6.8 (BP = 0.939 ratio = 0.940 hyp_len = 103848 ref_len = 110430)\\n\",\n      \"2023-11-13 12:41:43 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint13.pt\\n\",\n      \"2023-11-13 12:41:43 | INFO | hw5.seq2seq | end of epoch 13\\n\",\n      \"2023-11-13 12:41:43 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:41:43 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6d518448a50e442780dc9fc9e82a15c5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 14:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:42:56 | INFO | hw5.seq2seq | training loss: 4.2362\\n\",\n      \"2023-11-13 12:42:56 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:42:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a932b733e09b47809e082dda7da37009\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:43:05 | INFO | hw5.seq2seq | example source: this project breaks ground in just two months .\\n\",\n      \"2023-11-13 12:43:05 | INFO | hw5.seq2seq | example hypothesis: 這個計劃只需要兩個月 。\\n\",\n      \"2023-11-13 12:43:05 | INFO | hw5.seq2seq | example reference: 這個計畫再兩個月就要開工了 。\\n\",\n      \"2023-11-13 12:43:05 | INFO | hw5.seq2seq | validation loss:\\t4.0437\\n\",\n      \"2023-11-13 12:43:05 | INFO | hw5.seq2seq | BLEU = 15.71 47.8/23.9/12.9/7.4 (BP = 0.864 ratio = 0.872 hyp_len = 96320 ref_len = 110430)\\n\",\n      \"2023-11-13 12:43:05 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint14.pt\\n\",\n      \"2023-11-13 12:43:05 | INFO | hw5.seq2seq | end of epoch 14\\n\",\n      \"2023-11-13 12:43:05 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:43:05 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"ad101c65ade84c62a2553cd59a01883c\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 15:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:44:18 | INFO | hw5.seq2seq | training loss: 4.2230\\n\",\n      \"2023-11-13 12:44:18 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:44:18 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"217ab8f2d26d4ad783f8bbb5edea9978\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:44:27 | INFO | hw5.seq2seq | example source: and these preservatives had been found in breast cancer tumors .\\n\",\n      \"2023-11-13 12:44:27 | INFO | hw5.seq2seq | example hypothesis: 這些保守派在乳癌腫瘤中發現 。\\n\",\n      \"2023-11-13 12:44:27 | INFO | hw5.seq2seq | example reference: 而乳癌腫瘤中也發現了這些防腐劑 。\\n\",\n      \"2023-11-13 12:44:27 | INFO | hw5.seq2seq | validation loss:\\t4.0182\\n\",\n      \"2023-11-13 12:44:27 | INFO | hw5.seq2seq | BLEU = 16.23 46.6/23.5/12.7/7.2 (BP = 0.911 ratio = 0.915 hyp_len = 100998 ref_len = 110430)\\n\",\n      \"2023-11-13 12:44:27 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/rnn/checkpoint15.pt\\n\",\n      \"2023-11-13 12:44:27 | INFO | hw5.seq2seq | end of epoch 15\\n\",\n      \"2023-11-13 12:44:27 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # 训练一个 epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:44:29 | INFO | fairseq.tasks.text_to_speech | Please install tensorboardX: pip install tensorboardX\\n\",\n      \"Namespace(inputs=['./checkpoints/rnn'], output='./checkpoints/rnn/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/rnn/checkpoint15.pt', './checkpoints/rnn/checkpoint14.pt', './checkpoints/rnn/checkpoint13.pt', './checkpoints/rnn/checkpoint12.pt', './checkpoints/rnn/checkpoint11.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/rnn/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# 对几个 checkpoints 进行平均可以产生类似于 ensemble 的效果\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## 确定用于生成 submission 的模型权重\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:44:30 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/rnn/avg_last_5_checkpoint.pt: step=unknown loss=4.018208026885986 bleu=16.227050064531397\\n\",\n      \"2023-11-13 12:44:30 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-13 12:44:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:44:39 | INFO | hw5.seq2seq | example source: history is strewn with the cases when they've all got it wrong .\\n\",\n      \"2023-11-13 12:44:39 | INFO | hw5.seq2seq | example hypothesis: 史以來的情況是 , 當他們有錯誤的情況時 , 他們都錯了 。\\n\",\n      \"2023-11-13 12:44:39 | INFO | hw5.seq2seq | example reference: 歷史上到處都有我們全都錯了的實例\\n\",\n      \"2023-11-13 12:44:39 | INFO | hw5.seq2seq | validation loss:\\t3.9651\\n\",\n      \"2023-11-13 12:44:39 | INFO | hw5.seq2seq | BLEU = 16.63 46.7/23.7/12.9/7.4 (BP = 0.922 ratio = 0.925 hyp_len = 102178 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : 最新的 epoch\\n\",\n    \"# checkpoint_best.pt : 最高的验证 BLEU\\n\",\n    \"# avg_last_5_checkpoint.pt: 最近 5 次 epoch 的平均值\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## 生成预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # 根据预处理前的顺序进行排序\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-13 12:44:39 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.en\\n\",\n      \"2023-11-13 12:44:39 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.zh\\n\",\n      \"2023-11-13 12:44:39 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 test en-zh 4000 examples\\n\",\n      \"2023-11-13 12:44:39 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-13 12:44:39 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-13 12:44:39 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-13 12:44:39 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"1f0cf412d4fd44bf8daea86c72d3c6fd\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"prediction:   0%|          | 0/18 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[49], line 1\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0m \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## 训练一个 backward translation 模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. 将 **config** 中的 source_lang 和 target_lang 进行切换\\n\",\n    \"2. 更改 **config** 中的 savedir(例如: \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## 用后向模型生成人造数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### 下载单语言数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: 清洗语料\\n\",\n    \"\\n\",\n    \"1. 移除太长或者太短的句子\\n\",\n    \"2. 统一标点符号\\n\",\n    \"\\n\",\n    \"提示: 你可以使用之前定义的 clean_s() 来执行此操作\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: 子词单位\\n\",\n    \"\\n\",\n    \"使用后向模型的 spm 模型将数据标记为子词单位\\n\",\n    \"\\n\",\n    \"提示: spm 模型位于 DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### 二值化\\n\",\n    \"\\n\",\n    \"使用 fairseq 去二值化数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: 用后向模型生成人造数据\\n\",\n    \"\\n\",\n    \"将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"然后你可以使用 'generate_prediction(model, task, split=\\\"split_name\\\")' 来生成翻译的预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"# 例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: 在 split='mono' 上做预测来创建 prediction_file\\n\",\n    \"# generate_prediction( ... ,split=... ,outfile=... )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: 创建新的数据集\\n\",\n    \"\\n\",\n    \"1. 将预测数据和单语数据结合\\n\",\n    \"2. 使用原始的 spm 模型将数据 tokenize 为子词单位\\n\",\n    \"3. 使用 fairseq 将数据二值化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将 prediction_file (.en) 和 mono.zh (.zh) 结合为新的数据集\\n\",\n    \"#\\n\",\n    \"# 提示: 用 spm 模型 tokenize prediction_file\\n\",\n    \"# spm_model.encode(line, out_type=str)\\n\",\n    \"# 输出: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# 提示: 使用 fairseq 再次二值化这两个文件\\n\",\n    \"# binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"# src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"# tgt_dict_file = src_dict_file\\n\",\n    \"# monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"# if binpath.exists():\\n\",\n    \"#     print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"# else:\\n\",\n    \"#     !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"#         --source-lang 'zh'\\\\\\n\",\n    \"#         --target-lang 'en'\\\\\\n\",\n    \"#         --trainpref {monopref}\\\\\\n\",\n    \"#         --destdir {binpath}\\\\\\n\",\n    \"#         --srcdict {src_dict_file}\\\\\\n\",\n    \"#         --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"#         --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 根据上面准备的所有文件创建一个新的数据集\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"创建新数据集 \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. 修改 **config** 中的 datadir (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. 将 **config** 中的 source_lang 和 target_lang 进行切换 (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. 更改 **config** 中的 savedir (例如: \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/zh/HW05_Strong-zh_24.91.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Strong Baseline\\n\",\n    \"你可以通过搜索 \\\"Strong\\\" 来检查是哪些地方做了改变 (Ctrl + F 或者 Command + F)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Wed Nov 15 19:32:49 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |\\n\",\n      \"|  0%   33C    P8    20W / 170W |    355MiB / 12288MiB |     10%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|    0   N/A  N/A      1190      G   /usr/lib/xorg/Xorg                150MiB |\\n\",\n      \"|    0   N/A  N/A      1505      G   /usr/bin/gnome-shell               24MiB |\\n\",\n      \"|    0   N/A  N/A      1708      G   ...nlogin/bin/sunloginclient        6MiB |\\n\",\n      \"|    0   N/A  N/A     53123      G   /usr/lib/firefox/firefox          170MiB |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# 作业描述\\n\",\n    \"- 英译中(繁体)\\n\",\n    \"  - 输入: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - 输出: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - 训练一个 seq2seq 的简单的 RNN 模型来完成翻译\\n\",\n    \"    - 转变模型架构为 transformer，提升性能\\n\",\n    \"    - 使用 Back-translation 进一步提升性能\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# 下载和导入需要的包\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# 固定随机数种子\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# 数据集\\n\",\n    \"\\n\",\n    \"## 英-中 对应的语料\\n\",\n    \"* TED2020\\n\",\n    \"    - 原始: 400,726 (句子)   \\n\",\n    \"    - 处理后: 394,052 (句子)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## 测试集\\n\",\n    \"- 大小: 4,000 (句子)\\n\",\n    \"- **没有提供中文的翻译。(.zh)文件是伪翻译，其中每一行是'。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## 数据集下载\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"raw.en\\n\",\n      \"raw.zh\\n\",\n      \"test.en\\n\",\n      \"test.zh\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## 语言\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much, Chris.\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice; I'm extremely grateful.\\n\",\n      \"I have been blown away by this conference, and I want to thank all of you for the many nice comments about what I had to say the other night.\\n\",\n      \"And I say that sincerely, partly because I need that.\\n\",\n      \"Put yourselves in my position.\\n\",\n      \"非常謝謝你，克里斯。能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸。我非常感激。\\n\",\n      \"這個研討會給我留下了極為深刻的印象，我想感謝大家 對我之前演講的好評。\\n\",\n      \"我是由衷的想這麼說，有部份原因是因為 —— 我真的有需要!\\n\",\n      \"請你們設身處地為我想一想！\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## 预处理文件\\n\",\n    \"- strQ2B(): 将全角字符转变为半角字符\\n\",\n    \"- clean_s(): 清洗文本，将逗号/破折号/空格等字符删除\\n\",\n    \"- len_s(): 返回文本长度\\n\",\n    \"- clean_corpus: 使用上面的函数对指定的文本文件进行清洗\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train_dev.raw.clean.en & zh exists. skipping clean.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/test.raw.clean.en & zh exists. skipping clean.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Thank you so much , Chris .\\n\",\n      \"And it's truly a great honor to have the opportunity to come to this stage twice ; I'm extremely grateful .\\n\",\n      \"I have been blown away by this conference , and I want to thank all of you for the many nice comments about what I had to say the other night .\\n\",\n      \"And I say that sincerely , partly because I need that .\\n\",\n      \"Put yourselves in my position .\\n\",\n      \"非常謝謝你 , 克里斯 。 能有這個機會第二度踏上這個演講台\\n\",\n      \"真是一大榮幸 。 我非常感激 。\\n\",\n      \"這個研討會給我留下了極為深刻的印象 , 我想感謝大家對我之前演講的好評 。\\n\",\n      \"我是由衷的想這麼說 , 有部份原因是因為我真的有需要 !\\n\",\n      \"請你們設身處地為我想一想 !\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## 划分训练/验证集\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000～4000 就够用了\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"train/valid splits exists. skipping split.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## 子词单位\\n\",\n    \"不在词表中的单词（OOV）是机器翻译面临的主要问题。这个问题可以通过使用子词（subword）作为基本单位来缓解\\n\",\n    \"- 我们将使用 [sentencepiece](#kudo-richardson-2018-sentencepiece) 包\\n\",\n    \"- 选择 unigram 或者 byte-pair encoding (BPE) 算法\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/spm8000.model exists. skipping spm_train.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/train.zh exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.en exists. skipping spm_encode.\\n\",\n      \"/home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/DATA/rawdata/ted2020/valid.zh exists. skipping spm_encode.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"▁thank ▁you ▁so ▁much ▁, ▁chris ▁.\\n\",\n      \"▁and ▁it ' s ▁tr u ly ▁a ▁great ▁ho n or ▁to ▁have ▁the ▁ op port un ity ▁to ▁come ▁to ▁this ▁st age ▁ t wi ce ▁; ▁i ' m ▁ex t re me ly ▁gr ate ful ▁.\\n\",\n      \"▁i ▁have ▁been ▁ bl own ▁away ▁by ▁this ▁con fer ence ▁, ▁and ▁i ▁want ▁to ▁thank ▁all ▁of ▁you ▁for ▁the ▁many ▁ ni ce ▁ com ment s ▁about ▁what ▁i ▁had ▁to ▁say ▁the ▁other ▁night ▁.\\n\",\n      \"▁and ▁i ▁say ▁that ▁since re ly ▁, ▁part ly ▁because ▁i ▁need ▁that ▁.\\n\",\n      \"▁put ▁your s el ve s ▁in ▁my ▁po s ition ▁.\\n\",\n      \"▁ 非常 謝 謝 你 ▁, ▁ 克 里 斯 ▁。 ▁ 能 有 這個 機會 第二 度 踏 上 這個 演講 台\\n\",\n      \"▁ 真 是 一 大 榮 幸 ▁。 ▁我 非常 感 激 ▁。\\n\",\n      \"▁這個 研 討 會 給我 留 下 了 極 為 深 刻 的 印 象 ▁, ▁我想 感 謝 大家 對我 之前 演講 的 好 評 ▁。\\n\",\n      \"▁我 是由 衷 的 想 這麼 說 ▁, ▁有 部份 原因 是因為 我 真的 有 需要 ▁!\\n\",\n      \"▁ 請 你們 設 身 處 地 為 我想 一 想 ▁!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## 数据二值化（使用 fairseq）\\n\",\n    \"配对源语言和目标语言的文件。\\n\",\n    \"\\n\",\n    \"如果没有对应的文件，就生成伪配对来方便二值化。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"DATA/data-bin/ted2020 exists, will not overwrite!\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# 实验配置\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/transformer\\\", # Strong\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # 设置取数据和处理数据时 cpu 的线程数\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size 按照 token 数量来计算。梯度累积可以增加有效的 batch size。\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # 学习率通过 Noam 调度器进行计算。你可以修改lr_factor来调整最大的学习率。\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # 梯度裁剪可以缓解梯度爆炸\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # 训练的最大轮数\\n\",\n    \"    max_epoch=10,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # 集束搜索中的 beam size\\n\",\n    \"    beam=5,\\n\",\n    \"    # 生成的序列的最大长度为 ax + b，其中 x 是源长度\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # 解码时，通过去除 sentencepiece 符号和 jieba 分词来后处理句子。\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # 检查点\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume 则根据 checkpoint name 进行恢复（文件保存在 config.savedir 下）\\n\",\n    \"\\n\",\n    \"    # 日志记录\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# 日志\\n\",\n    \"- logging 包用于记录普通的信息\\n\",\n    \"- wandb 记录训练过程中的损失/bleu等\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA 环境\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:33:59 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.utils | rank   0: capabilities =  8.6  ; total memory = 11.759 GB ; name = NVIDIA GeForce RTX 3060                 \\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.utils | ***********************CUDA enviroments for all 1 workers***********************\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# 数据导入\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## 我们采用了 TranslationTask（来自 fairseq）\\n\",\n    \"* 用于加载上面创建的二值化数据\\n\",\n    \"* 实现数据迭代器（dataloader）\\n\",\n    \"* 内置的 task.source_dictionary 和 task.target_dictionary 也很有用\\n\",\n    \"* 实现集束搜索解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:33:59 | INFO | fairseq.tasks.translation | [en] dictionary: 7992 types\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.tasks.translation | [zh] dictionary: 7992 types\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:33:59 | INFO | hw5.seq2seq | loading data for epoch 1\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.en\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.data.data_utils | loaded 390,112 examples from: ./DATA/data-bin/ted2020/train.en-zh.zh\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 train en-zh 390112 examples\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.en\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.data.data_utils | loaded 3,940 examples from: ./DATA/data-bin/ted2020/valid.en-zh.zh\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 valid en-zh 3940 examples\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"{'id': 1,\\n\",\n      \" 'source': tensor([  24,   63,    5,   90, 1323,  143,  140,  184,  281,   37,    8,   81,\\n\",\n      \"         254,   11,   80,   55,   12,  376,   20,  155,   60, 1007,   98,  587,\\n\",\n      \"          76,  256,    6,   98, 1465,    7,    2]),\\n\",\n      \" 'target': tensor([ 162,  116, 3756,  364,  158, 3055, 2925,    9, 2547,    4,  596,  123,\\n\",\n      \"        1518,  455,  667,   64,  406,  566,   74, 1908, 3790,  191,   10,    2])}\\n\",\n      \"('Source: you can throw out crazy theories and not have to back it up with '\\n\",\n      \" 'data or graphs or research .')\\n\",\n      \"'Target: 你能拋開這些瘋狂的理論 , 不用數據圖表、或研究來支撐它 。'\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# 数据集迭代器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* 控制每个 batch 不超过 N 个 token，这样可以优化 GPU 内存效率\\n\",\n    \"* 在每个 epoch 都对训练集进行随机打乱\\n\",\n    \"* 忽略超过最大长度的句子\\n\",\n    \"* 将一个 batch 中的所有句子填充到相同的长度，这样可以利用 GPU 进行并行计算\\n\",\n    \"* 添加 eos 并移动一个 token\\n\",\n    \"    - teacher forcing 技术: 为了训练模型根据前缀预测下一个 token，我们将移动后的目标序列作为解码器的输入。\\n\",\n    \"    - 一般来说，在目标前面加上 bos 就可以了（如下图所示）\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - 但是在 fairseq 中，这是通过将 eos token 移动到开头来实现的。在实验上，这个操作拥有相同的效果。例如:\\n\",\n    \"    ```\\n\",\n    \"    # 目标输出（target）和解码器输入（prev_output_tokens）:\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:33:59 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = False\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-15 19:33:59 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-15 19:33:59 | WARNING | fairseq.tasks.fairseq_task | 2,494 samples have invalid sizes and will be skipped, max_positions=(20, 20), first few sample ids=[1856, 2936, 3373, 918, 3863, 3540, 1791, 1246, 1790, 251]\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'id': tensor([3381]),\\n\",\n       \" 'nsentences': 1,\\n\",\n       \" 'ntokens': 12,\\n\",\n       \" 'net_input': {'src_tokens': tensor([[  11,  260,  296,    4,   16, 1083,   19,   14,   34,  233,    4,  260,\\n\",\n       \"           1604,  105,    7,    2]]),\\n\",\n       \"  'src_lengths': tensor([16]),\\n\",\n       \"  'prev_output_tokens': tensor([[   2, 1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,\\n\",\n       \"              1,    1,    1,    1]])},\\n\",\n       \" 'target': tensor([[1612,    4, 2475, 1797,    4,  241,  470, 2203, 2835,   35,   10,    2,\\n\",\n       \"             1,    1,    1,    1]])}\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # 如果设置为 False（cached=True），可以加快训练速度。\\n\",\n    \"        # 但是，如果设置为 False，那么在第一次调用这个方法之后，再改变 max_tokens就没有效果了。\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# 模型架构\\n\",\n    \"* 我们再次继承 fairseq 的编码器、解码器和模型，以便在测试阶段可以直接利用 fairseq 的集束搜索解码器。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# 编码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- 编码器（Encoder）是一个循环神经网络（RNN）或者 Transformer 中的编码器。下面的描述是针对 RNN 的。对于每一个输入的 token，编码器会生成一个输出向量和一个隐藏状态向量，并且将隐藏状态向量传递给下一步。换句话说，编码器顺序地读入输入序列，并且在每一个时间步输出一个单独的向量，然后在最后一个时间步输出最终的隐藏状态，或者称为内容向量（content vector）。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: 嵌入的维度，将 one-hot 向量压缩到固定的维度，实现降维的效果\\n\",\n    \"      - encoder_ffn_embed_dim: 隐藏状态和输出向量的维度\\n\",\n    \"      - encoder_layers: RNN 编码器的层数\\n\",\n    \"      - dropout 确定了一个神经元的激活值被设为 0 的概率，用于防止过拟合。通常这个参数在训练时使用，在测试时移除\\n\",\n    \"  - *dictionary*: fairseq 提供的字典。它用于获取填充索引，进而得到编码器的填充掩码（encoder padding mask）\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: 一个表示英语的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: RNN 在每个时间步的输出，可以由注意力机制（Attention）进一步处理\\n\",\n    \"    - *final_hiddens*: 每个时间步的隐藏状态，会被传递给解码器（decoder）进行解码\\n\",\n    \"    - *encoder_padding_mask*: 这个参数告诉解码器哪些位置要忽略\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # 获取 embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # 经过双向的 RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # 由于编码器是双向的，我们需要将两个方向的隐藏状态连接起来\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## 注意力\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- 当输入序列很长时，单独的“内容向量”就不能准确地表示整个序列，注意力机制可以为解码器提供更多信息。\\n\",\n    \"- 根据当前时间步的**解码器embeddings**，将**编码器输出**与**解码器 embeddings** 进行匹配，确定相关性，然后将编码器输出按相关性加权求和作为**解码器** RNN 的输入。\\n\",\n    \"- 常见的注意力实现使用神经网络/点积作为 **query**（解码器 embeddings）和 **key**（编码器输出）之间的相关性，然后用 **softmax** 得到一个分布，最后用该分布对 **value**（编码器输出）进行**加权求和**。\\n\",\n    \"\\n\",\n    \"- 参数:\\n\",\n    \"  - *input_embed_dim*: key 的维度，应该是解码器中用于 attend 其他向量的向量的维度\\n\",\n    \"  - *source_embed_dim*: query 的维度，应该是被 attend 的向量（编码器输出）的维度\\n\",\n    \"  - *output_embed_dim*: value 的维度，应该是 after attention 的向量的维度，符合下一层的期望,\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: key, 用于 attend 其他向量\\n\",\n    \"    - *encoder_outputs*:  query/value, 被 attend 的向量\\n\",\n    \"    - *encoder_padding_mask*: 这个告诉解码器应该忽略那些位置\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: attention 后的上下文向量\\n\",\n    \"    - *attention score*: attention 的分数\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # 将所有的输入的维度改为 batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # 投影到 encoder_outputs 的维度\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # 计算 attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # 取消与 padding 相对应的位置的 attention\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # 在与源序列对应的维度上进行 softmax\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) 加权求和\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# 解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* **解码器**的隐藏状态将由**编码器**的最终隐藏状态（the content vector）初始化\\n\",\n    \"* 同时，**解码器**会根据当前时间步的输入（前一时间步的输出）改变其隐藏状态，并生成一个输出\\n\",\n    \"* 注意力机制可以提高性能\\n\",\n    \"* seq2seq 的步骤是在解码器中实现的，这样以后 Seq2Seq 类可以接受 RNN 和 Transformer，而不需要进一步修改。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: 解码器嵌入的维度，类似于 encoder_embed_dim\\n\",\n    \"      - decoder_ffn_embed_dim: 解码器 RNN 隐藏状态的维度，类似于 encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: RNN 解码器的层数\\n\",\n    \"      - share_decoder_input_output_embed: 通常，解码器的投影矩阵会与解码器输入 embeddings 共享权重\\n\",\n    \"  - *dictionary*: fairseq 提供的字典\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"- 输入:\\n\",\n    \"    - *prev_output_tokens*: 表示右移目标的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: 编码器的输出\\n\",\n    \"    - *incremental_state*: 为了加速测试时的解码，我们会保存每个时间步的隐藏状态。详见forward()。\\n\",\n    \"- 输出:\\n\",\n    \"    - *outputs*: 解码器在每个时间步的输出的对数（softmax之前）\\n\",\n    \"    - *extra*: 未使用\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # 从编码器中提取输出\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # 如果保留了上一个时间步的信息，可以从那里继续，而不是从bos开始\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # 增量状态不存在，要么是训练时，要么是测试时的第一个时间步\\n\",\n    \"            # 为seq2seq做准备：将编码器的隐藏状态传递给解码器的隐藏状态\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # 经过单向的 RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 embedding size（如果隐藏状态与 embedding size 不同，并且 share_embedding 为True\\n\",\n    \"        # 就需要做一个额外的投影）\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, 则记录当前时间步的隐藏状态，在下一个时间步恢复\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(self, incremental_state, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- 由**编码器**和**解码器**组成\\n\",\n    \"- 接收输入并传递给**编码器**\\n\",\n    \"- 将**编码器**的输出传递给**解码器**\\n\",\n    \"- **解码器**会根据前一时间步的输出以及**编码器**的输出进行解码\\n\",\n    \"- 解码完成后，返回**解码器**的输出\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# 模型初始化 (Strong)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # 提示: transformer 架构\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # 提示: TODO: 转变为 TransformerEncoder & TransformerDecoder\\n\",\n    \"    # encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # 序列到序列的模型\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"    \\n\",\n    \"    # 初始化 seq2seq 模型很重要, 需要额外的处理\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # 权重初始化\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## 架构相关配置 (Strong)\\n\",\n    \"\\n\",\n    \"为了达成 strong baseline，请参考 [Attention is all you need](#vaswani2017) 中表 3 中 *transformer-base* 的超参数\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=512,\\n\",\n    \"    encoder_ffn_embed_dim=2048,\\n\",\n    \"    encoder_layers=6,\\n\",\n    \"    decoder_embed_dim=512,\\n\",\n    \"    decoder_ffn_embed_dim=2048,\\n\",\n    \"    decoder_layers=6,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# 提示: 这些是 Transformer 的参数补丁\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=8\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=8\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # Transformer 默认参数的补丁（未在上面设置的参数）\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | Seq2Seq(\\n\",\n      \"  (encoder): TransformerEncoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerEncoderLayerBase(\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"  )\\n\",\n      \"  (decoder): TransformerDecoder(\\n\",\n      \"    (dropout_module): FairseqDropout()\\n\",\n      \"    (embed_tokens): Embedding(7992, 512, padding_idx=1)\\n\",\n      \"    (embed_positions): SinusoidalPositionalEmbedding()\\n\",\n      \"    (layers): ModuleList(\\n\",\n      \"      (0-5): 6 x TransformerDecoderLayerBase(\\n\",\n      \"        (dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (activation_dropout_module): FairseqDropout()\\n\",\n      \"        (self_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (encoder_attn): MultiheadAttention(\\n\",\n      \"          (dropout_module): FairseqDropout()\\n\",\n      \"          (k_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (v_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (q_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"          (out_proj): Linear(in_features=512, out_features=512, bias=True)\\n\",\n      \"        )\\n\",\n      \"        (encoder_attn_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"        (fc1): Linear(in_features=512, out_features=2048, bias=True)\\n\",\n      \"        (fc2): Linear(in_features=2048, out_features=512, bias=True)\\n\",\n      \"        (final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"      )\\n\",\n      \"    )\\n\",\n      \"    (layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)\\n\",\n      \"    (output_projection): Linear(in_features=512, out_features=7992, bias=False)\\n\",\n      \"  )\\n\",\n      \")\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# 优化\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## 损失(Loss): Label Smoothing Regularization\\n\",\n    \"* 让模型学习生成更少集中的分布，防止过度自信\\n\",\n    \"* 有时候正确答案可能不是唯一的。因此，在计算损失时，我们为错误标签保留一些概率。\\n\",\n    \"* 避免过拟合\\n\",\n    \"\\n\",\n    \"代码 [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood 负对数似然，当目标是 one-hot 时的交叉熵。下一行代码等同于F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  保留一些其他标签的概率，这样在计算交叉熵的时候相当于对所有标签的对数概率求和\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # 在计算交叉熵的时候，增加其他标签的损失\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# 通常来说，0.1 已经足够好了\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 优化器: Adam + 学习率调度\\n\",\n    \"在训练 Transformer 时，平方根倒数调度（Inverse square root scheduling）对于稳定性非常重要，在后面也用于RNN。\\n\",\n    \"根据以下公式更新学习率，第一阶段线性增加，然后按时间步的平方根倒数成比例衰减。\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"\\n\",\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    lr = 1.0 / math.sqrt(d_model) * min(1.0 / math.sqrt(step_num), step_num / (warmup_step * math.sqrt(warmup_step)))\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim 包装，用于实现 rate\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"将梯度乘以常数*c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"更新参数和 rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"实现上面的 `lrate`\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## 调度可视化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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TmDDhg144oknHOV4n7tu69atePfdd/Gvf/0L48aNw9GjR5GZmYno6GjMnz/fUY73uvtJ6Z62VZf29m0Pu8Z6UFhYGORyeav/I6isrGyVdPu7Z599Fjt37sTevXsxZMgQx/bIyEgA6PAeRkZGwmg04tq1ax2WuXz5cqvzXrlyxanMjee5du0aTCZTr/995eXlobKyEomJiVAoFFAoFMjNzcUbb7wBhULh9H9RLfE+uycqKgoJCQlO28aOHYuSkhIA/Oe5O/3yl7/EsmXL8Mgjj2DChAnIyMjA4sWLkZWVBYD3uidI7Z62VaayshJA61arjjAI9SCVSoXExETk5OQ4bc/JycH06dO9VCtpEULgmWeewbZt2/DZZ5+1asqMi4tDZGSk0z00Go3Izc113MPExEQolUqnMuXl5Th+/LijzLRp06DT6fDll186yhw+fBg6nc6pzPHjx1FeXu4os3v3bqjVaiQmJnb/xXvQPffcg2PHjuHo0aOOT1JSEn74wx/i6NGjGD58OO9zN7jjjjtaLf9w6tQpxMbGAuA/z92poaEBPj7OjzC5XO6YPs973f2kdk+nTZuG/fv3O02p3717N6Kjo1t1mXXI5WHV1Cn26fObNm0SJ0+eFJmZmcLf31+cP3/e21WThJ///OciKChI7Nu3T5SXlzs+DQ0NjjKrV68WQUFBYtu2beLYsWPi0UcfbXO65pAhQ8SePXtEfn6+uPvuu9ucrnnLLbcIrVYrtFqtmDBhQpvTNe+55x6Rn58v9uzZI4YMGdIrp8C6ouWsMSF4n7vDl19+KRQKhfjtb38rTp8+Lf75z38KPz8/8e677zrK8D53j/nz54vBgwc7ps9v27ZNhIWFieeee85RhvfafbW1taKgoEAUFBQIAOK1114TBQUFjiVfpHRPa2pqREREhHj00UfFsWPHxLZt20RgYCCnz0vRunXrRGxsrFCpVGLKlCmOqeFkm57Z1uett95ylLFarWLVqlUiMjJSqNVqceedd4pjx445HaexsVE888wzIiQkRPj6+orvfve7oqSkxKlMdXW1+OEPfygCAgJEQECA+OEPfyiuXbvmVObChQtizpw5wtfXV4SEhIhnnnnGaWpmX3JjEOJ97h4ffvihGD9+vFCr1SI+Pl68+eabTt/zPncPvV4vFi1aJIYOHSo0Go0YPny4WLlypTAYDI4yvNfu27t3b5v/TZ4/f74QQnr39OuvvxbJyclCrVaLyMhI8cILL7g1dV4IIWRCuLsEIxEREVHfwDFCRERE1G8xCBEREVG/xSBERERE/RaDEBEREfVbDEJERETUbzEIERERUb/FIERERET9FoMQERER9VsMQkRERNRvMQgRERFRv8UgRERERP0WgxARERH1W/8flADhZtG2wcQAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# 训练过程\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## 训练\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # 自动混合精度（amp）\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # 在第一步之后清空 CUDA 缓存可以减少 OOM（out of memory）的机会\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # 混合精度训练\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # 日志记录\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # 反向传播\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) 处理零梯度的情况\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # 梯度裁剪防止梯度爆炸\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # 日志记录\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## 验证 & 推测\\n\",\n    \"为了防止过拟合，每个训练周期都需要进行验证，以验证模型在未见过的数据上的性能。\\n\",\n    \"- 该过程与训练基本相同，只是多了一个推测步骤。\\n\",\n    \"- 在验证后，我们可以保存模型的权重。\\n\",\n    \"\\n\",\n    \"仅凭验证损失无法描述模型的实际性能\\n\",\n    \"- 基于当前模型直接生成翻译假设，然后使用参考翻译计算BLEU\\n\",\n    \"- 我们也可以手动检查假设的质量\\n\",\n    \"- 我们使用 fairseq 的序列生成器进行集束搜索以生成翻译假设。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq 的集束搜索生成器\\n\",\n    \"# 给定模型和输入序列，通过集束搜索生成翻译假设\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # 将 Tensor 转换为人类可读的句子\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # 对于每个样本，收集输入、假设和参考，稍后用于计算 BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 表示使用集束中的最佳假设\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # 显示 bleu 结果\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# 保存和加载模型权重\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # 保存 epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # 保存 epoch 样本\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # 获取最佳的验证 bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## 训练循环\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | task: TranslationTask\\n\",\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | encoder: TransformerEncoder\\n\",\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | decoder: TransformerDecoder\\n\",\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | criterion: LabelSmoothedCrossEntropyCriterion\\n\",\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | optimizer: NoamOpt\\n\",\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | num. model params: 52,324,352 (num. trained: 52,324,352)\\n\",\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | max tokens per batch = 8192, accumulate steps = 2\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:34:00 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 19:34:00 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-15 19:34:00 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-15 19:34:00 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\",\n      \"2023-11-15 19:34:00 | WARNING | fairseq.tasks.fairseq_task | 1 samples have invalid sizes and will be skipped, max_positions=(1024, 1024), first few sample ids=[326653]\\n\",\n      \"2023-11-15 19:34:00 | INFO | hw5.seq2seq | no checkpoints found at checkpoints/transformer/checkpoint_last.pt!\\n\",\n      \"2023-11-15 19:34:00 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 1:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/torch/nn/functional.py:5076: UserWarning: Support for mismatched key_padding_mask and attn_mask is deprecated. Use same type for both instead.\\n\",\n      \"  warnings.warn(\\n\",\n      \"2023-11-15 19:40:33 | INFO | hw5.seq2seq | training loss: 6.7378\\n\",\n      \"2023-11-15 19:40:33 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 19:40:33 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 19:40:33 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-15 19:40:33 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-15 19:40:33 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:40:58 | INFO | hw5.seq2seq | example source: for the first time in the united states , a predominantly white group of voters voted for an africanamerican candidate for president .\\n\",\n      \"2023-11-15 19:40:58 | INFO | hw5.seq2seq | example hypothesis: 首先 , 美國人民民民民民民民民民民民民民民民民民 。\\n\",\n      \"2023-11-15 19:40:58 | INFO | hw5.seq2seq | example reference: 美國有史以來 , 大多數白人選民首次投票給一位非洲裔候選人\\n\",\n      \"2023-11-15 19:40:58 | INFO | hw5.seq2seq | validation loss:\\t5.5751\\n\",\n      \"2023-11-15 19:40:58 | INFO | hw5.seq2seq | BLEU = 2.04 21.4/5.3/1.4/0.4 (BP = 0.722 ratio = 0.755 hyp_len = 83324 ref_len = 110430)\\n\",\n      \"2023-11-15 19:40:58 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint1.pt\\n\",\n      \"2023-11-15 19:40:59 | INFO | hw5.seq2seq | end of epoch 1\\n\",\n      \"2023-11-15 19:40:59 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 19:40:59 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 2:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:47:30 | INFO | hw5.seq2seq | training loss: 5.1332\\n\",\n      \"2023-11-15 19:47:30 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 19:47:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:48:00 | INFO | hw5.seq2seq | example source: and it just sounds like the most egotistical request you could make , if you were going to pray .\\n\",\n      \"2023-11-15 19:48:00 | INFO | hw5.seq2seq | example hypothesis: 聽起來像是最佳的演算法 , 假設 , 假如你要做最佳的演算法 。\\n\",\n      \"2023-11-15 19:48:00 | INFO | hw5.seq2seq | example reference: 這聽起來像是你所能想到的最自我中心的禱告祈求 。\\n\",\n      \"2023-11-15 19:48:00 | INFO | hw5.seq2seq | validation loss:\\t4.6458\\n\",\n      \"2023-11-15 19:48:00 | INFO | hw5.seq2seq | BLEU = 10.34 36.0/14.9/6.7/3.2 (BP = 1.000 ratio = 1.063 hyp_len = 117379 ref_len = 110430)\\n\",\n      \"2023-11-15 19:48:00 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint2.pt\\n\",\n      \"2023-11-15 19:48:00 | INFO | hw5.seq2seq | end of epoch 2\\n\",\n      \"2023-11-15 19:48:00 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 19:48:00 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 3:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:54:31 | INFO | hw5.seq2seq | training loss: 4.4839\\n\",\n      \"2023-11-15 19:54:31 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 19:54:31 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 19:54:56 | INFO | hw5.seq2seq | example source: but empathy really should get you points if you do it when it's hard to do .\\n\",\n      \"2023-11-15 19:54:56 | INFO | hw5.seq2seq | example hypothesis: 但是 , 同理心真的要讓你們做點點點 , 如果你很難做 。\\n\",\n      \"2023-11-15 19:54:56 | INFO | hw5.seq2seq | example reference: 同理心應該是在很難有同理心的情況下產生才能夠得分才對 。\\n\",\n      \"2023-11-15 19:54:56 | INFO | hw5.seq2seq | validation loss:\\t4.2127\\n\",\n      \"2023-11-15 19:54:56 | INFO | hw5.seq2seq | BLEU = 15.00 48.0/23.1/11.9/6.5 (BP = 0.875 ratio = 0.882 hyp_len = 97420 ref_len = 110430)\\n\",\n      \"2023-11-15 19:54:56 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint3.pt\\n\",\n      \"2023-11-15 19:54:56 | INFO | hw5.seq2seq | end of epoch 3\\n\",\n      \"2023-11-15 19:54:56 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 19:54:56 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 4:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:01:30 | INFO | hw5.seq2seq | training loss: 4.1259\\n\",\n      \"2023-11-15 20:01:30 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 20:01:30 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:01:54 | INFO | hw5.seq2seq | example source: but most biologics also have a flaw .\\n\",\n      \"2023-11-15 20:01:54 | INFO | hw5.seq2seq | example hypothesis: 但大部份生物學也具有平面 。\\n\",\n      \"2023-11-15 20:01:54 | INFO | hw5.seq2seq | example reference: 但 , 大部分的生物藥都有個瑕疵 。\\n\",\n      \"2023-11-15 20:01:54 | INFO | hw5.seq2seq | validation loss:\\t3.9760\\n\",\n      \"2023-11-15 20:01:54 | INFO | hw5.seq2seq | BLEU = 16.90 54.0/27.5/14.9/8.5 (BP = 0.811 ratio = 0.826 hyp_len = 91263 ref_len = 110430)\\n\",\n      \"2023-11-15 20:01:54 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint4.pt\\n\",\n      \"2023-11-15 20:01:55 | INFO | hw5.seq2seq | end of epoch 4\\n\",\n      \"2023-11-15 20:01:55 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 20:01:55 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 5:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:08:27 | INFO | hw5.seq2seq | training loss: 3.9098\\n\",\n      \"2023-11-15 20:08:27 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 20:08:27 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:08:53 | INFO | hw5.seq2seq | example source: but i believe now that we're moving into a new age , and that age the new york times dubbed recently as \\\" the age of behavior . \\\"\\n\",\n      \"2023-11-15 20:08:53 | INFO | hw5.seq2seq | example hypothesis: 但我相信 , 我們現在正在進入一個新的時代 , 那年的紐約時報被稱為 「 行為年齡 」 。\\n\",\n      \"2023-11-15 20:08:53 | INFO | hw5.seq2seq | example reference: 但我相信現在我們正在進入一個新的時代 , 而且最近這個時代被紐約時報稱為 「 行為的時代 」 。\\n\",\n      \"2023-11-15 20:08:53 | INFO | hw5.seq2seq | validation loss:\\t3.7724\\n\",\n      \"2023-11-15 20:08:53 | INFO | hw5.seq2seq | BLEU = 20.24 52.7/27.4/15.2/9.0 (BP = 0.961 ratio = 0.962 hyp_len = 106220 ref_len = 110430)\\n\",\n      \"2023-11-15 20:08:53 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint5.pt\\n\",\n      \"2023-11-15 20:08:54 | INFO | hw5.seq2seq | end of epoch 5\\n\",\n      \"2023-11-15 20:08:54 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 20:08:54 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 6:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:15:26 | INFO | hw5.seq2seq | training loss: 3.7529\\n\",\n      \"2023-11-15 20:15:26 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 20:15:26 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:15:49 | INFO | hw5.seq2seq | example source: as we have hot blood running through our veins and arteries , so , too , the earth has hot water running through its cracks and faults .\\n\",\n      \"2023-11-15 20:15:49 | INFO | hw5.seq2seq | example hypothesis: 當我們有熱血液流過我們的血管和動脈時 , 地球也有熱水穿過它的裂縫和錯 。\\n\",\n      \"2023-11-15 20:15:49 | INFO | hw5.seq2seq | example reference: 就如我們身體𥚃有熱騰騰的血液經過靜脈和動脈 , 同樣地 , 地球也有熱流穿過它的裂縫和斷層 。\\n\",\n      \"2023-11-15 20:15:49 | INFO | hw5.seq2seq | validation loss:\\t3.6332\\n\",\n      \"2023-11-15 20:15:49 | INFO | hw5.seq2seq | BLEU = 21.49 57.0/30.8/17.7/10.7 (BP = 0.895 ratio = 0.900 hyp_len = 99431 ref_len = 110430)\\n\",\n      \"2023-11-15 20:15:49 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint6.pt\\n\",\n      \"2023-11-15 20:15:49 | INFO | hw5.seq2seq | end of epoch 6\\n\",\n      \"2023-11-15 20:15:49 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 20:15:49 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 7:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:22:22 | INFO | hw5.seq2seq | training loss: 3.5910\\n\",\n      \"2023-11-15 20:22:22 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 20:22:22 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:22:45 | INFO | hw5.seq2seq | example source: entirely new requirement .\\n\",\n      \"2023-11-15 20:22:45 | INFO | hw5.seq2seq | example hypothesis: 全新的需求\\n\",\n      \"2023-11-15 20:22:45 | INFO | hw5.seq2seq | example reference: 這是全新的要求 。\\n\",\n      \"2023-11-15 20:22:45 | INFO | hw5.seq2seq | validation loss:\\t3.5486\\n\",\n      \"2023-11-15 20:22:45 | INFO | hw5.seq2seq | BLEU = 22.04 57.9/31.9/18.6/11.4 (BP = 0.881 ratio = 0.888 hyp_len = 98047 ref_len = 110430)\\n\",\n      \"2023-11-15 20:22:45 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint7.pt\\n\",\n      \"2023-11-15 20:22:46 | INFO | hw5.seq2seq | end of epoch 7\\n\",\n      \"2023-11-15 20:22:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 20:22:46 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 8:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:29:21 | INFO | hw5.seq2seq | training loss: 3.4805\\n\",\n      \"2023-11-15 20:29:21 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 20:29:21 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:29:45 | INFO | hw5.seq2seq | example source: by 1960 we had telephone bills , bank statements were being produced by computers .\\n\",\n      \"2023-11-15 20:29:45 | INFO | hw5.seq2seq | example hypothesis: 到了1960年 , 我們有了電話帳單 , 銀行宣言被電腦所製成 。\\n\",\n      \"2023-11-15 20:29:45 | INFO | hw5.seq2seq | example reference: 到了1960年 , 我們的電話和銀行帳單都交由電腦處理\\n\",\n      \"2023-11-15 20:29:45 | INFO | hw5.seq2seq | validation loss:\\t3.4522\\n\",\n      \"2023-11-15 20:29:45 | INFO | hw5.seq2seq | BLEU = 23.46 58.2/32.5/19.2/11.8 (BP = 0.917 ratio = 0.920 hyp_len = 101576 ref_len = 110430)\\n\",\n      \"2023-11-15 20:29:45 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint8.pt\\n\",\n      \"2023-11-15 20:29:46 | INFO | hw5.seq2seq | end of epoch 8\\n\",\n      \"2023-11-15 20:29:46 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 20:29:46 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 9:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:36:20 | INFO | hw5.seq2seq | training loss: 3.3953\\n\",\n      \"2023-11-15 20:36:20 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 20:36:20 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:36:43 | INFO | hw5.seq2seq | example source: they started making their own video games .\\n\",\n      \"2023-11-15 20:36:43 | INFO | hw5.seq2seq | example hypothesis: 他們開始製作自己的電玩遊戲 。\\n\",\n      \"2023-11-15 20:36:43 | INFO | hw5.seq2seq | example reference: 他們開始製造自己的電玩遊戲 。\\n\",\n      \"2023-11-15 20:36:43 | INFO | hw5.seq2seq | validation loss:\\t3.4154\\n\",\n      \"2023-11-15 20:36:43 | INFO | hw5.seq2seq | BLEU = 24.06 59.0/33.2/19.8/12.4 (BP = 0.914 ratio = 0.918 hyp_len = 101341 ref_len = 110430)\\n\",\n      \"2023-11-15 20:36:44 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint9.pt\\n\",\n      \"2023-11-15 20:36:44 | INFO | hw5.seq2seq | end of epoch 9\\n\",\n      \"2023-11-15 20:36:44 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 20:36:44 | INFO | fairseq.data.iterators | grouped total_num_itrs = 790\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"train epoch 10:   0%|          | 0/790 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:43:17 | INFO | hw5.seq2seq | training loss: 3.3241\\n\",\n      \"2023-11-15 20:43:17 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 20:43:17 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:43:42 | INFO | hw5.seq2seq | example source: a perfect example of this is spanish contemporary artist fernando vicente .\\n\",\n      \"2023-11-15 20:43:42 | INFO | hw5.seq2seq | example hypothesis: 這是西班牙現代藝術家費南多·費南多夫的一個完美例子 。\\n\",\n      \"2023-11-15 20:43:42 | INFO | hw5.seq2seq | example reference: 一個最有代表性的例子是西班牙現代藝術家費南多·維森特 。\\n\",\n      \"2023-11-15 20:43:42 | INFO | hw5.seq2seq | validation loss:\\t3.3681\\n\",\n      \"2023-11-15 20:43:42 | INFO | hw5.seq2seq | BLEU = 24.91 57.4/32.4/19.3/12.1 (BP = 0.970 ratio = 0.971 hyp_len = 107176 ref_len = 110430)\\n\",\n      \"2023-11-15 20:43:43 | INFO | hw5.seq2seq | saved epoch checkpoint: /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW05/zh/checkpoints/transformer/checkpoint10.pt\\n\",\n      \"2023-11-15 20:43:43 | INFO | hw5.seq2seq | end of epoch 10\\n\",\n      \"2023-11-15 20:43:43 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # 训练一个 epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Namespace(inputs=['./checkpoints/transformer'], output='./checkpoints/transformer/avg_last_5_checkpoint.pt', num_epoch_checkpoints=5, num_update_checkpoints=None, num_best_checkpoints=0, checkpoint_upper_bound=None)\\n\",\n      \"averaging checkpoints:  ['./checkpoints/transformer/checkpoint10.pt', './checkpoints/transformer/checkpoint9.pt', './checkpoints/transformer/checkpoint8.pt', './checkpoints/transformer/checkpoint7.pt', './checkpoints/transformer/checkpoint6.pt']\\n\",\n      \"Finished writing averaged checkpoint to ./checkpoints/transformer/avg_last_5_checkpoint.pt\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# 对几个 checkpoints 进行平均可以产生类似于 ensemble 的效果\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## 确定用于生成 submission 的模型权重\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:43:45 | INFO | hw5.seq2seq | loaded checkpoint checkpoints/transformer/avg_last_5_checkpoint.pt: step=unknown loss=3.3681225776672363 bleu=24.905076075633204\\n\",\n      \"2023-11-15 20:43:45 | INFO | hw5.seq2seq | begin validation\\n\",\n      \"2023-11-15 20:43:45 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"validation:   0%|          | 0/22 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:44:08 | INFO | hw5.seq2seq | example source: right . as you can see , bart simpson is having a little argument .\\n\",\n      \"2023-11-15 20:44:08 | INFO | hw5.seq2seq | example hypothesis: 如你所見 , 巴特·辛普森有一點爭論 。\\n\",\n      \"2023-11-15 20:44:08 | INFO | hw5.seq2seq | example reference: 好 , 如你所見bartsimpson正和它老爸爭執\\n\",\n      \"2023-11-15 20:44:08 | INFO | hw5.seq2seq | validation loss:\\t3.4041\\n\",\n      \"2023-11-15 20:44:08 | INFO | hw5.seq2seq | BLEU = 24.51 59.1/33.6/20.1/12.6 (BP = 0.920 ratio = 0.923 hyp_len = 101945 ref_len = 110430)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# checkpoint_last.pt : 最新的 epoch\\n\",\n    \"# checkpoint_best.pt : 最高的验证 BLEU\\n\",\n    \"# avg_last_5_checkpoint.pt: 最近 5 次 epoch 的平均值\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## 生成预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 47,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # 根据预处理前的顺序进行排序\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 48,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2023-11-15 20:44:08 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.en\\n\",\n      \"2023-11-15 20:44:08 | INFO | fairseq.data.data_utils | loaded 4,000 examples from: ./DATA/data-bin/ted2020/test.en-zh.zh\\n\",\n      \"2023-11-15 20:44:08 | INFO | fairseq.tasks.translation | ./DATA/data-bin/ted2020 test en-zh 4000 examples\\n\",\n      \"2023-11-15 20:44:08 | INFO | fairseq.tasks.fairseq_task | can_reuse_epoch_itr = True\\n\",\n      \"2023-11-15 20:44:08 | INFO | fairseq.tasks.fairseq_task | reuse_dataloader = True\\n\",\n      \"2023-11-15 20:44:08 | INFO | fairseq.tasks.fairseq_task | rebuild_batches = False\\n\",\n      \"2023-11-15 20:44:08 | INFO | fairseq.tasks.fairseq_task | creating new batches for epoch 1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fc984c453d8c48d692954ca605cfd3c5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"prediction:   0%|          | 0/18 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"No active exception to reraise\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"Cell \\u001b[0;32mIn[49], line 1\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0m \\u001b[38;5;28;01mraise\\u001b[39;00m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: No active exception to reraise\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## 训练一个 backward translation 模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. 将 **config** 中的 source_lang 和 target_lang 进行切换\\n\",\n    \"2. 更改 **config** 中的 savedir(例如: \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## 用后向模型生成人造数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### 下载单语言数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: 清洗语料\\n\",\n    \"\\n\",\n    \"1. 移除太长或者太短的句子\\n\",\n    \"2. 统一标点符号\\n\",\n    \"\\n\",\n    \"提示: 你可以使用之前定义的 clean_s() 来执行此操作\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: 子词单位\\n\",\n    \"\\n\",\n    \"使用后向模型的 spm 模型将数据标记为子词单位\\n\",\n    \"\\n\",\n    \"提示: spm 模型位于 DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### 二值化\\n\",\n    \"\\n\",\n    \"使用 fairseq 去二值化数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: 用后向模型生成人造数据\\n\",\n    \"\\n\",\n    \"将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"然后你可以使用 'generate_prediction(model, task, split=\\\"split_name\\\")' 来生成翻译的预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"# 例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: 在 split='mono' 上做预测来创建 prediction_file\\n\",\n    \"# generate_prediction( ... ,split=... ,outfile=... )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: 创建新的数据集\\n\",\n    \"\\n\",\n    \"1. 将预测数据和单语数据结合\\n\",\n    \"2. 使用原始的 spm 模型将数据 tokenize 为子词单位\\n\",\n    \"3. 使用 fairseq 将数据二值化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将 prediction_file (.en) 和 mono.zh (.zh) 结合为新的数据集\\n\",\n    \"#\\n\",\n    \"# 提示: 用 spm 模型 tokenize prediction_file\\n\",\n    \"# spm_model.encode(line, out_type=str)\\n\",\n    \"# 输出: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# 提示: 使用 fairseq 再次二值化这两个文件\\n\",\n    \"# binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"# src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"# tgt_dict_file = src_dict_file\\n\",\n    \"# monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"# if binpath.exists():\\n\",\n    \"#     print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"# else:\\n\",\n    \"#     !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"#         --source-lang 'zh'\\\\\\n\",\n    \"#         --target-lang 'en'\\\\\\n\",\n    \"#         --trainpref {monopref}\\\\\\n\",\n    \"#         --destdir {binpath}\\\\\\n\",\n    \"#         --srcdict {src_dict_file}\\\\\\n\",\n    \"#         --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"#         --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 根据上面准备的所有文件创建一个新的数据集\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"创建新数据集 \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. 修改 **config** 中的 datadir (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. 将 **config** 中的 source_lang 和 target_lang 进行切换 (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. 更改 **config** 中的 savedir (例如: \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW05/zh/HW05_sample_code_zh.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"AFEKWoh3p1Mv\"\n   },\n   \"source\": [\n    \"# 作业描述\\n\",\n    \"- 英译中(繁体)\\n\",\n    \"  - 输入: an English sentence         (e.g.\\t\\ttom is a student .)\\n\",\n    \"  - 输出: the Chinese translation  (e.g. \\t\\t湯姆 是 個 學生 。)\\n\",\n    \"\\n\",\n    \"- TODO\\n\",\n    \"    - 训练一个 seq2seq 的简单的 RNN 模型来完成翻译\\n\",\n    \"    - 转变模型架构为 transformer，提升性能\\n\",\n    \"    - 使用 Back-translation 进一步提升性能\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"background_save\": true\n    },\n    \"id\": \"3Vf1Q79XPQ3D\",\n    \"outputId\": \"29b944cd-90f2-47b4-901e-0f267baa2e30\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59neB_Sxp5Ub\"\n   },\n   \"source\": [\n    \"# 下载和导入需要的包\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"rRlFbfFRpZYT\",\n    \"outputId\": \"c2e805a7-0964-4191-82d0-3466b6d0c10e\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install 'torch>=1.6.0' editdistance matplotlib sacrebleu sacremoses sentencepiece tqdm wandb\\n\",\n    \"!pip install --upgrade jupyter ipywidgets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fSksMTdmp-Wt\",\n    \"outputId\": \"f54c747c-2b8f-4fb5-b87e-a293194d217d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!git clone https://github.com/pytorch/fairseq.git\\n\",\n    \"!cd fairseq && git checkout 3f6ba43\\n\",\n    \"!pip install --upgrade ./fairseq/\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"uRLTiuIuqGNc\",\n    \"outputId\": \"d23f6974-20ef-40eb-d0cb-11e8a0b48159\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"import pdb\\n\",\n    \"import pprint\\n\",\n    \"import logging\\n\",\n    \"import os\\n\",\n    \"import random\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"import torch.nn as nn\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils import data\\n\",\n    \"import numpy as np\\n\",\n    \"import tqdm.auto as tqdm\\n\",\n    \"from pathlib import Path\\n\",\n    \"from argparse import Namespace\\n\",\n    \"from fairseq import utils\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0n07Za1XqJzA\"\n   },\n   \"source\": [\n    \"# 固定随机数种子\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"xllxxyWxqI7s\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 33\\n\",\n    \"random.seed(seed)\\n\",\n    \"torch.manual_seed(seed)\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed_all(seed)\\n\",\n    \"np.random.seed(seed)\\n\",\n    \"torch.backends.cudnn.benchmark = False\\n\",\n    \"torch.backends.cudnn.deterministic = True\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"N5ORDJ-2qdYw\"\n   },\n   \"source\": [\n    \"# 数据集\\n\",\n    \"\\n\",\n    \"## 英-中 对应的语料\\n\",\n    \"* TED2020\\n\",\n    \"    - 原始: 400,726 (句子)   \\n\",\n    \"    - 处理后: 394,052 (句子)\\n\",\n    \"    \\n\",\n    \"\\n\",\n    \"## 测试集\\n\",\n    \"- 大小: 4,000 (句子)\\n\",\n    \"- **没有提供中文的翻译。(.zh)文件是伪翻译，其中每一行是'。'**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"GQw2mY4Dqkzd\"\n   },\n   \"source\": [\n    \"## 数据集下载\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"SXT42xQtqijD\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"data_dir = './DATA/rawdata'\\n\",\n    \"dataset_name = 'ted2020'\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.data.tgz\\\",\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ml2023.hw5.test.tgz\\\"\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted2020.tgz', # train & dev\\n\",\n    \"    'test.tgz', # test\\n\",\n    \")\\n\",\n    \"prefix = Path(data_dir).absolute() / dataset_name\\n\",\n    \"\\n\",\n    \"prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"!mv {prefix/'raw.en'} {prefix/'train_dev.raw.en'}\\n\",\n    \"!mv {prefix/'raw.zh'} {prefix/'train_dev.raw.zh'}\\n\",\n    \"!mv {prefix/'test.en'} {prefix/'test.raw.en'}\\n\",\n    \"!mv {prefix/'test.zh'} {prefix/'test.raw.zh'}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YLkJwNiFrIwZ\"\n   },\n   \"source\": [\n    \"## 语言\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"_uJYkCncrKJb\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"src_lang = 'en'\\n\",\n    \"tgt_lang = 'zh'\\n\",\n    \"\\n\",\n    \"data_prefix = f'{prefix}/train_dev.raw'\\n\",\n    \"test_prefix = f'{prefix}/test.raw'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"0t2CPt1brOT3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!head {data_prefix+'.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"pRoE9UK7r1gY\"\n   },\n   \"source\": [\n    \"## 预处理文件\\n\",\n    \"- strQ2B(): 将全角字符转变为半角字符\\n\",\n    \"- clean_s(): 清洗文本，将逗号/破折号/空格等字符删除\\n\",\n    \"- len_s(): 返回文本长度\\n\",\n    \"- clean_corpus: 使用上面的函数对指定的文本文件进行清洗\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3tzFwtnFrle3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import re\\n\",\n    \"\\n\",\n    \"def strQ2B(ustring):\\n\",\n    \"    \\\"\\\"\\\"Full width -> half width\\\"\\\"\\\"\\n\",\n    \"    # reference:https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"    ss = []\\n\",\n    \"    for s in ustring:\\n\",\n    \"        rstring = \\\"\\\"\\n\",\n    \"        for uchar in s:\\n\",\n    \"            inside_code = ord(uchar)\\n\",\n    \"            if inside_code == 12288:  # Full width space: direct conversion\\n\",\n    \"                inside_code = 32\\n\",\n    \"            elif (inside_code >= 65281 and inside_code <= 65374):  # Full width chars (except space) conversion\\n\",\n    \"                inside_code -= 65248\\n\",\n    \"            rstring += chr(inside_code)\\n\",\n    \"        ss.append(rstring)\\n\",\n    \"    return ''.join(ss)\\n\",\n    \"\\n\",\n    \"def clean_s(s, lang):\\n\",\n    \"    if lang == 'en':\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace('-', '') # remove '-'\\n\",\n    \"        s = re.sub('([.,;!?()\\\\\\\"])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    elif lang == 'zh':\\n\",\n    \"        s = strQ2B(s) # Q2B\\n\",\n    \"        s = re.sub(r\\\"\\\\([^()]*\\\\)\\\", \\\"\\\", s) # remove ([text])\\n\",\n    \"        s = s.replace(' ', '')\\n\",\n    \"        s = s.replace('—', '')\\n\",\n    \"        s = s.replace('“', '\\\"')\\n\",\n    \"        s = s.replace('”', '\\\"')\\n\",\n    \"        s = s.replace('_', '')\\n\",\n    \"        s = re.sub('([。,;!?()\\\\\\\"~「」])', r' \\\\1 ', s) # keep punctuation\\n\",\n    \"    s = ' '.join(s.strip().split())\\n\",\n    \"    return s\\n\",\n    \"\\n\",\n    \"def len_s(s, lang):\\n\",\n    \"    if lang == 'zh':\\n\",\n    \"        return len(s)\\n\",\n    \"    return len(s.split())\\n\",\n    \"\\n\",\n    \"def clean_corpus(prefix, l1, l2, ratio=9, max_len=1000, min_len=1):\\n\",\n    \"    if Path(f'{prefix}.clean.{l1}').exists() and Path(f'{prefix}.clean.{l2}').exists():\\n\",\n    \"        print(f'{prefix}.clean.{l1} & {l2} exists. skipping clean.')\\n\",\n    \"        return\\n\",\n    \"    with open(f'{prefix}.{l1}', 'r') as l1_in_f:\\n\",\n    \"        with open(f'{prefix}.{l2}', 'r') as l2_in_f:\\n\",\n    \"            with open(f'{prefix}.clean.{l1}', 'w') as l1_out_f:\\n\",\n    \"                with open(f'{prefix}.clean.{l2}', 'w') as l2_out_f:\\n\",\n    \"                    for s1 in l1_in_f:\\n\",\n    \"                        s1 = s1.strip()\\n\",\n    \"                        s2 = l2_in_f.readline().strip()\\n\",\n    \"                        s1 = clean_s(s1, l1)\\n\",\n    \"                        s2 = clean_s(s2, l2)\\n\",\n    \"                        s1_len = len_s(s1, l1)\\n\",\n    \"                        s2_len = len_s(s2, l2)\\n\",\n    \"                        if min_len > 0: # remove short sentence\\n\",\n    \"                            if s1_len < min_len or s2_len < min_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if max_len > 0: # remove long sentence\\n\",\n    \"                            if s1_len > max_len or s2_len > max_len:\\n\",\n    \"                                continue\\n\",\n    \"                        if ratio > 0: # remove by ratio of length\\n\",\n    \"                            if s1_len/s2_len > ratio or s2_len/s1_len > ratio:\\n\",\n    \"                                continue\\n\",\n    \"                        print(s1, file=l1_out_f)\\n\",\n    \"                        print(s2, file=l2_out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"h_i8b1PRr9Nf\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"clean_corpus(data_prefix, src_lang, tgt_lang)\\n\",\n    \"clean_corpus(test_prefix, src_lang, tgt_lang, ratio=-1, min_len=-1, max_len=-1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"gjT3XCy9r_rj\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!head {data_prefix+'.clean.'+src_lang} -n 5\\n\",\n    \"!head {data_prefix+'.clean.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"nKb4u67-sT_Z\"\n   },\n   \"source\": [\n    \"## 划分训练/验证集\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"AuFKeDz3sGHL\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"valid_ratio = 0.01 # 3000～4000 就够用了\\n\",\n    \"train_ratio = 1 - valid_ratio\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"QR2NVldqsXyY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if (prefix/f'train.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'train.clean.{tgt_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{src_lang}').exists() \\\\\\n\",\n    \"and (prefix/f'valid.clean.{tgt_lang}').exists():\\n\",\n    \"    print(f'train/valid splits exists. skipping split.')\\n\",\n    \"else:\\n\",\n    \"    line_num = sum(1 for line in open(f'{data_prefix}.clean.{src_lang}'))\\n\",\n    \"    labels = list(range(line_num))\\n\",\n    \"    random.shuffle(labels)\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        train_f = open(os.path.join(data_dir, dataset_name, f'train.clean.{lang}'), 'w')\\n\",\n    \"        valid_f = open(os.path.join(data_dir, dataset_name, f'valid.clean.{lang}'), 'w')\\n\",\n    \"        count = 0\\n\",\n    \"        for line in open(f'{data_prefix}.clean.{lang}', 'r'):\\n\",\n    \"            if labels[count]/line_num < train_ratio:\\n\",\n    \"                train_f.write(line)\\n\",\n    \"            else:\\n\",\n    \"                valid_f.write(line)\\n\",\n    \"            count += 1\\n\",\n    \"        train_f.close()\\n\",\n    \"        valid_f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"n1rwQysTsdJq\"\n   },\n   \"source\": [\n    \"## 子词单位\\n\",\n    \"不在词表中的单词（OOV）是机器翻译面临的主要问题。这个问题可以通过使用子词（subword）作为基本单位来缓解\\n\",\n    \"- 我们将使用 [sentencepiece](#kudo-richardson-2018-sentencepiece) 包\\n\",\n    \"- 选择 unigram 或者 byte-pair encoding (BPE) 算法\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Ecwllsa7sZRA\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import sentencepiece as spm\\n\",\n    \"vocab_size = 8000\\n\",\n    \"if (prefix/f'spm{vocab_size}.model').exists():\\n\",\n    \"    print(f'{prefix}/spm{vocab_size}.model exists. skipping spm_train.')\\n\",\n    \"else:\\n\",\n    \"    spm.SentencePieceTrainer.train(\\n\",\n    \"        input=','.join([f'{prefix}/train.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{src_lang}',\\n\",\n    \"                        f'{prefix}/train.clean.{tgt_lang}',\\n\",\n    \"                        f'{prefix}/valid.clean.{tgt_lang}']),\\n\",\n    \"        model_prefix=prefix/f'spm{vocab_size}',\\n\",\n    \"        vocab_size=vocab_size,\\n\",\n    \"        character_coverage=1,\\n\",\n    \"        model_type='unigram', # 'bpe' works as well\\n\",\n    \"        input_sentence_size=1e6,\\n\",\n    \"        shuffle_input_sentence=True,\\n\",\n    \"        normalization_rule_name='nmt_nfkc_cf',\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"lQPRNldqse_V\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"spm_model = spm.SentencePieceProcessor(model_file=str(prefix/f'spm{vocab_size}.model'))\\n\",\n    \"in_tag = {\\n\",\n    \"    'train': 'train.clean',\\n\",\n    \"    'valid': 'valid.clean',\\n\",\n    \"    'test': 'test.raw.clean',\\n\",\n    \"}\\n\",\n    \"for split in ['train', 'valid', 'test']:\\n\",\n    \"    for lang in [src_lang, tgt_lang]:\\n\",\n    \"        out_path = prefix/f'{split}.{lang}'\\n\",\n    \"        if out_path.exists():\\n\",\n    \"            print(f\\\"{out_path} exists. skipping spm_encode.\\\")\\n\",\n    \"        else:\\n\",\n    \"            with open(prefix/f'{split}.{lang}', 'w') as out_f:\\n\",\n    \"                with open(prefix/f'{in_tag[split]}.{lang}', 'r') as in_f:\\n\",\n    \"                    for line in in_f:\\n\",\n    \"                        line = line.strip()\\n\",\n    \"                        tok = spm_model.encode(line, out_type=str)\\n\",\n    \"                        print(' '.join(tok), file=out_f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"4j6lXHjAsjXa\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!head {data_dir+'/'+dataset_name+'/train.'+src_lang} -n 5\\n\",\n    \"!head {data_dir+'/'+dataset_name+'/train.'+tgt_lang} -n 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"59si_C0Wsms7\"\n   },\n   \"source\": [\n    \"## 数据二值化（使用 fairseq）\\n\",\n    \"配对源语言和目标语言的文件。\\n\",\n    \"\\n\",\n    \"如果没有对应的文件，就生成伪配对来方便二值化。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"w-cHVLSpsknh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', dataset_name)\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess \\\\\\n\",\n    \"        --source-lang {src_lang}\\\\\\n\",\n    \"        --target-lang {tgt_lang}\\\\\\n\",\n    \"        --trainpref {prefix/'train'}\\\\\\n\",\n    \"        --validpref {prefix/'valid'}\\\\\\n\",\n    \"        --testpref {prefix/'test'}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --joined-dictionary\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"szMuH1SWLPWA\"\n   },\n   \"source\": [\n    \"# 实验配置\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"5Luz3_tVLUxs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"config = Namespace(\\n\",\n    \"    datadir = \\\"./DATA/data-bin/ted2020\\\",\\n\",\n    \"    savedir = \\\"./checkpoints/rnn\\\",\\n\",\n    \"    source_lang = src_lang,\\n\",\n    \"    target_lang = tgt_lang,\\n\",\n    \"\\n\",\n    \"    # 设置取数据和处理数据时 cpu 的线程数\\n\",\n    \"    num_workers=2,\\n\",\n    \"    # batch size 按照 token 数量来计算。梯度累积可以增加有效的 batch size。\\n\",\n    \"    max_tokens=8192,\\n\",\n    \"    accum_steps=2,\\n\",\n    \"\\n\",\n    \"    # 学习率通过 Noam 调度器进行计算。你可以修改lr_factor来调整最大的学习率。\\n\",\n    \"    lr_factor=2.,\\n\",\n    \"    lr_warmup=4000,\\n\",\n    \"\\n\",\n    \"    # 梯度裁剪可以缓解梯度爆炸\\n\",\n    \"    clip_norm=1.0,\\n\",\n    \"\\n\",\n    \"    # 训练的最大轮数\\n\",\n    \"    max_epoch=15,\\n\",\n    \"    start_epoch=1,\\n\",\n    \"\\n\",\n    \"    # 集束搜索中的 beam size\\n\",\n    \"    beam=5,\\n\",\n    \"    # 生成的序列的最大长度为 ax + b，其中 x 是源长度\\n\",\n    \"    max_len_a=1.2,\\n\",\n    \"    max_len_b=10,\\n\",\n    \"    # 解码时，通过去除 sentencepiece 符号和 jieba 分词来后处理句子。\\n\",\n    \"    post_process = \\\"sentencepiece\\\",\\n\",\n    \"\\n\",\n    \"    # 检查点\\n\",\n    \"    keep_last_epochs=5,\\n\",\n    \"    resume=None, # if resume 则根据 checkpoint name 进行恢复（文件保存在 config.savedir 下）\\n\",\n    \"\\n\",\n    \"    # 日志记录\\n\",\n    \"    use_wandb=False,\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"cjrJFvyQLg86\"\n   },\n   \"source\": [\n    \"# 日志\\n\",\n    \"- logging 包用于记录普通的信息\\n\",\n    \"- wandb 记录训练过程中的损失/bleu等\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"-ZiMyDWALbDk\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logging.basicConfig(\\n\",\n    \"    format=\\\"%(asctime)s | %(levelname)s | %(name)s | %(message)s\\\",\\n\",\n    \"    datefmt=\\\"%Y-%m-%d %H:%M:%S\\\",\\n\",\n    \"    level=\\\"INFO\\\", # \\\"DEBUG\\\" \\\"WARNING\\\" \\\"ERROR\\\"\\n\",\n    \"    stream=sys.stdout,\\n\",\n    \")\\n\",\n    \"proj = \\\"hw5.seq2seq\\\"\\n\",\n    \"logger = logging.getLogger(proj)\\n\",\n    \"if config.use_wandb:\\n\",\n    \"    import wandb\\n\",\n    \"    wandb.init(project=proj, name=Path(config.savedir).stem, config=config)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BNoSkK45Lmqc\"\n   },\n   \"source\": [\n    \"# CUDA 环境\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"oqrsbmcoLqMl\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"cuda_env = utils.CudaEnvironment()\\n\",\n    \"utils.CudaEnvironment.pretty_print_cuda_env_list([cuda_env])\\n\",\n    \"device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TbJuBIHLLt2D\"\n   },\n   \"source\": [\n    \"# 数据导入\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"oOpG4EBRLwe_\"\n   },\n   \"source\": [\n    \"## 我们采用了 TranslationTask（来自 fairseq）\\n\",\n    \"* 用于加载上面创建的二值化数据\\n\",\n    \"* 实现数据迭代器（dataloader）\\n\",\n    \"* 内置的 task.source_dictionary 和 task.target_dictionary 也很有用\\n\",\n    \"* 实现集束搜索解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3gSEy1uFLvVs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.tasks.translation import TranslationConfig, TranslationTask\\n\",\n    \"\\n\",\n    \"## setup task\\n\",\n    \"task_cfg = TranslationConfig(\\n\",\n    \"    data=config.datadir,\\n\",\n    \"    source_lang=config.source_lang,\\n\",\n    \"    target_lang=config.target_lang,\\n\",\n    \"    train_subset=\\\"train\\\",\\n\",\n    \"    required_seq_len_multiple=8,\\n\",\n    \"    dataset_impl=\\\"mmap\\\",\\n\",\n    \"    upsample_primary=1,\\n\",\n    \")\\n\",\n    \"task = TranslationTask.setup_task(task_cfg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"mR7Bhov7L4IU\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logger.info(\\\"loading data for epoch 1\\\")\\n\",\n    \"task.load_dataset(split=\\\"train\\\", epoch=1, combine=True) # combine if you have back-translation data.\\n\",\n    \"task.load_dataset(split=\\\"valid\\\", epoch=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"P0BCEm_9L6ig\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"sample = task.dataset(\\\"valid\\\")[1]\\n\",\n    \"pprint.pprint(sample)\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Source: \\\" + \\\\\\n\",\n    \"    task.source_dictionary.string(\\n\",\n    \"        sample['source'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"pprint.pprint(\\n\",\n    \"    \\\"Target: \\\" + \\\\\\n\",\n    \"    task.target_dictionary.string(\\n\",\n    \"        sample['target'],\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UcfCVa2FMBSE\"\n   },\n   \"source\": [\n    \"# 数据集迭代器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yBvc-B_6MKZM\"\n   },\n   \"source\": [\n    \"* 控制每个 batch 不超过 N 个 token，这样可以优化 GPU 内存效率\\n\",\n    \"* 在每个 epoch 都对训练集进行随机打乱\\n\",\n    \"* 忽略超过最大长度的句子\\n\",\n    \"* 将一个 batch 中的所有句子填充到相同的长度，这样可以利用 GPU 进行并行计算\\n\",\n    \"* 添加 eos 并移动一个 token\\n\",\n    \"    - teacher forcing 技术: 为了训练模型根据前缀预测下一个 token，我们将移动后的目标序列作为解码器的输入。\\n\",\n    \"    - 一般来说，在目标前面加上 bos 就可以了（如下图所示）\\n\",\n    \"![seq2seq](https://i.imgur.com/0zeDyuI.png)\\n\",\n    \"    - 但是在 fairseq 中，这是通过将 eos token 移动到开头来实现的。在实验上，这个操作拥有相同的效果。例如:\\n\",\n    \"    ```\\n\",\n    \"    # 目标输出（target）和解码器输入（prev_output_tokens）:\\n\",\n    \"                   eos = 2\\n\",\n    \"                target = 419,  711,  238,  888,  792,   60,  968,    8,    2\\n\",\n    \"    prev_output_tokens = 2,  419,  711,  238,  888,  792,   60,  968,    8\\n\",\n    \"    ```\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"OWFJFmCnMDXW\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def load_data_iterator(task, split, epoch=1, max_tokens=4000, num_workers=1, cached=True):\\n\",\n    \"    batch_iterator = task.get_batch_iterator(\\n\",\n    \"        dataset=task.dataset(split),\\n\",\n    \"        max_tokens=max_tokens,\\n\",\n    \"        max_sentences=None,\\n\",\n    \"        max_positions=utils.resolve_max_positions(\\n\",\n    \"            task.max_positions(),\\n\",\n    \"            max_tokens,\\n\",\n    \"        ),\\n\",\n    \"        ignore_invalid_inputs=True,\\n\",\n    \"        seed=seed,\\n\",\n    \"        num_workers=num_workers,\\n\",\n    \"        epoch=epoch,\\n\",\n    \"        disable_iterator_cache=not cached,\\n\",\n    \"        # 如果设置为 False（cached=True），可以加快训练速度。\\n\",\n    \"        # 但是，如果设置为 False，那么在第一次调用这个方法之后，再改变 max_tokens就没有效果了。\\n\",\n    \"    )\\n\",\n    \"    return batch_iterator\\n\",\n    \"\\n\",\n    \"demo_epoch_obj = load_data_iterator(task, \\\"valid\\\", epoch=1, max_tokens=20, num_workers=1, cached=False)\\n\",\n    \"demo_iter = demo_epoch_obj.next_epoch_itr(shuffle=True)\\n\",\n    \"sample = next(demo_iter)\\n\",\n    \"sample\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"p86K-0g7Me4M\"\n   },\n   \"source\": [\n    \"* each batch is a python dict, with string key and Tensor value. Contents are described below:\\n\",\n    \"```python\\n\",\n    \"batch = {\\n\",\n    \"    \\\"id\\\": id, # id for each example\\n\",\n    \"    \\\"nsentences\\\": len(samples), # batch size (sentences)\\n\",\n    \"    \\\"ntokens\\\": ntokens, # batch size (tokens)\\n\",\n    \"    \\\"net_input\\\": {\\n\",\n    \"        \\\"src_tokens\\\": src_tokens, # sequence in source language\\n\",\n    \"        \\\"src_lengths\\\": src_lengths, # sequence length of each example before padding\\n\",\n    \"        \\\"prev_output_tokens\\\": prev_output_tokens, # right shifted target, as mentioned above.\\n\",\n    \"    },\\n\",\n    \"    \\\"target\\\": target, # target sequence\\n\",\n    \"}\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"9EyDBE5ZMkFZ\"\n   },\n   \"source\": [\n    \"# 模型架构\\n\",\n    \"* 我们再次继承 fairseq 的编码器、解码器和模型，以便在测试阶段可以直接利用 fairseq 的集束搜索解码器。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Hzh74qLIMfW_\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.models import (\\n\",\n    \"    FairseqEncoder,\\n\",\n    \"    FairseqIncrementalDecoder,\\n\",\n    \"    FairseqEncoderDecoderModel\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"OI46v1z7MotH\"\n   },\n   \"source\": [\n    \"# 编码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Wn0wSeLLMrbc\"\n   },\n   \"source\": [\n    \"- 编码器（Encoder）是一个循环神经网络（RNN）或者 Transformer 中的编码器。下面的描述是针对 RNN 的。对于每一个输入的 token，编码器会生成一个输出向量和一个隐藏状态向量，并且将隐藏状态向量传递给下一步。换句话说，编码器顺序地读入输入序列，并且在每一个时间步输出一个单独的向量，然后在最后一个时间步输出最终的隐藏状态，或者称为内容向量（content vector）。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - encoder_embed_dim: 嵌入的维度，将 one-hot 向量压缩到固定的维度，实现降维的效果\\n\",\n    \"      - encoder_ffn_embed_dim: 隐藏状态和输出向量的维度\\n\",\n    \"      - encoder_layers: RNN 编码器的层数\\n\",\n    \"      - dropout 确定了一个神经元的激活值被设为 0 的概率，用于防止过拟合。通常这个参数在训练时使用，在测试时移除\\n\",\n    \"  - *dictionary*: fairseq 提供的字典。它用于获取填充索引，进而得到编码器的填充掩码（encoder padding mask）\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"\\n\",\n    \"- Inputs:\\n\",\n    \"    - *src_tokens*: 一个表示英语的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"- Outputs:\\n\",\n    \"    - *outputs*: RNN 在每个时间步的输出，可以由注意力机制（Attention）进一步处理\\n\",\n    \"    - *final_hiddens*: 每个时间步的隐藏状态，会被传递给解码器（decoder）进行解码\\n\",\n    \"    - *encoder_padding_mask*: 这个参数告诉解码器哪些位置要忽略\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"WcX3W4iGMq-S\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNEncoder(FairseqEncoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.encoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.encoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.encoder_layers\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=True\\n\",\n    \"        )\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        self.padding_idx = dictionary.pad()\\n\",\n    \"\\n\",\n    \"    def combine_bidir(self, outs, bsz: int):\\n\",\n    \"        out = outs.view(self.num_layers, 2, bsz, -1).transpose(1, 2).contiguous()\\n\",\n    \"        return out.view(self.num_layers, bsz, -1)\\n\",\n    \"\\n\",\n    \"    def forward(self, src_tokens, **unused):\\n\",\n    \"        bsz, seqlen = src_tokens.size()\\n\",\n    \"\\n\",\n    \"        # 获取 embeddings\\n\",\n    \"        x = self.embed_tokens(src_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # 经过双向的 RNN\\n\",\n    \"        h0 = x.new_zeros(2 * self.num_layers, bsz, self.hidden_dim)\\n\",\n    \"        x, final_hiddens = self.rnn(x, h0)\\n\",\n    \"        outputs = self.dropout_out_module(x)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim * directions]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"\\n\",\n    \"        # 由于编码器是双向的，我们需要将两个方向的隐藏状态连接起来\\n\",\n    \"        final_hiddens = self.combine_bidir(final_hiddens, bsz)\\n\",\n    \"        # hidden =  [num_layers x batch x num_directions*hidden]\\n\",\n    \"\\n\",\n    \"        encoder_padding_mask = src_tokens.eq(self.padding_idx).t()\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                outputs,  # seq_len x batch x hidden\\n\",\n    \"                final_hiddens,  # num_layers x batch x num_directions*hidden\\n\",\n    \"                encoder_padding_mask,  # seq_len x batch\\n\",\n    \"            )\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def reorder_encoder_out(self, encoder_out, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        return tuple(\\n\",\n    \"            (\\n\",\n    \"                encoder_out[0].index_select(1, new_order),\\n\",\n    \"                encoder_out[1].index_select(1, new_order),\\n\",\n    \"                encoder_out[2].index_select(1, new_order),\\n\",\n    \"            )\\n\",\n    \"        )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"6ZlE_1JnMv56\"\n   },\n   \"source\": [\n    \"## 注意力\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ZSFSKt_ZMzgh\"\n   },\n   \"source\": [\n    \"- 当输入序列很长时，单独的“内容向量”就不能准确地表示整个序列，注意力机制可以为解码器提供更多信息。\\n\",\n    \"- 根据当前时间步的**解码器embeddings**，将**编码器输出**与**解码器 embeddings** 进行匹配，确定相关性，然后将编码器输出按相关性加权求和作为**解码器** RNN 的输入。\\n\",\n    \"- 常见的注意力实现使用神经网络/点积作为 **query**（解码器 embeddings）和 **key**（编码器输出）之间的相关性，然后用 **softmax** 得到一个分布，最后用该分布对 **value**（编码器输出）进行**加权求和**。\\n\",\n    \"\\n\",\n    \"- 参数:\\n\",\n    \"  - *input_embed_dim*: key 的维度，应该是解码器中用于 attend 其他向量的向量的维度\\n\",\n    \"  - *source_embed_dim*: query 的维度，应该是被 attend 的向量（编码器输出）的维度\\n\",\n    \"  - *output_embed_dim*: value 的维度，应该是 after attention 的向量的维度，符合下一层的期望,\\n\",\n    \"- Inputs:\\n\",\n    \"    - *inputs*: key, 用于 attend 其他向量\\n\",\n    \"    - *encoder_outputs*:  query/value, 被 attend 的向量\\n\",\n    \"    - *encoder_padding_mask*: 这个告诉解码器应该忽略那些位置\\n\",\n    \"- Outputs:\\n\",\n    \"    - *output*: attention 后的上下文向量\\n\",\n    \"    - *attention score*: attention 的分数\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"1Atf_YuCMyyF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class AttentionLayer(nn.Module):\\n\",\n    \"    def __init__(self, input_embed_dim, source_embed_dim, output_embed_dim, bias=False):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        self.input_proj = nn.Linear(input_embed_dim, source_embed_dim, bias=bias)\\n\",\n    \"        self.output_proj = nn.Linear(\\n\",\n    \"            input_embed_dim + source_embed_dim, output_embed_dim, bias=bias\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, inputs, encoder_outputs, encoder_padding_mask):\\n\",\n    \"        # inputs: T, B, dim\\n\",\n    \"        # encoder_outputs: S x B x dim\\n\",\n    \"        # padding mask:  S x B\\n\",\n    \"\\n\",\n    \"        # 将所有的输入的维度改为 batch first\\n\",\n    \"        inputs = inputs.transpose(1,0) # B, T, dim\\n\",\n    \"        encoder_outputs = encoder_outputs.transpose(1,0) # B, S, dim\\n\",\n    \"        encoder_padding_mask = encoder_padding_mask.transpose(1,0) # B, S\\n\",\n    \"\\n\",\n    \"        # 投影到 encoder_outputs 的维度\\n\",\n    \"        x = self.input_proj(inputs)\\n\",\n    \"\\n\",\n    \"        # 计算 attention\\n\",\n    \"        # (B, T, dim) x (B, dim, S) = (B, T, S)\\n\",\n    \"        attn_scores = torch.bmm(x, encoder_outputs.transpose(1,2))\\n\",\n    \"\\n\",\n    \"        # 取消与 padding 相对应的位置的 attention\\n\",\n    \"        if encoder_padding_mask is not None:\\n\",\n    \"            # leveraging broadcast  B, S -> (B, 1, S)\\n\",\n    \"            encoder_padding_mask = encoder_padding_mask.unsqueeze(1)\\n\",\n    \"            attn_scores = (\\n\",\n    \"                attn_scores.float()\\n\",\n    \"                .masked_fill_(encoder_padding_mask, float(\\\"-inf\\\"))\\n\",\n    \"                .type_as(attn_scores)\\n\",\n    \"            )  # FP16 support: cast to float and back\\n\",\n    \"\\n\",\n    \"        # 在与源序列对应的维度上进行 softmax\\n\",\n    \"        attn_scores = F.softmax(attn_scores, dim=-1)\\n\",\n    \"\\n\",\n    \"        # shape (B, T, S) x (B, S, dim) = (B, T, dim) 加权求和\\n\",\n    \"        x = torch.bmm(attn_scores, encoder_outputs)\\n\",\n    \"\\n\",\n    \"        # (B, T, dim)\\n\",\n    \"        x = torch.cat((x, inputs), dim=-1)\\n\",\n    \"        x = torch.tanh(self.output_proj(x)) # concat + linear + tanh\\n\",\n    \"\\n\",\n    \"        # restore shape (B, T, dim) -> (T, B, dim)\\n\",\n    \"        return x.transpose(1,0), attn_scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"doSCOA2gM7fK\"\n   },\n   \"source\": [\n    \"# 解码器\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2M8Vod2gNABR\"\n   },\n   \"source\": [\n    \"* **解码器**的隐藏状态将由**编码器**的最终隐藏状态（the content vector）初始化\\n\",\n    \"* 同时，**解码器**会根据当前时间步的输入（前一时间步的输出）改变其隐藏状态，并生成一个输出\\n\",\n    \"* 注意力机制可以提高性能\\n\",\n    \"* seq2seq 的步骤是在解码器中实现的，这样以后 Seq2Seq 类可以接受 RNN 和 Transformer，而不需要进一步修改。\\n\",\n    \"- 参数:\\n\",\n    \"  - *args*\\n\",\n    \"      - decoder_embed_dim: 解码器嵌入的维度，类似于 encoder_embed_dim\\n\",\n    \"      - decoder_ffn_embed_dim: 解码器 RNN 隐藏状态的维度，类似于 encoder_ffn_embed_dim\\n\",\n    \"      - decoder_layers: RNN 解码器的层数\\n\",\n    \"      - share_decoder_input_output_embed: 通常，解码器的投影矩阵会与解码器输入 embeddings 共享权重\\n\",\n    \"  - *dictionary*: fairseq 提供的字典\\n\",\n    \"  - *embed_tokens*: 一个 token embedding 的实例（nn.Embedding）\\n\",\n    \"- 输入:\\n\",\n    \"    - *prev_output_tokens*: 表示右移目标的整数序列，例如: 1, 28, 29, 205, 2\\n\",\n    \"    - *encoder_out*: 编码器的输出\\n\",\n    \"    - *incremental_state*: 为了加速测试时的解码，我们会保存每个时间步的隐藏状态。详见forward()。\\n\",\n    \"- 输出:\\n\",\n    \"    - *outputs*: 解码器在每个时间步的输出的对数（softmax之前）\\n\",\n    \"    - *extra*: 未使用\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"QfvgqHYDM6Lp\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class RNNDecoder(FairseqIncrementalDecoder):\\n\",\n    \"    def __init__(self, args, dictionary, embed_tokens):\\n\",\n    \"        super().__init__(dictionary)\\n\",\n    \"        self.embed_tokens = embed_tokens\\n\",\n    \"\\n\",\n    \"        assert args.decoder_layers == args.encoder_layers, f\\\"\\\"\\\"seq2seq rnn requires that encoder\\n\",\n    \"        and decoder have same layers of rnn. got: {args.encoder_layers, args.decoder_layers}\\\"\\\"\\\"\\n\",\n    \"        assert args.decoder_ffn_embed_dim == args.encoder_ffn_embed_dim*2, f\\\"\\\"\\\"seq2seq-rnn requires\\n\",\n    \"        that decoder hidden to be 2*encoder hidden dim. got: {args.decoder_ffn_embed_dim, args.encoder_ffn_embed_dim*2}\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"        self.embed_dim = args.decoder_embed_dim\\n\",\n    \"        self.hidden_dim = args.decoder_ffn_embed_dim\\n\",\n    \"        self.num_layers = args.decoder_layers\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        self.dropout_in_module = nn.Dropout(args.dropout)\\n\",\n    \"        self.rnn = nn.GRU(\\n\",\n    \"            self.embed_dim,\\n\",\n    \"            self.hidden_dim,\\n\",\n    \"            self.num_layers,\\n\",\n    \"            dropout=args.dropout,\\n\",\n    \"            batch_first=False,\\n\",\n    \"            bidirectional=False\\n\",\n    \"        )\\n\",\n    \"        self.attention = AttentionLayer(\\n\",\n    \"            self.embed_dim, self.hidden_dim, self.embed_dim, bias=False\\n\",\n    \"        )\\n\",\n    \"        # self.attention = None\\n\",\n    \"        self.dropout_out_module = nn.Dropout(args.dropout)\\n\",\n    \"\\n\",\n    \"        if self.hidden_dim != self.embed_dim:\\n\",\n    \"            self.project_out_dim = nn.Linear(self.hidden_dim, self.embed_dim)\\n\",\n    \"        else:\\n\",\n    \"            self.project_out_dim = None\\n\",\n    \"\\n\",\n    \"        if args.share_decoder_input_output_embed:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.embed_tokens.weight.shape[1],\\n\",\n    \"                self.embed_tokens.weight.shape[0],\\n\",\n    \"                bias=False,\\n\",\n    \"            )\\n\",\n    \"            self.output_projection.weight = self.embed_tokens.weight\\n\",\n    \"        else:\\n\",\n    \"            self.output_projection = nn.Linear(\\n\",\n    \"                self.output_embed_dim, len(dictionary), bias=False\\n\",\n    \"            )\\n\",\n    \"            nn.init.normal_(\\n\",\n    \"                self.output_projection.weight, mean=0, std=self.output_embed_dim ** -0.5\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"    def forward(self, prev_output_tokens, encoder_out, incremental_state=None, **unused):\\n\",\n    \"        # 从编码器中提取输出\\n\",\n    \"        encoder_outputs, encoder_hiddens, encoder_padding_mask = encoder_out\\n\",\n    \"        # outputs:          seq_len x batch x num_directions*hidden\\n\",\n    \"        # encoder_hiddens:  num_layers x batch x num_directions*encoder_hidden\\n\",\n    \"        # padding_mask:     seq_len x batch\\n\",\n    \"\\n\",\n    \"        if incremental_state is not None and len(incremental_state) > 0:\\n\",\n    \"            # 如果保留了上一个时间步的信息，可以从那里继续，而不是从bos开始\\n\",\n    \"            prev_output_tokens = prev_output_tokens[:, -1:]\\n\",\n    \"            cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"            prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        else:\\n\",\n    \"            # 增量状态不存在，要么是训练时，要么是测试时的第一个时间步\\n\",\n    \"            # 为seq2seq做准备：将编码器的隐藏状态传递给解码器的隐藏状态\\n\",\n    \"            prev_hiddens = encoder_hiddens\\n\",\n    \"\\n\",\n    \"        bsz, seqlen = prev_output_tokens.size()\\n\",\n    \"\\n\",\n    \"        # embed tokens\\n\",\n    \"        x = self.embed_tokens(prev_output_tokens)\\n\",\n    \"        x = self.dropout_in_module(x)\\n\",\n    \"\\n\",\n    \"        # B x T x C -> T x B x C\\n\",\n    \"        x = x.transpose(0, 1)\\n\",\n    \"\\n\",\n    \"        # decoder-to-encoder attention\\n\",\n    \"        if self.attention is not None:\\n\",\n    \"            x, attn = self.attention(x, encoder_outputs, encoder_padding_mask)\\n\",\n    \"\\n\",\n    \"        # 经过单向的 RNN\\n\",\n    \"        x, final_hiddens = self.rnn(x, prev_hiddens)\\n\",\n    \"        # outputs = [sequence len, batch size, hid dim]\\n\",\n    \"        # hidden =  [num_layers * directions, batch size  , hid dim]\\n\",\n    \"        x = self.dropout_out_module(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 embedding size（如果隐藏状态与 embedding size 不同，并且 share_embedding 为True\\n\",\n    \"        # 就需要做一个额外的投影）\\n\",\n    \"        if self.project_out_dim != None:\\n\",\n    \"            x = self.project_out_dim(x)\\n\",\n    \"\\n\",\n    \"        # 投影到 vocab size\\n\",\n    \"        x = self.output_projection(x)\\n\",\n    \"\\n\",\n    \"        # T x B x C -> B x T x C\\n\",\n    \"        x = x.transpose(1, 0)\\n\",\n    \"\\n\",\n    \"        # if incremental, 则记录当前时间步的隐藏状态，在下一个时间步恢复\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": final_hiddens,\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"\\n\",\n    \"        return x, None\\n\",\n    \"\\n\",\n    \"    def reorder_incremental_state(self, incremental_state, new_order):\\n\",\n    \"        # 这个被用于 fairseq 的集束搜索。它的具体细节和原因并不重要。\\n\",\n    \"        cache_state = self.get_incremental_state(incremental_state, \\\"cached_state\\\")\\n\",\n    \"        prev_hiddens = cache_state[\\\"prev_hiddens\\\"]\\n\",\n    \"        prev_hiddens = [p.index_select(0, new_order) for p in prev_hiddens]\\n\",\n    \"        cache_state = {\\n\",\n    \"            \\\"prev_hiddens\\\": torch.stack(prev_hiddens),\\n\",\n    \"        }\\n\",\n    \"        self.set_incremental_state(incremental_state, \\\"cached_state\\\", cache_state)\\n\",\n    \"        return\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"UDAPmxjRNEEL\"\n   },\n   \"source\": [\n    \"## Seq2Seq\\n\",\n    \"- 由**编码器**和**解码器**组成\\n\",\n    \"- 接收输入并传递给**编码器**\\n\",\n    \"- 将**编码器**的输出传递给**解码器**\\n\",\n    \"- **解码器**会根据前一时间步的输出以及**编码器**的输出进行解码\\n\",\n    \"- 解码完成后，返回**解码器**的输出\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"oRwKdLa0NEU6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Seq2Seq(FairseqEncoderDecoderModel):\\n\",\n    \"    def __init__(self, args, encoder, decoder):\\n\",\n    \"        super().__init__(encoder, decoder)\\n\",\n    \"        self.args = args\\n\",\n    \"\\n\",\n    \"    def forward(\\n\",\n    \"        self,\\n\",\n    \"        src_tokens,\\n\",\n    \"        src_lengths,\\n\",\n    \"        prev_output_tokens,\\n\",\n    \"        return_all_hiddens: bool = True,\\n\",\n    \"    ):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        Run the forward pass for an encoder-decoder model.\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        encoder_out = self.encoder(\\n\",\n    \"            src_tokens, src_lengths=src_lengths, return_all_hiddens=return_all_hiddens\\n\",\n    \"        )\\n\",\n    \"        logits, extra = self.decoder(\\n\",\n    \"            prev_output_tokens,\\n\",\n    \"            encoder_out=encoder_out,\\n\",\n    \"            src_lengths=src_lengths,\\n\",\n    \"            return_all_hiddens=return_all_hiddens,\\n\",\n    \"        )\\n\",\n    \"        return logits, extra\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"zu3C2JfqNHzk\"\n   },\n   \"source\": [\n    \"# 模型初始化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"nyI9FOx-NJ2m\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # 提示: transformer 架构\\n\",\n    \"from fairseq.models.transformer import (\\n\",\n    \"    TransformerEncoder,\\n\",\n    \"    TransformerDecoder,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"def build_model(args, task):\\n\",\n    \"    \\\"\\\"\\\" build a model instance based on hyperparameters \\\"\\\"\\\"\\n\",\n    \"    src_dict, tgt_dict = task.source_dictionary, task.target_dictionary\\n\",\n    \"\\n\",\n    \"    # token embeddings\\n\",\n    \"    encoder_embed_tokens = nn.Embedding(len(src_dict), args.encoder_embed_dim, src_dict.pad())\\n\",\n    \"    decoder_embed_tokens = nn.Embedding(len(tgt_dict), args.decoder_embed_dim, tgt_dict.pad())\\n\",\n    \"\\n\",\n    \"    # encoder decoder\\n\",\n    \"    # 提示: TODO: 转变为 TransformerEncoder & TransformerDecoder\\n\",\n    \"    encoder = RNNEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    decoder = RNNDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"    # encoder = TransformerEncoder(args, src_dict, encoder_embed_tokens)\\n\",\n    \"    # decoder = TransformerDecoder(args, tgt_dict, decoder_embed_tokens)\\n\",\n    \"\\n\",\n    \"    # 序列到序列的模型\\n\",\n    \"    model = Seq2Seq(args, encoder, decoder)\\n\",\n    \"\\n\",\n    \"    # 初始化 seq2seq 模型很重要, 需要额外的处理\\n\",\n    \"    def init_params(module):\\n\",\n    \"        from fairseq.modules import MultiheadAttention\\n\",\n    \"        if isinstance(module, nn.Linear):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.bias is not None:\\n\",\n    \"                module.bias.data.zero_()\\n\",\n    \"        if isinstance(module, nn.Embedding):\\n\",\n    \"            module.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            if module.padding_idx is not None:\\n\",\n    \"                module.weight.data[module.padding_idx].zero_()\\n\",\n    \"        if isinstance(module, MultiheadAttention):\\n\",\n    \"            module.q_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.k_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"            module.v_proj.weight.data.normal_(mean=0.0, std=0.02)\\n\",\n    \"        if isinstance(module, nn.RNNBase):\\n\",\n    \"            for name, param in module.named_parameters():\\n\",\n    \"                if \\\"weight\\\" in name or \\\"bias\\\" in name:\\n\",\n    \"                    param.data.uniform_(-0.1, 0.1)\\n\",\n    \"\\n\",\n    \"    # 权重初始化\\n\",\n    \"    model.apply(init_params)\\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ce5n4eS7NQNy\"\n   },\n   \"source\": [\n    \"## 架构相关配置\\n\",\n    \"\\n\",\n    \"为了达成 strong baseline，请参考 [Attention is all you need](#vaswani2017) 中表 3 中 *transformer-base* 的超参数\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Cyn30VoGNT6N\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"arch_args = Namespace(\\n\",\n    \"    encoder_embed_dim=256,\\n\",\n    \"    encoder_ffn_embed_dim=512,\\n\",\n    \"    encoder_layers=1,\\n\",\n    \"    decoder_embed_dim=256,\\n\",\n    \"    decoder_ffn_embed_dim=1024,\\n\",\n    \"    decoder_layers=1,\\n\",\n    \"    share_decoder_input_output_embed=True,\\n\",\n    \"    dropout=0.3,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# 提示: 这些是 Transformer 的参数补丁\\n\",\n    \"def add_transformer_args(args):\\n\",\n    \"    args.encoder_attention_heads=4\\n\",\n    \"    args.encoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.decoder_attention_heads=4\\n\",\n    \"    args.decoder_normalize_before=True\\n\",\n    \"\\n\",\n    \"    args.activation_fn=\\\"relu\\\"\\n\",\n    \"    args.max_source_positions=1024\\n\",\n    \"    args.max_target_positions=1024\\n\",\n    \"\\n\",\n    \"    # Transformer 默认参数的补丁（未在上面设置的参数）\\n\",\n    \"    from fairseq.models.transformer import base_architecture\\n\",\n    \"    base_architecture(arch_args)\\n\",\n    \"\\n\",\n    \"# add_transformer_args(arch_args)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Nbb76QLCNZZZ\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"if config.use_wandb:\\n\",\n    \"    wandb.config.update(vars(arch_args))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"7ZWfxsCDNatH\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = build_model(arch_args, task)\\n\",\n    \"logger.info(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aHll7GRNNdqc\"\n   },\n   \"source\": [\n    \"# 优化\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rUB9f1WCNgMH\"\n   },\n   \"source\": [\n    \"## 损失(Loss): Label Smoothing Regularization\\n\",\n    \"* 让模型学习生成更少集中的分布，防止过度自信\\n\",\n    \"* 有时候正确答案可能不是唯一的。因此，在计算损失时，我们为错误标签保留一些概率。\\n\",\n    \"* 避免过拟合\\n\",\n    \"\\n\",\n    \"代码 [source](https://fairseq.readthedocs.io/en/latest/_modules/fairseq/criterions/label_smoothed_cross_entropy.html)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"IgspdJn0NdYF\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class LabelSmoothedCrossEntropyCriterion(nn.Module):\\n\",\n    \"    def __init__(self, smoothing, ignore_index=None, reduce=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.smoothing = smoothing\\n\",\n    \"        self.ignore_index = ignore_index\\n\",\n    \"        self.reduce = reduce\\n\",\n    \"\\n\",\n    \"    def forward(self, lprobs, target):\\n\",\n    \"        if target.dim() == lprobs.dim() - 1:\\n\",\n    \"            target = target.unsqueeze(-1)\\n\",\n    \"        # nll: Negative log likelihood 负对数似然，当目标是 one-hot 时的交叉熵。下一行代码等同于F.nll_loss\\n\",\n    \"        nll_loss = -lprobs.gather(dim=-1, index=target)\\n\",\n    \"        #  保留一些其他标签的概率，这样在计算交叉熵的时候相当于对所有标签的对数概率求和\\n\",\n    \"        smooth_loss = -lprobs.sum(dim=-1, keepdim=True)\\n\",\n    \"        if self.ignore_index is not None:\\n\",\n    \"            pad_mask = target.eq(self.ignore_index)\\n\",\n    \"            nll_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"            smooth_loss.masked_fill_(pad_mask, 0.0)\\n\",\n    \"        else:\\n\",\n    \"            nll_loss = nll_loss.squeeze(-1)\\n\",\n    \"            smooth_loss = smooth_loss.squeeze(-1)\\n\",\n    \"        if self.reduce:\\n\",\n    \"            nll_loss = nll_loss.sum()\\n\",\n    \"            smooth_loss = smooth_loss.sum()\\n\",\n    \"        # 在计算交叉熵的时候，增加其他标签的损失\\n\",\n    \"        eps_i = self.smoothing / lprobs.size(-1)\\n\",\n    \"        loss = (1.0 - self.smoothing) * nll_loss + eps_i * smooth_loss\\n\",\n    \"        return loss\\n\",\n    \"\\n\",\n    \"# 通常来说，0.1 已经足够好了\\n\",\n    \"criterion = LabelSmoothedCrossEntropyCriterion(\\n\",\n    \"    smoothing=0.1,\\n\",\n    \"    ignore_index=task.target_dictionary.pad(),\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"aRalDto2NkJJ\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"## 优化器: Adam + 学习率调度\\n\",\n    \"在训练 Transformer 时，平方根倒数调度（Inverse square root scheduling）对于稳定性非常重要，在后面也用于RNN。\\n\",\n    \"根据以下公式更新学习率，第一阶段线性增加，然后按时间步的平方根倒数成比例衰减。\\n\",\n    \"$$lrate = d_{\\\\text{model}}^{-0.5}\\\\cdot\\\\min({step\\\\_num}^{-0.5},{step\\\\_num}\\\\cdot{warmup\\\\_steps}^{-1.5})$$\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"sS7tQj1ROBYm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def get_rate(d_model, step_num, warmup_step):\\n\",\n    \"    # TODO: 将 lr 从常数修改为上面显示的公式\\n\",\n    \"    lr = 0.001\\n\",\n    \"    return lr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"J8hoAjHPNkh3\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class NoamOpt:\\n\",\n    \"    \\\"Optim 包装，用于实现 rate\\\"\\n\",\n    \"    def __init__(self, model_size, factor, warmup, optimizer):\\n\",\n    \"        self.optimizer = optimizer\\n\",\n    \"        self._step = 0\\n\",\n    \"        self.warmup = warmup\\n\",\n    \"        self.factor = factor\\n\",\n    \"        self.model_size = model_size\\n\",\n    \"        self._rate = 0\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def param_groups(self):\\n\",\n    \"        return self.optimizer.param_groups\\n\",\n    \"\\n\",\n    \"    def multiply_grads(self, c):\\n\",\n    \"        \\\"\\\"\\\"将梯度乘以常数*c*.\\\"\\\"\\\"\\n\",\n    \"        for group in self.param_groups:\\n\",\n    \"            for p in group['params']:\\n\",\n    \"                if p.grad is not None:\\n\",\n    \"                    p.grad.data.mul_(c)\\n\",\n    \"\\n\",\n    \"    def step(self):\\n\",\n    \"        \\\"更新参数和 rate\\\"\\n\",\n    \"        self._step += 1\\n\",\n    \"        rate = self.rate()\\n\",\n    \"        for p in self.param_groups:\\n\",\n    \"            p['lr'] = rate\\n\",\n    \"        self._rate = rate\\n\",\n    \"        self.optimizer.step()\\n\",\n    \"\\n\",\n    \"    def rate(self, step = None):\\n\",\n    \"        \\\"实现上面的 `lrate`\\\"\\n\",\n    \"        if step is None:\\n\",\n    \"            step = self._step\\n\",\n    \"        return 0 if not step else self.factor * get_rate(self.model_size, step, self.warmup)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"VFJlkOMONsc6\"\n   },\n   \"source\": [\n    \"## 调度可视化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"A135fwPCNrQs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"optimizer = NoamOpt(\\n\",\n    \"    model_size=arch_args.encoder_embed_dim,\\n\",\n    \"    factor=config.lr_factor,\\n\",\n    \"    warmup=config.lr_warmup,\\n\",\n    \"    optimizer=torch.optim.AdamW(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9, weight_decay=0.0001))\\n\",\n    \"plt.plot(np.arange(1, 100000), [optimizer.rate(i) for i in range(1, 100000)])\\n\",\n    \"plt.legend([f\\\"{optimizer.model_size}:{optimizer.warmup}\\\"])\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TOR0g-cVO5ZO\"\n   },\n   \"source\": [\n    \"# 训练过程\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"f-0ZjbK3O8Iv\"\n   },\n   \"source\": [\n    \"## 训练\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"foal3xM1O404\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fairseq.data import iterators\\n\",\n    \"from torch.cuda.amp import GradScaler, autocast\\n\",\n    \"\\n\",\n    \"def train_one_epoch(epoch_itr, model, task, criterion, optimizer, accum_steps=1):\\n\",\n    \"    itr = epoch_itr.next_epoch_itr(shuffle=True)\\n\",\n    \"    itr = iterators.GroupedIterator(itr, accum_steps) # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\": []}\\n\",\n    \"    scaler = GradScaler() # 自动混合精度（amp）\\n\",\n    \"\\n\",\n    \"    model.train()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"train epoch {epoch_itr.epoch}\\\", leave=False)\\n\",\n    \"    for samples in progress:\\n\",\n    \"        model.zero_grad()\\n\",\n    \"        accum_loss = 0\\n\",\n    \"        sample_size = 0\\n\",\n    \"        # 梯度累积：每 accum_steps 个样本更新一次\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            if i == 1:\\n\",\n    \"                # 在第一步之后清空 CUDA 缓存可以减少 OOM（out of memory）的机会\\n\",\n    \"                torch.cuda.empty_cache()\\n\",\n    \"\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size_i = sample[\\\"ntokens\\\"]\\n\",\n    \"            sample_size += sample_size_i\\n\",\n    \"\\n\",\n    \"            # 混合精度训练\\n\",\n    \"            with autocast():\\n\",\n    \"                net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"                lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"                loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1))\\n\",\n    \"\\n\",\n    \"                # 日志记录\\n\",\n    \"                accum_loss += loss.item()\\n\",\n    \"                # 反向传播\\n\",\n    \"                scaler.scale(loss).backward()\\n\",\n    \"\\n\",\n    \"        scaler.unscale_(optimizer)\\n\",\n    \"        optimizer.multiply_grads(1 / (sample_size or 1.0)) # (sample_size or 1.0) 处理零梯度的情况\\n\",\n    \"        gnorm = nn.utils.clip_grad_norm_(model.parameters(), config.clip_norm) # 梯度裁剪防止梯度爆炸\\n\",\n    \"\\n\",\n    \"        scaler.step(optimizer)\\n\",\n    \"        scaler.update()\\n\",\n    \"\\n\",\n    \"        # 日志记录\\n\",\n    \"        loss_print = accum_loss/sample_size\\n\",\n    \"        stats[\\\"loss\\\"].append(loss_print)\\n\",\n    \"        progress.set_postfix(loss=loss_print)\\n\",\n    \"        if config.use_wandb:\\n\",\n    \"            wandb.log({\\n\",\n    \"                \\\"train/loss\\\": loss_print,\\n\",\n    \"                \\\"train/grad_norm\\\": gnorm.item(),\\n\",\n    \"                \\\"train/lr\\\": optimizer.rate(),\\n\",\n    \"                \\\"train/sample_size\\\": sample_size,\\n\",\n    \"            })\\n\",\n    \"\\n\",\n    \"    loss_print = np.mean(stats[\\\"loss\\\"])\\n\",\n    \"    logger.info(f\\\"training loss: {loss_print:.4f}\\\")\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Gt1lX3DRO_yU\"\n   },\n   \"source\": [\n    \"## 验证 & 推测\\n\",\n    \"为了防止过拟合，每个训练周期都需要进行验证，以验证模型在未见过的数据上的性能。\\n\",\n    \"- 该过程与训练基本相同，只是多了一个推测步骤。\\n\",\n    \"- 在验证后，我们可以保存模型的权重。\\n\",\n    \"\\n\",\n    \"仅凭验证损失无法描述模型的实际性能\\n\",\n    \"- 基于当前模型直接生成翻译假设，然后使用参考翻译计算BLEU\\n\",\n    \"- 我们也可以手动检查假设的质量\\n\",\n    \"- 我们使用 fairseq 的序列生成器进行集束搜索以生成翻译假设。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"2og80HYQPAKq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# fairseq 的集束搜索生成器\\n\",\n    \"# 给定模型和输入序列，通过集束搜索生成翻译假设\\n\",\n    \"sequence_generator = task.build_generator([model], config)\\n\",\n    \"\\n\",\n    \"def decode(toks, dictionary):\\n\",\n    \"    # 将 Tensor 转换为人类可读的句子\\n\",\n    \"    s = dictionary.string(\\n\",\n    \"        toks.int().cpu(),\\n\",\n    \"        config.post_process,\\n\",\n    \"    )\\n\",\n    \"    return s if s else \\\"<unk>\\\"\\n\",\n    \"\\n\",\n    \"def inference_step(sample, model):\\n\",\n    \"    gen_out = sequence_generator.generate([model], sample)\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"    for i in range(len(gen_out)):\\n\",\n    \"        # 对于每个样本，收集输入、假设和参考，稍后用于计算 BLEU\\n\",\n    \"        srcs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"net_input\\\"][\\\"src_tokens\\\"][i], task.source_dictionary.pad()),\\n\",\n    \"            task.source_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        hyps.append(decode(\\n\",\n    \"            gen_out[i][0][\\\"tokens\\\"], # 0 表示使用集束中的最佳假设\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"        refs.append(decode(\\n\",\n    \"            utils.strip_pad(sample[\\\"target\\\"][i], task.target_dictionary.pad()),\\n\",\n    \"            task.target_dictionary,\\n\",\n    \"        ))\\n\",\n    \"    return srcs, hyps, refs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"y1o7LeDkPDsd\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import shutil\\n\",\n    \"import sacrebleu\\n\",\n    \"\\n\",\n    \"def validate(model, task, criterion, log_to_wandb=True):\\n\",\n    \"    logger.info('begin validation')\\n\",\n    \"    itr = load_data_iterator(task, \\\"valid\\\", 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    stats = {\\\"loss\\\":[], \\\"bleu\\\": 0, \\\"srcs\\\":[], \\\"hyps\\\":[], \\\"refs\\\":[]}\\n\",\n    \"    srcs = []\\n\",\n    \"    hyps = []\\n\",\n    \"    refs = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"validation\\\", leave=False)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"            net_output = model.forward(**sample[\\\"net_input\\\"])\\n\",\n    \"\\n\",\n    \"            lprobs = F.log_softmax(net_output[0], -1)\\n\",\n    \"            target = sample[\\\"target\\\"]\\n\",\n    \"            sample_size = sample[\\\"ntokens\\\"]\\n\",\n    \"            loss = criterion(lprobs.view(-1, lprobs.size(-1)), target.view(-1)) / sample_size\\n\",\n    \"            progress.set_postfix(valid_loss=loss.item())\\n\",\n    \"            stats[\\\"loss\\\"].append(loss)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"            srcs.extend(s)\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            refs.extend(r)\\n\",\n    \"\\n\",\n    \"    tok = 'zh' if task.cfg.target_lang == 'zh' else '13a'\\n\",\n    \"    stats[\\\"loss\\\"] = torch.stack(stats[\\\"loss\\\"]).mean().item()\\n\",\n    \"    stats[\\\"bleu\\\"] = sacrebleu.corpus_bleu(hyps, [refs], tokenize=tok) # 計算BLEU score\\n\",\n    \"    stats[\\\"srcs\\\"] = srcs\\n\",\n    \"    stats[\\\"hyps\\\"] = hyps\\n\",\n    \"    stats[\\\"refs\\\"] = refs\\n\",\n    \"\\n\",\n    \"    if config.use_wandb and log_to_wandb:\\n\",\n    \"        wandb.log({\\n\",\n    \"            \\\"valid/loss\\\": stats[\\\"loss\\\"],\\n\",\n    \"            \\\"valid/bleu\\\": stats[\\\"bleu\\\"].score,\\n\",\n    \"        }, commit=False)\\n\",\n    \"\\n\",\n    \"    showid = np.random.randint(len(hyps))\\n\",\n    \"    logger.info(\\\"example source: \\\" + srcs[showid])\\n\",\n    \"    logger.info(\\\"example hypothesis: \\\" + hyps[showid])\\n\",\n    \"    logger.info(\\\"example reference: \\\" + refs[showid])\\n\",\n    \"\\n\",\n    \"    # 显示 bleu 结果\\n\",\n    \"    logger.info(f\\\"validation loss:\\\\t{stats['loss']:.4f}\\\")\\n\",\n    \"    logger.info(stats[\\\"bleu\\\"].format())\\n\",\n    \"    return stats\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1sRF6nd4PGEE\"\n   },\n   \"source\": [\n    \"# 保存和加载模型权重\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"edBuLlkuPGr9\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def validate_and_save(model, task, criterion, optimizer, epoch, save=True):\\n\",\n    \"    stats = validate(model, task, criterion)\\n\",\n    \"    bleu = stats['bleu']\\n\",\n    \"    loss = stats['loss']\\n\",\n    \"    if save:\\n\",\n    \"        # 保存 epoch checkpoints\\n\",\n    \"        savedir = Path(config.savedir).absolute()\\n\",\n    \"        savedir.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"        check = {\\n\",\n    \"            \\\"model\\\": model.state_dict(),\\n\",\n    \"            \\\"stats\\\": {\\\"bleu\\\": bleu.score, \\\"loss\\\": loss},\\n\",\n    \"            \\\"optim\\\": {\\\"step\\\": optimizer._step}\\n\",\n    \"        }\\n\",\n    \"        torch.save(check, savedir/f\\\"checkpoint{epoch}.pt\\\")\\n\",\n    \"        shutil.copy(savedir/f\\\"checkpoint{epoch}.pt\\\", savedir/f\\\"checkpoint_last.pt\\\")\\n\",\n    \"        logger.info(f\\\"saved epoch checkpoint: {savedir}/checkpoint{epoch}.pt\\\")\\n\",\n    \"\\n\",\n    \"        # 保存 epoch 样本\\n\",\n    \"        with open(savedir/f\\\"samples{epoch}.{config.source_lang}-{config.target_lang}.txt\\\", \\\"w\\\") as f:\\n\",\n    \"            for s, h in zip(stats[\\\"srcs\\\"], stats[\\\"hyps\\\"]):\\n\",\n    \"                f.write(f\\\"{s}\\\\t{h}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"        # 获取最佳的验证 bleu\\n\",\n    \"        if getattr(validate_and_save, \\\"best_bleu\\\", 0) < bleu.score:\\n\",\n    \"            validate_and_save.best_bleu = bleu.score\\n\",\n    \"            torch.save(check, savedir/f\\\"checkpoint_best.pt\\\")\\n\",\n    \"\\n\",\n    \"        del_file = savedir / f\\\"checkpoint{epoch - config.keep_last_epochs}.pt\\\"\\n\",\n    \"        if del_file.exists():\\n\",\n    \"            del_file.unlink()\\n\",\n    \"\\n\",\n    \"    return stats\\n\",\n    \"\\n\",\n    \"def try_load_checkpoint(model, optimizer=None, name=None):\\n\",\n    \"    name = name if name else \\\"checkpoint_last.pt\\\"\\n\",\n    \"    checkpath = Path(config.savedir)/name\\n\",\n    \"    if checkpath.exists():\\n\",\n    \"        check = torch.load(checkpath)\\n\",\n    \"        model.load_state_dict(check[\\\"model\\\"])\\n\",\n    \"        stats = check[\\\"stats\\\"]\\n\",\n    \"        step = \\\"unknown\\\"\\n\",\n    \"        if optimizer != None:\\n\",\n    \"            optimizer._step = step = check[\\\"optim\\\"][\\\"step\\\"]\\n\",\n    \"        logger.info(f\\\"loaded checkpoint {checkpath}: step={step} loss={stats['loss']} bleu={stats['bleu']}\\\")\\n\",\n    \"    else:\\n\",\n    \"        logger.info(f\\\"no checkpoints found at {checkpath}!\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyIFpibfPJ5u\"\n   },\n   \"source\": [\n    \"# Main\\n\",\n    \"## 训练循环\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"hu7RZbCUPKQr\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"model = model.to(device=device)\\n\",\n    \"criterion = criterion.to(device=device)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"5xxlJxU2PeAo\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"logger.info(\\\"task: {}\\\".format(task.__class__.__name__))\\n\",\n    \"logger.info(\\\"encoder: {}\\\".format(model.encoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"decoder: {}\\\".format(model.decoder.__class__.__name__))\\n\",\n    \"logger.info(\\\"criterion: {}\\\".format(criterion.__class__.__name__))\\n\",\n    \"logger.info(\\\"optimizer: {}\\\".format(optimizer.__class__.__name__))\\n\",\n    \"logger.info(\\n\",\n    \"    \\\"num. model params: {:,} (num. trained: {:,})\\\".format(\\n\",\n    \"        sum(p.numel() for p in model.parameters()),\\n\",\n    \"        sum(p.numel() for p in model.parameters() if p.requires_grad),\\n\",\n    \"    )\\n\",\n    \")\\n\",\n    \"logger.info(f\\\"max tokens per batch = {config.max_tokens}, accumulate steps = {config.accum_steps}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSPRqpQUPfaX\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"epoch_itr = load_data_iterator(task, \\\"train\\\", config.start_epoch, config.max_tokens, config.num_workers)\\n\",\n    \"try_load_checkpoint(model, optimizer, name=config.resume)\\n\",\n    \"while epoch_itr.next_epoch_idx <= config.max_epoch:\\n\",\n    \"    # 训练一个 epoch\\n\",\n    \"    train_one_epoch(epoch_itr, model, task, criterion, optimizer, config.accum_steps)\\n\",\n    \"    stats = validate_and_save(model, task, criterion, optimizer, epoch=epoch_itr.epoch)\\n\",\n    \"    logger.info(\\\"end of epoch {}\\\".format(epoch_itr.epoch))\\n\",\n    \"    epoch_itr = load_data_iterator(task, \\\"train\\\", epoch_itr.next_epoch_idx, config.max_tokens, config.num_workers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"KyjRwllxPjtf\"\n   },\n   \"source\": [\n    \"# Submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"N70Gc6smPi1d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 对几个 checkpoints 进行平均可以产生类似于 ensemble 的效果\\n\",\n    \"checkdir=config.savedir\\n\",\n    \"!python ./fairseq/scripts/average_checkpoints.py \\\\\\n\",\n    \"--inputs {checkdir} \\\\\\n\",\n    \"--num-epoch-checkpoints 5 \\\\\\n\",\n    \"--output {checkdir}/avg_last_5_checkpoint.pt\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"BAGMiun8PnZy\"\n   },\n   \"source\": [\n    \"## 确定用于生成 submission 的模型权重\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"tvRdivVUPnsU\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# checkpoint_last.pt : 最新的 epoch\\n\",\n    \"# checkpoint_best.pt : 最高的验证 BLEU\\n\",\n    \"# avg_last_5_checkpoint.pt: 最近 5 次 epoch 的平均值\\n\",\n    \"try_load_checkpoint(model, name=\\\"avg_last_5_checkpoint.pt\\\")\\n\",\n    \"validate(model, task, criterion, log_to_wandb=False)\\n\",\n    \"None\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ioAIflXpPsxt\"\n   },\n   \"source\": [\n    \"## 生成预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"oYMxA8FlPtIq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def generate_prediction(model, task, split=\\\"test\\\", outfile=\\\"./prediction.txt\\\"):\\n\",\n    \"    task.load_dataset(split=split, epoch=1)\\n\",\n    \"    itr = load_data_iterator(task, split, 1, config.max_tokens, config.num_workers).next_epoch_itr(shuffle=False)\\n\",\n    \"\\n\",\n    \"    idxs = []\\n\",\n    \"    hyps = []\\n\",\n    \"\\n\",\n    \"    model.eval()\\n\",\n    \"    progress = tqdm.tqdm(itr, desc=f\\\"prediction\\\")\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for i, sample in enumerate(progress):\\n\",\n    \"            # 验证损失\\n\",\n    \"            sample = utils.move_to_cuda(sample, device=device)\\n\",\n    \"\\n\",\n    \"            # 做推测\\n\",\n    \"            s, h, r = inference_step(sample, model)\\n\",\n    \"\\n\",\n    \"            hyps.extend(h)\\n\",\n    \"            idxs.extend(list(sample['id']))\\n\",\n    \"\\n\",\n    \"    # 根据预处理前的顺序进行排序\\n\",\n    \"    hyps = [x for _,x in sorted(zip(idxs,hyps))]\\n\",\n    \"\\n\",\n    \"    with open(outfile, \\\"w\\\") as f:\\n\",\n    \"        for h in hyps:\\n\",\n    \"            f.write(h+\\\"\\\\n\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Le4RFWXxjmm0\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"generate_prediction(model, task)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"wvenyi6BPwnD\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"raise\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"1z0cJE-wPzaU\"\n   },\n   \"source\": [\n    \"# Back-translation\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5-7uPJ2CP0sm\"\n   },\n   \"source\": [\n    \"## 训练一个 backward translation 模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ppGHjg2ZP3sV\"\n   },\n   \"source\": [\n    \"1. 将 **config** 中的 source_lang 和 target_lang 进行切换\\n\",\n    \"2. 更改 **config** 中的 savedir(例如: \\\"./checkpoints/transformer-back\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"waTGz29UP6WI\"\n   },\n   \"source\": [\n    \"## 用后向模型生成人造数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"sIeTsPexP8FL\"\n   },\n   \"source\": [\n    \"### 下载单语言数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"i7N4QlsbP8fh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_dataset_name = 'mono'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"396saD9-QBPY\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"mono_prefix = Path(data_dir).absolute() / mono_dataset_name\\n\",\n    \"mono_prefix.mkdir(parents=True, exist_ok=True)\\n\",\n    \"\\n\",\n    \"urls = (\\n\",\n    \"    \\\"https://github.com/figisiwirf/ml2023-hw5-dataset/releases/download/v1.0.1/ted_zh_corpus.deduped.gz\\\",\\n\",\n    \")\\n\",\n    \"file_names = (\\n\",\n    \"    'ted_zh_corpus.deduped.gz',\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"for u, f in zip(urls, file_names):\\n\",\n    \"    path = mono_prefix/f\\n\",\n    \"    if not path.exists():\\n\",\n    \"        !wget {u} -O {path}\\n\",\n    \"    else:\\n\",\n    \"        print(f'{f} is exist, skip downloading')\\n\",\n    \"    if path.suffix == \\\".tgz\\\":\\n\",\n    \"        !tar -xvf {path} -C {prefix}\\n\",\n    \"    elif path.suffix == \\\".zip\\\":\\n\",\n    \"        !unzip -o {path} -d {prefix}\\n\",\n    \"    elif path.suffix == \\\".gz\\\":\\n\",\n    \"        !gzip -fkd {path}\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"JOVQRHzGQU4-\"\n   },\n   \"source\": [\n    \"### TODO: 清洗语料\\n\",\n    \"\\n\",\n    \"1. 移除太长或者太短的句子\\n\",\n    \"2. 统一标点符号\\n\",\n    \"\\n\",\n    \"提示: 你可以使用之前定义的 clean_s() 来执行此操作\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"eIYmxfUOQSov\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"jegH0bvMQVmR\"\n   },\n   \"source\": [\n    \"### TODO: 子词单位\\n\",\n    \"\\n\",\n    \"使用后向模型的 spm 模型将数据标记为子词单位\\n\",\n    \"\\n\",\n    \"提示: spm 模型位于 DATA/raw-data/\\\\[dataset\\\\]/spm\\\\[vocab_num\\\\].model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"vqgR4uUMQZGY\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"a65glBVXQZiE\"\n   },\n   \"source\": [\n    \"### 二值化\\n\",\n    \"\\n\",\n    \"使用 fairseq 去二值化数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"b803qA5aQaEu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"binpath = Path('./DATA/data-bin', mono_dataset_name)\\n\",\n    \"src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"tgt_dict_file = src_dict_file\\n\",\n    \"monopref = str(mono_prefix/\\\"mono.tok\\\") # whatever filepath you get after applying subword tokenization\\n\",\n    \"if binpath.exists():\\n\",\n    \"    print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"else:\\n\",\n    \"    !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"        --source-lang 'zh'\\\\\\n\",\n    \"        --target-lang 'en'\\\\\\n\",\n    \"        --trainpref {monopref}\\\\\\n\",\n    \"        --destdir {binpath}\\\\\\n\",\n    \"        --srcdict {src_dict_file}\\\\\\n\",\n    \"        --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"        --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"smA0JraEQdxz\"\n   },\n   \"source\": [\n    \"### TODO: 用后向模型生成人造数据\\n\",\n    \"\\n\",\n    \"将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"\\n\",\n    \"例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"\\n\",\n    \"然后你可以使用 'generate_prediction(model, task, split=\\\"split_name\\\")' 来生成翻译的预测\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"jvaOVHeoQfkB\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将二进制化的单语言数据添加到原始数据目录中，并将其命名为 \\\"split_name\\\"\\n\",\n    \"# 例如: ./DATA/data-bin/ted2020/\\\\[split_name\\\\].zh-en.\\\\[\\\"en\\\", \\\"zh\\\"\\\\].\\\\[\\\"bin\\\", \\\"idx\\\"\\\\]\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.bin ./DATA/data-bin/ted2020/mono.zh-en.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.zh.idx ./DATA/data-bin/ted2020/mono.zh-en.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.bin ./DATA/data-bin/ted2020/mono.zh-en.en.bin\\n\",\n    \"!cp ./DATA/data-bin/mono/train.zh-en.en.idx ./DATA/data-bin/ted2020/mono.zh-en.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"fFEkxPu-Qhlc\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# hint: 在 split='mono' 上做预测来创建 prediction_file\\n\",\n    \"# generate_prediction( ... ,split=... ,outfile=... )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Jn4XeawpQjLk\"\n   },\n   \"source\": [\n    \"### TODO: 创建新的数据集\\n\",\n    \"\\n\",\n    \"1. 将预测数据和单语数据结合\\n\",\n    \"2. 使用原始的 spm 模型将数据 tokenize 为子词单位\\n\",\n    \"3. 使用 fairseq 将数据二值化\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"3R35JTaTQjkm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 将 prediction_file (.en) 和 mono.zh (.zh) 结合为新的数据集\\n\",\n    \"#\\n\",\n    \"# 提示: 用 spm 模型 tokenize prediction_file\\n\",\n    \"# spm_model.encode(line, out_type=str)\\n\",\n    \"# 输出: ./DATA/rawdata/mono/mono.tok.en & mono.tok.zh\\n\",\n    \"#\\n\",\n    \"# 提示: 使用 fairseq 再次二值化这两个文件\\n\",\n    \"# binpath = Path('./DATA/data-bin/synthetic')\\n\",\n    \"# src_dict_file = './DATA/data-bin/ted2020/dict.en.txt'\\n\",\n    \"# tgt_dict_file = src_dict_file\\n\",\n    \"# monopref = './DATA/rawdata/mono/mono.tok' # or whatever path after applying subword tokenization, w/o the suffix (.zh/.en)\\n\",\n    \"# if binpath.exists():\\n\",\n    \"#     print(binpath, \\\"exists, will not overwrite!\\\")\\n\",\n    \"# else:\\n\",\n    \"#     !python -m fairseq_cli.preprocess\\\\\\n\",\n    \"#         --source-lang 'zh'\\\\\\n\",\n    \"#         --target-lang 'en'\\\\\\n\",\n    \"#         --trainpref {monopref}\\\\\\n\",\n    \"#         --destdir {binpath}\\\\\\n\",\n    \"#         --srcdict {src_dict_file}\\\\\\n\",\n    \"#         --tgtdict {tgt_dict_file}\\\\\\n\",\n    \"#         --workers 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"MSkse1tyQnsR\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 根据上面准备的所有文件创建一个新的数据集\\n\",\n    \"!cp -r ./DATA/data-bin/ted2020/ ./DATA/data-bin/ted2020_with_mono/\\n\",\n    \"\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.zh.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.zh.idx\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.bin ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.bin\\n\",\n    \"!cp ./DATA/data-bin/synthetic/train.zh-en.en.idx ./DATA/data-bin/ted2020_with_mono/train1.en-zh.en.idx\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"YVdxVGO3QrSs\"\n   },\n   \"source\": [\n    \"创建新数据集 \\\"ted2020_with_mono\\\"\\n\",\n    \"\\n\",\n    \"1. 修改 **config** 中的 datadir (\\\"./DATA/data-bin/ted2020_with_mono\\\")\\n\",\n    \"2. 将 **config** 中的 source_lang 和 target_lang 进行切换 (\\\"en\\\", \\\"zh\\\")\\n\",\n    \"2. 更改 **config** 中的 savedir (例如: \\\"./checkpoints/transformer-bt\\\")\\n\",\n    \"3. 训练模型\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"z-m3IsoJrhmd\"\n   },\n   \"source\": [\n    \"# References\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"_CZU2beUQtl3\"\n   },\n   \"source\": [\n    \"1. <a name=ott2019fairseq></a>Ott, M., Edunov, S., Baevski, A., Fan, A., Gross, S., Ng, N., ... & Auli, M. (2019, June). fairseq: A Fast, Extensible Toolkit for Sequence Modeling. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations) (pp. 48-53).\\n\",\n    \"2. <a name=vaswani2017></a>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017, December). Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (pp. 6000-6010).\\n\",\n    \"3. <a name=reimers-2020-multilingual-sentence-bert></a>Reimers, N., & Gurevych, I. (2020, November). Making Monolingual Sentence Embeddings Multilingual Using Knowledge Distillation. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp. 4512-4525).\\n\",\n    \"4. <a name=tiedemann2012parallel></a>Tiedemann, J. (2012, May). Parallel Data, Tools and Interfaces in OPUS. In Lrec (Vol. 2012, pp. 2214-2218).\\n\",\n    \"5. <a name=kudo-richardson-2018-sentencepiece></a>Kudo, T., & Richardson, J. (2018, November). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 66-71).\\n\",\n    \"6. <a name=sennrich-etal-2016-improving></a>Sennrich, R., Haddow, B., & Birch, A. (2016, August). Improving Neural Machine Translation Models with Monolingual Data. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 86-96).\\n\",\n    \"7. <a name=edunov-etal-2018-understanding></a>Edunov, S., Ott, M., Auli, M., & Grangier, D. (2018). Understanding Back-Translation at Scale. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (pp. 489-500).\\n\",\n    \"8. https://github.com/ajinkyakulkarni14/TED-Multilingual-Parallel-Corpus\\n\",\n    \"9. https://ithelp.ithome.com.tw/articles/10233122\\n\",\n    \"10. https://nlp.seas.harvard.edu/2018/04/03/attention.html\\n\",\n    \"11. https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW05/HW05.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Rrfm6iLJQ0tS\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"collapsed_sections\": [\n    \"nKb4u67-sT_Z\",\n    \"n1rwQysTsdJq\",\n    \"59si_C0Wsms7\",\n    \"oOpG4EBRLwe_\",\n    \"6ZlE_1JnMv56\",\n    \"UDAPmxjRNEEL\",\n    \"ce5n4eS7NQNy\",\n    \"rUB9f1WCNgMH\",\n    \"VFJlkOMONsc6\",\n    \"Gt1lX3DRO_yU\",\n    \"BAGMiun8PnZy\",\n    \"JOVQRHzGQU4-\",\n    \"jegH0bvMQVmR\",\n    \"a65glBVXQZiE\",\n    \"smA0JraEQdxz\",\n    \"Jn4XeawpQjLk\",\n    \"z-m3IsoJrhmd\"\n   ],\n   \"provenance\": []\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW06/HW06_Boss_0.835.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"HhIgGq3za0yh\",\n    \"jp-MarkdownHeadingCollapsed\": true\n   },\n   \"source\": [\n    \"\\n\",\n    \"# HW6 Diffusion Model\\n\",\n    \"\\n\",\n    \"**Sources:**\\n\",\n    \"- Github implementation [Denoising Diffusion Pytorch](https://github.com/lucidrains/denoising-diffusion-pytorch)\\n\",\n    \"- Papers on Diffusion models ([Dhariwal, Nichol, 2021], [Ho et al., 2020] ect.)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"wLHSIArLcFK0\"\n   },\n   \"source\": [\n    \"## Import Packages and Set Seeds\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"id\": \"s1xegyILIuLz\",\n    \"outputId\": \"b71ce929-c0bd-4ff0-ff53-cb01b421c2e9\",\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\\n\",\n      \"Requirement already satisfied: einops in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (0.8.0)\\n\",\n      \"Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\\n\",\n      \"Requirement already satisfied: transformers in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (4.41.2)\\n\",\n      \"Requirement already satisfied: filelock in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (3.14.0)\\n\",\n      \"Requirement already satisfied: huggingface-hub<1.0,>=0.23.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (0.23.4)\\n\",\n      \"Requirement already satisfied: numpy>=1.17 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (1.26.4)\\n\",\n      \"Requirement already satisfied: packaging>=20.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (24.0)\\n\",\n      \"Requirement already satisfied: pyyaml>=5.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (6.0.1)\\n\",\n      \"Requirement already satisfied: regex!=2019.12.17 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (2024.5.15)\\n\",\n      \"Requirement already satisfied: requests in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (2.32.3)\\n\",\n      \"Requirement already satisfied: tokenizers<0.20,>=0.19 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (0.19.1)\\n\",\n      \"Requirement already satisfied: safetensors>=0.4.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (0.4.3)\\n\",\n      \"Requirement already satisfied: tqdm>=4.27 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from transformers) (4.65.2)\\n\",\n      \"Requirement already satisfied: fsspec>=2023.5.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from huggingface-hub<1.0,>=0.23.0->transformers) (2024.3.1)\\n\",\n      \"Requirement already satisfied: typing-extensions>=3.7.4.3 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from huggingface-hub<1.0,>=0.23.0->transformers) (4.11.0)\\n\",\n      \"Requirement already satisfied: charset-normalizer<4,>=2 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from requests->transformers) (3.3.2)\\n\",\n      \"Requirement already satisfied: idna<4,>=2.5 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from requests->transformers) (3.7)\\n\",\n      \"Requirement already satisfied: urllib3<3,>=1.21.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from requests->transformers) (1.26.18)\\n\",\n      \"Requirement already satisfied: certifi>=2017.4.17 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from requests->transformers) (2024.2.2)\\n\",\n      \"Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\\n\",\n      \"Requirement already satisfied: ema_pytorch in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (0.5.0)\\n\",\n      \"Requirement already satisfied: beartype in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from ema_pytorch) (0.18.5)\\n\",\n      \"Requirement already satisfied: torch>=1.6 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from ema_pytorch) (2.3.0)\\n\",\n      \"Requirement already satisfied: filelock in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (3.14.0)\\n\",\n      \"Requirement already satisfied: typing-extensions>=4.8.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (4.11.0)\\n\",\n      \"Requirement already satisfied: sympy in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (1.12)\\n\",\n      \"Requirement already satisfied: networkx in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (3.3)\\n\",\n      \"Requirement already satisfied: jinja2 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (3.1.4)\\n\",\n      \"Requirement already satisfied: fsspec in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (2024.3.1)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (8.9.2.26)\\n\",\n      \"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (12.1.3.1)\\n\",\n      \"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (11.0.2.54)\\n\",\n      \"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (10.3.2.106)\\n\",\n      \"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (11.4.5.107)\\n\",\n      \"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (12.1.0.106)\\n\",\n      \"Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (2.20.5)\\n\",\n      \"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (12.1.105)\\n\",\n      \"Requirement already satisfied: triton==2.3.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.6->ema_pytorch) (2.3.0)\\n\",\n      \"Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.6->ema_pytorch) (12.4.127)\\n\",\n      \"Requirement already satisfied: MarkupSafe>=2.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from jinja2->torch>=1.6->ema_pytorch) (2.1.5)\\n\",\n      \"Requirement already satisfied: mpmath>=0.19 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from sympy->torch>=1.6->ema_pytorch) (1.3.0)\\n\",\n      \"Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\\n\",\n      \"Requirement already satisfied: accelerate in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (0.31.0)\\n\",\n      \"Requirement already satisfied: numpy>=1.17 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from accelerate) (1.26.4)\\n\",\n      \"Requirement already satisfied: packaging>=20.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from accelerate) (24.0)\\n\",\n      \"Requirement already satisfied: psutil in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from accelerate) (5.9.8)\\n\",\n      \"Requirement already satisfied: pyyaml in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from accelerate) (6.0.1)\\n\",\n      \"Requirement already satisfied: torch>=1.10.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from accelerate) (2.3.0)\\n\",\n      \"Requirement already satisfied: huggingface-hub in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from accelerate) (0.23.4)\\n\",\n      \"Requirement already satisfied: safetensors>=0.3.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from accelerate) (0.4.3)\\n\",\n      \"Requirement already satisfied: filelock in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.14.0)\\n\",\n      \"Requirement already satisfied: typing-extensions>=4.8.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (4.11.0)\\n\",\n      \"Requirement already satisfied: sympy in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (1.12)\\n\",\n      \"Requirement already satisfied: networkx in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.3)\\n\",\n      \"Requirement already satisfied: jinja2 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.1.4)\\n\",\n      \"Requirement already satisfied: fsspec in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (2024.3.1)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (8.9.2.26)\\n\",\n      \"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.3.1)\\n\",\n      \"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (11.0.2.54)\\n\",\n      \"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (10.3.2.106)\\n\",\n      \"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (11.4.5.107)\\n\",\n      \"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.0.106)\\n\",\n      \"Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (2.20.5)\\n\",\n      \"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\\n\",\n      \"Requirement already satisfied: triton==2.3.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (2.3.0)\\n\",\n      \"Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.10.0->accelerate) (12.4.127)\\n\",\n      \"Requirement already satisfied: requests in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from huggingface-hub->accelerate) (2.32.3)\\n\",\n      \"Requirement already satisfied: tqdm>=4.42.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from huggingface-hub->accelerate) (4.65.2)\\n\",\n      \"Requirement already satisfied: MarkupSafe>=2.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from jinja2->torch>=1.10.0->accelerate) (2.1.5)\\n\",\n      \"Requirement already satisfied: charset-normalizer<4,>=2 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from requests->huggingface-hub->accelerate) (3.3.2)\\n\",\n      \"Requirement already satisfied: idna<4,>=2.5 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from requests->huggingface-hub->accelerate) (3.7)\\n\",\n      \"Requirement already satisfied: urllib3<3,>=1.21.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from requests->huggingface-hub->accelerate) (1.26.18)\\n\",\n      \"Requirement already satisfied: certifi>=2017.4.17 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from requests->huggingface-hub->accelerate) (2024.2.2)\\n\",\n      \"Requirement already satisfied: mpmath>=0.19 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from sympy->torch>=1.10.0->accelerate) (1.3.0)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!pip install einops\\n\",\n    \"!pip install transformers\\n\",\n    \"!pip install ema_pytorch\\n\",\n    \"!pip install accelerate\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"id\": \"LQnlc27k7Aiw\",\n    \"outputId\": \"122e675a-a91b-4fa3-d56f-1f6bb38bc094\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import math\\n\",\n    \"import copy\\n\",\n    \"from pathlib import Path\\n\",\n    \"from random import random\\n\",\n    \"from functools import partial\\n\",\n    \"from collections import namedtuple\\n\",\n    \"from multiprocessing import cpu_count\\n\",\n    \"\\n\",\n    \"import torch\\n\",\n    \"from torch import nn, einsum\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from torch.utils.data import Dataset, DataLoader\\n\",\n    \"\\n\",\n    \"from torch.optim import Adam\\n\",\n    \"\\n\",\n    \"import torchvision\\n\",\n    \"from torchvision import transforms as T, utils\\n\",\n    \"\\n\",\n    \"from einops import rearrange, reduce, repeat\\n\",\n    \"from einops.layers.torch import Rearrange\\n\",\n    \"\\n\",\n    \"from PIL import Image\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"from ema_pytorch import EMA\\n\",\n    \"\\n\",\n    \"from accelerate import Accelerator, DataLoaderConfiguration\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import os\\n\",\n    \"\\n\",\n    \"# Gradescope – Question 1\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import torchvision.utils as vutils\\n\",\n    \"\\n\",\n    \"torch.backends.cudnn.benchmark = True\\n\",\n    \"torch.manual_seed(4096)\\n\",\n    \"\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(4096)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Rj17psVw7Shg\"\n   },\n   \"source\": [\n    \"## Step 1: Forward process (Noise scheduler)\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"id\": \"qWw50ui9IZ5q\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def linear_beta_schedule(timesteps):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    linear schedule, proposed in original ddpm paper\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    scale = 1000 / timesteps\\n\",\n    \"    beta_start = scale * 0.0001\\n\",\n    \"    beta_end = scale * 0.02\\n\",\n    \"    return torch.linspace(beta_start, beta_end, timesteps, dtype = torch.float64)\\n\",\n    \"\\n\",\n    \"def cosine_beta_schedule(timesteps, s=0.008): # Strong\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    cosine schedule as proposed in https://openreview.net/forum?id=-NEXDKk8gZ\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    steps = timesteps + 1\\n\",\n    \"    x = torch.linspace(0, timesteps, steps)\\n\",\n    \"    alphas_cumprod = torch.cos((x / timesteps + s) / (1 + s) * math.pi * 0.5) ** 2\\n\",\n    \"    alphas_cumprod = alphas_cumprod / alphas_cumprod[0]\\n\",\n    \"    betas = 1 - (alphas_cumprod[1:] / alphas_cumprod[:-1])\\n\",\n    \"    return torch.clip(betas, 0.0001, 0.9999)\\n\",\n    \"\\n\",\n    \"def sigmoid_beta_schedule(timesteps, start = -3, end = 3, tau = 1, clamp_min = 1e-5):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    sigmoid schedule\\n\",\n    \"    proposed in https://arxiv.org/abs/2212.11972 - Figure 8\\n\",\n    \"    better for images > 64x64, when used during training\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    steps = timesteps + 1\\n\",\n    \"    t = torch.linspace(0, timesteps, steps, dtype = torch.float64) / timesteps\\n\",\n    \"    v_start = torch.tensor(start / tau).sigmoid()\\n\",\n    \"    v_end = torch.tensor(end / tau).sigmoid()\\n\",\n    \"    alphas_cumprod = (-((t * (end - start) + start) / tau).sigmoid() + v_end) / (v_end - v_start)\\n\",\n    \"    alphas_cumprod = alphas_cumprod / alphas_cumprod[0]\\n\",\n    \"    betas = 1 - (alphas_cumprod[1:] / alphas_cumprod[:-1])\\n\",\n    \"    return torch.clip(betas, 0, 0.999)\\n\",\n    \"    \\n\",\n    \"def extract(a, t, x_shape):\\n\",\n    \"    b, *_ = t.shape\\n\",\n    \"    out = a.gather(-1, t)\\n\",\n    \"    return out.reshape(b, *((1,) * (len(x_shape) - 1)))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Vt6JSKawk7_b\"\n   },\n   \"source\": [\n    \"Create dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"id\": \"uuckjpW_k1LN\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Dataset(Dataset):\\n\",\n    \"    def __init__(\\n\",\n    \"        self,\\n\",\n    \"        folder,\\n\",\n    \"        image_size\\n\",\n    \"    ):\\n\",\n    \"        self.folder = folder\\n\",\n    \"        self.image_size = image_size\\n\",\n    \"        self.paths = [p for p in Path(f'{folder}').glob(f'**/*.jpg')]\\n\",\n    \"        #################################\\n\",\n    \"        ## DONE: Data Augmentation ##\\n\",\n    \"        #################################\\n\",\n    \"        \\n\",\n    \"        self.transform = T.Compose([ # Medium\\n\",\n    \"            T.Resize(image_size),\\n\",\n    \"            T.RandomHorizontalFlip(),  # Randomly flip the image horizontally\\n\",\n    \"            T.RandomRotation(10),      # Random rotation\\n\",\n    \"            T.ColorJitter(brightness=0.25, contrast=0.25),  # Slight color adjustments\\n\",\n    \"            T.ToTensor()\\n\",\n    \"        ])\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.paths)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, index):\\n\",\n    \"        path = self.paths[index]\\n\",\n    \"        img = Image.open(path)\\n\",\n    \"        return self.transform(img)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"buW6BaNga-XH\"\n   },\n   \"source\": [\n    \"## Step 2: The backward process = U-Net\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"iYw6u0nJXIWy\"\n   },\n   \"source\": [\n    \"Define some useful functions and U-Net\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"DuJCCZ5dInQq\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def exists(x):\\n\",\n    \"    return x is not None\\n\",\n    \"\\n\",\n    \"def default(val, d):\\n\",\n    \"    if exists(val):\\n\",\n    \"        return val\\n\",\n    \"    return d() if callable(d) else d\\n\",\n    \"\\n\",\n    \"def identity(t, *args, **kwargs):\\n\",\n    \"    return t\\n\",\n    \"\\n\",\n    \"def cycle(dl):\\n\",\n    \"    while True:\\n\",\n    \"        for data in dl:\\n\",\n    \"            yield data\\n\",\n    \"\\n\",\n    \"def has_int_squareroot(num):\\n\",\n    \"    return (math.sqrt(num) ** 2) == num\\n\",\n    \"\\n\",\n    \"def num_to_groups(num, divisor):\\n\",\n    \"    groups = num // divisor\\n\",\n    \"    remainder = num % divisor\\n\",\n    \"    arr = [divisor] * groups\\n\",\n    \"    if remainder > 0:\\n\",\n    \"        arr.append(remainder)\\n\",\n    \"    return arr\\n\",\n    \"\\n\",\n    \"# normalization functions\\n\",\n    \"\\n\",\n    \"def normalize_to_neg_one_to_one(img):\\n\",\n    \"    return img * 2 - 1\\n\",\n    \"\\n\",\n    \"def unnormalize_to_zero_to_one(t):\\n\",\n    \"    return (t + 1) * 0.5\\n\",\n    \"\\n\",\n    \"# small helper modules\\n\",\n    \"\\n\",\n    \"class Residual(nn.Module):\\n\",\n    \"    def __init__(self, fn):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.fn = fn\\n\",\n    \"\\n\",\n    \"    def forward(self, x, *args, **kwargs):\\n\",\n    \"        return self.fn(x, *args, **kwargs) + x\\n\",\n    \"\\n\",\n    \"def Upsample(dim, dim_out = None):\\n\",\n    \"    return nn.Sequential(\\n\",\n    \"        nn.Upsample(scale_factor = 2, mode = 'nearest'),\\n\",\n    \"        nn.Conv2d(dim, default(dim_out, dim), 3, padding = 1)\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"def Downsample(dim, dim_out = None):\\n\",\n    \"    return nn.Sequential(\\n\",\n    \"        Rearrange('b c (h p1) (w p2) -> b (c p1 p2) h w', p1 = 2, p2 = 2),\\n\",\n    \"        nn.Conv2d(dim * 4, default(dim_out, dim), 1)\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"class WeightStandardizedConv2d(nn.Conv2d):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    https://arxiv.org/abs/1903.10520\\n\",\n    \"    weight standardization purportedly works synergistically with group normalization\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        eps = 1e-5 if x.dtype == torch.float32 else 1e-3\\n\",\n    \"\\n\",\n    \"        weight = self.weight\\n\",\n    \"        mean = reduce(weight, 'o ... -> o 1 1 1', 'mean')\\n\",\n    \"        var = reduce(weight, 'o ... -> o 1 1 1', partial(torch.var, unbiased = False))\\n\",\n    \"        normalized_weight = (weight - mean) * (var + eps).rsqrt()\\n\",\n    \"\\n\",\n    \"        return F.conv2d(x, normalized_weight, self.bias, self.stride, self.padding, self.dilation, self.groups)\\n\",\n    \"\\n\",\n    \"class LayerNorm(nn.Module):\\n\",\n    \"    def __init__(self, dim):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.g = nn.Parameter(torch.ones(1, dim, 1, 1))\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        eps = 1e-5 if x.dtype == torch.float32 else 1e-3\\n\",\n    \"        var = torch.var(x, dim = 1, unbiased = False, keepdim = True)\\n\",\n    \"        mean = torch.mean(x, dim = 1, keepdim = True)\\n\",\n    \"        return (x - mean) * (var + eps).rsqrt() * self.g\\n\",\n    \"\\n\",\n    \"class PreNorm(nn.Module):\\n\",\n    \"    def __init__(self, dim, fn):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.fn = fn\\n\",\n    \"        self.norm = LayerNorm(dim)\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.norm(x)\\n\",\n    \"        return self.fn(x)\\n\",\n    \"\\n\",\n    \"# sinusoidal positional embeds\\n\",\n    \"\\n\",\n    \"class SinusoidalPosEmb(nn.Module):\\n\",\n    \"    def __init__(self, dim):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.dim = dim\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        device = x.device\\n\",\n    \"        half_dim = self.dim // 2\\n\",\n    \"        emb = math.log(10000) / (half_dim - 1)\\n\",\n    \"        emb = torch.exp(torch.arange(half_dim, device=device) * -emb)\\n\",\n    \"        emb = x[:, None] * emb[None, :]\\n\",\n    \"        emb = torch.cat((emb.sin(), emb.cos()), dim=-1)\\n\",\n    \"        return emb\\n\",\n    \"\\n\",\n    \"class RandomOrLearnedSinusoidalPosEmb(nn.Module):\\n\",\n    \"    \\\"\\\"\\\" following @crowsonkb 's lead with random (learned optional) sinusoidal pos emb \\\"\\\"\\\"\\n\",\n    \"    \\\"\\\"\\\" https://github.com/crowsonkb/v-diffusion-jax/blob/master/diffusion/models/danbooru_128.py#L8 \\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"    def __init__(self, dim, is_random = False):\\n\",\n    \"        super().__init__()\\n\",\n    \"        assert (dim % 2) == 0\\n\",\n    \"        half_dim = dim // 2\\n\",\n    \"        self.weights = nn.Parameter(torch.randn(half_dim), requires_grad = not is_random)\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = rearrange(x, 'b -> b 1')\\n\",\n    \"        freqs = x * rearrange(self.weights, 'd -> 1 d') * 2 * math.pi\\n\",\n    \"        fouriered = torch.cat((freqs.sin(), freqs.cos()), dim = -1)\\n\",\n    \"        fouriered = torch.cat((x, fouriered), dim = -1)\\n\",\n    \"        return fouriered\\n\",\n    \"\\n\",\n    \"# building block modules\\n\",\n    \"\\n\",\n    \"class Block(nn.Module):\\n\",\n    \"    def __init__(self, dim, dim_out, groups = 8):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.proj = WeightStandardizedConv2d(dim, dim_out, 3, padding = 1)\\n\",\n    \"        self.norm = nn.GroupNorm(groups, dim_out)\\n\",\n    \"        self.act = nn.SiLU()\\n\",\n    \"\\n\",\n    \"    def forward(self, x, scale_shift = None):\\n\",\n    \"        x = self.proj(x)\\n\",\n    \"        x = self.norm(x)\\n\",\n    \"\\n\",\n    \"        if exists(scale_shift):\\n\",\n    \"            scale, shift = scale_shift\\n\",\n    \"            x = x * (scale + 1) + shift\\n\",\n    \"\\n\",\n    \"        x = self.act(x)\\n\",\n    \"        return x\\n\",\n    \"\\n\",\n    \"class ResnetBlock(nn.Module):\\n\",\n    \"    def __init__(self, dim, dim_out, *, time_emb_dim = None, groups = 8):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.mlp = nn.Sequential(\\n\",\n    \"            nn.SiLU(),\\n\",\n    \"            nn.Linear(time_emb_dim, dim_out * 2)\\n\",\n    \"        ) if exists(time_emb_dim) else None\\n\",\n    \"\\n\",\n    \"        self.block1 = Block(dim, dim_out, groups = groups)\\n\",\n    \"        self.block2 = Block(dim_out, dim_out, groups = groups)\\n\",\n    \"        self.res_conv = nn.Conv2d(dim, dim_out, 1) if dim != dim_out else nn.Identity()\\n\",\n    \"\\n\",\n    \"    def forward(self, x, time_emb = None):\\n\",\n    \"\\n\",\n    \"        scale_shift = None\\n\",\n    \"        if exists(self.mlp) and exists(time_emb):\\n\",\n    \"            time_emb = self.mlp(time_emb)\\n\",\n    \"            time_emb = rearrange(time_emb, 'b c -> b c 1 1')\\n\",\n    \"            scale_shift = time_emb.chunk(2, dim = 1)\\n\",\n    \"\\n\",\n    \"        h = self.block1(x, scale_shift = scale_shift)\\n\",\n    \"\\n\",\n    \"        h = self.block2(h)\\n\",\n    \"\\n\",\n    \"        return h + self.res_conv(x)\\n\",\n    \"\\n\",\n    \"class LinearAttention(nn.Module):\\n\",\n    \"    def __init__(self, dim, heads = 4, dim_head = 32):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.scale = dim_head ** -0.5\\n\",\n    \"        self.heads = heads\\n\",\n    \"        hidden_dim = dim_head * heads\\n\",\n    \"        self.to_qkv = nn.Conv2d(dim, hidden_dim * 3, 1, bias = False)\\n\",\n    \"\\n\",\n    \"        self.to_out = nn.Sequential(\\n\",\n    \"            nn.Conv2d(hidden_dim, dim, 1),\\n\",\n    \"            LayerNorm(dim)\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        b, c, h, w = x.shape\\n\",\n    \"        qkv = self.to_qkv(x).chunk(3, dim = 1)\\n\",\n    \"        q, k, v = map(lambda t: rearrange(t, 'b (h c) x y -> b h c (x y)', h = self.heads), qkv)\\n\",\n    \"\\n\",\n    \"        q = q.softmax(dim = -2)\\n\",\n    \"        k = k.softmax(dim = -1)\\n\",\n    \"\\n\",\n    \"        q = q * self.scale\\n\",\n    \"        v = v / (h * w)\\n\",\n    \"\\n\",\n    \"        context = torch.einsum('b h d n, b h e n -> b h d e', k, v)\\n\",\n    \"\\n\",\n    \"        out = torch.einsum('b h d e, b h d n -> b h e n', context, q)\\n\",\n    \"        out = rearrange(out, 'b h c (x y) -> b (h c) x y', h = self.heads, x = h, y = w)\\n\",\n    \"        return self.to_out(out)\\n\",\n    \"\\n\",\n    \"class Attention(nn.Module):\\n\",\n    \"    def __init__(self, dim, heads = 4, dim_head = 32):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.scale = dim_head ** -0.5\\n\",\n    \"        self.heads = heads\\n\",\n    \"        hidden_dim = dim_head * heads\\n\",\n    \"\\n\",\n    \"        self.to_qkv = nn.Conv2d(dim, hidden_dim * 3, 1, bias = False)\\n\",\n    \"        self.to_out = nn.Conv2d(hidden_dim, dim, 1)\\n\",\n    \"\\n\",\n    \"    def forward(self, x):\\n\",\n    \"        b, c, h, w = x.shape\\n\",\n    \"        qkv = self.to_qkv(x).chunk(3, dim = 1)\\n\",\n    \"        q, k, v = map(lambda t: rearrange(t, 'b (h c) x y -> b h c (x y)', h = self.heads), qkv)\\n\",\n    \"\\n\",\n    \"        q = q * self.scale\\n\",\n    \"\\n\",\n    \"        sim = torch.einsum('b h d i, b h d j -> b h i j', q, k)\\n\",\n    \"        attn = sim.softmax(dim = -1)\\n\",\n    \"        out = torch.einsum('b h i j, b h d j -> b h i d', attn, v)\\n\",\n    \"\\n\",\n    \"        out = rearrange(out, 'b h (x y) d -> b (h d) x y', x = h, y = w)\\n\",\n    \"        return self.to_out(out)\\n\",\n    \"\\n\",\n    \"# model\\n\",\n    \"\\n\",\n    \"class Unet(nn.Module):\\n\",\n    \"    def __init__(\\n\",\n    \"        self,\\n\",\n    \"        dim,\\n\",\n    \"        init_dim = None,\\n\",\n    \"        out_dim = None,\\n\",\n    \"        dim_mults=(1, 2, 4, 8),\\n\",\n    \"        channels = 3,\\n\",\n    \"        resnet_block_groups = 8,\\n\",\n    \"        learned_sinusoidal_cond = False,\\n\",\n    \"        random_fourier_features = False,\\n\",\n    \"        learned_sinusoidal_dim = 16\\n\",\n    \"    ):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        # determine dimensions\\n\",\n    \"\\n\",\n    \"        self.channels = channels\\n\",\n    \"\\n\",\n    \"        init_dim = default(init_dim, dim)\\n\",\n    \"        self.init_conv = nn.Conv2d(channels, init_dim, 7, padding = 3)\\n\",\n    \"\\n\",\n    \"        dims = [init_dim, *map(lambda m: dim * m, dim_mults)]\\n\",\n    \"        in_out = list(zip(dims[:-1], dims[1:]))\\n\",\n    \"\\n\",\n    \"        block_klass = partial(ResnetBlock, groups = resnet_block_groups)\\n\",\n    \"\\n\",\n    \"        # time embeddings\\n\",\n    \"\\n\",\n    \"        time_dim = dim * 4\\n\",\n    \"\\n\",\n    \"        self.random_or_learned_sinusoidal_cond = learned_sinusoidal_cond or random_fourier_features\\n\",\n    \"\\n\",\n    \"        if self.random_or_learned_sinusoidal_cond:\\n\",\n    \"            sinu_pos_emb = RandomOrLearnedSinusoidalPosEmb(learned_sinusoidal_dim, random_fourier_features)\\n\",\n    \"            fourier_dim = learned_sinusoidal_dim + 1\\n\",\n    \"        else:\\n\",\n    \"            sinu_pos_emb = SinusoidalPosEmb(dim)\\n\",\n    \"            fourier_dim = dim\\n\",\n    \"\\n\",\n    \"        self.time_mlp = nn.Sequential(\\n\",\n    \"            sinu_pos_emb,\\n\",\n    \"            nn.Linear(fourier_dim, time_dim),\\n\",\n    \"            nn.GELU(),\\n\",\n    \"            nn.Linear(time_dim, time_dim)\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"        # layers\\n\",\n    \"\\n\",\n    \"        self.downs = nn.ModuleList([])\\n\",\n    \"        self.ups = nn.ModuleList([])\\n\",\n    \"        num_resolutions = len(in_out)\\n\",\n    \"\\n\",\n    \"        for ind, (dim_in, dim_out) in enumerate(in_out):\\n\",\n    \"            is_last = ind >= (num_resolutions - 1)\\n\",\n    \"\\n\",\n    \"            self.downs.append(nn.ModuleList([\\n\",\n    \"                block_klass(dim_in, dim_in, time_emb_dim = time_dim),\\n\",\n    \"                block_klass(dim_in, dim_in, time_emb_dim = time_dim),\\n\",\n    \"                Residual(PreNorm(dim_in, LinearAttention(dim_in))),\\n\",\n    \"                Downsample(dim_in, dim_out) if not is_last else nn.Conv2d(dim_in, dim_out, 3, padding = 1)\\n\",\n    \"            ]))\\n\",\n    \"\\n\",\n    \"        mid_dim = dims[-1]\\n\",\n    \"        self.mid_block1 = block_klass(mid_dim, mid_dim, time_emb_dim = time_dim)\\n\",\n    \"        self.mid_attn = Residual(PreNorm(mid_dim, Attention(mid_dim)))\\n\",\n    \"        self.mid_block2 = block_klass(mid_dim, mid_dim, time_emb_dim = time_dim)\\n\",\n    \"\\n\",\n    \"        for ind, (dim_in, dim_out) in enumerate(reversed(in_out)):\\n\",\n    \"            is_last = ind == (len(in_out) - 1)\\n\",\n    \"\\n\",\n    \"            self.ups.append(nn.ModuleList([\\n\",\n    \"                block_klass(dim_out + dim_in, dim_out, time_emb_dim = time_dim),\\n\",\n    \"                block_klass(dim_out + dim_in, dim_out, time_emb_dim = time_dim),\\n\",\n    \"                Residual(PreNorm(dim_out, LinearAttention(dim_out))),\\n\",\n    \"                Upsample(dim_out, dim_in) if not is_last else  nn.Conv2d(dim_out, dim_in, 3, padding = 1)\\n\",\n    \"            ]))\\n\",\n    \"\\n\",\n    \"        self.out_dim = default(out_dim, channels)\\n\",\n    \"\\n\",\n    \"        self.final_res_block = block_klass(dim * 2, dim, time_emb_dim = time_dim)\\n\",\n    \"        self.final_conv = nn.Conv2d(dim, self.out_dim, 1)\\n\",\n    \"\\n\",\n    \"    def forward(self, x, time):\\n\",\n    \"        x = self.init_conv(x)\\n\",\n    \"        r = x.clone()\\n\",\n    \"\\n\",\n    \"        t = self.time_mlp(time)\\n\",\n    \"\\n\",\n    \"        h = []\\n\",\n    \"\\n\",\n    \"        for block1, block2, attn, downsample in self.downs:\\n\",\n    \"            x = block1(x, t)\\n\",\n    \"            h.append(x)\\n\",\n    \"\\n\",\n    \"            x = block2(x, t)\\n\",\n    \"            x = attn(x)\\n\",\n    \"            h.append(x)\\n\",\n    \"\\n\",\n    \"            x = downsample(x)\\n\",\n    \"\\n\",\n    \"        x = self.mid_block1(x, t)\\n\",\n    \"        x = self.mid_attn(x)\\n\",\n    \"        x = self.mid_block2(x, t)\\n\",\n    \"\\n\",\n    \"        for block1, block2, attn, upsample in self.ups:\\n\",\n    \"            x = torch.cat((x, h.pop()), dim = 1)\\n\",\n    \"            x = block1(x, t)\\n\",\n    \"\\n\",\n    \"            x = torch.cat((x, h.pop()), dim = 1)\\n\",\n    \"            x = block2(x, t)\\n\",\n    \"            x = attn(x)\\n\",\n    \"\\n\",\n    \"            x = upsample(x)\\n\",\n    \"\\n\",\n    \"        x = torch.cat((x, r), dim = 1)\\n\",\n    \"\\n\",\n    \"        x = self.final_res_block(x, t)\\n\",\n    \"        return self.final_conv(x)\\n\",\n    \"model = Unet(64)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"8B9GlZrotBXy\"\n   },\n   \"source\": [\n    \"## Step 3: The Diffusion Process\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"ph05t8MxXMoY\"\n   },\n   \"source\": [\n    \"Define diffusion process, including generating noisy models, sample...\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"X7TKWoZpInQs\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class GaussianDiffusion(nn.Module): # Strong\\n\",\n    \"    def __init__(\\n\",\n    \"        self,\\n\",\n    \"        model,\\n\",\n    \"        *,\\n\",\n    \"        image_size,\\n\",\n    \"        timesteps = 1000,\\n\",\n    \"        beta_schedule = 'linear',\\n\",\n    \"        auto_normalize = True,\\n\",\n    \"    ):\\n\",\n    \"        super().__init__()\\n\",\n    \"        assert not (type(self) == GaussianDiffusion and model.channels != model.out_dim)\\n\",\n    \"        assert not model.random_or_learned_sinusoidal_cond\\n\",\n    \"\\n\",\n    \"        self.model = model\\n\",\n    \"\\n\",\n    \"        self.channels = self.model.channels\\n\",\n    \"\\n\",\n    \"        self.image_size = image_size\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        if beta_schedule == 'linear':\\n\",\n    \"            beta_schedule_fn = linear_beta_schedule\\n\",\n    \"        elif beta_schedule == 'cosine':\\n\",\n    \"            beta_schedule_fn = cosine_beta_schedule\\n\",\n    \"        elif beta_schedule == 'sigmoid':\\n\",\n    \"            beta_schedule_fn = sigmoid_beta_schedule\\n\",\n    \"        else:\\n\",\n    \"            raise ValueError(f'unknown beta schedule {beta_schedule}')\\n\",\n    \"        \\n\",\n    \"        # calculate beta and other precalculated parameters\\n\",\n    \"        betas = beta_schedule_fn(timesteps)\\n\",\n    \"                                            \\n\",\n    \"        alphas = 1. - betas\\n\",\n    \"        alphas_cumprod = torch.cumprod(alphas, dim=0)\\n\",\n    \"        alphas_cumprod_prev = F.pad(alphas_cumprod[:-1], (1, 0), value = 1.)\\n\",\n    \"\\n\",\n    \"        timesteps, = betas.shape\\n\",\n    \"        self.num_timesteps = int(timesteps)\\n\",\n    \"\\n\",\n    \"        # sampling related parameters\\n\",\n    \"\\n\",\n    \"        self.sampling_timesteps = timesteps # default num sampling timesteps to number of timesteps at training\\n\",\n    \"\\n\",\n    \"        # helper function to register buffer from float64 to float32\\n\",\n    \"\\n\",\n    \"        register_buffer = lambda name, val: self.register_buffer(name, val.to(torch.float32))\\n\",\n    \"\\n\",\n    \"        register_buffer('betas', betas)\\n\",\n    \"        register_buffer('alphas_cumprod', alphas_cumprod)\\n\",\n    \"        register_buffer('alphas_cumprod_prev', alphas_cumprod_prev)\\n\",\n    \"\\n\",\n    \"        # calculations for diffusion q(x_t | x_{t-1}) and others\\n\",\n    \"\\n\",\n    \"        register_buffer('sqrt_alphas_cumprod', torch.sqrt(alphas_cumprod))\\n\",\n    \"        register_buffer('sqrt_one_minus_alphas_cumprod', torch.sqrt(1. - alphas_cumprod))\\n\",\n    \"        register_buffer('log_one_minus_alphas_cumprod', torch.log(1. - alphas_cumprod))\\n\",\n    \"        register_buffer('sqrt_recip_alphas_cumprod', torch.sqrt(1. / alphas_cumprod))\\n\",\n    \"        register_buffer('sqrt_recipm1_alphas_cumprod', torch.sqrt(1. / alphas_cumprod - 1))\\n\",\n    \"\\n\",\n    \"        # calculations for posterior q(x_{t-1} | x_t, x_0)\\n\",\n    \"\\n\",\n    \"        posterior_variance = betas * (1. - alphas_cumprod_prev) / (1. - alphas_cumprod)\\n\",\n    \"\\n\",\n    \"        # above: equal to 1. / (1. / (1. - alpha_cumprod_tm1) + alpha_t / beta_t)\\n\",\n    \"\\n\",\n    \"        register_buffer('posterior_variance', posterior_variance)\\n\",\n    \"\\n\",\n    \"        # below: log calculation clipped because the posterior variance is 0 at the beginning of the diffusion chain\\n\",\n    \"\\n\",\n    \"        register_buffer('posterior_log_variance_clipped', torch.log(posterior_variance.clamp(min =1e-20)))\\n\",\n    \"        register_buffer('posterior_mean_coef1', betas * torch.sqrt(alphas_cumprod_prev) / (1. - alphas_cumprod))\\n\",\n    \"        register_buffer('posterior_mean_coef2', (1. - alphas_cumprod_prev) * torch.sqrt(alphas) / (1. - alphas_cumprod))\\n\",\n    \"\\n\",\n    \"        # derive loss weight\\n\",\n    \"        # snr - signal noise ratio\\n\",\n    \"\\n\",\n    \"        snr = alphas_cumprod / (1 - alphas_cumprod)\\n\",\n    \"\\n\",\n    \"        # https://arxiv.org/abs/2303.09556\\n\",\n    \"\\n\",\n    \"        maybe_clipped_snr = snr.clone()\\n\",\n    \"\\n\",\n    \"        register_buffer('loss_weight', maybe_clipped_snr / snr)\\n\",\n    \"\\n\",\n    \"        # auto-normalization of data [0, 1] -> [-1, 1] - can turn off by setting it to be False\\n\",\n    \"\\n\",\n    \"        self.normalize = normalize_to_neg_one_to_one if auto_normalize else identity\\n\",\n    \"        self.unnormalize = unnormalize_to_zero_to_one if auto_normalize else identity\\n\",\n    \"\\n\",\n    \"    def predict_start_from_noise(self, x_t, t, noise):\\n\",\n    \"        return (\\n\",\n    \"            extract(self.sqrt_recip_alphas_cumprod, t, x_t.shape) * x_t -\\n\",\n    \"            extract(self.sqrt_recipm1_alphas_cumprod, t, x_t.shape) * noise\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def predict_noise_from_start(self, x_t, t, x0):\\n\",\n    \"        return (\\n\",\n    \"            (extract(self.sqrt_recip_alphas_cumprod, t, x_t.shape) * x_t - x0) / \\\\\\n\",\n    \"            extract(self.sqrt_recipm1_alphas_cumprod, t, x_t.shape)\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"    def q_posterior(self, x_start, x_t, t):\\n\",\n    \"        posterior_mean = (\\n\",\n    \"            extract(self.posterior_mean_coef1, t, x_t.shape) * x_start +\\n\",\n    \"            extract(self.posterior_mean_coef2, t, x_t.shape) * x_t\\n\",\n    \"        )\\n\",\n    \"        posterior_variance = extract(self.posterior_variance, t, x_t.shape)\\n\",\n    \"        posterior_log_variance_clipped = extract(self.posterior_log_variance_clipped, t, x_t.shape)\\n\",\n    \"        return posterior_mean, posterior_variance, posterior_log_variance_clipped\\n\",\n    \"\\n\",\n    \"    def model_predictions(self, x, t, clip_x_start = False, rederive_pred_noise = False):\\n\",\n    \"        model_output = self.model(x, t)\\n\",\n    \"        maybe_clip = partial(torch.clamp, min = -1., max = 1.) if clip_x_start else identity\\n\",\n    \"\\n\",\n    \"        pred_noise = model_output\\n\",\n    \"        x_start = self.predict_start_from_noise(x, t, pred_noise)\\n\",\n    \"        x_start = maybe_clip(x_start)\\n\",\n    \"\\n\",\n    \"        if clip_x_start and rederive_pred_noise:\\n\",\n    \"            pred_noise = self.predict_noise_from_start(x, t, x_start)\\n\",\n    \"\\n\",\n    \"        return pred_noise, x_start\\n\",\n    \"\\n\",\n    \"    def p_mean_variance(self, x, t, clip_denoised = True):\\n\",\n    \"        noise, x_start = self.model_predictions(x, t)\\n\",\n    \"\\n\",\n    \"        if clip_denoised:\\n\",\n    \"            x_start.clamp_(-1., 1.)\\n\",\n    \"\\n\",\n    \"        model_mean, posterior_variance, posterior_log_variance = self.q_posterior(x_start = x_start, x_t = x, t = t)\\n\",\n    \"        return model_mean, posterior_variance, posterior_log_variance, x_start\\n\",\n    \"\\n\",\n    \"    @torch.no_grad()\\n\",\n    \"    def p_sample(self, x, t: int):\\n\",\n    \"        b, *_, device = *x.shape, x.device\\n\",\n    \"        batched_times = torch.full((b,), t, device = x.device, dtype = torch.long)\\n\",\n    \"        model_mean, _, model_log_variance, x_start = self.p_mean_variance(x = x, t = batched_times, clip_denoised = True)\\n\",\n    \"        noise = torch.randn_like(x) if t > 0 else 0. # no noise if t == 0\\n\",\n    \"        pred_img = model_mean + (0.5 * model_log_variance).exp() * noise\\n\",\n    \"        return pred_img, x_start\\n\",\n    \"\\n\",\n    \"    # Gradescope – Question 1\\n\",\n    \"    @torch.no_grad()\\n\",\n    \"    def p_sample_loop(self, shape, return_all_timesteps = False, num_samples=5, save_path='./Q1_progressive_generation.png'):\\n\",\n    \"        batch, device = shape[0], self.betas.device\\n\",\n    \"\\n\",\n    \"        img = torch.randn(shape, device = device)\\n\",\n    \"        imgs = [img]\\n\",\n    \"        samples = [img[:num_samples]]  # Store initial noisy samples\\n\",\n    \"\\n\",\n    \"        x_start = None\\n\",\n    \"        \\n\",\n    \"        ###########################################\\n\",\n    \"        ## DONE: plot the sampling process ##\\n\",\n    \"        ###########################################\\n\",\n    \"        for t in tqdm(reversed(range(0, self.num_timesteps)), desc = 'sampling loop time step', total = self.num_timesteps):\\n\",\n    \"            img, x_start = self.p_sample(img, t)\\n\",\n    \"            imgs.append(img)\\n\",\n    \"            if t % (self.num_timesteps // 20) == 0:\\n\",\n    \"                samples.append(img[:num_samples])  # Store samples at specific steps\\n\",\n    \"        \\n\",\n    \"        ret = img if not return_all_timesteps else torch.stack(imgs, dim = 1)\\n\",\n    \"\\n\",\n    \"        ret = self.unnormalize(ret)\\n\",\n    \"        self.plot_progressive_generation(samples, len(samples)-1, save_path=save_path)\\n\",\n    \"        return ret\\n\",\n    \"\\n\",\n    \"    @torch.no_grad()\\n\",\n    \"    def sample(self, batch_size = 16, return_all_timesteps = False):\\n\",\n    \"        image_size, channels = self.image_size, self.channels\\n\",\n    \"        sample_fn = self.p_sample_loop\\n\",\n    \"        return sample_fn((batch_size, channels, image_size, image_size), return_all_timesteps = return_all_timesteps)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"    def q_sample(self, x_start, t, noise=None):\\n\",\n    \"        noise = default(noise, lambda: torch.randn_like(x_start))\\n\",\n    \"\\n\",\n    \"        return (\\n\",\n    \"            extract(self.sqrt_alphas_cumprod, t, x_start.shape) * x_start +\\n\",\n    \"            extract(self.sqrt_one_minus_alphas_cumprod, t, x_start.shape) * noise\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def loss_fn(self):\\n\",\n    \"        return F.mse_loss\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"    def p_losses(self, x_start, t, noise = None):\\n\",\n    \"        b, c, h, w = x_start.shape\\n\",\n    \"        noise = default(noise, lambda: torch.randn_like(x_start))\\n\",\n    \"\\n\",\n    \"        # noise sample\\n\",\n    \"\\n\",\n    \"        x = self.q_sample(x_start = x_start, t = t, noise = noise)\\n\",\n    \"\\n\",\n    \"        # predict and take gradient step\\n\",\n    \"\\n\",\n    \"        model_out = self.model(x, t)\\n\",\n    \"\\n\",\n    \"        loss = self.loss_fn(model_out, noise, reduction = 'none')\\n\",\n    \"        loss = reduce(loss, 'b ... -> b (...)', 'mean')\\n\",\n    \"\\n\",\n    \"        loss = loss * extract(self.loss_weight, t, loss.shape)\\n\",\n    \"        return loss.mean()\\n\",\n    \"\\n\",\n    \"    def forward(self, img, *args, **kwargs):\\n\",\n    \"        b, c, h, w, device, img_size, = *img.shape, img.device, self.image_size\\n\",\n    \"        assert h == img_size and w == img_size, f'height and width of image must be {img_size}'\\n\",\n    \"        t = torch.randint(0, self.num_timesteps, (b,), device=device).long()\\n\",\n    \"\\n\",\n    \"        img = self.normalize(img)\\n\",\n    \"        return self.p_losses(img, t, *args, **kwargs)\\n\",\n    \"\\n\",\n    \"    # Gradescope – Question 1\\n\",\n    \"    def plot_progressive_generation(self, samples, num_steps, save_path=None):\\n\",\n    \"        fig, axes = plt.subplots(1, num_steps + 1, figsize=(20, 4))\\n\",\n    \"        for i, sample in enumerate(samples):\\n\",\n    \"            axes[i].imshow(vutils.make_grid(sample, nrow=1, normalize=True).permute(1, 2, 0).cpu().numpy())\\n\",\n    \"            axes[i].axis('off')\\n\",\n    \"            axes[i].set_title(f'Step {i}')\\n\",\n    \"        if save_path:\\n\",\n    \"            plt.savefig(save_path)\\n\",\n    \"        plt.show()\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"yWJUjFIHInQt\"\n   },\n   \"source\": [\n    \"Define Trainer: define the updating process\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"Ed12NNXPtDon\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class Trainer(object):\\n\",\n    \"    def __init__(\\n\",\n    \"        self,\\n\",\n    \"        diffusion_model,\\n\",\n    \"        folder,\\n\",\n    \"        *,\\n\",\n    \"        train_batch_size = 16,\\n\",\n    \"        gradient_accumulate_every = 1,\\n\",\n    \"        train_lr = 1e-4,\\n\",\n    \"        train_num_steps = 100000,\\n\",\n    \"        ema_update_every = 10,\\n\",\n    \"        ema_decay = 0.995,\\n\",\n    \"        adam_betas = (0.9, 0.99),\\n\",\n    \"        save_and_sample_every = 1000,\\n\",\n    \"        num_samples = 25,\\n\",\n    \"        results_folder = './results',\\n\",\n    \"        split_batches = True,\\n\",\n    \"        inception_block_idx = 2048\\n\",\n    \"    ):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        # Create DataLoaderConfiguration\\n\",\n    \"        dataloader_config = DataLoaderConfiguration(split_batches=split_batches)\\n\",\n    \"\\n\",\n    \"#         # accelerator\\n\",\n    \"\\n\",\n    \"#         self.accelerator = Accelerator(\\n\",\n    \"#             split_batches = split_batches,\\n\",\n    \"#             mixed_precision = 'no'\\n\",\n    \"#         )\\n\",\n    \"        \\n\",\n    \"        # Create Accelerator with DataLoaderConfiguration\\n\",\n    \"        self.accelerator = Accelerator(\\n\",\n    \"            dataloader_config=dataloader_config,\\n\",\n    \"            mixed_precision='no')\\n\",\n    \"        \\n\",\n    \"\\n\",\n    \"        # model\\n\",\n    \"\\n\",\n    \"        self.model = diffusion_model\\n\",\n    \"        self.channels = diffusion_model.channels\\n\",\n    \"\\n\",\n    \"        # sampling and training hyperparameters\\n\",\n    \"\\n\",\n    \"        assert has_int_squareroot(num_samples), 'number of samples must have an integer square root'\\n\",\n    \"        self.num_samples = num_samples\\n\",\n    \"        self.save_and_sample_every = save_and_sample_every\\n\",\n    \"\\n\",\n    \"        self.batch_size = train_batch_size\\n\",\n    \"        self.gradient_accumulate_every = gradient_accumulate_every\\n\",\n    \"\\n\",\n    \"        self.train_num_steps = train_num_steps\\n\",\n    \"        self.image_size = diffusion_model.image_size\\n\",\n    \"\\n\",\n    \"        # dataset and dataloader\\n\",\n    \"\\n\",\n    \"        self.ds = Dataset(folder, self.image_size)\\n\",\n    \"        dl = DataLoader(self.ds, batch_size = train_batch_size, shuffle = True, pin_memory = True, num_workers = cpu_count())\\n\",\n    \"\\n\",\n    \"        dl = self.accelerator.prepare(dl)\\n\",\n    \"        self.dl = cycle(dl)\\n\",\n    \"\\n\",\n    \"        # optimizer\\n\",\n    \"\\n\",\n    \"        self.opt = Adam(diffusion_model.parameters(), lr = train_lr, betas = adam_betas)\\n\",\n    \"\\n\",\n    \"        # for logging results in a folder periodically\\n\",\n    \"\\n\",\n    \"        if self.accelerator.is_main_process:\\n\",\n    \"            self.ema = EMA(diffusion_model, beta = ema_decay, update_every = ema_update_every)\\n\",\n    \"            self.ema.to(self.device)\\n\",\n    \"\\n\",\n    \"        self.results_folder = Path(results_folder)\\n\",\n    \"        self.results_folder.mkdir(exist_ok = True)\\n\",\n    \"\\n\",\n    \"        # step counter state\\n\",\n    \"\\n\",\n    \"        self.step = 0\\n\",\n    \"\\n\",\n    \"        # prepare model, dataloader, optimizer with accelerator\\n\",\n    \"\\n\",\n    \"        self.model, self.opt = self.accelerator.prepare(self.model, self.opt)\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def device(self):\\n\",\n    \"        return self.accelerator.device\\n\",\n    \"\\n\",\n    \"    def save(self, milestone):\\n\",\n    \"        if not self.accelerator.is_local_main_process:\\n\",\n    \"            return\\n\",\n    \"\\n\",\n    \"        data = {\\n\",\n    \"            'step': self.step,\\n\",\n    \"            'model': self.accelerator.get_state_dict(self.model),\\n\",\n    \"            'opt': self.opt.state_dict(),\\n\",\n    \"            'ema': self.ema.state_dict(),\\n\",\n    \"            'scaler': self.accelerator.scaler.state_dict() if exists(self.accelerator.scaler) else None,\\n\",\n    \"        }\\n\",\n    \"\\n\",\n    \"        torch.save(data, str(self.results_folder / f'model-{milestone}.pt'))\\n\",\n    \"\\n\",\n    \"    def load(self, ckpt):\\n\",\n    \"        accelerator = self.accelerator\\n\",\n    \"        device = accelerator.device\\n\",\n    \"\\n\",\n    \"        data = torch.load(ckpt, map_location=device)\\n\",\n    \"\\n\",\n    \"        model = self.accelerator.unwrap_model(self.model)\\n\",\n    \"        model.load_state_dict(data['model'])\\n\",\n    \"\\n\",\n    \"        self.step = data['step']\\n\",\n    \"        self.opt.load_state_dict(data['opt'])\\n\",\n    \"        if self.accelerator.is_main_process:\\n\",\n    \"            self.ema.load_state_dict(data[\\\"ema\\\"])\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"        if exists(self.accelerator.scaler) and exists(data['scaler']):\\n\",\n    \"            self.accelerator.scaler.load_state_dict(data['scaler'])\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"    def train(self):\\n\",\n    \"        accelerator = self.accelerator\\n\",\n    \"        device = accelerator.device\\n\",\n    \"\\n\",\n    \"        with tqdm(initial = self.step, total = self.train_num_steps, disable = not accelerator.is_main_process) as pbar:\\n\",\n    \"\\n\",\n    \"            while self.step < self.train_num_steps:\\n\",\n    \"\\n\",\n    \"                total_loss = 0.\\n\",\n    \"\\n\",\n    \"                for _ in range(self.gradient_accumulate_every):\\n\",\n    \"                    data = next(self.dl).to(device)\\n\",\n    \"\\n\",\n    \"                    with self.accelerator.autocast():\\n\",\n    \"                        loss = self.model(data)\\n\",\n    \"                        loss = loss / self.gradient_accumulate_every\\n\",\n    \"                        total_loss += loss.item()\\n\",\n    \"\\n\",\n    \"                    self.accelerator.backward(loss)\\n\",\n    \"\\n\",\n    \"                accelerator.clip_grad_norm_(self.model.parameters(), 1.0)\\n\",\n    \"                pbar.set_description(f'loss: {total_loss:.4f}')\\n\",\n    \"\\n\",\n    \"                accelerator.wait_for_everyone()\\n\",\n    \"\\n\",\n    \"                self.opt.step()\\n\",\n    \"                self.opt.zero_grad()\\n\",\n    \"\\n\",\n    \"                accelerator.wait_for_everyone()\\n\",\n    \"\\n\",\n    \"                self.step += 1\\n\",\n    \"                if accelerator.is_main_process:\\n\",\n    \"                    self.ema.update()\\n\",\n    \"\\n\",\n    \"                    if self.step != 0 and self.step % self.save_and_sample_every == 0:\\n\",\n    \"                        self.ema.ema_model.eval()\\n\",\n    \"\\n\",\n    \"                        with torch.no_grad():\\n\",\n    \"                            milestone = self.step // self.save_and_sample_every\\n\",\n    \"                            batches = num_to_groups(self.num_samples, self.batch_size)\\n\",\n    \"                            all_images_list = list(map(lambda n: self.ema.ema_model.sample(batch_size=n), batches))\\n\",\n    \"\\n\",\n    \"                        all_images = torch.cat(all_images_list, dim = 0)\\n\",\n    \"\\n\",\n    \"                        utils.save_image(all_images, str(self.results_folder / f'sample-{milestone}.png'), nrow = int(math.sqrt(self.num_samples)))\\n\",\n    \"                        \\n\",\n    \"                        self.save(milestone)\\n\",\n    \"\\n\",\n    \"                pbar.update(1)\\n\",\n    \"\\n\",\n    \"        accelerator.print('training complete')\\n\",\n    \"        \\n\",\n    \"    def inference(self, num=1000, n_iter=10, output_path='./submission'):\\n\",\n    \"        if not os.path.exists(output_path):\\n\",\n    \"            os.mkdir(output_path)\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            for i in range(n_iter):\\n\",\n    \"                batches = num_to_groups(num // n_iter, 100)\\n\",\n    \"                all_images = list(map(lambda n: self.ema.ema_model.sample(batch_size=n), batches))[0]\\n\",\n    \"                \\n\",\n    \"                for j in range(all_images.size(0)):\\n\",\n    \"                    torchvision.utils.save_image(all_images[j], f'{output_path}/{i * 100 + j + 1}.jpg')\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"                \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# StyleGAN\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"wLHSIArLcFK0\"\n   },\n   \"source\": [\n    \"## Import Packages and Set Seeds\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\\n\",\n      \"Requirement already satisfied: torch in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (2.3.0)\\n\",\n      \"Requirement already satisfied: torchvision in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (0.18.0)\\n\",\n      \"Requirement already satisfied: filelock in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (3.14.0)\\n\",\n      \"Requirement already satisfied: typing-extensions>=4.8.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (4.11.0)\\n\",\n      \"Requirement already satisfied: sympy in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (1.12)\\n\",\n      \"Requirement already satisfied: networkx in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (3.3)\\n\",\n      \"Requirement already satisfied: jinja2 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (3.1.4)\\n\",\n      \"Requirement already satisfied: fsspec in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (2024.3.1)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (8.9.2.26)\\n\",\n      \"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (12.1.3.1)\\n\",\n      \"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (11.0.2.54)\\n\",\n      \"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (10.3.2.106)\\n\",\n      \"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (11.4.5.107)\\n\",\n      \"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (12.1.0.106)\\n\",\n      \"Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (2.20.5)\\n\",\n      \"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (12.1.105)\\n\",\n      \"Requirement already satisfied: triton==2.3.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch) (2.3.0)\\n\",\n      \"Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch) (12.4.127)\\n\",\n      \"Requirement already satisfied: numpy in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torchvision) (1.26.4)\\n\",\n      \"Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torchvision) (10.3.0)\\n\",\n      \"Requirement already satisfied: MarkupSafe>=2.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from jinja2->torch) (2.1.5)\\n\",\n      \"Requirement already satisfied: mpmath>=0.19 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from sympy->torch) (1.3.0)\\n\",\n      \"zsh:1: unknown file attribute: 1\\n\",\n      \"Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\\n\",\n      \"Requirement already satisfied: ninja in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (1.11.1.1)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!pip install torch torchvision\\n\",\n    \"!git clone https://github.com/NVlaRefresh (1 sec) http://localhost:8888/lab?token=1421be6f9845d5405710f19bd3d77885f171e04ef56882f5bs/stylegan2-ada-pytorch.git\\n\",\n    \"!pip install ninja\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import sys\\n\",\n    \"sys.path.append('stylegan2-ada-pytorch')\\n\",\n    \"\\n\",\n    \"import dnnlib\\n\",\n    \"import legacy\\n\",\n    \"import torch\\n\",\n    \"import os\\n\",\n    \"from accelerate import Accelerator\\n\",\n    \"from ema_pytorch import EMA\\n\",\n    \"from torch.utils.data import Dataset, DataLoader\\n\",\n    \"from torchvision import transforms as T, utils\\n\",\n    \"from pathlib import Path\\n\",\n    \"from PIL import Image\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# Gradescope – Question 1\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import torchvision.utils as vutils\\n\",\n    \"\\n\",\n    \"torch.backends.cudnn.benchmark = True\\n\",\n    \"torch.manual_seed(4096)\\n\",\n    \"\\n\",\n    \"if torch.cuda.is_available():\\n\",\n    \"    torch.cuda.manual_seed(4096)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class Dataset(Dataset):\\n\",\n    \"    def __init__(\\n\",\n    \"        self,\\n\",\n    \"        folder,\\n\",\n    \"        image_size\\n\",\n    \"    ):\\n\",\n    \"        self.folder = folder\\n\",\n    \"        self.image_size = image_size\\n\",\n    \"        self.paths = [p for p in Path(f'{folder}').glob(f'**/*.jpg')]\\n\",\n    \"        self.transform = T.Compose([\\n\",\n    \"            T.Resize(image_size),\\n\",\n    \"            T.RandomHorizontalFlip(),\\n\",\n    \"            T.RandomRotation(10),\\n\",\n    \"            T.ColorJitter(brightness=0.25, contrast=0.25),\\n\",\n    \"            T.ToTensor()\\n\",\n    \"        ])\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.paths)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, index):\\n\",\n    \"        path = self.paths[index]\\n\",\n    \"        img = Image.open(path).convert('RGB')\\n\",\n    \"        return self.transform(img)\\n\",\n    \"\\n\",\n    \"def cycle(dl):\\n\",\n    \"    while True:\\n\",\n    \"        for data in dl:\\n\",\n    \"            yield data\\n\",\n    \"\\n\",\n    \"def num_to_groups(num, divisor):\\n\",\n    \"    groups = num // divisor\\n\",\n    \"    remainder = num % divisor\\n\",\n    \"    arr = [divisor] * groups\\n\",\n    \"    if remainder > 0:\\n\",\n    \"        arr.append(remainder)\\n\",\n    \"    return arr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class StyleGANTrainer(object):\\n\",\n    \"    def __init__(\\n\",\n    \"        self, \\n\",\n    \"        folder, \\n\",\n    \"        image_size, \\n\",\n    \"        *,\\n\",\n    \"        train_batch_size=16, \\n\",\n    \"        gradient_accumulate_every=1, \\n\",\n    \"        train_lr=1e-4, \\n\",\n    \"        train_num_steps=100000, \\n\",\n    \"        ema_update_every=10, \\n\",\n    \"        ema_decay=0.995, \\n\",\n    \"        save_and_sample_every=1000, \\n\",\n    \"        num_samples=25, \\n\",\n    \"        results_folder='./results', \\n\",\n    \"        split_batches=True\\n\",\n    \"    ):\\n\",\n    \"        super().__init__()\\n\",\n    \"\\n\",\n    \"        dataloader_config = DataLoaderConfiguration(split_batches=split_batches)\\n\",\n    \"        self.accelerator = Accelerator(\\n\",\n    \"            dataloader_config=dataloader_config,\\n\",\n    \"            mixed_precision='no')\\n\",\n    \"        \\n\",\n    \"        self.image_size = image_size\\n\",\n    \"\\n\",\n    \"        # Initialize the generator and discriminator\\n\",\n    \"        self.gen = self.create_generator().cuda()\\n\",\n    \"        self.dis = self.create_discriminator().cuda()\\n\",\n    \"        self.g_optim = torch.optim.Adam(self.gen.parameters(), lr=train_lr, betas=(0.0, 0.99))\\n\",\n    \"        self.d_optim = torch.optim.Adam(self.dis.parameters(), lr=train_lr, betas=(0.0, 0.99))\\n\",\n    \"        \\n\",\n    \"        self.train_num_steps = train_num_steps\\n\",\n    \"        self.batch_size = train_batch_size\\n\",\n    \"        self.gradient_accumulate_every = gradient_accumulate_every\\n\",\n    \"\\n\",\n    \"        # Initialize the dataset and dataloader\\n\",\n    \"        self.ds = Dataset(folder, image_size)\\n\",\n    \"        self.dl = cycle(DataLoader(self.ds, batch_size=train_batch_size, shuffle=True, pin_memory=True, num_workers=os.cpu_count()))\\n\",\n    \"\\n\",\n    \"        # Initialize the EMA for the generator\\n\",\n    \"        self.ema = EMA(self.gen, beta=ema_decay, update_every=ema_update_every).to(self.device)\\n\",\n    \"        \\n\",\n    \"        self.results_folder = Path(results_folder)\\n\",\n    \"        self.results_folder.mkdir(exist_ok=True)\\n\",\n    \"        \\n\",\n    \"        self.save_and_sample_every = save_and_sample_every\\n\",\n    \"        self.num_samples = num_samples\\n\",\n    \"        self.step = 0\\n\",\n    \"\\n\",\n    \"    def create_generator(self):\\n\",\n    \"        return dnnlib.util.construct_class_by_name(\\n\",\n    \"            class_name='training.networks.Generator',\\n\",\n    \"            z_dim=512,\\n\",\n    \"            c_dim=0,\\n\",\n    \"            w_dim=512,\\n\",\n    \"            img_resolution=self.image_size,\\n\",\n    \"            img_channels=3\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    def create_discriminator(self):\\n\",\n    \"        return dnnlib.util.construct_class_by_name(\\n\",\n    \"            class_name='training.networks.Discriminator',\\n\",\n    \"            c_dim=0,\\n\",\n    \"            img_resolution=self.image_size,\\n\",\n    \"            img_channels=3\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"    @property\\n\",\n    \"    def device(self):\\n\",\n    \"        return self.accelerator.device\\n\",\n    \"\\n\",\n    \"    def save(self, milestone):\\n\",\n    \"        if not self.accelerator.is_local_main_process:\\n\",\n    \"            return\\n\",\n    \"\\n\",\n    \"        data = {\\n\",\n    \"            'step': self.step,\\n\",\n    \"            'gen': self.accelerator.get_state_dict(self.gen),\\n\",\n    \"            'dis': self.accelerator.get_state_dict(self.dis),\\n\",\n    \"            'g_optim': self.g_optim.state_dict(),\\n\",\n    \"            'd_optim': self.d_optim.state_dict(),\\n\",\n    \"            'ema': self.ema.state_dict()\\n\",\n    \"        }\\n\",\n    \"\\n\",\n    \"        torch.save(data, str(self.results_folder / f'model-{milestone}.pt'))\\n\",\n    \"\\n\",\n    \"    def load(self, ckpt):\\n\",\n    \"        data = torch.load(ckpt, map_location=self.device)\\n\",\n    \"        self.gen.load_state_dict(data['gen'])\\n\",\n    \"        self.dis.load_state_dict(data['dis'])\\n\",\n    \"        self.g_optim.load_state_dict(data['g_optim'])\\n\",\n    \"        self.d_optim.load_state_dict(data['d_optim'])\\n\",\n    \"        self.ema.load_state_dict(data['ema'])\\n\",\n    \"        self.step = data['step']\\n\",\n    \"\\n\",\n    \"    def train(self):\\n\",\n    \"        with tqdm(initial=self.step, total=self.train_num_steps, disable=not self.accelerator.is_main_process) as pbar:\\n\",\n    \"            while self.step < self.train_num_steps:\\n\",\n    \"                total_g_loss = 0.\\n\",\n    \"                total_d_loss = 0.\\n\",\n    \"\\n\",\n    \"                for _ in range(self.gradient_accumulate_every):\\n\",\n    \"                    # Get a batch of real images\\n\",\n    \"                    real_images = next(self.dl).to(self.device)\\n\",\n    \"                    \\n\",\n    \"                    # Generate latent vectors\\n\",\n    \"                    latent = torch.randn([self.batch_size, self.gen.z_dim]).cuda()\\n\",\n    \"                    \\n\",\n    \"                    # Generate fake images\\n\",\n    \"                    fake_images = self.gen(latent, None)\\n\",\n    \"\\n\",\n    \"                    # Discriminator logits for real and fake images\\n\",\n    \"                    real_logits = self.dis(real_images, None)\\n\",\n    \"                    fake_logits = self.dis(fake_images.detach(), None)\\n\",\n    \"\\n\",\n    \"                    # Discriminator loss\\n\",\n    \"                    d_loss = torch.nn.functional.softplus(fake_logits).mean() + torch.nn.functional.softplus(-real_logits).mean()\\n\",\n    \"\\n\",\n    \"                    # Update discriminator\\n\",\n    \"                    self.d_optim.zero_grad()\\n\",\n    \"                    self.accelerator.backward(d_loss / self.gradient_accumulate_every)\\n\",\n    \"                    self.d_optim.step()\\n\",\n    \"                    total_d_loss += d_loss.item()\\n\",\n    \"\\n\",\n    \"                    # Generator logits for fake images\\n\",\n    \"                    fake_logits = self.dis(fake_images, None)\\n\",\n    \"\\n\",\n    \"                    # Generator loss\\n\",\n    \"                    g_loss = torch.nn.functional.softplus(-fake_logits).mean()\\n\",\n    \"\\n\",\n    \"                    # Update generator\\n\",\n    \"                    self.g_optim.zero_grad()\\n\",\n    \"                    self.accelerator.backward(g_loss / self.gradient_accumulate_every)\\n\",\n    \"                    self.g_optim.step()\\n\",\n    \"                    total_g_loss += g_loss.item()\\n\",\n    \"\\n\",\n    \"                self.ema.update()\\n\",\n    \"\\n\",\n    \"                pbar.set_description(f'G loss: {total_g_loss:.4f} D loss: {total_d_loss:.4f}')\\n\",\n    \"                self.step += 1\\n\",\n    \"\\n\",\n    \"                if self.step % self.save_and_sample_every == 0:\\n\",\n    \"                    self.ema.ema_model.eval()\\n\",\n    \"                    with torch.no_grad():\\n\",\n    \"                        milestone = self.step // self.save_and_sample_every\\n\",\n    \"                        batches = num_to_groups(self.num_samples, self.batch_size)\\n\",\n    \"                        all_images_list = list(map(lambda n: self.ema.ema_model(torch.randn([n, self.gen.z_dim]).cuda(), None), batches))\\n\",\n    \"                    all_images = torch.cat(all_images_list, dim=0)\\n\",\n    \"                    utils.save_image(all_images, str(self.results_folder / f'sample-{milestone}.png'), nrow=int(np.sqrt(self.num_samples)))\\n\",\n    \"                    self.save(milestone)\\n\",\n    \"                pbar.update(1)\\n\",\n    \"\\n\",\n    \"        print('Training complete')\\n\",\n    \"\\n\",\n    \"    def inference(self, num=1000, n_iter=5, output_path='./submission'):\\n\",\n    \"        if not os.path.exists(output_path):\\n\",\n    \"            os.mkdir(output_path)\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            for i in range(n_iter):\\n\",\n    \"                latent = torch.randn(num // n_iter, self.gen.z_dim).cuda()\\n\",\n    \"                images = self.ema.ema_model(latent, None)\\n\",\n    \"                for j, img in enumerate(images):\\n\",\n    \"                    utils.save_image(img, f'{output_path}/{i * (num // n_iter) + j + 1}.jpg')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TZM7HR-UInQu\"\n   },\n   \"source\": [\n    \"# Training Hyper-parameters\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"  0%|                                                                                                                                                                                                              | 0/20000 [00:00<?, ?it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Setting up PyTorch plugin \\\"bias_act_plugin\\\"... Done.\\n\",\n      \"Setting up PyTorch plugin \\\"upfirdn2d_plugin\\\"... Done.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"G loss: 5.8996 D loss: 1.1001: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20000/20000 [3:14:35<00:00,  1.71it/s]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Training complete\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"path = './faces/faces'\\n\",\n    \"IMG_SIZE = 64\\n\",\n    \"batch_size = 16\\n\",\n    \"train_num_steps = 20000 # 10000\\n\",\n    \"lr = 1e-3\\n\",\n    \"grad_steps = 1\\n\",\n    \"ema_decay = 0.995\\n\",\n    \"\\n\",\n    \"trainer = StyleGANTrainer(\\n\",\n    \"    folder=path,\\n\",\n    \"    image_size=IMG_SIZE,\\n\",\n    \"    train_batch_size=batch_size,\\n\",\n    \"    train_lr=lr,\\n\",\n    \"    train_num_steps=train_num_steps,\\n\",\n    \"    gradient_accumulate_every=grad_steps,\\n\",\n    \"    ema_decay=ema_decay,\\n\",\n    \"    save_and_sample_every=1000\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"os.environ['TORCH_CUDA_ARCH_LIST'] = '8.6' # https://developer.nvidia.com/cuda-gpus\\n\",\n    \"trainer.train()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"SV7OL7PvInQu\"\n   },\n   \"source\": [\n    \"# Inference\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"MHoY_6CrInQv\",\n    \"outputId\": \"010af6c5-a426-42cd-b560-721fff3baa84\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# # Automatically get the last checkpoint\\n\",\n    \"last_checkpoint = f'./results/model-{train_num_steps // trainer.save_and_sample_every}.pt'\\n\",\n    \"ckpt = last_checkpoint\\n\",\n    \"trainer.load(ckpt)\\n\",\n    \"trainer.inference(output_path='./submission/boss')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"id\": \"GkWpuU-2KzIL\",\n    \"outputId\": \"2215341d-4f7f-48c3-85ac-403e9ad2cb27\",\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# !cd ./submission\\n\",\n    \"# !tar -zcf ../submission.tgz *.jpg\\n\",\n    \"# !cd ..\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# FID & AFD\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\\n\",\n      \"Requirement already satisfied: pytorch-fid in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (0.3.0)\\n\",\n      \"Requirement already satisfied: numpy in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from pytorch-fid) (1.26.4)\\n\",\n      \"Requirement already satisfied: pillow in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from pytorch-fid) (10.3.0)\\n\",\n      \"Requirement already satisfied: scipy in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from pytorch-fid) (1.13.0)\\n\",\n      \"Requirement already satisfied: torch>=1.0.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from pytorch-fid) (2.3.0)\\n\",\n      \"Requirement already satisfied: torchvision>=0.2.2 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from pytorch-fid) (0.18.0)\\n\",\n      \"Requirement already satisfied: filelock in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (3.14.0)\\n\",\n      \"Requirement already satisfied: typing-extensions>=4.8.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (4.11.0)\\n\",\n      \"Requirement already satisfied: sympy in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (1.12)\\n\",\n      \"Requirement already satisfied: networkx in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (3.3)\\n\",\n      \"Requirement already satisfied: jinja2 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (3.1.4)\\n\",\n      \"Requirement already satisfied: fsspec in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (2024.3.1)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (12.1.105)\\n\",\n      \"Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (8.9.2.26)\\n\",\n      \"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (12.1.3.1)\\n\",\n      \"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (11.0.2.54)\\n\",\n      \"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (10.3.2.106)\\n\",\n      \"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (11.4.5.107)\\n\",\n      \"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (12.1.0.106)\\n\",\n      \"Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (2.20.5)\\n\",\n      \"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (12.1.105)\\n\",\n      \"Requirement already satisfied: triton==2.3.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from torch>=1.0.1->pytorch-fid) (2.3.0)\\n\",\n      \"Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.0.1->pytorch-fid) (12.4.127)\\n\",\n      \"Requirement already satisfied: MarkupSafe>=2.0 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from jinja2->torch>=1.0.1->pytorch-fid) (2.1.5)\\n\",\n      \"Requirement already satisfied: mpmath>=0.19 in /home/hoperj/miniconda3/envs/UQ/lib/python3.10/site-packages (from sympy->torch>=1.0.1->pytorch-fid) (1.3.0)\\n\",\n      \"--2024-06-19 04:34:04--  https://raw.githubusercontent.com/nagadomi/lbpcascade_animeface/master/lbpcascade_animeface.xml\\n\",\n      \"Connecting to 127.0.0.1:7890... connected.\\n\",\n      \"Proxy request sent, awaiting response... 200 OK\\n\",\n      \"Length: 246945 (241K) [text/plain]\\n\",\n      \"Saving to: ‘lbpcascade_animeface.xml’\\n\",\n      \"\\n\",\n      \"lbpcascade_animefac 100%[===================>] 241.16K   494KB/s    in 0.5s    \\n\",\n      \"\\n\",\n      \"2024-06-19 04:34:05 (494 KB/s) - ‘lbpcascade_animeface.xml’ saved [246945/246945]\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!pip install pytorch-fid\\n\",\n    \"!wget https://raw.githubusercontent.com/nagadomi/lbpcascade_animeface/master/lbpcascade_animeface.xml -O lbpcascade_animeface.xml\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from ultralytics import YOLO\\n\",\n    \"from pytorch_fid import fid_score\\n\",\n    \"import os\\n\",\n    \"\\n\",\n    \"def calculate_fid(real_images_path, generated_images_path):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Calculate FID score between real and generated images.\\n\",\n    \"    \\n\",\n    \"    :param real_images_path: Path to the directory containing real images.\\n\",\n    \"    :param generated_images_path: Path to the directory containing generated images.\\n\",\n    \"    :return: FID score\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    fid = fid_score.calculate_fid_given_paths([real_images_path, generated_images_path], batch_size=50, device='cuda', dims=2048)\\n\",\n    \"    return fid\\n\",\n    \"\\n\",\n    \"def calculate_afd(generated_images_path, save=True):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    Calculate AFD (Anime Face Detection) score for generated images.\\n\",\n    \"    \\n\",\n    \"    :param generated_images_path: Path to the directory containing generated images.\\n\",\n    \"    :return: AFD score (percentage of images detected as anime faces)\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    results = yolov8_animeface.predict(generated_images_path, save=save, conf=0.8, iou=0.8, imgsz=64)\\n\",\n    \"\\n\",\n    \"    anime_faces_detected = 0\\n\",\n    \"    total_images = len(results)\\n\",\n    \"\\n\",\n    \"    for result in results:\\n\",\n    \"        if len(result.boxes) > 0:\\n\",\n    \"            anime_faces_detected += 1\\n\",\n    \"\\n\",\n    \"    afd_score = anime_faces_detected / total_images\\n\",\n    \"    return afd_score\\n\",\n    \"            \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"scrolled\": true,\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1427/1427 [02:32<00:00,  9.37it/s]\\n\",\n      \"100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:02<00:00,  9.17it/s]\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"image 1/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/1.jpg: 64x64 1 face, 6.6ms\\n\",\n      \"image 2/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/10.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 3/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/100.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 4/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/1000.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 5/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/101.jpg: 64x64 (no detections), 6.3ms\\n\",\n      \"image 6/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/102.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 7/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/103.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 8/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/104.jpg: 64x64 (no detections), 6.3ms\\n\",\n      \"image 9/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/105.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 10/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/106.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 11/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/107.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 12/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/108.jpg: 64x64 (no detections), 6.4ms\\n\",\n      \"image 13/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/109.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 14/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/11.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 15/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/110.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 16/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/111.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 17/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/112.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 18/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/113.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 19/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/114.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 20/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/115.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 21/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/116.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 22/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/117.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 23/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/118.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 24/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/119.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 25/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/12.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 26/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/120.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 27/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/121.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 28/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/122.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 29/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/123.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 30/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/124.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 31/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/125.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 32/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/126.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 33/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/127.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 34/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/128.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 35/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/129.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 36/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/13.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 37/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/130.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 38/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/131.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 39/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/132.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 40/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/133.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 41/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/134.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 42/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/135.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 43/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/136.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 44/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/137.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 45/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/138.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 46/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/139.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 47/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/14.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 48/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/140.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 49/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/141.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 50/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/142.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 51/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/143.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 52/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/144.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 53/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/145.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 54/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/146.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 55/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/147.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 56/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/148.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 57/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/149.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 58/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/15.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 59/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/150.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 60/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/151.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 61/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/152.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 62/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/153.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 63/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/154.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 64/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/155.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 65/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/156.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 66/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/157.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 67/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/158.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 68/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/159.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 69/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/16.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 70/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/160.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 71/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/161.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 72/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/162.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 73/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/163.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 74/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/164.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 75/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/165.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 76/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/166.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 77/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/167.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 78/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/168.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 79/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/169.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 80/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/17.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 81/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/170.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 82/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/171.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 83/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/172.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 84/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/173.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 85/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/174.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 86/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/175.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 87/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/176.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 88/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/177.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 89/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/178.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 90/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/179.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 91/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/18.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 92/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/180.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 93/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/181.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 94/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/182.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 95/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/183.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 96/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/184.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 97/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/185.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 98/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/186.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 99/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/187.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 100/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/188.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 101/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/189.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 102/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/19.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 103/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/190.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 104/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/191.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 105/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/192.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 106/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/193.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 107/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/194.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 108/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/195.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 109/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/196.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 110/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/197.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 111/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/198.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 112/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/199.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 113/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/2.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 114/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/20.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 115/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/200.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 116/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/201.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 117/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/202.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 118/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/203.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 119/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/204.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 120/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/205.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 121/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/206.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 122/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/207.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 123/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/208.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 124/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/209.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 125/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/21.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 126/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/210.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 127/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/211.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 128/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/212.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 129/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/213.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 130/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/214.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 131/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/215.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 132/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/216.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 133/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/217.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 134/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/218.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 135/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/219.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 136/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/22.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 137/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/220.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 138/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/221.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 139/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/222.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 140/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/223.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 141/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/224.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 142/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/225.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 143/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/226.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 144/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/227.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 145/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/228.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 146/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/229.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 147/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/23.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 148/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/230.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 149/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/231.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 150/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/232.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 151/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/233.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 152/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/234.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 153/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/235.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 154/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/236.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 155/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/237.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 156/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/238.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 157/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/239.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 158/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/24.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 159/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/240.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 160/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/241.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 161/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/242.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 162/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/243.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 163/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/244.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 164/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/245.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 165/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/246.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 166/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/247.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 167/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/248.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 168/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/249.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 169/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/25.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 170/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/250.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 171/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/251.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 172/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/252.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 173/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/253.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 174/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/254.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 175/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/255.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 176/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/256.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 177/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/257.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 178/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/258.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 179/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/259.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 180/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/26.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 181/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/260.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 182/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/261.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 183/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/262.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 184/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/263.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 185/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/264.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 186/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/265.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 187/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/266.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 188/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/267.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 189/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/268.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 190/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/269.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 191/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/27.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 192/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/270.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 193/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/271.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 194/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/272.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 195/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/273.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 196/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/274.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 197/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/275.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 198/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/276.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 199/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/277.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 200/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/278.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 201/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/279.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 202/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/28.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 203/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/280.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 204/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/281.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 205/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/282.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 206/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/283.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 207/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/284.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 208/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/285.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 209/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/286.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 210/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/287.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 211/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/288.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 212/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/289.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 213/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/29.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 214/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/290.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 215/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/291.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 216/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/292.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 217/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/293.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 218/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/294.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 219/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/295.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 220/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/296.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 221/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/297.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 222/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/298.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 223/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/299.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 224/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/3.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 225/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/30.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 226/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/300.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 227/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/301.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 228/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/302.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 229/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/303.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 230/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/304.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 231/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/305.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 232/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/306.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 233/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/307.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 234/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/308.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 235/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/309.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 236/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/31.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 237/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/310.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 238/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/311.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 239/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/312.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 240/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/313.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 241/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/314.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 242/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/315.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 243/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/316.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 244/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/317.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 245/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/318.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 246/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/319.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 247/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/32.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 248/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/320.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 249/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/321.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 250/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/322.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 251/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/323.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 252/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/324.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 253/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/325.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 254/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/326.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 255/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/327.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 256/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/328.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 257/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/329.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 258/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/33.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 259/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/330.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 260/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/331.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 261/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/332.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 262/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/333.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 263/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/334.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 264/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/335.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 265/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/336.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 266/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/337.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 267/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/338.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 268/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/339.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 269/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/34.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 270/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/340.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 271/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/341.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 272/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/342.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 273/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/343.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 274/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/344.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 275/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/345.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 276/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/346.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 277/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/347.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 278/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/348.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 279/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/349.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 280/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/35.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 281/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/350.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 282/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/351.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 283/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/352.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 284/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/353.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 285/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/354.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 286/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/355.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 287/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/356.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 288/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/357.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 289/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/358.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 290/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/359.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 291/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/36.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 292/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/360.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 293/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/361.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 294/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/362.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 295/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/363.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 296/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/364.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 297/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/365.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 298/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/366.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 299/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/367.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 300/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/368.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 301/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/369.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 302/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/37.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 303/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/370.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 304/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/371.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 305/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/372.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 306/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/373.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 307/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/374.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 308/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/375.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 309/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/376.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 310/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/377.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 311/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/378.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 312/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/379.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 313/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/38.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 314/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/380.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 315/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/381.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 316/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/382.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 317/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/383.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 318/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/384.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 319/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/385.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 320/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/386.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 321/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/387.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 322/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/388.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 323/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/389.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 324/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/39.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 325/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/390.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 326/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/391.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 327/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/392.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 328/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/393.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 329/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/394.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 330/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/395.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 331/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/396.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 332/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/397.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 333/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/398.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 334/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/399.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 335/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/4.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 336/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/40.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 337/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/400.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 338/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/401.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 339/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/402.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 340/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/403.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 341/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/404.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 342/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/405.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 343/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/406.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 344/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/407.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 345/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/408.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 346/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/409.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 347/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/41.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 348/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/410.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 349/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/411.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 350/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/412.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 351/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/413.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 352/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/414.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 353/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/415.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 354/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/416.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 355/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/417.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 356/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/418.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 357/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/419.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 358/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/42.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 359/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/420.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 360/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/421.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 361/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/422.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 362/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/423.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 363/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/424.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 364/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/425.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 365/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/426.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 366/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/427.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 367/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/428.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 368/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/429.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 369/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/43.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 370/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/430.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 371/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/431.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 372/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/432.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 373/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/433.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 374/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/434.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 375/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/435.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 376/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/436.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 377/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/437.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 378/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/438.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 379/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/439.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 380/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/44.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 381/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/440.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 382/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/441.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 383/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/442.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 384/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/443.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 385/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/444.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 386/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/445.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 387/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/446.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 388/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/447.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 389/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/448.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 390/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/449.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 391/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/45.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 392/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/450.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 393/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/451.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 394/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/452.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 395/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/453.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 396/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/454.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 397/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/455.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 398/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/456.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 399/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/457.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 400/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/458.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 401/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/459.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 402/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/46.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 403/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/460.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 404/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/461.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 405/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/462.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 406/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/463.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 407/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/464.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 408/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/465.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 409/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/466.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 410/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/467.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 411/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/468.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 412/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/469.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 413/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/47.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 414/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/470.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 415/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/471.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 416/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/472.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 417/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/473.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 418/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/474.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 419/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/475.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 420/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/476.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 421/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/477.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 422/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/478.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 423/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/479.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 424/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/48.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 425/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/480.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 426/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/481.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 427/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/482.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 428/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/483.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 429/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/484.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 430/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/485.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 431/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/486.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 432/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/487.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 433/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/488.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 434/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/489.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 435/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/49.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 436/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/490.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 437/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/491.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 438/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/492.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 439/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/493.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 440/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/494.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 441/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/495.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 442/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/496.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 443/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/497.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 444/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/498.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 445/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/499.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 446/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/5.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 447/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/50.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 448/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/500.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 449/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/501.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 450/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/502.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 451/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/503.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 452/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/504.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 453/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/505.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 454/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/506.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 455/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/507.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 456/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/508.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 457/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/509.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 458/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/51.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 459/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/510.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 460/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/511.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 461/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/512.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 462/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/513.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 463/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/514.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 464/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/515.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 465/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/516.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 466/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/517.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 467/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/518.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 468/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/519.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 469/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/52.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 470/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/520.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 471/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/521.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 472/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/522.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 473/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/523.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 474/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/524.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 475/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/525.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 476/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/526.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 477/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/527.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 478/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/528.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 479/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/529.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 480/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/53.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 481/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/530.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 482/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/531.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 483/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/532.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 484/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/533.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 485/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/534.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 486/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/535.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 487/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/536.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 488/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/537.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 489/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/538.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 490/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/539.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 491/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/54.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 492/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/540.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 493/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/541.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 494/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/542.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 495/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/543.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 496/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/544.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 497/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/545.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 498/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/546.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 499/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/547.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 500/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/548.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 501/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/549.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 502/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/55.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 503/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/550.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 504/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/551.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 505/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/552.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 506/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/553.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 507/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/554.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 508/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/555.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 509/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/556.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 510/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/557.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 511/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/558.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 512/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/559.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 513/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/56.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 514/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/560.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 515/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/561.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 516/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/562.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 517/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/563.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 518/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/564.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 519/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/565.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 520/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/566.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 521/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/567.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 522/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/568.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 523/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/569.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 524/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/57.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 525/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/570.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 526/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/571.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 527/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/572.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 528/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/573.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 529/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/574.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 530/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/575.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 531/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/576.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 532/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/577.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 533/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/578.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 534/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/579.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 535/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/58.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 536/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/580.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 537/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/581.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 538/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/582.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 539/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/583.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 540/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/584.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 541/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/585.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 542/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/586.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 543/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/587.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 544/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/588.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 545/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/589.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 546/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/59.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 547/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/590.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 548/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/591.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 549/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/592.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 550/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/593.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 551/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/594.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 552/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/595.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 553/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/596.jpg: 64x64 1 face, 7.4ms\\n\",\n      \"image 554/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/597.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 555/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/598.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 556/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/599.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 557/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/6.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 558/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/60.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 559/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/600.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 560/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/601.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 561/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/602.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 562/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/603.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 563/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/604.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 564/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/605.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 565/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/606.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 566/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/607.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 567/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/608.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 568/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/609.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 569/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/61.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 570/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/610.jpg: 64x64 1 face, 6.6ms\\n\",\n      \"image 571/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/611.jpg: 64x64 1 face, 6.6ms\\n\",\n      \"image 572/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/612.jpg: 64x64 (no detections), 6.6ms\\n\",\n      \"image 573/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/613.jpg: 64x64 1 face, 6.5ms\\n\",\n      \"image 574/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/614.jpg: 64x64 1 face, 6.4ms\\n\",\n      \"image 575/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/615.jpg: 64x64 1 face, 6.4ms\\n\",\n      \"image 576/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/616.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 577/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/617.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 578/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/618.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 579/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/619.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 580/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/62.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 581/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/620.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 582/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/621.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 583/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/622.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 584/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/623.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 585/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/624.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 586/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/625.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 587/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/626.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 588/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/627.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 589/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/628.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 590/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/629.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 591/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/63.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 592/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/630.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 593/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/631.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 594/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/632.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 595/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/633.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 596/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/634.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 597/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/635.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 598/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/636.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 599/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/637.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 600/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/638.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 601/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/639.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 602/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/64.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 603/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/640.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 604/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/641.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 605/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/642.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 606/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/643.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 607/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/644.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 608/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/645.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 609/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/646.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 610/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/647.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 611/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/648.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 612/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/649.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 613/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/65.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 614/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/650.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 615/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/651.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 616/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/652.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 617/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/653.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 618/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/654.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 619/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/655.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 620/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/656.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 621/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/657.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 622/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/658.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 623/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/659.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 624/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/66.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 625/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/660.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 626/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/661.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 627/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/662.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 628/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/663.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 629/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/664.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 630/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/665.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 631/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/666.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 632/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/667.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 633/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/668.jpg: 64x64 1 face, 8.2ms\\n\",\n      \"image 634/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/669.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 635/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/67.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 636/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/670.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 637/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/671.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 638/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/672.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 639/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/673.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 640/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/674.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 641/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/675.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 642/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/676.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 643/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/677.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 644/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/678.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 645/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/679.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 646/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/68.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 647/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/680.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 648/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/681.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 649/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/682.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 650/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/683.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 651/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/684.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 652/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/685.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 653/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/686.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 654/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/687.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 655/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/688.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 656/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/689.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 657/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/69.jpg: 64x64 1 face, 7.9ms\\n\",\n      \"image 658/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/690.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 659/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/691.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 660/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/692.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 661/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/693.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 662/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/694.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 663/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/695.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 664/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/696.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 665/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/697.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 666/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/698.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 667/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/699.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 668/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/7.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 669/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/70.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 670/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/700.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 671/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/701.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 672/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/702.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 673/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/703.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 674/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/704.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 675/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/705.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 676/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/706.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 677/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/707.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 678/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/708.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 679/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/709.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 680/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/71.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 681/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/710.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 682/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/711.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 683/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/712.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 684/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/713.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 685/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/714.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 686/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/715.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 687/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/716.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 688/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/717.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 689/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/718.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 690/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/719.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 691/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/72.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 692/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/720.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 693/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/721.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 694/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/722.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 695/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/723.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 696/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/724.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 697/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/725.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 698/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/726.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 699/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/727.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 700/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/728.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 701/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/729.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 702/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/73.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 703/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/730.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 704/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/731.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 705/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/732.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 706/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/733.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 707/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/734.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 708/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/735.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 709/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/736.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 710/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/737.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 711/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/738.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 712/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/739.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 713/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/74.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 714/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/740.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 715/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/741.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 716/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/742.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 717/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/743.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 718/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/744.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 719/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/745.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 720/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/746.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 721/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/747.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 722/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/748.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 723/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/749.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 724/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/75.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 725/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/750.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 726/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/751.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 727/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/752.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 728/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/753.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 729/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/754.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 730/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/755.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 731/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/756.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 732/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/757.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 733/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/758.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 734/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/759.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 735/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/76.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 736/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/760.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 737/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/761.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 738/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/762.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 739/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/763.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 740/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/764.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 741/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/765.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 742/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/766.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 743/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/767.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 744/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/768.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 745/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/769.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 746/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/77.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 747/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/770.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 748/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/771.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 749/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/772.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 750/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/773.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 751/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/774.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 752/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/775.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 753/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/776.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 754/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/777.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 755/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/778.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 756/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/779.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 757/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/78.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 758/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/780.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 759/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/781.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 760/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/782.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 761/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/783.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 762/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/784.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 763/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/785.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 764/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/786.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 765/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/787.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 766/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/788.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 767/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/789.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 768/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/79.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 769/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/790.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 770/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/791.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 771/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/792.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 772/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/793.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 773/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/794.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 774/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/795.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 775/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/796.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 776/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/797.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 777/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/798.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 778/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/799.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 779/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/8.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 780/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/80.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 781/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/800.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 782/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/801.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 783/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/802.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 784/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/803.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 785/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/804.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 786/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/805.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 787/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/806.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 788/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/807.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 789/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/808.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 790/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/809.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 791/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/81.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 792/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/810.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 793/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/811.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 794/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/812.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 795/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/813.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 796/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/814.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 797/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/815.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 798/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/816.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 799/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/817.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 800/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/818.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 801/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/819.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 802/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/82.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 803/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/820.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 804/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/821.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 805/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/822.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 806/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/823.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 807/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/824.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 808/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/825.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 809/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/826.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 810/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/827.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 811/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/828.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 812/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/829.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 813/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/83.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 814/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/830.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 815/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/831.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 816/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/832.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 817/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/833.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 818/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/834.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 819/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/835.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 820/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/836.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 821/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/837.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 822/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/838.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 823/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/839.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 824/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/84.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 825/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/840.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 826/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/841.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 827/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/842.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 828/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/843.jpg: 64x64 1 face, 17.5ms\\n\",\n      \"image 829/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/844.jpg: 64x64 1 face, 6.3ms\\n\",\n      \"image 830/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/845.jpg: 64x64 1 face, 9.8ms\\n\",\n      \"image 831/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/846.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 832/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/847.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 833/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/848.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 834/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/849.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 835/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/85.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 836/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/850.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 837/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/851.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 838/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/852.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 839/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/853.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 840/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/854.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 841/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/855.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 842/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/856.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 843/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/857.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 844/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/858.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 845/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/859.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 846/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/86.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 847/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/860.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 848/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/861.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 849/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/862.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 850/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/863.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 851/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/864.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 852/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/865.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 853/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/866.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 854/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/867.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 855/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/868.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 856/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/869.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 857/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/87.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 858/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/870.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 859/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/871.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 860/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/872.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 861/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/873.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 862/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/874.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 863/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/875.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 864/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/876.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 865/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/877.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 866/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/878.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 867/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/879.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 868/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/88.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 869/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/880.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 870/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/881.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 871/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/882.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 872/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/883.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 873/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/884.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 874/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/885.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 875/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/886.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 876/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/887.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 877/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/888.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 878/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/889.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 879/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/89.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 880/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/890.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 881/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/891.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 882/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/892.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 883/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/893.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 884/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/894.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 885/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/895.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 886/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/896.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 887/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/897.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 888/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/898.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 889/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/899.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 890/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/9.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 891/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/90.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 892/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/900.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 893/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/901.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 894/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/902.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 895/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/903.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 896/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/904.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 897/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/905.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 898/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/906.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 899/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/907.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 900/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/908.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 901/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/909.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 902/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/91.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 903/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/910.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 904/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/911.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 905/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/912.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 906/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/913.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 907/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/914.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 908/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/915.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 909/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/916.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 910/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/917.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 911/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/918.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 912/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/919.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 913/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/92.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 914/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/920.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 915/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/921.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 916/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/922.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 917/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/923.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 918/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/924.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 919/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/925.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 920/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/926.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 921/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/927.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 922/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/928.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 923/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/929.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 924/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/93.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 925/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/930.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 926/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/931.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 927/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/932.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 928/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/933.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 929/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/934.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 930/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/935.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 931/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/936.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 932/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/937.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 933/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/938.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 934/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/939.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 935/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/94.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 936/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/940.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 937/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/941.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 938/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/942.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 939/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/943.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 940/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/944.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 941/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/945.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 942/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/946.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 943/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/947.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 944/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/948.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 945/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/949.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 946/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/95.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 947/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/950.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 948/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/951.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 949/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/952.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 950/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/953.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 951/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/954.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 952/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/955.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 953/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/956.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 954/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/957.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 955/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/958.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 956/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/959.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 957/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/96.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 958/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/960.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 959/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/961.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 960/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/962.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 961/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/963.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 962/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/964.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 963/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/965.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 964/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/966.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 965/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/967.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 966/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/968.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 967/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/969.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 968/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/97.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 969/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/970.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 970/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/971.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 971/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/972.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 972/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/973.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 973/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/974.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 974/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/975.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 975/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/976.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 976/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/977.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 977/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/978.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 978/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/979.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 979/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/98.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 980/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/980.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 981/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/981.jpg: 64x64 1 face, 6.2ms\\n\",\n      \"image 982/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/982.jpg: 64x64 (no detections), 6.2ms\\n\",\n      \"image 983/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/983.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 984/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/984.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 985/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/985.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 986/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/986.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 987/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/987.jpg: 64x64 (no detections), 6.0ms\\n\",\n      \"image 988/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/988.jpg: 64x64 1 face, 6.0ms\\n\",\n      \"image 989/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/989.jpg: 64x64 (no detections), 6.1ms\\n\",\n      \"image 990/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/99.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 991/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/990.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 992/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/991.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 993/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/992.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 994/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/993.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 995/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/994.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 996/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/995.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 997/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/996.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 998/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/997.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 999/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/998.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"image 1000/1000 /home/hoperj/DeepLearning/HUNG-YI_LEE_Machine-Learning_Homework/HW06/submission/999.jpg: 64x64 1 face, 6.1ms\\n\",\n      \"Speed: 0.1ms preprocess, 6.1ms inference, 0.4ms postprocess per image at shape (1, 3, 64, 64)\\n\",\n      \"Results saved to \\u001b[1mruns/detect/predict17\\u001b[0m\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Calculate and print FID and AFD with optional visualization\\n\",\n    \"yolov8_animeface = YOLO('yolov8x6_animeface.pt')\\n\",\n    \"real_images_path = './faces/faces'  # Replace with the path to real images\\n\",\n    \"fid = calculate_fid(real_images_path, './submission/boss')\\n\",\n    \"afd = calculate_afd('./submission/boss')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"FID: 217.64170351097306\\n\",\n      \"AFD: 0.835\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(f'FID: {fid}')\\n\",\n    \"print(f'AFD: {afd}')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kaggle\": {\n   \"accelerator\": \"none\",\n   \"dataSources\": [\n    {\n     \"datasetId\": 3065496,\n     \"sourceId\": 5266736,\n     \"sourceType\": \"datasetVersion\"\n    }\n   ],\n   \"dockerImageVersionId\": 30445,\n   \"isGpuEnabled\": false,\n   \"isInternetEnabled\": true,\n   \"language\": \"python\",\n   \"sourceType\": \"notebook\"\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.14\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW06/HW06_Sample_Code.ipynb",
    "content": "{\"metadata\":{\"kernelspec\":{\"language\":\"python\",\"display_name\":\"Python 3\",\"name\":\"python3\"},\"language_info\":{\"pygments_lexer\":\"ipython3\",\"nbconvert_exporter\":\"python\",\"version\":\"3.6.4\",\"file_extension\":\".py\",\"codemirror_mode\":{\"name\":\"ipython\",\"version\":3},\"name\":\"python\",\"mimetype\":\"text/x-python\"},\"kaggle\":{\"accelerator\":\"none\",\"dataSources\":[{\"sourceId\":5266736,\"sourceType\":\"datasetVersion\",\"datasetId\":3065496}],\"dockerImageVersionId\":30445,\"isInternetEnabled\":true,\"language\":\"python\",\"sourceType\":\"notebook\",\"isGpuEnabled\":false}},\"nbformat_minor\":4,\"nbformat\":4,\"cells\":[{\"cell_type\":\"markdown\",\"source\":\"\\n# HW6 Diffusion Model\\n\\n**Sources:**\\n- Github implementation [Denoising Diffusion Pytorch](https://github.com/lucidrains/denoising-diffusion-pytorch)\\n- Papers on Diffusion models ([Dhariwal, Nichol, 2021], [Ho et al., 2020] ect.)\\n\",\"metadata\":{\"id\":\"HhIgGq3za0yh\"}},{\"cell_type\":\"markdown\",\"source\":\"## Import Packages and Set Seeds\",\"metadata\":{\"id\":\"wLHSIArLcFK0\"}},{\"cell_type\":\"code\",\"source\":\"!pip install einops\\n!pip install transformers\\n!pip install ema_pytorch\\n!pip install accelerate\",\"metadata\":{\"id\":\"s1xegyILIuLz\",\"outputId\":\"b71ce929-c0bd-4ff0-ff53-cb01b421c2e9\",\"execution\":{\"iopub.status.busy\":\"2023-03-30T06:17:55.373297Z\",\"iopub.execute_input\":\"2023-03-30T06:17:55.374214Z\",\"iopub.status.idle\":\"2023-03-30T06:18:43.218774Z\",\"shell.execute_reply.started\":\"2023-03-30T06:17:55.374161Z\",\"shell.execute_reply\":\"2023-03-30T06:18:43.217348Z\"},\"trusted\":true},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"code\",\"source\":\"import math\\nimport copy\\nfrom pathlib import Path\\nfrom random import random\\nfrom functools import partial\\nfrom collections import namedtuple\\nfrom multiprocessing import cpu_count\\n\\nimport torch\\nfrom torch import nn, einsum\\nimport torch.nn.functional as F\\nfrom torch.utils.data import Dataset, DataLoader\\n\\nfrom torch.optim import Adam\\n\\nimport torchvision\\nfrom torchvision import transforms as T, utils\\n\\nfrom einops import rearrange, reduce, repeat\\nfrom einops.layers.torch import Rearrange\\n\\nfrom PIL import Image\\nfrom tqdm.auto import tqdm\\nfrom ema_pytorch import EMA\\n\\nfrom accelerate import Accelerator\\nimport matplotlib.pyplot as plt\\nimport os\\n\\ntorch.backends.cudnn.benchmark = True\\ntorch.manual_seed(4096)\\n\\nif torch.cuda.is_available():\\n  torch.cuda.manual_seed(4096)\",\"metadata\":{\"id\":\"LQnlc27k7Aiw\",\"outputId\":\"122e675a-a91b-4fa3-d56f-1f6bb38bc094\"},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"## Step 1: Forward process (Noise scheduler)\\n\\n\\n\",\"metadata\":{\"id\":\"Rj17psVw7Shg\"}},{\"cell_type\":\"code\",\"source\":\"def linear_beta_schedule(timesteps):\\n    \\\"\\\"\\\"\\n    linear schedule, proposed in original ddpm paper\\n    \\\"\\\"\\\"\\n    scale = 1000 / timesteps\\n    beta_start = scale * 0.0001\\n    beta_end = scale * 0.02\\n    return torch.linspace(beta_start, beta_end, timesteps, dtype = torch.float64)\\n\\ndef extract(a, t, x_shape):\\n    b, *_ = t.shape\\n    out = a.gather(-1, t)\\n    return out.reshape(b, *((1,) * (len(x_shape) - 1)))\",\"metadata\":{\"id\":\"qWw50ui9IZ5q\"},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"Create dataset\",\"metadata\":{\"id\":\"Vt6JSKawk7_b\"}},{\"cell_type\":\"code\",\"source\":\"class Dataset(Dataset):\\n    def __init__(\\n        self,\\n        folder,\\n        image_size\\n    ):\\n        self.folder = folder\\n        self.image_size = image_size\\n        self.paths = [p for p in Path(f'{folder}').glob(f'**/*.jpg')]\\n        #################################\\n        ## TODO: Data Augmentation ##\\n        #################################\\n        self.transform = T.Compose([\\n            T.Resize(image_size),\\n            T.ToTensor()\\n        ])\\n\\n    def __len__(self):\\n        return len(self.paths)\\n\\n    def __getitem__(self, index):\\n        path = self.paths[index]\\n        img = Image.open(path)\\n        return self.transform(img)\",\"metadata\":{\"id\":\"uuckjpW_k1LN\"},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"## Step 2: The backward process = U-Net\\n\\n\",\"metadata\":{\"id\":\"buW6BaNga-XH\"}},{\"cell_type\":\"markdown\",\"source\":\"Define some useful functions and U-Net\",\"metadata\":{\"id\":\"iYw6u0nJXIWy\"}},{\"cell_type\":\"code\",\"source\":\"def exists(x):\\n    return x is not None\\n\\ndef default(val, d):\\n    if exists(val):\\n        return val\\n    return d() if callable(d) else d\\n\\ndef identity(t, *args, **kwargs):\\n    return t\\n\\ndef cycle(dl):\\n    while True:\\n        for data in dl:\\n            yield data\\n\\ndef has_int_squareroot(num):\\n    return (math.sqrt(num) ** 2) == num\\n\\ndef num_to_groups(num, divisor):\\n    groups = num // divisor\\n    remainder = num % divisor\\n    arr = [divisor] * groups\\n    if remainder > 0:\\n        arr.append(remainder)\\n    return arr\\n\\n# normalization functions\\n\\ndef normalize_to_neg_one_to_one(img):\\n    return img * 2 - 1\\n\\ndef unnormalize_to_zero_to_one(t):\\n    return (t + 1) * 0.5\\n\\n# small helper modules\\n\\nclass Residual(nn.Module):\\n    def __init__(self, fn):\\n        super().__init__()\\n        self.fn = fn\\n\\n    def forward(self, x, *args, **kwargs):\\n        return self.fn(x, *args, **kwargs) + x\\n\\ndef Upsample(dim, dim_out = None):\\n    return nn.Sequential(\\n        nn.Upsample(scale_factor = 2, mode = 'nearest'),\\n        nn.Conv2d(dim, default(dim_out, dim), 3, padding = 1)\\n    )\\n\\ndef Downsample(dim, dim_out = None):\\n    return nn.Sequential(\\n        Rearrange('b c (h p1) (w p2) -> b (c p1 p2) h w', p1 = 2, p2 = 2),\\n        nn.Conv2d(dim * 4, default(dim_out, dim), 1)\\n    )\\n\\nclass WeightStandardizedConv2d(nn.Conv2d):\\n    \\\"\\\"\\\"\\n    https://arxiv.org/abs/1903.10520\\n    weight standardization purportedly works synergistically with group normalization\\n    \\\"\\\"\\\"\\n    def forward(self, x):\\n        eps = 1e-5 if x.dtype == torch.float32 else 1e-3\\n\\n        weight = self.weight\\n        mean = reduce(weight, 'o ... -> o 1 1 1', 'mean')\\n        var = reduce(weight, 'o ... -> o 1 1 1', partial(torch.var, unbiased = False))\\n        normalized_weight = (weight - mean) * (var + eps).rsqrt()\\n\\n        return F.conv2d(x, normalized_weight, self.bias, self.stride, self.padding, self.dilation, self.groups)\\n\\nclass LayerNorm(nn.Module):\\n    def __init__(self, dim):\\n        super().__init__()\\n        self.g = nn.Parameter(torch.ones(1, dim, 1, 1))\\n\\n    def forward(self, x):\\n        eps = 1e-5 if x.dtype == torch.float32 else 1e-3\\n        var = torch.var(x, dim = 1, unbiased = False, keepdim = True)\\n        mean = torch.mean(x, dim = 1, keepdim = True)\\n        return (x - mean) * (var + eps).rsqrt() * self.g\\n\\nclass PreNorm(nn.Module):\\n    def __init__(self, dim, fn):\\n        super().__init__()\\n        self.fn = fn\\n        self.norm = LayerNorm(dim)\\n\\n    def forward(self, x):\\n        x = self.norm(x)\\n        return self.fn(x)\\n\\n# sinusoidal positional embeds\\n\\nclass SinusoidalPosEmb(nn.Module):\\n    def __init__(self, dim):\\n        super().__init__()\\n        self.dim = dim\\n\\n    def forward(self, x):\\n        device = x.device\\n        half_dim = self.dim // 2\\n        emb = math.log(10000) / (half_dim - 1)\\n        emb = torch.exp(torch.arange(half_dim, device=device) * -emb)\\n        emb = x[:, None] * emb[None, :]\\n        emb = torch.cat((emb.sin(), emb.cos()), dim=-1)\\n        return emb\\n\\nclass RandomOrLearnedSinusoidalPosEmb(nn.Module):\\n    \\\"\\\"\\\" following @crowsonkb 's lead with random (learned optional) sinusoidal pos emb \\\"\\\"\\\"\\n    \\\"\\\"\\\" https://github.com/crowsonkb/v-diffusion-jax/blob/master/diffusion/models/danbooru_128.py#L8 \\\"\\\"\\\"\\n\\n    def __init__(self, dim, is_random = False):\\n        super().__init__()\\n        assert (dim % 2) == 0\\n        half_dim = dim // 2\\n        self.weights = nn.Parameter(torch.randn(half_dim), requires_grad = not is_random)\\n\\n    def forward(self, x):\\n        x = rearrange(x, 'b -> b 1')\\n        freqs = x * rearrange(self.weights, 'd -> 1 d') * 2 * math.pi\\n        fouriered = torch.cat((freqs.sin(), freqs.cos()), dim = -1)\\n        fouriered = torch.cat((x, fouriered), dim = -1)\\n        return fouriered\\n\\n# building block modules\\n\\nclass Block(nn.Module):\\n    def __init__(self, dim, dim_out, groups = 8):\\n        super().__init__()\\n        self.proj = WeightStandardizedConv2d(dim, dim_out, 3, padding = 1)\\n        self.norm = nn.GroupNorm(groups, dim_out)\\n        self.act = nn.SiLU()\\n\\n    def forward(self, x, scale_shift = None):\\n        x = self.proj(x)\\n        x = self.norm(x)\\n\\n        if exists(scale_shift):\\n            scale, shift = scale_shift\\n            x = x * (scale + 1) + shift\\n\\n        x = self.act(x)\\n        return x\\n\\nclass ResnetBlock(nn.Module):\\n    def __init__(self, dim, dim_out, *, time_emb_dim = None, groups = 8):\\n        super().__init__()\\n        self.mlp = nn.Sequential(\\n            nn.SiLU(),\\n            nn.Linear(time_emb_dim, dim_out * 2)\\n        ) if exists(time_emb_dim) else None\\n\\n        self.block1 = Block(dim, dim_out, groups = groups)\\n        self.block2 = Block(dim_out, dim_out, groups = groups)\\n        self.res_conv = nn.Conv2d(dim, dim_out, 1) if dim != dim_out else nn.Identity()\\n\\n    def forward(self, x, time_emb = None):\\n\\n        scale_shift = None\\n        if exists(self.mlp) and exists(time_emb):\\n            time_emb = self.mlp(time_emb)\\n            time_emb = rearrange(time_emb, 'b c -> b c 1 1')\\n            scale_shift = time_emb.chunk(2, dim = 1)\\n\\n        h = self.block1(x, scale_shift = scale_shift)\\n\\n        h = self.block2(h)\\n\\n        return h + self.res_conv(x)\\n\\nclass LinearAttention(nn.Module):\\n    def __init__(self, dim, heads = 4, dim_head = 32):\\n        super().__init__()\\n        self.scale = dim_head ** -0.5\\n        self.heads = heads\\n        hidden_dim = dim_head * heads\\n        self.to_qkv = nn.Conv2d(dim, hidden_dim * 3, 1, bias = False)\\n\\n        self.to_out = nn.Sequential(\\n            nn.Conv2d(hidden_dim, dim, 1),\\n            LayerNorm(dim)\\n        )\\n\\n    def forward(self, x):\\n        b, c, h, w = x.shape\\n        qkv = self.to_qkv(x).chunk(3, dim = 1)\\n        q, k, v = map(lambda t: rearrange(t, 'b (h c) x y -> b h c (x y)', h = self.heads), qkv)\\n\\n        q = q.softmax(dim = -2)\\n        k = k.softmax(dim = -1)\\n\\n        q = q * self.scale\\n        v = v / (h * w)\\n\\n        context = torch.einsum('b h d n, b h e n -> b h d e', k, v)\\n\\n        out = torch.einsum('b h d e, b h d n -> b h e n', context, q)\\n        out = rearrange(out, 'b h c (x y) -> b (h c) x y', h = self.heads, x = h, y = w)\\n        return self.to_out(out)\\n\\nclass Attention(nn.Module):\\n    def __init__(self, dim, heads = 4, dim_head = 32):\\n        super().__init__()\\n        self.scale = dim_head ** -0.5\\n        self.heads = heads\\n        hidden_dim = dim_head * heads\\n\\n        self.to_qkv = nn.Conv2d(dim, hidden_dim * 3, 1, bias = False)\\n        self.to_out = nn.Conv2d(hidden_dim, dim, 1)\\n\\n    def forward(self, x):\\n        b, c, h, w = x.shape\\n        qkv = self.to_qkv(x).chunk(3, dim = 1)\\n        q, k, v = map(lambda t: rearrange(t, 'b (h c) x y -> b h c (x y)', h = self.heads), qkv)\\n\\n        q = q * self.scale\\n\\n        sim = torch.einsum('b h d i, b h d j -> b h i j', q, k)\\n        attn = sim.softmax(dim = -1)\\n        out = torch.einsum('b h i j, b h d j -> b h i d', attn, v)\\n\\n        out = rearrange(out, 'b h (x y) d -> b (h d) x y', x = h, y = w)\\n        return self.to_out(out)\\n\\n# model\\n\\nclass Unet(nn.Module):\\n    def __init__(\\n        self,\\n        dim,\\n        init_dim = None,\\n        out_dim = None,\\n        dim_mults=(1, 2, 4, 8),\\n        channels = 3,\\n        resnet_block_groups = 8,\\n        learned_sinusoidal_cond = False,\\n        random_fourier_features = False,\\n        learned_sinusoidal_dim = 16\\n    ):\\n        super().__init__()\\n\\n        # determine dimensions\\n\\n        self.channels = channels\\n\\n        init_dim = default(init_dim, dim)\\n        self.init_conv = nn.Conv2d(channels, init_dim, 7, padding = 3)\\n\\n        dims = [init_dim, *map(lambda m: dim * m, dim_mults)]\\n        in_out = list(zip(dims[:-1], dims[1:]))\\n\\n        block_klass = partial(ResnetBlock, groups = resnet_block_groups)\\n\\n        # time embeddings\\n\\n        time_dim = dim * 4\\n\\n        self.random_or_learned_sinusoidal_cond = learned_sinusoidal_cond or random_fourier_features\\n\\n        if self.random_or_learned_sinusoidal_cond:\\n            sinu_pos_emb = RandomOrLearnedSinusoidalPosEmb(learned_sinusoidal_dim, random_fourier_features)\\n            fourier_dim = learned_sinusoidal_dim + 1\\n        else:\\n            sinu_pos_emb = SinusoidalPosEmb(dim)\\n            fourier_dim = dim\\n\\n        self.time_mlp = nn.Sequential(\\n            sinu_pos_emb,\\n            nn.Linear(fourier_dim, time_dim),\\n            nn.GELU(),\\n            nn.Linear(time_dim, time_dim)\\n        )\\n\\n        # layers\\n\\n        self.downs = nn.ModuleList([])\\n        self.ups = nn.ModuleList([])\\n        num_resolutions = len(in_out)\\n\\n        for ind, (dim_in, dim_out) in enumerate(in_out):\\n            is_last = ind >= (num_resolutions - 1)\\n\\n            self.downs.append(nn.ModuleList([\\n                block_klass(dim_in, dim_in, time_emb_dim = time_dim),\\n                block_klass(dim_in, dim_in, time_emb_dim = time_dim),\\n                Residual(PreNorm(dim_in, LinearAttention(dim_in))),\\n                Downsample(dim_in, dim_out) if not is_last else nn.Conv2d(dim_in, dim_out, 3, padding = 1)\\n            ]))\\n\\n        mid_dim = dims[-1]\\n        self.mid_block1 = block_klass(mid_dim, mid_dim, time_emb_dim = time_dim)\\n        self.mid_attn = Residual(PreNorm(mid_dim, Attention(mid_dim)))\\n        self.mid_block2 = block_klass(mid_dim, mid_dim, time_emb_dim = time_dim)\\n\\n        for ind, (dim_in, dim_out) in enumerate(reversed(in_out)):\\n            is_last = ind == (len(in_out) - 1)\\n\\n            self.ups.append(nn.ModuleList([\\n                block_klass(dim_out + dim_in, dim_out, time_emb_dim = time_dim),\\n                block_klass(dim_out + dim_in, dim_out, time_emb_dim = time_dim),\\n                Residual(PreNorm(dim_out, LinearAttention(dim_out))),\\n                Upsample(dim_out, dim_in) if not is_last else  nn.Conv2d(dim_out, dim_in, 3, padding = 1)\\n            ]))\\n\\n        self.out_dim = default(out_dim, channels)\\n\\n        self.final_res_block = block_klass(dim * 2, dim, time_emb_dim = time_dim)\\n        self.final_conv = nn.Conv2d(dim, self.out_dim, 1)\\n\\n    def forward(self, x, time):\\n        x = self.init_conv(x)\\n        r = x.clone()\\n\\n        t = self.time_mlp(time)\\n\\n        h = []\\n\\n        for block1, block2, attn, downsample in self.downs:\\n            x = block1(x, t)\\n            h.append(x)\\n\\n            x = block2(x, t)\\n            x = attn(x)\\n            h.append(x)\\n\\n            x = downsample(x)\\n\\n        x = self.mid_block1(x, t)\\n        x = self.mid_attn(x)\\n        x = self.mid_block2(x, t)\\n\\n        for block1, block2, attn, upsample in self.ups:\\n            x = torch.cat((x, h.pop()), dim = 1)\\n            x = block1(x, t)\\n\\n            x = torch.cat((x, h.pop()), dim = 1)\\n            x = block2(x, t)\\n            x = attn(x)\\n\\n            x = upsample(x)\\n\\n        x = torch.cat((x, r), dim = 1)\\n\\n        x = self.final_res_block(x, t)\\n        return self.final_conv(x)\\nmodel = Unet(64)\",\"metadata\":{\"id\":\"DuJCCZ5dInQq\"},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"## Step 3: The Diffusion Process\\n\\n\",\"metadata\":{\"id\":\"8B9GlZrotBXy\"}},{\"cell_type\":\"markdown\",\"source\":\"Define diffusion process, including generating noisy models, sample...\\n\",\"metadata\":{\"id\":\"ph05t8MxXMoY\"}},{\"cell_type\":\"code\",\"source\":\"class GaussianDiffusion(nn.Module):\\n    def __init__(\\n        self,\\n        model,\\n        *,\\n        image_size,\\n        timesteps = 1000,\\n        beta_schedule = 'linear',\\n        auto_normalize = True\\n    ):\\n        super().__init__()\\n        assert not (type(self) == GaussianDiffusion and model.channels != model.out_dim)\\n        assert not model.random_or_learned_sinusoidal_cond\\n\\n        self.model = model\\n\\n        self.channels = self.model.channels\\n\\n        self.image_size = image_size\\n\\n\\n        if beta_schedule == 'linear':\\n            beta_schedule_fn = linear_beta_schedule\\n        else:\\n            raise ValueError(f'unknown beta schedule {beta_schedule}')\\n        \\n        # calculate beta and other precalculated parameters\\n        betas = beta_schedule_fn(timesteps)\\n                                            \\n        alphas = 1. - betas\\n        alphas_cumprod = torch.cumprod(alphas, dim=0)\\n        alphas_cumprod_prev = F.pad(alphas_cumprod[:-1], (1, 0), value = 1.)\\n\\n        timesteps, = betas.shape\\n        self.num_timesteps = int(timesteps)\\n\\n        # sampling related parameters\\n\\n        self.sampling_timesteps = timesteps # default num sampling timesteps to number of timesteps at training\\n\\n        # helper function to register buffer from float64 to float32\\n\\n        register_buffer = lambda name, val: self.register_buffer(name, val.to(torch.float32))\\n\\n        register_buffer('betas', betas)\\n        register_buffer('alphas_cumprod', alphas_cumprod)\\n        register_buffer('alphas_cumprod_prev', alphas_cumprod_prev)\\n\\n        # calculations for diffusion q(x_t | x_{t-1}) and others\\n\\n        register_buffer('sqrt_alphas_cumprod', torch.sqrt(alphas_cumprod))\\n        register_buffer('sqrt_one_minus_alphas_cumprod', torch.sqrt(1. - alphas_cumprod))\\n        register_buffer('log_one_minus_alphas_cumprod', torch.log(1. - alphas_cumprod))\\n        register_buffer('sqrt_recip_alphas_cumprod', torch.sqrt(1. / alphas_cumprod))\\n        register_buffer('sqrt_recipm1_alphas_cumprod', torch.sqrt(1. / alphas_cumprod - 1))\\n\\n        # calculations for posterior q(x_{t-1} | x_t, x_0)\\n\\n        posterior_variance = betas * (1. - alphas_cumprod_prev) / (1. - alphas_cumprod)\\n\\n        # above: equal to 1. / (1. / (1. - alpha_cumprod_tm1) + alpha_t / beta_t)\\n\\n        register_buffer('posterior_variance', posterior_variance)\\n\\n        # below: log calculation clipped because the posterior variance is 0 at the beginning of the diffusion chain\\n\\n        register_buffer('posterior_log_variance_clipped', torch.log(posterior_variance.clamp(min =1e-20)))\\n        register_buffer('posterior_mean_coef1', betas * torch.sqrt(alphas_cumprod_prev) / (1. - alphas_cumprod))\\n        register_buffer('posterior_mean_coef2', (1. - alphas_cumprod_prev) * torch.sqrt(alphas) / (1. - alphas_cumprod))\\n\\n        # derive loss weight\\n        # snr - signal noise ratio\\n\\n        snr = alphas_cumprod / (1 - alphas_cumprod)\\n\\n        # https://arxiv.org/abs/2303.09556\\n\\n        maybe_clipped_snr = snr.clone()\\n\\n        register_buffer('loss_weight', maybe_clipped_snr / snr)\\n\\n        # auto-normalization of data [0, 1] -> [-1, 1] - can turn off by setting it to be False\\n\\n        self.normalize = normalize_to_neg_one_to_one if auto_normalize else identity\\n        self.unnormalize = unnormalize_to_zero_to_one if auto_normalize else identity\\n\\n    def predict_start_from_noise(self, x_t, t, noise):\\n        return (\\n            extract(self.sqrt_recip_alphas_cumprod, t, x_t.shape) * x_t -\\n            extract(self.sqrt_recipm1_alphas_cumprod, t, x_t.shape) * noise\\n        )\\n\\n    def predict_noise_from_start(self, x_t, t, x0):\\n        return (\\n            (extract(self.sqrt_recip_alphas_cumprod, t, x_t.shape) * x_t - x0) / \\\\\\n            extract(self.sqrt_recipm1_alphas_cumprod, t, x_t.shape)\\n        )\\n\\n\\n    def q_posterior(self, x_start, x_t, t):\\n        posterior_mean = (\\n            extract(self.posterior_mean_coef1, t, x_t.shape) * x_start +\\n            extract(self.posterior_mean_coef2, t, x_t.shape) * x_t\\n        )\\n        posterior_variance = extract(self.posterior_variance, t, x_t.shape)\\n        posterior_log_variance_clipped = extract(self.posterior_log_variance_clipped, t, x_t.shape)\\n        return posterior_mean, posterior_variance, posterior_log_variance_clipped\\n\\n    def model_predictions(self, x, t, clip_x_start = False, rederive_pred_noise = False):\\n        model_output = self.model(x, t)\\n        maybe_clip = partial(torch.clamp, min = -1., max = 1.) if clip_x_start else identity\\n\\n        pred_noise = model_output\\n        x_start = self.predict_start_from_noise(x, t, pred_noise)\\n        x_start = maybe_clip(x_start)\\n\\n        if clip_x_start and rederive_pred_noise:\\n            pred_noise = self.predict_noise_from_start(x, t, x_start)\\n\\n        return pred_noise, x_start\\n\\n    def p_mean_variance(self, x, t, clip_denoised = True):\\n        noise, x_start = self.model_predictions(x, t)\\n\\n        if clip_denoised:\\n            x_start.clamp_(-1., 1.)\\n\\n        model_mean, posterior_variance, posterior_log_variance = self.q_posterior(x_start = x_start, x_t = x, t = t)\\n        return model_mean, posterior_variance, posterior_log_variance, x_start\\n\\n    @torch.no_grad()\\n    def p_sample(self, x, t: int):\\n        b, *_, device = *x.shape, x.device\\n        batched_times = torch.full((b,), t, device = x.device, dtype = torch.long)\\n        model_mean, _, model_log_variance, x_start = self.p_mean_variance(x = x, t = batched_times, clip_denoised = True)\\n        noise = torch.randn_like(x) if t > 0 else 0. # no noise if t == 0\\n        pred_img = model_mean + (0.5 * model_log_variance).exp() * noise\\n        return pred_img, x_start\\n\\n    @torch.no_grad()\\n    def p_sample_loop(self, shape, return_all_timesteps = False):\\n        batch, device = shape[0], self.betas.device\\n\\n        img = torch.randn(shape, device = device)\\n        imgs = [img]\\n\\n        x_start = None\\n        \\n        ###########################################\\n        ## TODO: plot the sampling process ##\\n        ###########################################\\n        for t in tqdm(reversed(range(0, self.num_timesteps)), desc = 'sampling loop time step', total = self.num_timesteps):\\n            img, x_start = self.p_sample(img, t)\\n            imgs.append(img)\\n        \\n        ret = img if not return_all_timesteps else torch.stack(imgs, dim = 1)\\n\\n        ret = self.unnormalize(ret)\\n        return ret\\n\\n    @torch.no_grad()\\n    def sample(self, batch_size = 16, return_all_timesteps = False):\\n        image_size, channels = self.image_size, self.channels\\n        sample_fn = self.p_sample_loop\\n        return sample_fn((batch_size, channels, image_size, image_size), return_all_timesteps = return_all_timesteps)\\n\\n\\n    def q_sample(self, x_start, t, noise=None):\\n        noise = default(noise, lambda: torch.randn_like(x_start))\\n\\n        return (\\n            extract(self.sqrt_alphas_cumprod, t, x_start.shape) * x_start +\\n            extract(self.sqrt_one_minus_alphas_cumprod, t, x_start.shape) * noise\\n        )\\n\\n    @property\\n    def loss_fn(self):\\n        return F.mse_loss\\n\\n\\n    def p_losses(self, x_start, t, noise = None):\\n        b, c, h, w = x_start.shape\\n        noise = default(noise, lambda: torch.randn_like(x_start))\\n\\n        # noise sample\\n\\n        x = self.q_sample(x_start = x_start, t = t, noise = noise)\\n\\n        # predict and take gradient step\\n\\n        model_out = self.model(x, t)\\n\\n        loss = self.loss_fn(model_out, noise, reduction = 'none')\\n        loss = reduce(loss, 'b ... -> b (...)', 'mean')\\n\\n        loss = loss * extract(self.loss_weight, t, loss.shape)\\n        return loss.mean()\\n\\n    def forward(self, img, *args, **kwargs):\\n        b, c, h, w, device, img_size, = *img.shape, img.device, self.image_size\\n        assert h == img_size and w == img_size, f'height and width of image must be {img_size}'\\n        t = torch.randint(0, self.num_timesteps, (b,), device=device).long()\\n\\n        img = self.normalize(img)\\n        return self.p_losses(img, t, *args, **kwargs)\\n\",\"metadata\":{\"id\":\"X7TKWoZpInQs\"},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"Define Trainer: define the updating process\",\"metadata\":{\"id\":\"yWJUjFIHInQt\"}},{\"cell_type\":\"code\",\"source\":\"class Trainer(object):\\n    def __init__(\\n        self,\\n        diffusion_model,\\n        folder,\\n        *,\\n        train_batch_size = 16,\\n        gradient_accumulate_every = 1,\\n        train_lr = 1e-4,\\n        train_num_steps = 100000,\\n        ema_update_every = 10,\\n        ema_decay = 0.995,\\n        adam_betas = (0.9, 0.99),\\n        save_and_sample_every = 1000,\\n        num_samples = 25,\\n        results_folder = './results',\\n        split_batches = True,\\n        inception_block_idx = 2048\\n    ):\\n        super().__init__()\\n\\n        # accelerator\\n\\n        self.accelerator = Accelerator(\\n            split_batches = split_batches,\\n            mixed_precision = 'no'\\n        )\\n        \\n\\n        # model\\n\\n        self.model = diffusion_model\\n        self.channels = diffusion_model.channels\\n\\n        # sampling and training hyperparameters\\n\\n        assert has_int_squareroot(num_samples), 'number of samples must have an integer square root'\\n        self.num_samples = num_samples\\n        self.save_and_sample_every = save_and_sample_every\\n\\n        self.batch_size = train_batch_size\\n        self.gradient_accumulate_every = gradient_accumulate_every\\n\\n        self.train_num_steps = train_num_steps\\n        self.image_size = diffusion_model.image_size\\n\\n        # dataset and dataloader\\n\\n        self.ds = Dataset(folder, self.image_size)\\n        dl = DataLoader(self.ds, batch_size = train_batch_size, shuffle = True, pin_memory = True, num_workers = cpu_count())\\n\\n        dl = self.accelerator.prepare(dl)\\n        self.dl = cycle(dl)\\n\\n        # optimizer\\n\\n        self.opt = Adam(diffusion_model.parameters(), lr = train_lr, betas = adam_betas)\\n\\n        # for logging results in a folder periodically\\n\\n        if self.accelerator.is_main_process:\\n            self.ema = EMA(diffusion_model, beta = ema_decay, update_every = ema_update_every)\\n            self.ema.to(self.device)\\n\\n        self.results_folder = Path(results_folder)\\n        self.results_folder.mkdir(exist_ok = True)\\n\\n        # step counter state\\n\\n        self.step = 0\\n\\n        # prepare model, dataloader, optimizer with accelerator\\n\\n        self.model, self.opt = self.accelerator.prepare(self.model, self.opt)\\n\\n    @property\\n    def device(self):\\n        return self.accelerator.device\\n\\n    def save(self, milestone):\\n        if not self.accelerator.is_local_main_process:\\n            return\\n\\n        data = {\\n            'step': self.step,\\n            'model': self.accelerator.get_state_dict(self.model),\\n            'opt': self.opt.state_dict(),\\n            'ema': self.ema.state_dict(),\\n            'scaler': self.accelerator.scaler.state_dict() if exists(self.accelerator.scaler) else None,\\n        }\\n\\n        torch.save(data, str(self.results_folder / f'model-{milestone}.pt'))\\n\\n    def load(self, ckpt):\\n        accelerator = self.accelerator\\n        device = accelerator.device\\n\\n        data = torch.load(ckpt, map_location=device)\\n\\n        model = self.accelerator.unwrap_model(self.model)\\n        model.load_state_dict(data['model'])\\n\\n        self.step = data['step']\\n        self.opt.load_state_dict(data['opt'])\\n        if self.accelerator.is_main_process:\\n            self.ema.load_state_dict(data[\\\"ema\\\"])\\n\\n\\n        if exists(self.accelerator.scaler) and exists(data['scaler']):\\n            self.accelerator.scaler.load_state_dict(data['scaler'])\\n\\n\\n    def train(self):\\n        accelerator = self.accelerator\\n        device = accelerator.device\\n\\n        with tqdm(initial = self.step, total = self.train_num_steps, disable = not accelerator.is_main_process) as pbar:\\n\\n            while self.step < self.train_num_steps:\\n\\n                total_loss = 0.\\n\\n                for _ in range(self.gradient_accumulate_every):\\n                    data = next(self.dl).to(device)\\n\\n                    with self.accelerator.autocast():\\n                        loss = self.model(data)\\n                        loss = loss / self.gradient_accumulate_every\\n                        total_loss += loss.item()\\n\\n                    self.accelerator.backward(loss)\\n\\n                accelerator.clip_grad_norm_(self.model.parameters(), 1.0)\\n                pbar.set_description(f'loss: {total_loss:.4f}')\\n\\n                accelerator.wait_for_everyone()\\n\\n                self.opt.step()\\n                self.opt.zero_grad()\\n\\n                accelerator.wait_for_everyone()\\n\\n                self.step += 1\\n                if accelerator.is_main_process:\\n                    self.ema.update()\\n\\n                    if self.step != 0 and self.step % self.save_and_sample_every == 0:\\n                        self.ema.ema_model.eval()\\n\\n                        with torch.no_grad():\\n                            milestone = self.step // self.save_and_sample_every\\n                            batches = num_to_groups(self.num_samples, self.batch_size)\\n                            all_images_list = list(map(lambda n: self.ema.ema_model.sample(batch_size=n), batches))\\n\\n                        all_images = torch.cat(all_images_list, dim = 0)\\n\\n                        utils.save_image(all_images, str(self.results_folder / f'sample-{milestone}.png'), nrow = int(math.sqrt(self.num_samples)))\\n                        \\n                        self.save(milestone)\\n\\n                pbar.update(1)\\n\\n        accelerator.print('training complete')\\n        \\n    def inference(self, num=1000, n_iter=5, output_path='./submission'):\\n        if not os.path.exists(output_path):\\n            os.mkdir(output_path)\\n        with torch.no_grad():\\n            for i in range(n_iter):\\n                batches = num_to_groups(num // n_iter, 200)\\n                all_images = list(map(lambda n: self.ema.ema_model.sample(batch_size=n), batches))[0]\\n                for j in range(all_images.size(0)):\\n                    torchvision.utils.save_image(all_images[j], f'{output_path}/{i * 200 + j + 1}.jpg')              \\n                \",\"metadata\":{\"id\":\"Ed12NNXPtDon\"},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Training Hyper-parameters\",\"metadata\":{\"id\":\"TZM7HR-UInQu\"}},{\"cell_type\":\"code\",\"source\":\"path = '/kaggle/input/diffusion/faces/faces'\\nIMG_SIZE = 64             # Size of images, do not change this if you do not know why you need to change\\nbatch_size = 16\\ntrain_num_steps = 10000        # total training steps\\nlr = 1e-3\\ngrad_steps = 1            # gradient accumulation steps, the equivalent batch size for updating equals to batch_size * grad_steps = 16 * 1\\nema_decay = 0.995           # exponential moving average decay\\n\\nchannels = 16             # Numbers of channels of the first layer of CNN\\ndim_mults = (1, 2, 4)        # The model size will be (channels, 2 * channels, 4 * channels, 4 * channels, 2 * channels, channels)\\n\\ntimesteps = 100            # Number of steps (adding noise)\\nbeta_schedule = 'linear'\\n\\nmodel = Unet(\\n    dim = channels,\\n    dim_mults = dim_mults\\n)\\n\\ndiffusion = GaussianDiffusion(\\n    model,\\n    image_size = IMG_SIZE,\\n    timesteps = timesteps,\\n    beta_schedule = beta_schedule\\n)\\n\\ntrainer = Trainer(\\n    diffusion,\\n    path,\\n    train_batch_size = batch_size,\\n    train_lr = lr,\\n    train_num_steps = train_num_steps,\\n    gradient_accumulate_every = grad_steps,\\n    ema_decay = ema_decay,\\n    save_and_sample_every = 1000\\n)\\n\\ntrainer.train()\",\"metadata\":{\"id\":\"wOZPtVPvInQu\"},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"markdown\",\"source\":\"# Inference\",\"metadata\":{\"id\":\"SV7OL7PvInQu\"}},{\"cell_type\":\"code\",\"source\":\"ckpt = '/content/drive/MyDrive/ML 2023 Spring/model-55.pt'\\ntrainer.load(ckpt)\\ntrainer.inference()\\n\",\"metadata\":{\"id\":\"MHoY_6CrInQv\",\"outputId\":\"010af6c5-a426-42cd-b560-721fff3baa84\"},\"execution_count\":null,\"outputs\":[]},{\"cell_type\":\"code\",\"source\":\"%cd ./submission\\n!tar -zcf ../submission.tgz *.jpg\\n%cd ..\",\"metadata\":{\"id\":\"GkWpuU-2KzIL\",\"outputId\":\"2215341d-4f7f-48c3-85ac-403e9ad2cb27\"},\"execution_count\":null,\"outputs\":[]}]}"
  },
  {
    "path": "HW06/README.md",
    "content": ">  ML2023Spring - HW6 相关信息：\n>\n>  [课程主页](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php)\n>\n>  [课程视频](https://www.bilibili.com/video/BV1TD4y137mP/?spm_id_from=333.337.search-card.all.click&vd_source=436107f586d66ab4fcf756c76eb96c35)\n>\n>  [Sample code](https://www.kaggle.com/code/b07202024/hw6-diffusion-model)\n>\n>  [HW06 视频]( https://www.bilibili.com/video/BV1TD4y137mP?p=41&vd_source=436107f586d66ab4fcf756c76eb96c35)\n>\n>  [HW06 PDF](https://docs.google.com/presentation/d/1x8c38zgEbN2zN4EboWhquZ5b3LhVCN8ElhaJCO2vnzY/edit#slide=id.p)\n>\n>  P.S. HW06 是在 Judgeboi 上提交的，出于学习目的这里会自定义两个度量的函数，不用深究，遵循 Suggestion 就可以达成学习的目的。\n>\n>  每年的数据集 size 和 feature 并不完全相同，但基本一致，过去的代码仍可用于新一年的 Homework。\n\n\n* [任务目标（seq2seq）](#任务目标seq2seq)\n* [性能指标（FID）](#性能指标fid)\n   * [安装环境](#安装环境)\n   * [定义函数计算 FID 和 AFD rate](#定义函数计算-fid-和-afd-rate)\n* [数据解析](#数据解析)\n   * [数据下载（kaggle）](#数据下载kaggle)\n* [Gradescope](#gradescope)\n   * [Question 1](#question-1)\n      * [简述去噪过程](#简述去噪过程)\n   * [Question 2](#question-2)\n      * [训练/推理过程的差异](#训练推理过程的差异)\n      * [生成图像的差异](#生成图像的差异)\n      * [为什么 DDIM 更快](#为什么-ddim-更快)\n* [Baselines](#baselines)\n   * [Simple baseline (FID ≤ 30000, AFD ≥ 0)](#simple-baseline-fid--30000-afd--0)\n   * [Medium baseline (FID ≤ 12000, AFD ≥ 0.4)](#medium-baseline-fid--12000-afd--04)\n   * [Strong baseline (FID ≤ 10000, AFD ≥ 0.5)](#strong-baseline-fid--10000-afd--05)\n   * [Boss baseline（FID ≤ 9000, AFD ≥ 0.6）](#boss-baselinefid--9000-afd--06)\n* [完整的样例图对比](#完整的样例图对比)\n\n# 任务目标（seq2seq）\n\n- **Anime face generation**: **动漫人脸生成**\n  - 输入：随机数\n  - 输出：动漫人脸\n  - 实现途径：扩散模型\n  - 目标：生成 1000 张动漫人脸图像\n\n\n# 性能指标（FID）\n\n- **FID (Frechet Inception Distance)**\n   用于衡量真实图像与生成图像之间特征向量的距离，计算步骤：\n  ![FID 计算](https://blogby.oss-cn-guangzhou.aliyuncs.com/20231225144224.png)\n  \n  1. 使用 **Inception V3** 模型分别提取**真实图像**和**生成图像**的特征（使用最后一层卷积层的输出)\n  1. 计算特征的均值和方差\n  1. 计算 **Frechet** 距离\n- **AFD (Anime face detection) rate**\n\n  用于衡量动漫人脸检测性能，用来检测提交的文件中有多少动漫人脸。\n\n\n不过存在一个问题：代码中没有给出FID和AFD的计算，所以我们需要去自定义计算的函数用于学习。\n\n## 安装环境\n\n> AFD rate 的计算使用预训练的Haar Cascade文件。anime_face_detector库在cuda版本过新的时候，需要处理的步骤过多，不方便复现学习\n\n安装 `pytorch-fid` 和 `ultralytics`，并下载预训练的 YOLOv8 模型（源自[Github](https://github.com/MagicalKyaru/yolov8_animeface/releases/tag/v1)）。\n\n```python\n!pip install pytorch-fid ultralytics\n!wget https://github.com/MagicalKyaru/yolov8_animeface/releases/download/v1/yolov8x6_animeface.pt\n```\n\n## 定义函数计算 FID 和 AFD rate\n\n这里我们定义在 `inference` 之后。\n\n```python\nimport os\nimport cv2\nfrom pytorch_fid import fid_score\n\ndef calculate_fid(real_images_path, generated_images_path):\n    \"\"\"\n    Calculate FID score between real and generated images.\n    \n    :param real_images_path: Path to the directory containing real images.\n    :param generated_images_path: Path to the directory containing generated images.\n    :return: FID score\n    \"\"\"\n    fid = fid_score.calculate_fid_given_paths([real_images_path, generated_images_path], batch_size=50, device='cuda', dims=2048)\n    return fid\n\ndef calculate_afd(generated_images_path, save=True):\n    \"\"\"\n    Calculate AFD (Anime Face Detection) score for generated images.\n    \n    :param generated_images_path: Path to the directory containing generated images.\n    :return: AFD score (percentage of images detected as anime faces)\n    \"\"\"\n    results = yolov8_animeface.predict(generated_images_path, save=save, conf=0.8, iou=0.8, imgsz=64)\n\n    anime_faces_detected = 0\n    total_images = len(results)\n\n    for result in results:\n        if len(result.boxes) > 0:\n            anime_faces_detected += 1\n\n    afd_score = anime_faces_detected / total_images\n    return afd_score\n\n# Calculate and print FID and AFD with optional visualization\nyolov8_animeface = YOLO('yolov8x6_animeface.pt')\nreal_images_path = './faces/faces'  # Replace with the path to real images\nfid = calculate_fid(real_images_path, './submission')\nafd = calculate_afd('./submission')\nprint(f'FID: {fid}')\nprint(f'AFD: {afd}')\n```\n\n注意，使用当前函数只是为了有个度量，单以当前的YOLOv8预训练模型为例，很可能当前模型只学会了判断两个眼睛的区域是 `face`，但没学会判断三个眼睛图像的不是 `face`，这会导致 `AFD`实际上偏高，所以只能作学习用途。\n\n# 数据解析\n\n- 训练数据：71,314 动漫人脸图片\n\n  数据集下载链接：https://www.kaggle.com/datasets/b07202024/diffusion/download?datasetVersionNumber=1，也可以通过命令行进行下载：`kaggle datasets download -d b07202024/diffusion`\n\n  注意下载完之后需要进行解压，并对应修改 `Sample code`中 **Training Hyper-parameters** 中的路径 `path`。\n\n## 数据下载（kaggle）\n\n> To use the Kaggle API, sign up for a Kaggle account at [https://www.kaggle.com](https://www.kaggle.com/). Then go to the 'Account' tab of your user profile (`https://www.kaggle.com/<username>/account`) and select 'Create API Token'. This will trigger the download of `kaggle.json`, a file containing your API credentials. Place this file in the location `~/.kaggle/kaggle.json` (on Windows in the location `C:\\Users\\<Windows-username>\\.kaggle\\kaggle.json` - you can check the exact location, sans drive, with `echo %HOMEPATH%`). You can define a shell environment variable `KAGGLE_CONFIG_DIR` to change this location to `$KAGGLE_CONFIG_DIR/kaggle.json` (on Windows it will be `%KAGGLE_CONFIG_DIR%\\kaggle.json`).\n>\n> -\\- [Official Kaggle API](https://github.com/Kaggle/kaggle-api)\n\n替换\\<username\\>为你自己的用户名，`https://www.kaggle.com/<username>/account`，然后点击 `Create New API Token`，将下载下来的文件放去应该放的位置：\n\n- Mac 和 Linux 放在 `~/.kaggle`\n- Windows 放在 `C:\\Users\\<Windows-username>\\.kaggle`\n\n```bash\npip install kaggle\n# 你需要先在 Kaggle -> Account -> Create New API Token 中下载 kaggle.json\n# mv kaggle.json ~/.kaggle/kaggle.json\nkaggle datasets download -d b07202024/diffusion\nunzip diffusion\n```\n\n# Gradescope\n\n这一题我们先处理可视化部分，这个有助于我们理解自己的模型（毕竟没有官方的标准来评价生成的图像好坏）。\n\n## Question 1\n\n> 采样5张图像并展示其渐进生成过程，简要描述不同时间步的差异。\n\n修改 **GaussianDiffusion** 类中的 `p_sample_loop()` 方法：\n\n```python\nclass GaussianDiffusion(nn.Module):\n    \n    ...\n    \n    # Gradescope – Question 1\n    @torch.no_grad()\n    def p_sample_loop(self, shape, return_all_timesteps = False, num_samples=5, save_path='./Q1_progressive_generation.png'):\n        batch, device = shape[0], self.betas.device\n\n        img = torch.randn(shape, device = device)\n        imgs = [img]\n        samples = [img[:num_samples]]  # Store initial noisy samples\n\n        x_start = None\n        \n        ###########################################\n        ## TODO: plot the sampling process ##\n        ###########################################\n        for t in tqdm(reversed(range(0, self.num_timesteps)), desc = 'sampling loop time step', total = self.num_timesteps):\n            img, x_start = self.p_sample(img, t)\n            imgs.append(img)\n            if t % (self.num_timesteps // 20) == 0:\n                samples.append(img[:num_samples])  # Store samples at specific steps\n        \n        ret = img if not return_all_timesteps else torch.stack(imgs, dim = 1)\n\n        ret = self.unnormalize(ret)\n        self.plot_progressive_generation(samples, len(samples)-1, save_path=save_path)\n        return ret\n    \n    def plot_progressive_generation(self, samples, num_steps, save_path=None):\n        fig, axes = plt.subplots(1, num_steps + 1, figsize=(20, 4))\n        for i, sample in enumerate(samples):\n            axes[i].imshow(vutils.make_grid(sample, nrow=1, normalize=True).permute(1, 2, 0).cpu().numpy())\n            axes[i].axis('off')\n            axes[i].set_title(f'Step {i}')\n        if save_path:\n            plt.savefig(save_path)\n        plt.show()\n```\n\n表现如下（基于 Sample code）：\n![image-20240617173807145](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240617173807.png)\n\n### 简述去噪过程\n\n去噪过程主要是指从完全噪声的图像开始，通过逐步减少噪声，最终生成一个清晰的图像。去噪过程的简单描述：\n\n1. **初始步骤（噪声）：**\n   在初始步骤中，图像是纯噪声，此时的图像没有任何结构和可辨识的特征，看起来为随机的像素点。\n\n2. **中间步骤：**\n   模型通过多个时间步（Timesteps）将噪声逐渐减少，每一步都试图恢复更多的图像信息。\n   - 早期阶段，图像中开始出现一些模糊的结构和形状。虽然仍然有很多噪声，但可以看到一些基本轮廓和大致的图像结构。\n   \n   - 中期阶段，图像中的细节开始变得更加清晰。面部特征如眼睛、鼻子和嘴巴开始显现，噪声显著减少，图像的主要轮廓和特征逐渐清晰。\n   \n3. **最终步骤（完全去噪）：**\n   在最后的步骤中，噪声被最大程度地去除，图像变清晰。\n\n##  Question 2\n\n> DDPM（去噪扩散概率模型）在推理过程中速度较慢，而DDIM（去噪扩散隐式模型）在推理过程中至少比DDPM快10倍，并且保留了质量。请分别描述这两种模型的训练、推理过程和生成图像的差异，并简要解释为什么DDIM更快。\n>\n> 参考文献：\n>\n> - [去噪扩散概率模型 (DDPM)](https://arxiv.org/abs/2006.11239)\n> - [去噪扩散隐式模型 (DDIM)](https://arxiv.org/abs/2010.02502)\n>\n> 下面是个简单的叙述，如果有需要的话，建议阅读原文进行理解。\n\n### 训练/推理过程的差异\n\n**DDPM**：\n\n- DDPM 的训练分为前向扩散和反向去噪两个部分：\n  前向扩散逐步给图像添加噪声。\n  反向去噪使用 U-Net 模型，通过最小化预测噪声和实际噪声的差异来训练，逐步去掉这些噪声。\n  - Ho et al., 2020, To represent the reverse process, we use a U-Net backbone similar to an unmasked PixelCNN++ with group normalization throughout.\n\n- \n  但需要处理大量的时间步（比如1000步），训练时间相对DDIM来说更长。\n  - Ho et al., 2020, We set T = 1000 for all experiments ...\n\n**DDIM**：\n\n- DDIM 的训练与 DDPM 类似，但使用非马尔可夫的确定性采样过程。\n  - Song et al., 2020, We present denoising diffusion implicit models (DDIMs)...a non-Markovian deterministic sampling process\n\n\n---\n\n### 生成图像的差异\n\n**DDPM**：\n\n- 生成的图像质量很高，每一步去噪都会使图像变得更加清晰，但步骤多，整个过程比DDIM慢。\n\n**DDIM**：\n\n- 步骤少，生成速度快，且生成的图像质量与 DDPM 相当。\n  - Song et al., 2020, Notably, DDIM is able to produce samples with quality comparable to 1000 step models within 20 to 100 steps ...\n\n\n---\n\n### 为什么 DDIM 更快\n\n1. **步骤更少**：DDIM 在推理过程中减少了很多步骤。例如，DDPM 可能需要 1000 步，而 DDIM 可能只需要 50-100 步。\n   - Song et al., 2020, Notably, DDIM is able to produce samples with quality comparable to 1000 step models within 20 to 100 steps, which is a 10× to 50× speed up compared to the original DDPM. Even though DDPM could also achieve reasonable sample quality with 100× steps, DDIM requires much fewer steps to achieve this; on CelebA, the FID score of the 100 step DDPM is similar to that of the 20 step DDIM.\n2. **非马尔可夫采样**\n   - Song et al., 2020, These non-Markovian processes can correspond to generative processes that are deterministic, giving rise to implicit models that produce high quality samples much faster.\n3. **效率**：确定性的采样方式使得 DDIM 能更快地生成高质量的图像。\n   - Song et al., 2020, For DDIM, the generative process is deterministic, and $x_0$ would depend only on the initial state $x_T$ .\n\n# Baselines\n\n> 实际上如果时间充足，出于学习的目的，可以对超参数或者模型架构进行调整以印证自身的想法。这篇文章是最近重新拾起的，所以只是一个简单的概述帮助理解。\n>\n> 另外，当前 FID 数的度量数量级和 Baseline 是不一致的，这里因为时间原因不做度量标准的还原，完成 Suggestion 和 Gradescope 就足够达成学习的目的了。\n\n## Simple baseline (FID ≤ 30000, AFD ≥ 0)\n\n- 运行所给的 sample code\n\n## Medium baseline (FID ≤ 12000, AFD ≥ 0.4)\n\n- 简单的数据增强\n  T.RandomHorizontalFlip(),  T.RandomRotation(10), T.ColorJitter(brightness=0.25, contrast=0.25)\n\n- 将 timesteps 变成1000（遵循 [DDPM](https://arxiv.org/abs/2006.11239) 原论文的设置）\n\n  - 注意，设置为 1000 的话在 `trainer.inference()` 时很可能会遇到 **CUDA out of memory**，这里对 `inference()` 进行简单的修改。\n    实际效果是针对 `self.ema.ema_model.sample()` 减少 `batch_size` 至 100，不用过多细究。\n\n    ```python\n    def inference(self, num=1000, n_iter=10, output_path='./submission'):\n            if not os.path.exists(output_path):\n                os.mkdir(output_path)\n            with torch.no_grad():\n                for i in range(n_iter):\n                    batches = num_to_groups(num // n_iter, 100)\n                    all_images = list(map(lambda n: self.ema.ema_model.sample(batch_size=n), batches))[0]\n                    \n                    for j in range(all_images.size(0)):\n                        torchvision.utils.save_image(all_images[j], f'{output_path}/{i * 100 + j + 1}.jpg')\n    ```\n\n    \n\n- 将 train_num_step 修改为 20000\n\n## Strong baseline (FID ≤ 10000, AFD ≥ 0.5)\n\n- Model Arch\n\n  看了下[HW06 对应的视频]( https://www.bilibili.com/video/BV1TD4y137mP?p=41&vd_source=436107f586d66ab4fcf756c76eb96c35)，从叙述上看应该指的是调整超参数：`channel` 和 `dim_mults`。\n  这里简单的将 `channel` 调整为 32。\n  `dim_mults` 初始为 (1, 2, 4)，增加维度改成 (1, 2, 4, 8) 又或者改变其中的值都是允许的。\n\n- Varience Scheduler\n  这部分可以自己实现，下面给出比较官方的代码供大家参考比对：使用 [denoising-diffusion-pytorch](https://github.com/lucidrains/denoising-diffusion-pytorch/blob/main/denoising_diffusion_pytorch/denoising_diffusion_pytorch.py#L445) 中的 `cosine_beta_schedule()`，对应的还有 `sigmoid_beta_schedule()`。\n  `sigmoid_beta_schedule()` 在训练时更适合用在分辨率大于 64x64 的图像上，当前训练集图像的分辨率为 96x96。\n  增加和修改的部分代码：\n\n  ```python\n  def cosine_beta_schedule(timesteps, s = 0.008):\n      \"\"\"\n      cosine schedule\n      as proposed in https://openreview.net/forum?id=-NEXDKk8gZ\n      \"\"\"\n      steps = timesteps + 1\n      t = torch.linspace(0, timesteps, steps, dtype = torch.float64) / timesteps\n      alphas_cumprod = torch.cos((t + s) / (1 + s) * math.pi * 0.5) ** 2\n      alphas_cumprod = alphas_cumprod / alphas_cumprod[0]\n      betas = 1 - (alphas_cumprod[1:] / alphas_cumprod[:-1])\n      return torch.clip(betas, 0, 0.999)\n  \n  def sigmoid_beta_schedule(timesteps, start = -3, end = 3, tau = 1, clamp_min = 1e-5):\n      \"\"\"\n      sigmoid schedule\n      proposed in https://arxiv.org/abs/2212.11972 - Figure 8\n      better for images > 64x64, when used during training\n      \"\"\"\n      steps = timesteps + 1\n      t = torch.linspace(0, timesteps, steps, dtype = torch.float64) / timesteps\n      v_start = torch.tensor(start / tau).sigmoid()\n      v_end = torch.tensor(end / tau).sigmoid()\n      alphas_cumprod = (-((t * (end - start) + start) / tau).sigmoid() + v_end) / (v_end - v_start)\n      alphas_cumprod = alphas_cumprod / alphas_cumprod[0]\n      betas = 1 - (alphas_cumprod[1:] / alphas_cumprod[:-1])\n      return torch.clip(betas, 0, 0.999)\n  \n  class GaussianDiffusion(nn.Module):\n      def __init__(\n  \t\t...\n          beta_schedule = 'linear',\n          ...\n      ):\n          ...\n          if beta_schedule == 'linear':\n              beta_schedule_fn = linear_beta_schedule\n          elif beta_schedule == 'cosine':\n              beta_schedule_fn = cosine_beta_schedule\n          elif beta_schedule == 'sigmoid':\n              beta_schedule_fn = sigmoid_beta_schedule\n          else:\n              raise ValueError(f'unknown beta schedule {beta_schedule}')\n          ...\n          \n  ...\n  beta_schedule = 'cosine' # 'sigmoid'\n  ...\n  \n  ```\n\n\n\n## Boss baseline（FID ≤ 9000, AFD ≥ 0.6）\n\n- StyleGAN\n  仅供参考，从实验结果上来看，扩散模型生成的图像视觉上更清晰，而 StyleGAN 的风格更一致。\n  当然，同样存在设置出现问题的情况（毕竟超参数直接延续了之前的设定。Anyway，希望对你有所帮助）\n  \n  |                        Strong (DDPM)                         |                       Boss (StyleGAN)                        |\n  | :----------------------------------------------------------: | :----------------------------------------------------------: |\n  | ![strong](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240619212800.png) | ![boss](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240619212848.png) |\n\n```python\nclass StyleGANTrainer(object):\n    def __init__(\n        self, \n        folder, \n        image_size, \n        *,\n        train_batch_size=16, \n        gradient_accumulate_every=1, \n        train_lr=1e-3, \n        train_num_steps=100000, \n        ema_update_every=10, \n        ema_decay=0.995, \n        save_and_sample_every=1000, \n        num_samples=25, \n        results_folder='./results', \n        split_batches=True\n    ):\n        super().__init__()\n\n        dataloader_config = DataLoaderConfiguration(split_batches=split_batches)\n        self.accelerator = Accelerator(\n            dataloader_config=dataloader_config,\n            mixed_precision='no')\n        \n        self.image_size = image_size\n\n        # Initialize the generator and discriminator\n        self.gen = self.create_generator().cuda()\n        self.dis = self.create_discriminator().cuda()\n        self.g_optim = torch.optim.Adam(self.gen.parameters(), lr=train_lr, betas=(0.0, 0.99))\n        self.d_optim = torch.optim.Adam(self.dis.parameters(), lr=train_lr, betas=(0.0, 0.99))\n        \n        self.train_num_steps = train_num_steps\n        self.batch_size = train_batch_size\n        self.gradient_accumulate_every = gradient_accumulate_every\n\n        # Initialize the dataset and dataloader\n        self.ds = Dataset(folder, image_size)\n        self.dl = cycle(DataLoader(self.ds, batch_size=train_batch_size, shuffle=True, pin_memory=True, num_workers=os.cpu_count()))\n\n        # Initialize the EMA for the generator\n        self.ema = EMA(self.gen, beta=ema_decay, update_every=ema_update_every).to(self.device)\n        \n        self.results_folder = Path(results_folder)\n        self.results_folder.mkdir(exist_ok=True)\n        \n        self.save_and_sample_every = save_and_sample_every\n        self.num_samples = num_samples\n        self.step = 0\n\n    def create_generator(self):\n        return dnnlib.util.construct_class_by_name(\n            class_name='training.networks.Generator',\n            z_dim=512,\n            c_dim=0,\n            w_dim=512,\n            img_resolution=self.image_size,\n            img_channels=3\n        )\n\n    def create_discriminator(self):\n        return dnnlib.util.construct_class_by_name(\n            class_name='training.networks.Discriminator',\n            c_dim=0,\n            img_resolution=self.image_size,\n            img_channels=3\n        )\n\n    @property\n    def device(self):\n        return self.accelerator.device\n\n    def save(self, milestone):\n        if not self.accelerator.is_local_main_process:\n            return\n\n        data = {\n            'step': self.step,\n            'gen': self.accelerator.get_state_dict(self.gen),\n            'dis': self.accelerator.get_state_dict(self.dis),\n            'g_optim': self.g_optim.state_dict(),\n            'd_optim': self.d_optim.state_dict(),\n            'ema': self.ema.state_dict()\n        }\n\n        torch.save(data, str(self.results_folder / f'model-{milestone}.pt'))\n\n    def load(self, ckpt):\n        data = torch.load(ckpt, map_location=self.device)\n        self.gen.load_state_dict(data['gen'])\n        self.dis.load_state_dict(data['dis'])\n        self.g_optim.load_state_dict(data['g_optim'])\n        self.d_optim.load_state_dict(data['d_optim'])\n        self.ema.load_state_dict(data['ema'])\n        self.step = data['step']\n\n    def train(self):\n        with tqdm(initial=self.step, total=self.train_num_steps, disable=not self.accelerator.is_main_process) as pbar:\n            while self.step < self.train_num_steps:\n                total_g_loss = 0.\n                total_d_loss = 0.\n\n                for _ in range(self.gradient_accumulate_every):\n                    # Get a batch of real images\n                    real_images = next(self.dl).to(self.device)\n                    \n                    # Generate latent vectors\n                    latent = torch.randn([self.batch_size, self.gen.z_dim]).cuda()\n                    \n                    # Generate fake images\n                    fake_images = self.gen(latent, None)\n\n                    # Discriminator logits for real and fake images\n                    real_logits = self.dis(real_images, None)\n                    fake_logits = self.dis(fake_images.detach(), None)\n\n                    # Discriminator loss\n                    d_loss = torch.nn.functional.softplus(fake_logits).mean() + torch.nn.functional.softplus(-real_logits).mean()\n\n                    # Update discriminator\n                    self.d_optim.zero_grad()\n                    self.accelerator.backward(d_loss / self.gradient_accumulate_every)\n                    self.d_optim.step()\n                    total_d_loss += d_loss.item()\n\n                    # Generator logits for fake images\n                    fake_logits = self.dis(fake_images, None)\n\n                    # Generator loss\n                    g_loss = torch.nn.functional.softplus(-fake_logits).mean()\n\n                    # Update generator\n                    self.g_optim.zero_grad()\n                    self.accelerator.backward(g_loss / self.gradient_accumulate_every)\n                    self.g_optim.step()\n                    total_g_loss += g_loss.item()\n\n                self.ema.update()\n\n                pbar.set_description(f'G loss: {total_g_loss:.4f} D loss: {total_d_loss:.4f}')\n                self.step += 1\n\n                if self.step % self.save_and_sample_every == 0:\n                    self.ema.ema_model.eval()\n                    with torch.no_grad():\n                        milestone = self.step // self.save_and_sample_every\n                        batches = num_to_groups(self.num_samples, self.batch_size)\n                        all_images_list = list(map(lambda n: self.ema.ema_model(torch.randn([n, self.gen.z_dim]).cuda(), None), batches))\n                    all_images = torch.cat(all_images_list, dim=0)\n                    utils.save_image(all_images, str(self.results_folder / f'sample-{milestone}.png'), nrow=int(np.sqrt(self.num_samples)))\n                    self.save(milestone)\n                pbar.update(1)\n\n        print('Training complete')\n\n    def inference(self, num=1000, n_iter=5, output_path='./submission'):\n        if not os.path.exists(output_path):\n            os.mkdir(output_path)\n        with torch.no_grad():\n            for i in range(n_iter):\n                latent = torch.randn(num // n_iter, self.gen.z_dim).cuda()\n                images = self.ema.ema_model(latent, None)\n                for j, img in enumerate(images):\n                    utils.save_image(img, f'{output_path}/{i * (num // n_iter) + j + 1}.jpg')\n                    \n\n```\n\n# 完整的样例图对比\n\n|                            Simple                            |                            Medium                            | Strong                                                       |                             Boss                             |\n| :----------------------------------------------------------: | :----------------------------------------------------------: | ------------------------------------------------------------ | :----------------------------------------------------------: |\n| ![simple](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240619212836.png) | ![medium](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240619212838.png) | ![strong](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240619212823.png) | ![boss](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240619212833.png) |\n\n"
  },
  {
    "path": "HW07/HW07_Boss_0.84335.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xvSGDbExff_I\"\n   },\n   \"source\": [\n    \"# **Homework 7 - Bert (Question Answering)**\\n\",\n    \"\\n\",\n    \"If you have any questions, feel free to email us at ntu-ml-2023spring-ta@googlegroups.com\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Slide:    [Link](https://docs.google.com/presentation/d/15lGUmT8NpLGtoxRllRWCJyQEjhR1Idcei63YHsDckPE/edit#slide=id.g21fff4e9af6_0_13)　Kaggle: [Link](https://www.kaggle.com/competitions/ml2023spring-hw7/host/sandbox-submissions)　Data: [Link](https://drive.google.com/file/d/1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7/view?usp=sharing)\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NYAHsHNbzdKm\"\n   },\n   \"source\": [\n    \"# Prerequisites\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TJ1fSAJE2oaC\"\n   },\n   \"source\": [\n    \"## Download Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"YPrc4Eie9Yo5\",\n    \"outputId\": \"1640c875-58d1-4288-e382-e9fa9db39b9f\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# download link 1\\n\",\n    \"# !gdown --id '1TjoBdNlGBhP_J9C66MOY7ILIrydm7ZCS' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 2 (if above link failed)\\n\",\n    \"# !gdown --id '1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 3 (if above link failed)\\n\",\n    \"# !gdown --id '1k2BfGrvhk8QRnr9Xvb04oPIKDr1uWFpa' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# !unzip -o hw7_data.zip\\n\",\n    \"\\n\",\n    \"# !kaggle competitions download -c ml2023spring-hw7\\n\",\n    \"\\n\",\n    \"!unzip ml2023spring-hw7.zip\\n\",\n    \"\\n\",\n    \"# For this HW, K80 < P4 < T4 < P100 <= T4(fp16) < V100\\n\",\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TevOvhC03m0h\"\n   },\n   \"source\": [\n    \"## Install packages\\n\",\n    \"\\n\",\n    \"Documentation for the toolkit:\\n\",\n    \"*   https://huggingface.co/transformers/\\n\",\n    \"*   https://huggingface.co/docs/accelerate/index\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"tbxWFX_jpDom\",\n    \"outputId\": \"138488c2-96fa-4c41-d450-9d0a1b74f36c\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# You are allowed to change version of transformers or use other toolkits\\n\",\n    \"!pip install transformers==4.26.1\\n\",\n    \"!pip install accelerate==0.16.0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"XapBp31gytyD\"\n   },\n   \"source\": [\n    \"# Kaggle (Fine-tuning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"WGOr_eS3wJJf\"\n   },\n   \"source\": [\n    \"## Task description\\n\",\n    \"- Chinese Extractive Question Answering\\n\",\n    \"  - Input: Paragraph + Question\\n\",\n    \"  - Output: Answer\\n\",\n    \"\\n\",\n    \"- Objective: Learn how to fine tune a pretrained model on downstream task using transformers\\n\",\n    \"\\n\",\n    \"- Todo\\n\",\n    \"    - Fine tune a pretrained chinese BERT model\\n\",\n    \"    - Change hyperparameters (e.g. doc_stride)\\n\",\n    \"    - Apply linear learning rate decay\\n\",\n    \"    - Try other pretrained models\\n\",\n    \"    - Improve preprocessing\\n\",\n    \"    - Improve postprocessing\\n\",\n    \"- Training tips\\n\",\n    \"    - Automatic mixed precision\\n\",\n    \"    - Gradient accumulation\\n\",\n    \"    - Ensemble\\n\",\n    \"\\n\",\n    \"- Estimated training time (tesla t4 with automatic mixed precision enabled)\\n\",\n    \"    - Simple: 8mins\\n\",\n    \"    - Medium: 8mins\\n\",\n    \"    - Strong: 25mins\\n\",\n    \"    - Boss: 2hrs\\n\",\n    \"  \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"8dKM4yCh4LI_\"\n   },\n   \"source\": [\n    \"## Import Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"WOTHHtWJoahe\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import numpy as np\\n\",\n    \"import random\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, Dataset\\n\",\n    \"from transformers import AdamW\\n\",\n    \"\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2YgXHuVLp_6j\"\n   },\n   \"source\": [\n    \"## Load Model and Tokenizer\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 220,\n     \"referenced_widgets\": [\n      \"641665cb9ec6433a81719d57eeaf8298\",\n      \"ba9c1cd3cfe04add90aa2edf2aa87378\",\n      \"1e20837bf23548249678da0a07745d58\",\n      \"c1d24cb7607c44b989774113a2baf675\",\n      \"c9144705a33848a6b142f9887da6ac49\",\n      \"ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"d26e50974c52452389c5abb001056546\",\n      \"9eefbb580f0146658d18658f210d3a67\",\n      \"c813a6f6ce09424582c06a3ac8a7d712\",\n      \"ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"8b264499afca4694849b08e2091f6826\",\n      \"3eaf82623d964c2abb92b4509ac5ca9d\",\n      \"aa3ff7831fbf47efa404805886ca4696\",\n      \"6be63de77ed14eee9c37e93d3a75f743\",\n      \"5195ed241f09440eaf84a7e0b3dc8155\",\n      \"33fa92f225be477d8cd176a0a4e8894e\",\n      \"b80166eeee984661a611a02d1eae4458\",\n      \"20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"fb908d9c3e374983aa47478a95411ba7\",\n      \"304609dbefa74735baa08ce7aadff92d\",\n      \"250451c12cee4aacb91a32d7da4ab861\",\n      \"2c37badbe0504073b31abd67a8c0b808\",\n      \"bfd7d35860c14dd3b8e5eea07032311d\",\n      \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n      \"b0af063597ea4de5a8c8bf4f370f782a\",\n      \"5b1ac1a0f04f4c29b3c1127ec3d95e81\",\n      \"b91c8359a6444497b3665e66afbe237d\",\n      \"1181117783fd4bca9d7f5f296507aff3\",\n      \"941a345ba82a44d5ad597a15c0af0d5c\",\n      \"23afbee21a644745b24b8ffefed6b286\",\n      \"a075ee85c2d34ab3b2d011c63dc02286\",\n      \"052cccb5d69d476f9caac95848e0353a\"\n     ]\n    },\n    \"id\": \"xyBCYGjAp3ym\",\n    \"outputId\": \"81f25c6d-cd7f-4be1-e085-f8a54bd1c27d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import (\\n\",\n    \"  AutoTokenizer,\\n\",\n    \"  AutoModelForQuestionAnswering,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# model = AutoModelForQuestionAnswering.from_pretrained(\\\"bert-base-chinese\\\").to(device)\\n\",\n    \"# tokenizer = AutoTokenizer.from_pretrained(\\\"bert-base-chinese\\\")\\n\",\n    \"\\n\",\n    \"# ---- Boss -----\\n\",\n    \"model = AutoModelForQuestionAnswering.from_pretrained(\\\"luhua/chinese_pretrain_mrc_macbert_large\\\").to(device)\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"luhua/chinese_pretrain_mrc_macbert_large\\\")\\n\",\n    \"# ---- Boss -----\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message (it pops up because new prediction heads for QA are initialized randomly)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3Td-GTmk5OW4\",\n    \"tags\": []\n   },\n   \"source\": [\n    \"## Read Data\\n\",\n    \"\\n\",\n    \"- Training set: 26918 QA pairs\\n\",\n    \"- Dev set: 2863  QA pairs\\n\",\n    \"- Test set: 3524  QA pairs\\n\",\n    \"\\n\",\n    \"- {train/dev/test}_questions:\\n\",\n    \"  - List of dicts with the following keys:\\n\",\n    \"   - id (int)\\n\",\n    \"   - paragraph_id (int)\\n\",\n    \"   - question_text (string)\\n\",\n    \"   - answer_text (string)\\n\",\n    \"   - answer_start (int)\\n\",\n    \"   - answer_end (int)\\n\",\n    \"- {train/dev/test}_paragraphs:\\n\",\n    \"  - List of strings\\n\",\n    \"  - paragraph_ids in questions correspond to indexs in paragraphs\\n\",\n    \"  - A paragraph may be used by several questions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"NvX7hlepogvu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def read_data(file):\\n\",\n    \"    with open(file, 'r', encoding=\\\"utf-8\\\") as reader:\\n\",\n    \"        data = json.load(reader)\\n\",\n    \"    return data[\\\"questions\\\"], data[\\\"paragraphs\\\"]\\n\",\n    \"\\n\",\n    \"train_questions, train_paragraphs = read_data(\\\"hw7_train.json\\\")\\n\",\n    \"dev_questions, dev_paragraphs = read_data(\\\"hw7_dev.json\\\")\\n\",\n    \"test_questions, test_paragraphs = read_data(\\\"hw7_test.json\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Fm0rpTHq0e4N\"\n   },\n   \"source\": [\n    \"## Tokenize Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"rTZ6B70Hoxie\",\n    \"outputId\": \"db13805e-02a9-4cbe-e6d2-66c0e3860c2b\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# Tokenize questions and paragraphs separately\\n\",\n    \"# 「add_special_tokens」 is set to False since special tokens will be added when tokenized questions and paragraphs are combined in datset __getitem__\\n\",\n    \"\\n\",\n    \"train_questions_tokenized = tokenizer([train_question[\\\"question_text\\\"] for train_question in train_questions], add_special_tokens=False)\\n\",\n    \"dev_questions_tokenized = tokenizer([dev_question[\\\"question_text\\\"] for dev_question in dev_questions], add_special_tokens=False)\\n\",\n    \"test_questions_tokenized = tokenizer([test_question[\\\"question_text\\\"] for test_question in test_questions], add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"train_paragraphs_tokenized = tokenizer(train_paragraphs, add_special_tokens=False)\\n\",\n    \"dev_paragraphs_tokenized = tokenizer(dev_paragraphs, add_special_tokens=False)\\n\",\n    \"test_paragraphs_tokenized = tokenizer(test_paragraphs, add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message as tokenized sequences will be futher processed in datset __getitem__ before passing to model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ws8c8_4d5UCI\"\n   },\n   \"source\": [\n    \"## Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Xjooag-Swnuh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class QA_Dataset(Dataset):\\n\",\n    \"    def __init__(self, split, questions, tokenized_questions, tokenized_paragraphs):\\n\",\n    \"        self.split = split\\n\",\n    \"        self.questions = questions\\n\",\n    \"        self.tokenized_questions = tokenized_questions\\n\",\n    \"        self.tokenized_paragraphs = tokenized_paragraphs\\n\",\n    \"        self.max_question_len = 60\\n\",\n    \"        self.max_paragraph_len = 150\\n\",\n    \"\\n\",\n    \"        ##### TODO: Change value of doc_stride #####\\n\",\n    \"        self.doc_stride = int(self.max_paragraph_len * 0.1)  # Set stride to 10% of max paragraph length (Boss)\\n\",\n    \"\\n\",\n    \"        # Input sequence length = [CLS] + question + [SEP] + paragraph + [SEP]\\n\",\n    \"        self.max_seq_len = 1 + self.max_question_len + 1 + self.max_paragraph_len + 1\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.questions)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        question = self.questions[idx]\\n\",\n    \"        tokenized_question = self.tokenized_questions[idx]\\n\",\n    \"        tokenized_paragraph = self.tokenized_paragraphs[question[\\\"paragraph_id\\\"]]\\n\",\n    \"\\n\",\n    \"        ##### TODO: Preprocessing #####\\n\",\n    \"        # Hint: How to prevent model from learning something it should not learn\\n\",\n    \"        if self.split == \\\"train\\\":\\n\",\n    \"            # Convert answer's start/end positions in paragraph_text to start/end positions in tokenized_paragraph\\n\",\n    \"            answer_start_token = tokenized_paragraph.char_to_token(question[\\\"answer_start\\\"])\\n\",\n    \"            answer_end_token = tokenized_paragraph.char_to_token(question[\\\"answer_end\\\"])\\n\",\n    \"\\n\",\n    \"            # A single window is obtained by slicing the portion of paragraph containing the answer\\n\",\n    \"            mid = (answer_start_token + answer_end_token) // 2\\n\",\n    \"\\n\",\n    \"            # ---- Strong -----\\n\",\n    \"            \\n\",\n    \"            # Introduce random offset to prevent learning that answer is always in the middle\\n\",\n    \"            max_offset = self.max_paragraph_len   # We allow up to 1/4 of the max length as offset\\n\",\n    \"            random_offset = np.random.randint(-max_offset, max_offset)  # Random shift between -max_offset and +max_offset\\n\",\n    \"\\n\",\n    \"            # Adjust paragraph start based on random offset\\n\",\n    \"            paragraph_start = max(0, min(mid + random_offset - self.max_paragraph_len // 2, len(tokenized_paragraph) - self.max_paragraph_len))\\n\",\n    \"            paragraph_end = paragraph_start + self.max_paragraph_len\\n\",\n    \"                \\n\",\n    \"            # ---- Strong -----\\n\",\n    \"\\n\",\n    \"            # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"            input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"            input_ids_paragraph = tokenized_paragraph.ids[paragraph_start : paragraph_end] + [102]\\n\",\n    \"\\n\",\n    \"            # Convert answer's start/end positions in tokenized_paragraph to start/end positions in the window\\n\",\n    \"            answer_start_token += len(input_ids_question) - paragraph_start\\n\",\n    \"            answer_end_token += len(input_ids_question) - paragraph_start\\n\",\n    \"\\n\",\n    \"            # Pad sequence and obtain inputs to model\\n\",\n    \"            input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"\\n\",\n    \"            return torch.tensor(input_ids), torch.tensor(token_type_ids), torch.tensor(attention_mask), answer_start_token, answer_end_token\\n\",\n    \"        \\n\",\n    \"        # Validation/Testing\\n\",\n    \"        else:\\n\",\n    \"            input_ids_list, token_type_ids_list, attention_mask_list = [], [], []\\n\",\n    \"\\n\",\n    \"            # Paragraph is split into several windows, each with start positions separated by step \\\"doc_stride\\\"\\n\",\n    \"            for i in range(0, len(tokenized_paragraph), self.doc_stride):\\n\",\n    \"\\n\",\n    \"                # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"                input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"                input_ids_paragraph = tokenized_paragraph.ids[i : i + self.max_paragraph_len] + [102]\\n\",\n    \"\\n\",\n    \"                # Pad sequence and obtain inputs to model\\n\",\n    \"                input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"\\n\",\n    \"                input_ids_list.append(input_ids)\\n\",\n    \"                token_type_ids_list.append(token_type_ids)\\n\",\n    \"                attention_mask_list.append(attention_mask)\\n\",\n    \"\\n\",\n    \"            return torch.tensor(input_ids_list), torch.tensor(token_type_ids_list), torch.tensor(attention_mask_list)\\n\",\n    \"\\n\",\n    \"    def padding(self, input_ids_question, input_ids_paragraph):\\n\",\n    \"        # Pad zeros if sequence length is shorter than max_seq_len\\n\",\n    \"        padding_len = self.max_seq_len - len(input_ids_question) - len(input_ids_paragraph)\\n\",\n    \"        # Indices of input sequence tokens in the vocabulary\\n\",\n    \"        input_ids = input_ids_question + input_ids_paragraph + [0] * padding_len\\n\",\n    \"        # Segment token indices to indicate first and second portions of the inputs. Indices are selected in [0, 1]\\n\",\n    \"        token_type_ids = [0] * len(input_ids_question) + [1] * len(input_ids_paragraph) + [0] * padding_len\\n\",\n    \"        # Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]\\n\",\n    \"        attention_mask = [1] * (len(input_ids_question) + len(input_ids_paragraph)) + [0] * padding_len\\n\",\n    \"\\n\",\n    \"        return input_ids, token_type_ids, attention_mask\\n\",\n    \"\\n\",\n    \"train_set = QA_Dataset(\\\"train\\\", train_questions, train_questions_tokenized, train_paragraphs_tokenized)\\n\",\n    \"dev_set = QA_Dataset(\\\"train\\\", dev_questions, dev_questions_tokenized, dev_paragraphs_tokenized)  # Boss\\n\",\n    \"test_set = QA_Dataset(\\\"test\\\", test_questions, test_questions_tokenized, test_paragraphs_tokenized)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5_H1kqhR8CdM\"\n   },\n   \"source\": [\n    \"## Function for Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"SqeA3PLPxOHu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def evaluate(data, output):\\n\",\n    \"    ##### TODO: Postprocessing #####\\n\",\n    \"    # There is a bug and room for improvement in postprocessing\\n\",\n    \"    # Hint: Open your prediction file to see what is wrong\\n\",\n    \"\\n\",\n    \"    answer = ''\\n\",\n    \"    max_prob = float('-inf')\\n\",\n    \"    num_of_windows = data[0].shape[1]\\n\",\n    \"\\n\",\n    \"    for k in range(num_of_windows):\\n\",\n    \"        # Obtain answer by choosing the most probable start position / end position\\n\",\n    \"        start_prob, start_index = torch.max(output.start_logits[k], dim=0)\\n\",\n    \"        end_prob, end_index = torch.max(output.end_logits[k], dim=0)\\n\",\n    \"\\n\",\n    \"        # ---- Boss -----\\n\",\n    \"        # Ensure the start_index is less than or equal to end_index\\n\",\n    \"        # This avoids selecting a wrong pair of start and end positions\\n\",\n    \"        if start_index <= end_index:\\n\",\n    \"            # Calculate the combined probability of start and end positions\\n\",\n    \"            prob = start_prob + end_prob\\n\",\n    \"\\n\",\n    \"            # If this window has a higher probability answer, update the result\\n\",\n    \"            if prob > max_prob:\\n\",\n    \"                max_prob = prob\\n\",\n    \"                # Convert token indices to the corresponding text answer\\n\",\n    \"                # Example: [1920, 7032] --> \\\"大 金\\\"\\n\",\n    \"                answer = tokenizer.decode(data[0][0][k][start_index : end_index + 1])\\n\",\n    \"        else:\\n\",\n    \"            # If start_index > end_index, skip this pair (potentially an error case)\\n\",\n    \"            continue\\n\",\n    \"        # ---- Boss -----\\n\",\n    \"\\n\",\n    \"    # Remove spaces in answer (e.g. \\\"大 金\\\" --> \\\"大金\\\")\\n\",\n    \"    return answer.replace(' ','')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rzHQit6eMnKG\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 778,\n     \"referenced_widgets\": [\n      \"53c1ce79c38b45fc8d1b675515642c54\",\n      \"9370d0df1bca4b9a9c15e1d3e10142d9\",\n      \"611f0f0c70a5471b891bd6f6b8cb7863\",\n      \"986b627aef004704ac0806a9aa189938\",\n      \"f2b466617f0247638e0934c8fe95ed1d\",\n      \"f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"04c0aa3d24944485b475601f786b56f1\",\n      \"78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"7c61a280288d4608b6ef341ce3adb7a8\",\n      \"8710bb7686df4fb3a73e5af839be5305\",\n      \"c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"29a7b6bb49004c3c96a6d48cd55e1ec3\",\n      \"06e4e53bd3e748ad90d14eeec117aac9\",\n      \"6a47a3bc614a44e7a5b0dfef50cadaf7\",\n      \"fba6bb8f65904ae6ae4f5bca95e942e2\",\n      \"6d5ad2f51bb3459b85201f983a499ea2\",\n      \"9c7a21dc260a4ad7b87f2123947058a2\",\n      \"7b7a0c46d9794d6fa66401f03684dec0\",\n      \"11dcde71ff984d829ec9612e7f43e3a3\",\n      \"a987cb79f4904973958a98f492c6443a\",\n      \"8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"bab8f16e038b440a8016ef087ee12904\"\n     ]\n    },\n    \"id\": \"3Q-B6ka7xoCM\",\n    \"outputId\": \"69c6f306-8a93-4b59-a64d-41f55889a6e6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from accelerate import Accelerator\\n\",\n    \"from torch.utils.data import ConcatDataset\\n\",\n    \"\\n\",\n    \"# hyperparameters\\n\",\n    \"num_epoch = 2  # Boss\\n\",\n    \"validation = True\\n\",\n    \"logging_step = 100\\n\",\n    \"learning_rate = 1e-5\\n\",\n    \"optimizer = AdamW(model.parameters(), lr=learning_rate)\\n\",\n    \"train_batch_size = 8\\n\",\n    \"\\n\",\n    \"#### TODO: gradient_accumulation (optional)####\\n\",\n    \"# Note: train_batch_size * gradient_accumulation_steps = effective batch size\\n\",\n    \"# If CUDA out of memory, you can make train_batch_size lower and gradient_accumulation_steps upper\\n\",\n    \"# Doc: https://huggingface.co/docs/accelerate/usage_guides/gradient_accumulation\\n\",\n    \"gradient_accumulation_steps = 4\\n\",\n    \"\\n\",\n    \"# dataloader\\n\",\n    \"# Note: Do NOT change batch size of dev_loader / test_loader !\\n\",\n    \"# Although batch size=1, it is actually a batch consisting of several windows from the same QA pair\\n\",\n    \"# Combine train_set and dev_set into a single dataset (Boss)\\n\",\n    \"combined_train_set = ConcatDataset([train_set, dev_set])\\n\",\n    \"train_loader = DataLoader(combined_train_set, batch_size=train_batch_size, shuffle=True, pin_memory=True)\\n\",\n    \"# dev_loader = DataLoader(dev_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"\\n\",\n    \"#---- Medium -----\\n\",\n    \"from transformers import get_linear_schedule_with_warmup\\n\",\n    \"from torch.optim.lr_scheduler import LambdaLR\\n\",\n    \"\\n\",\n    \"# total training steps\\n\",\n    \"total_steps = len(train_loader) * num_epoch\\n\",\n    \"num_warmup_steps = int(0 * total_steps)  # Set warmup steps to 20% of total steps\\n\",\n    \"\\n\",\n    \"# [Hugging Face] Apply linear learning rate decay with warmup\\n\",\n    \"scheduler = get_linear_schedule_with_warmup(\\n\",\n    \"    optimizer, num_warmup_steps=num_warmup_steps, num_training_steps=total_steps\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# # [PyTorch] Alternative approach: Apply linear learning rate decay without warmup\\n\",\n    \"# # lr_lambda defines how learning rate decays over time (here it's a simple linear decay)\\n\",\n    \"# lr_lambda = lambda step: max(0.0, 1.0 - step / total_steps)\\n\",\n    \"# scheduler = LambdaLR(optimizer, lr_lambda=lr_lambda)\\n\",\n    \"\\n\",\n    \"# ---- Medium -----\\n\",\n    \"\\n\",\n    \"# Change \\\"fp16_training\\\" to True to support automatic mixed\\n\",\n    \"# precision training (fp16)\\n\",\n    \"fp16_training = True\\n\",\n    \"if fp16_training:\\n\",\n    \"    accelerator = Accelerator(mixed_precision=\\\"fp16\\\")\\n\",\n    \"else:\\n\",\n    \"    accelerator = Accelerator()\\n\",\n    \"\\n\",\n    \"# Documentation for the toolkit:  https://huggingface.co/docs/accelerate/\\n\",\n    \"model, optimizer, train_loader = accelerator.prepare(model, optimizer, train_loader)\\n\",\n    \"\\n\",\n    \"model.train()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"print(\\\"Start Training ...\\\")\\n\",\n    \"\\n\",\n    \"for epoch in range(num_epoch):\\n\",\n    \"    step = 1\\n\",\n    \"    train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    # ---- Boss -----\\n\",\n    \"    actual_logging_steps = 0  # Track the number of steps contributing to the current logging window\\n\",\n    \"    for batch_idx, data in enumerate(tqdm(train_loader)):\\n\",\n    \"        # Load all data into GPU\\n\",\n    \"        data = [i.to(accelerator.device) for i in data]\\n\",\n    \"\\n\",\n    \"        # Model inputs and forward pass\\n\",\n    \"        output = model(input_ids=data[0], token_type_ids=data[1], attention_mask=data[2], start_positions=data[3], end_positions=data[4])\\n\",\n    \"        \\n\",\n    \"        # Accumulate loss\\n\",\n    \"        loss = output.loss\\n\",\n    \"        accelerator.backward(loss / gradient_accumulation_steps)\\n\",\n    \"\\n\",\n    \"        # Update accuracy for the current mini-batch\\n\",\n    \"        start_index = torch.argmax(output.start_logits, dim=1)\\n\",\n    \"        end_index = torch.argmax(output.end_logits, dim=1)\\n\",\n    \"        batch_acc = ((start_index == data[3]) & (end_index == data[4])).float().mean().item()\\n\",\n    \"        \\n\",\n    \"        train_acc += batch_acc\\n\",\n    \"        train_loss += loss.item()\\n\",\n    \"        actual_logging_steps += 1\\n\",\n    \"\\n\",\n    \"        # Gradient accumulation: only update weights every gradient_accumulation_steps\\n\",\n    \"        if (batch_idx + 1) % gradient_accumulation_steps == 0:\\n\",\n    \"            optimizer.step()\\n\",\n    \"            scheduler.step()  # Apply learning rate scheduler\\n\",\n    \"            optimizer.zero_grad()\\n\",\n    \"            step += 1\\n\",\n    \"\\n\",\n    \"            # Logging\\n\",\n    \"            if step % logging_step == 0:\\n\",\n    \"                # Average the loss and accuracy over all accumulated steps\\n\",\n    \"                avg_loss = train_loss / actual_logging_steps\\n\",\n    \"                avg_acc = train_acc / actual_logging_steps\\n\",\n    \"                \\n\",\n    \"                print(f\\\"Epoch {epoch + 1} | Step {step} | loss = {avg_loss:.3f}, acc = {avg_acc:.3f}\\\")\\n\",\n    \"                \\n\",\n    \"                # Reset the accumulators\\n\",\n    \"                train_loss = 0.0\\n\",\n    \"                train_acc = 0.0\\n\",\n    \"                actual_logging_steps = 0  # Reset after each logging\\n\",\n    \"    # ---- Boss -----\\n\",\n    \"\\n\",\n    \"    # if validation:\\n\",\n    \"    #     print(\\\"Evaluating Dev Set ...\\\")\\n\",\n    \"    #     model.eval()\\n\",\n    \"    #     with torch.no_grad():\\n\",\n    \"    #         dev_acc = 0\\n\",\n    \"    #         for i, data in enumerate(tqdm(dev_loader)):\\n\",\n    \"    #             output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"    #                    attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"    #             # prediction is correct only if answer text exactly matches\\n\",\n    \"    #             dev_acc += evaluate(data, output) == dev_questions[i][\\\"answer_text\\\"]\\n\",\n    \"    #         print(f\\\"Validation | Epoch {epoch + 1} | acc = {dev_acc / len(dev_loader):.3f}\\\")\\n\",\n    \"    #     model.train()\\n\",\n    \"\\n\",\n    \"# Save a model and its configuration file to the directory 「saved_model」\\n\",\n    \"# i.e. there are two files under the direcory 「saved_model」: 「pytorch_model.bin」 and 「config.json」\\n\",\n    \"# Saved model can be re-loaded using 「model = BertForQuestionAnswering.from_pretrained(\\\"saved_model\\\")」\\n\",\n    \"print(\\\"Saving Model ...\\\")\\n\",\n    \"model_save_dir = \\\"saved_model\\\"\\n\",\n    \"model.save_pretrained(model_save_dir)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"kMmdLOKBMsdE\"\n   },\n   \"source\": [\n    \"## Testing\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 84,\n     \"referenced_widgets\": [\n      \"9c84cbc758db46e78d7fa361a385ccce\",\n      \"642db3bee97a4bea8a4c1079e2b7526c\",\n      \"ed9f5d147e7844a187d8610130f1ecd9\",\n      \"42dd646b18b24deda274c857d337c973\",\n      \"9e2635394d5b4965b41a05a9bc37a4ec\",\n      \"3366101d46a847dfa5700ffb652dcc86\",\n      \"a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"d26f522a28d24494914df1dd8432af49\",\n      \"c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"a0f74d882c63403c8116c19745e011ba\",\n      \"55a7b680dae94cba8758288dacff2988\"\n     ]\n    },\n    \"id\": \"U5scNKC9xz0C\",\n    \"outputId\": \"841c70f2-2f3c-4c0f-866e-143f127eb6b5\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"print(\\\"Evaluating Test Set ...\\\")\\n\",\n    \"\\n\",\n    \"result = []\\n\",\n    \"\\n\",\n    \"model.eval()\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for data in tqdm(test_loader):\\n\",\n    \"        output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"        result.append(evaluate(data, output))\\n\",\n    \"\\n\",\n    \"result_file = \\\"result.csv\\\"\\n\",\n    \"with open(result_file, 'w') as f:\\n\",\n    \"    f.write(\\\"ID,Answer\\\\n\\\")\\n\",\n    \"    for i, test_question in enumerate(test_questions):\\n\",\n    \"    # Replace commas in answers with empty strings (since csv is separated by comma)\\n\",\n    \"    # Answers in kaggle are processed in the same way\\n\",\n    \"        f.write(f\\\"{test_question['id']},{result[i].replace(',','')}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"print(f\\\"Completed! Result is in {result_file}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0_JVNKOCywbR\"\n   },\n   \"source\": [\n    \"# GradeScope - Question 2 (In-context learning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"SDYN85why7zk\"\n   },\n   \"source\": [\n    \"### In-context learning\\n\",\n    \"The example prompt is :\\n\",\n    \"```\\n\",\n    \"請從最後一篇的文章中找出最後一個問題的答案：\\n\",\n    \"文章：<文章1 內容>\\n\",\n    \"問題：<問題1 敘述>\\n\",\n    \"答案：<答案1>\\n\",\n    \"...\\n\",\n    \"文章：<文章n 內容>\\n\",\n    \"問題：<問題n 敘述>\\n\",\n    \"答案：\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"sGUxltxqzKpm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# To avoid CUDA_OUT_OF_MEMORY\\n\",\n    \"torch.set_default_tensor_type(torch.cuda.FloatTensor)\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 241,\n     \"referenced_widgets\": [\n      \"fd1e236692ec43a18a1750a29515050d\",\n      \"7b3c48ae548848c880439841c0b9cb6b\",\n      \"1023013dc30a4731b61383bd59f2dc91\",\n      \"ee0cb4c1f31346b5b180a7b826688eb4\",\n      \"0f7a38ddfe7b42eaa5c8ffdb3c150641\",\n      \"eb405f797a1441d280029e6e203befce\",\n      \"7a7081fd9d5942af9148e29054b18f51\",\n      \"eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"7c852afee0de49fe8dac74f3af82a725\",\n      \"24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"0549ffe5a6a444dd9fbf8c4513ebe7f7\",\n      \"388d3d2566ff4a1cb68048ac78dd374f\",\n      \"6235eaf236d643c6a163dddb86d3664d\",\n      \"faf78b2739f841d8a213e4311926b598\",\n      \"91f03b6ed1c94cb68970f45ffa64695e\",\n      \"9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"39d35e6e28264b5ca157745d0c1e1491\",\n      \"c497cc2cfabb451aad71f5d7b19873e4\",\n      \"7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"028ec097e62b4ee8a463708f4c3b8f24\",\n      \"f607835a7acf4037821885704bde736d\",\n      \"ddd59aac5a5d48ceace9ede35bf8f11b\",\n      \"20e14c8de0f84979ac3f0d896263f49d\",\n      \"4d7c3ea23e9b42a2ba5b0b11ee190c69\",\n      \"5d9e4fd05f964fd7a11d66b964ea0873\",\n      \"7fb466a306e6443287cb2fa2bea90f06\",\n      \"1b2b45ecc27b4f28bc0194709fed0638\",\n      \"6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"f51192579d014a52b132f99abf8901b2\",\n      \"6912ca44b1864902a3e32d4a19a4972d\",\n      \"acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"fda75dc7c2d24f7b827b2c78a6988586\",\n      \"2d1a48d240b949ad9b465985e90557c5\",\n      \"5a0f5ba8ad024f5b915e34e48f269437\",\n      \"bc4b72ff74d84c9e83b328e8823044b1\",\n      \"901f4ebc70f144c188d03a4978920441\",\n      \"98ce66c91c5c45968a3844fb0de50624\",\n      \"a24d04e7064048c2819ef88a50ce9093\",\n      \"154be9baa03943d08c975dbc85c4edf8\",\n      \"2fe4fa69d9544fd393a4d72c02245245\",\n      \"c4da9fed45254ebdaa49312f16d9b159\",\n      \"53a2b78a732c4522805de5c9aed92c41\",\n      \"0440f9e26a0b420b86175bc62e212d01\",\n      \"c9bf7b5808f74db9811f5b64e878dcd5\",\n      \"66a35d11743141b1b20904b13a4b86ea\",\n      \"c0145fad2cb843e9b75ac47d307cc346\",\n      \"d61e0c79febd45c8b00e3566296d7e8e\",\n      \"2a59b752f9414e69b8c1d24bd24159f2\",\n      \"447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"16b30759d76a4c8f979212d1ae30c297\",\n      \"1639410507da4b54996064d9fcc8621c\",\n      \"e515df89088042dbbe23594e5976e10d\",\n      \"0dccf470d87f4585af65826582399466\",\n      \"7dee4e5320d349159422709a69af61f4\",\n      \"86dbdec7087f4312b945c3a3940d8965\",\n      \"cdbf6c3b5b3948229946fd51c227b51e\",\n      \"d132ff798f284c9cbe2a73d35d776592\",\n      \"fead01a1a86c40bcb1ba9133ef351d7c\",\n      \"f19d9d34c978402691a89114849d2bb9\",\n      \"7a729fb76a374da99334e7d4b4de102e\",\n      \"cccbdce89ff545f6a66304352b320ad7\",\n      \"cbd776799c18488eb74a8f17cc27c6fd\",\n      \"b1cd7728deff4d50a18cb22805351330\",\n      \"550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"745f78a378b5412eae007f029e8c321a\",\n      \"2c449a0e664c41a79b3a1de62e94b5b7\",\n      \"a9a16bf8795c402a90cf4504b1cd30a1\",\n      \"715ad9f6bdaa46298317e049404f9755\",\n      \"667f153201d347a0a01e39b438fa736b\",\n      \"d652cdca44e04070a420c5d1a24b4fd1\",\n      \"b5c71e0a94014278a22ba45a6f58b77d\",\n      \"7f928c5e620a49c1ae137868e34818a9\",\n      \"d403f126d48746948c0f627dfdce5d65\",\n      \"d41e81f720f44b52b9a914e4c619bfee\",\n      \"bee7c0220d4e476dbc035fbc5dc44fa3\"\n     ]\n    },\n    \"id\": \"wIS23s79zItf\",\n    \"outputId\": \"c686be61-221a-4f55-ca79-67715343f1db\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModelForCausalLM\\n\",\n    \"\\n\",\n    \"# You can try model with different size\\n\",\n    \"# When using Colab or Kaggle, models with more than 2 billions parameters may\\n\",\n    \"# run out of memory\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"facebook/xglm-1.7B\\\")\\n\",\n    \"model = AutoModelForCausalLM.from_pretrained(\\\"facebook/xglm-1.7B\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"2d97YtavzFHA\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# To clean model output. If you try different prompts, you may have to fix\\n\",\n    \"# this function on your own\\n\",\n    \"def clean_text(text):\\n\",\n    \"    # Note: When you use unilingual model, the colon may become fullwidth\\n\",\n    \"    text = text.split(\\\"答案:\\\")[-1]\\n\",\n    \"    text = text.split(\\\" \\\")[0]\\n\",\n    \"    return text\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"jdf3gdP_yykH\",\n    \"outputId\": \"b9a784dd-e5d7-4212-c089-e0180157bd11\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import random\\n\",\n    \"import json\\n\",\n    \"\\n\",\n    \"with open(\\\"hw7_in-context-learning-examples.json\\\", \\\"r\\\") as f:\\n\",\n    \"    test = json.load(f)\\n\",\n    \"\\n\",\n    \"# K-shot learning\\n\",\n    \"# Give model K examples to make it achieve better accuracy\\n\",\n    \"# Note: (1) When K >= 4, CUDA_OUT_OFF_MEMORY may occur.\\n\",\n    \"#       (2) The maximum input length of XGLM is 2048\\n\",\n    \"K = 2\\n\",\n    \"\\n\",\n    \"question_ids = [qa[\\\"id\\\"] for qa in test[\\\"questions\\\"]]\\n\",\n    \"\\n\",\n    \"with open(\\\"in-context-learning-result.txt\\\", \\\"w\\\") as f:\\n\",\n    \"    print(\\\"ID,Ground-Truth,Prediction\\\", file = f)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for idx, qa in enumerate(test[\\\"questions\\\"]):\\n\",\n    \"            # You can try different prompts\\n\",\n    \"            prompt = \\\"請從最後一篇的文章中找出最後一個問題的答案\\\\n\\\"\\n\",\n    \"            exist_question_indexs = [question_ids.index(qa[\\\"id\\\"])]\\n\",\n    \"\\n\",\n    \"            # K-shot learning: give the model K examples with answers\\n\",\n    \"            for i in range(K):\\n\",\n    \"                question_index = question_ids.index(qa[\\\"id\\\"])\\n\",\n    \"                while(question_index in exist_question_indexs):\\n\",\n    \"                    question_index = random.randint(0, len(question_ids) - 1)\\n\",\n    \"                exist_question_indexs.append(question_index)\\n\",\n    \"                paragraph_id = test[\\\"questions\\\"][question_index][\\\"paragraph_id\\\"]\\n\",\n    \"                prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"                prompt += f'問題：{test[\\\"questions\\\"][question_index][\\\"question_text\\\"]}\\\\n'\\n\",\n    \"                prompt += f'答案：{test[\\\"questions\\\"][question_index][\\\"answer_text\\\"]}\\\\n'\\n\",\n    \"\\n\",\n    \"            # The final one question without answer\\n\",\n    \"            paragraph_id = qa[\\\"paragraph_id\\\"]\\n\",\n    \"            prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"            prompt += f'問題：{qa[\\\"question_text\\\"]}\\\\n'\\n\",\n    \"            prompt += f'答案：'\\n\",\n    \"\\n\",\n    \"            inputs = tokenizer(prompt, add_special_tokens=False, return_tensors=\\\"pt\\\")\\n\",\n    \"            sample = model.generate(**inputs, max_new_tokens = 20)\\n\",\n    \"            text = tokenizer.decode(sample[0], skip_special_tokens=True)\\n\",\n    \"\\n\",\n    \"            # Note: You can delete this line to see what will happen\\n\",\n    \"            text = clean_text(text)\\n\",\n    \"\\n\",\n    \"            print(prompt)\\n\",\n    \"            print(f'正確答案: {qa[\\\"answer_text\\\"]}')\\n\",\n    \"            print(f'模型輸出: {text}')\\n\",\n    \"            print()\\n\",\n    \"\\n\",\n    \"            print(f\\\"{idx},{qa['answer_text']},{text}\\\", file = f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"k3prlGCdjf38\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"DL\",\n   \"language\": \"python\",\n   \"name\": \"dl\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"028ec097e62b4ee8a463708f4c3b8f24\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0386ad4eea2b4387b48cd58e95bcd4ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"0440f9e26a0b420b86175bc62e212d01\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_c9bf7b5808f74db9811f5b64e878dcd5\",\n       \"IPY_MODEL_66a35d11743141b1b20904b13a4b86ea\",\n       \"IPY_MODEL_c0145fad2cb843e9b75ac47d307cc346\"\n      ],\n      \"layout\": \"IPY_MODEL_d61e0c79febd45c8b00e3566296d7e8e\"\n     }\n    },\n    \"04c0aa3d24944485b475601f786b56f1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"052cccb5d69d476f9caac95848e0353a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0549ffe5a6a444dd9fbf8c4513ebe7f7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_388d3d2566ff4a1cb68048ac78dd374f\",\n       \"IPY_MODEL_6235eaf236d643c6a163dddb86d3664d\",\n       \"IPY_MODEL_faf78b2739f841d8a213e4311926b598\"\n      ],\n      \"layout\": \"IPY_MODEL_91f03b6ed1c94cb68970f45ffa64695e\"\n     }\n    },\n    \"06e4e53bd3e748ad90d14eeec117aac9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9c7a21dc260a4ad7b87f2123947058a2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7b7a0c46d9794d6fa66401f03684dec0\",\n      \"value\": \"100%\"\n     }\n    },\n    \"0dccf470d87f4585af65826582399466\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0f7a38ddfe7b42eaa5c8ffdb3c150641\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1023013dc30a4731b61383bd59f2dc91\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"max\": 335,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c852afee0de49fe8dac74f3af82a725\",\n      \"value\": 335\n     }\n    },\n    \"1181117783fd4bca9d7f5f296507aff3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"11dcde71ff984d829ec9612e7f43e3a3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"154be9baa03943d08c975dbc85c4edf8\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1639410507da4b54996064d9fcc8621c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"16b30759d76a4c8f979212d1ae30c297\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1b2b45ecc27b4f28bc0194709fed0638\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"1e20837bf23548249678da0a07745d58\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26e50974c52452389c5abb001056546\",\n      \"max\": 29,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_9eefbb580f0146658d18658f210d3a67\",\n      \"value\": 29\n     }\n    },\n    \"20cd68a7e03f4353aa99fcefc1f16d36\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"20e14c8de0f84979ac3f0d896263f49d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"max\": 9032074,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_f51192579d014a52b132f99abf8901b2\",\n      \"value\": 9032074\n     }\n    },\n    \"23afbee21a644745b24b8ffefed6b286\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"24b96f20dd5f4a6d8cf9788e97a74f73\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"250451c12cee4aacb91a32d7da4ab861\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"28fc746a3c0548f4a4ff669b5dbb7320\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"29a7b6bb49004c3c96a6d48cd55e1ec3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_06e4e53bd3e748ad90d14eeec117aac9\",\n       \"IPY_MODEL_6a47a3bc614a44e7a5b0dfef50cadaf7\",\n       \"IPY_MODEL_fba6bb8f65904ae6ae4f5bca95e942e2\"\n      ],\n      \"layout\": \"IPY_MODEL_6d5ad2f51bb3459b85201f983a499ea2\"\n     }\n    },\n    \"2a59b752f9414e69b8c1d24bd24159f2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"2c37badbe0504073b31abd67a8c0b808\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_bfd7d35860c14dd3b8e5eea07032311d\",\n       \"IPY_MODEL_db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n       \"IPY_MODEL_b0af063597ea4de5a8c8bf4f370f782a\"\n      ],\n      \"layout\": \"IPY_MODEL_5b1ac1a0f04f4c29b3c1127ec3d95e81\"\n     }\n    },\n    \"2c449a0e664c41a79b3a1de62e94b5b7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d652cdca44e04070a420c5d1a24b4fd1\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b5c71e0a94014278a22ba45a6f58b77d\",\n      \"value\": \"Downloading (…)neration_config.json: 100%\"\n     }\n    },\n    \"2d1a48d240b949ad9b465985e90557c5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_98ce66c91c5c45968a3844fb0de50624\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a24d04e7064048c2819ef88a50ce9093\",\n      \"value\": \"Downloading (…)cial_tokens_map.json: 100%\"\n     }\n    },\n    \"2fe4fa69d9544fd393a4d72c02245245\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"304609dbefa74735baa08ce7aadff92d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"3366101d46a847dfa5700ffb652dcc86\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"33fa92f225be477d8cd176a0a4e8894e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"388d3d2566ff4a1cb68048ac78dd374f\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_39d35e6e28264b5ca157745d0c1e1491\",\n      \"value\": \"Downloading (…)tencepiece.bpe.model: 100%\"\n     }\n    },\n    \"39d35e6e28264b5ca157745d0c1e1491\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3eaf82623d964c2abb92b4509ac5ca9d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_33fa92f225be477d8cd176a0a4e8894e\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b80166eeee984661a611a02d1eae4458\",\n      \"value\": \"Downloading (…)solve/main/vocab.txt: 100%\"\n     }\n    },\n    \"42dd646b18b24deda274c857d337c973\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a0f74d882c63403c8116c19745e011ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_55a7b680dae94cba8758288dacff2988\",\n      \"value\": \" 3524/3524 [01:20&lt;00:00, 46.55it/s]\"\n     }\n    },\n    \"447bb12155cf4dc193ffea3f64c6a8f8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"4d7c3ea23e9b42a2ba5b0b11ee190c69\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6912ca44b1864902a3e32d4a19a4972d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"value\": \" 9.03M/9.03M [00:00&lt;00:00, 35.9MB/s]\"\n     }\n    },\n    \"5195ed241f09440eaf84a7e0b3dc8155\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"53a2b78a732c4522805de5c9aed92c41\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"53c1ce79c38b45fc8d1b675515642c54\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_9370d0df1bca4b9a9c15e1d3e10142d9\",\n       \"IPY_MODEL_611f0f0c70a5471b891bd6f6b8cb7863\",\n       \"IPY_MODEL_986b627aef004704ac0806a9aa189938\"\n      ],\n      \"layout\": \"IPY_MODEL_f2b466617f0247638e0934c8fe95ed1d\"\n     }\n    },\n    \"550e7aaac7fa4c3db37ceca6a5595ddb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"55a7b680dae94cba8758288dacff2988\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"5a0f5ba8ad024f5b915e34e48f269437\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_154be9baa03943d08c975dbc85c4edf8\",\n      \"max\": 276,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_2fe4fa69d9544fd393a4d72c02245245\",\n      \"value\": 276\n     }\n    },\n    \"5b1ac1a0f04f4c29b3c1127ec3d95e81\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"5d9e4fd05f964fd7a11d66b964ea0873\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"611f0f0c70a5471b891bd6f6b8cb7863\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"max\": 3365,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c61a280288d4608b6ef341ce3adb7a8\",\n      \"value\": 3365\n     }\n    },\n    \"6235eaf236d643c6a163dddb86d3664d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c497cc2cfabb451aad71f5d7b19873e4\",\n      \"max\": 4920706,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"value\": 4920706\n     }\n    },\n    \"641665cb9ec6433a81719d57eeaf8298\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ba9c1cd3cfe04add90aa2edf2aa87378\",\n       \"IPY_MODEL_1e20837bf23548249678da0a07745d58\",\n       \"IPY_MODEL_c1d24cb7607c44b989774113a2baf675\"\n      ],\n      \"layout\": \"IPY_MODEL_c9144705a33848a6b142f9887da6ac49\"\n     }\n    },\n    \"642db3bee97a4bea8a4c1079e2b7526c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3366101d46a847dfa5700ffb652dcc86\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"value\": \"100%\"\n     }\n    },\n    \"667f153201d347a0a01e39b438fa736b\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"66a35d11743141b1b20904b13a4b86ea\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_16b30759d76a4c8f979212d1ae30c297\",\n      \"max\": 548,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_1639410507da4b54996064d9fcc8621c\",\n      \"value\": 548\n     }\n    },\n    \"6912ca44b1864902a3e32d4a19a4972d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a2f5722362c4ec08ae8ed7d681dc7ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a47a3bc614a44e7a5b0dfef50cadaf7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_11dcde71ff984d829ec9612e7f43e3a3\",\n      \"max\": 2863,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_a987cb79f4904973958a98f492c6443a\",\n      \"value\": 2863\n     }\n    },\n    \"6be63de77ed14eee9c37e93d3a75f743\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_304609dbefa74735baa08ce7aadff92d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_250451c12cee4aacb91a32d7da4ab861\",\n      \"value\": \" 110k/110k [00:00&lt;00:00, 1.53MB/s]\"\n     }\n    },\n    \"6d5ad2f51bb3459b85201f983a499ea2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"715ad9f6bdaa46298317e049404f9755\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d41e81f720f44b52b9a914e4c619bfee\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bee7c0220d4e476dbc035fbc5dc44fa3\",\n      \"value\": \" 168/168 [00:00&lt;00:00, 4.67kB/s]\"\n     }\n    },\n    \"745f78a378b5412eae007f029e8c321a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2c449a0e664c41a79b3a1de62e94b5b7\",\n       \"IPY_MODEL_a9a16bf8795c402a90cf4504b1cd30a1\",\n       \"IPY_MODEL_715ad9f6bdaa46298317e049404f9755\"\n      ],\n      \"layout\": \"IPY_MODEL_667f153201d347a0a01e39b438fa736b\"\n     }\n    },\n    \"78818b2d8cc748efbf1b5784a9ee2a85\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7a7081fd9d5942af9148e29054b18f51\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7a729fb76a374da99334e7d4b4de102e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7b3c48ae548848c880439841c0b9cb6b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb405f797a1441d280029e6e203befce\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a7081fd9d5942af9148e29054b18f51\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"7b7a0c46d9794d6fa66401f03684dec0\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7c61a280288d4608b6ef341ce3adb7a8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7c852afee0de49fe8dac74f3af82a725\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7dee4e5320d349159422709a69af61f4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_86dbdec7087f4312b945c3a3940d8965\",\n       \"IPY_MODEL_cdbf6c3b5b3948229946fd51c227b51e\",\n       \"IPY_MODEL_d132ff798f284c9cbe2a73d35d776592\"\n      ],\n      \"layout\": \"IPY_MODEL_fead01a1a86c40bcb1ba9133ef351d7c\"\n     }\n    },\n    \"7f7f2c3afc2647c086877a2f4eff6c12\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7f928c5e620a49c1ae137868e34818a9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7fb466a306e6443287cb2fa2bea90f06\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"86dbdec7087f4312b945c3a3940d8965\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f19d9d34c978402691a89114849d2bb9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a729fb76a374da99334e7d4b4de102e\",\n      \"value\": \"Downloading pytorch_model.bin: 100%\"\n     }\n    },\n    \"8710bb7686df4fb3a73e5af839be5305\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"8b264499afca4694849b08e2091f6826\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_3eaf82623d964c2abb92b4509ac5ca9d\",\n       \"IPY_MODEL_aa3ff7831fbf47efa404805886ca4696\",\n       \"IPY_MODEL_6be63de77ed14eee9c37e93d3a75f743\"\n      ],\n      \"layout\": \"IPY_MODEL_5195ed241f09440eaf84a7e0b3dc8155\"\n     }\n    },\n    \"8d791392eed34a9b8e155da9a4b0a0d6\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"901f4ebc70f144c188d03a4978920441\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"91f03b6ed1c94cb68970f45ffa64695e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9370d0df1bca4b9a9c15e1d3e10142d9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_04c0aa3d24944485b475601f786b56f1\",\n      \"value\": \"100%\"\n     }\n    },\n    \"941a345ba82a44d5ad597a15c0af0d5c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"986b627aef004704ac0806a9aa189938\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8710bb7686df4fb3a73e5af839be5305\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"value\": \" 3365/3365 [09:20&lt;00:00,  6.34it/s]\"\n     }\n    },\n    \"98ce66c91c5c45968a3844fb0de50624\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c7a21dc260a4ad7b87f2123947058a2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c84cbc758db46e78d7fa361a385ccce\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_642db3bee97a4bea8a4c1079e2b7526c\",\n       \"IPY_MODEL_ed9f5d147e7844a187d8610130f1ecd9\",\n       \"IPY_MODEL_42dd646b18b24deda274c857d337c973\"\n      ],\n      \"layout\": \"IPY_MODEL_9e2635394d5b4965b41a05a9bc37a4ec\"\n     }\n    },\n    \"9e2635394d5b4965b41a05a9bc37a4ec\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9e312a0ec6a2478fb0f55691caf6d9ae\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9eefbb580f0146658d18658f210d3a67\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a075ee85c2d34ab3b2d011c63dc02286\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a0f74d882c63403c8116c19745e011ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a1602e58c3a7413490ce0a93f35a7ca9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a24d04e7064048c2819ef88a50ce9093\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a5bf4132f3dd4c7a807f27c8106fdd59\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a987cb79f4904973958a98f492c6443a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a9a16bf8795c402a90cf4504b1cd30a1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7f928c5e620a49c1ae137868e34818a9\",\n      \"max\": 168,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_d403f126d48746948c0f627dfdce5d65\",\n      \"value\": 168\n     }\n    },\n    \"aa3ff7831fbf47efa404805886ca4696\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"max\": 109540,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_fb908d9c3e374983aa47478a95411ba7\",\n      \"value\": 109540\n     }\n    },\n    \"acbfe8b88e6945ab9a5959fbb5f294de\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b0af063597ea4de5a8c8bf4f370f782a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a075ee85c2d34ab3b2d011c63dc02286\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_052cccb5d69d476f9caac95848e0353a\",\n      \"value\": \" 269k/269k [00:00&lt;00:00, 2.44MB/s]\"\n     }\n    },\n    \"b1cd7728deff4d50a18cb22805351330\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"b5c71e0a94014278a22ba45a6f58b77d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b80166eeee984661a611a02d1eae4458\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b91c8359a6444497b3665e66afbe237d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ba9c1cd3cfe04add90aa2edf2aa87378\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"bab8f16e038b440a8016ef087ee12904\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bc4b72ff74d84c9e83b328e8823044b1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c4da9fed45254ebdaa49312f16d9b159\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_53a2b78a732c4522805de5c9aed92c41\",\n      \"value\": \" 276/276 [00:00&lt;00:00, 14.5kB/s]\"\n     }\n    },\n    \"bee7c0220d4e476dbc035fbc5dc44fa3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bfd7d35860c14dd3b8e5eea07032311d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b91c8359a6444497b3665e66afbe237d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1181117783fd4bca9d7f5f296507aff3\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"c0145fad2cb843e9b75ac47d307cc346\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_e515df89088042dbbe23594e5976e10d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_0dccf470d87f4585af65826582399466\",\n      \"value\": \" 548/548 [00:00&lt;00:00, 21.8kB/s]\"\n     }\n    },\n    \"c1d24cb7607c44b989774113a2baf675\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c813a6f6ce09424582c06a3ac8a7d712\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"value\": \" 29.0/29.0 [00:00&lt;00:00, 1.06kB/s]\"\n     }\n    },\n    \"c24b174369fb48cdbc3d4afaa4cceccb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"c497cc2cfabb451aad71f5d7b19873e4\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c4da9fed45254ebdaa49312f16d9b159\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c7896f62a30f4eec95e3c84aef08e1b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"c813a6f6ce09424582c06a3ac8a7d712\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9144705a33848a6b142f9887da6ac49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9bf7b5808f74db9811f5b64e878dcd5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_2a59b752f9414e69b8c1d24bd24159f2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"value\": \"Downloading (…)lve/main/config.json: 100%\"\n     }\n    },\n    \"cbd776799c18488eb74a8f17cc27c6fd\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"cccbdce89ff545f6a66304352b320ad7\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"cdbf6c3b5b3948229946fd51c227b51e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_cccbdce89ff545f6a66304352b320ad7\",\n      \"max\": 3465946427,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_cbd776799c18488eb74a8f17cc27c6fd\",\n      \"value\": 3465946427\n     }\n    },\n    \"d132ff798f284c9cbe2a73d35d776592\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b1cd7728deff4d50a18cb22805351330\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"value\": \" 3.47G/3.47G [00:19&lt;00:00, 179MB/s]\"\n     }\n    },\n    \"d26e50974c52452389c5abb001056546\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d26f522a28d24494914df1dd8432af49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d403f126d48746948c0f627dfdce5d65\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"d41e81f720f44b52b9a914e4c619bfee\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d61e0c79febd45c8b00e3566296d7e8e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d652cdca44e04070a420c5d1a24b4fd1\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_941a345ba82a44d5ad597a15c0af0d5c\",\n      \"max\": 268943,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_23afbee21a644745b24b8ffefed6b286\",\n      \"value\": 268943\n     }\n    },\n    \"ddd59aac5a5d48ceace9ede35bf8f11b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7fb466a306e6443287cb2fa2bea90f06\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1b2b45ecc27b4f28bc0194709fed0638\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"e515df89088042dbbe23594e5976e10d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb405f797a1441d280029e6e203befce\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb4bdd1ff3cf4b0db273c53e32cad5de\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ebfa4ba9f18b4945947d326581d3b8e9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ed9f5d147e7844a187d8610130f1ecd9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26f522a28d24494914df1dd8432af49\",\n      \"max\": 3524,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"value\": 3524\n     }\n    },\n    \"ee0cb4c1f31346b5b180a7b826688eb4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"value\": \" 335/335 [00:00&lt;00:00, 11.3kB/s]\"\n     }\n    },\n    \"f19d9d34c978402691a89114849d2bb9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f2b466617f0247638e0934c8fe95ed1d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f51192579d014a52b132f99abf8901b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"f607835a7acf4037821885704bde736d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ddd59aac5a5d48ceace9ede35bf8f11b\",\n       \"IPY_MODEL_20e14c8de0f84979ac3f0d896263f49d\",\n       \"IPY_MODEL_4d7c3ea23e9b42a2ba5b0b11ee190c69\"\n      ],\n      \"layout\": \"IPY_MODEL_5d9e4fd05f964fd7a11d66b964ea0873\"\n     }\n    },\n    \"f9b28a5fbcd14568983ed36f9a1ca997\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"faf78b2739f841d8a213e4311926b598\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_028ec097e62b4ee8a463708f4c3b8f24\",\n      \"value\": \" 4.92M/4.92M [00:00&lt;00:00, 41.4MB/s]\"\n     }\n    },\n    \"fb908d9c3e374983aa47478a95411ba7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"fba6bb8f65904ae6ae4f5bca95e942e2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bab8f16e038b440a8016ef087ee12904\",\n      \"value\": \" 2863/2863 [01:03&lt;00:00, 45.98it/s]\"\n     }\n    },\n    \"fd1e236692ec43a18a1750a29515050d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_7b3c48ae548848c880439841c0b9cb6b\",\n       \"IPY_MODEL_1023013dc30a4731b61383bd59f2dc91\",\n       \"IPY_MODEL_ee0cb4c1f31346b5b180a7b826688eb4\"\n      ],\n      \"layout\": \"IPY_MODEL_0f7a38ddfe7b42eaa5c8ffdb3c150641\"\n     }\n    },\n    \"fda75dc7c2d24f7b827b2c78a6988586\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2d1a48d240b949ad9b465985e90557c5\",\n       \"IPY_MODEL_5a0f5ba8ad024f5b915e34e48f269437\",\n       \"IPY_MODEL_bc4b72ff74d84c9e83b328e8823044b1\"\n      ],\n      \"layout\": \"IPY_MODEL_901f4ebc70f144c188d03a4978920441\"\n     }\n    },\n    \"fead01a1a86c40bcb1ba9133ef351d7c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ff6cd33dca3c44ba9832b2d705fd2de1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW07/HW07_Medium_0.70090.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xvSGDbExff_I\"\n   },\n   \"source\": [\n    \"# **Homework 7 - Bert (Question Answering)**\\n\",\n    \"\\n\",\n    \"If you have any questions, feel free to email us at ntu-ml-2023spring-ta@googlegroups.com\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Slide:    [Link](https://docs.google.com/presentation/d/15lGUmT8NpLGtoxRllRWCJyQEjhR1Idcei63YHsDckPE/edit#slide=id.g21fff4e9af6_0_13)　Kaggle: [Link](https://www.kaggle.com/competitions/ml2023spring-hw7/host/sandbox-submissions)　Data: [Link](https://drive.google.com/file/d/1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7/view?usp=sharing)\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NYAHsHNbzdKm\"\n   },\n   \"source\": [\n    \"# Prerequisites\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TJ1fSAJE2oaC\"\n   },\n   \"source\": [\n    \"## Download Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"YPrc4Eie9Yo5\",\n    \"outputId\": \"1640c875-58d1-4288-e382-e9fa9db39b9f\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# download link 1\\n\",\n    \"# !gdown --id '1TjoBdNlGBhP_J9C66MOY7ILIrydm7ZCS' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 2 (if above link failed)\\n\",\n    \"# !gdown --id '1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 3 (if above link failed)\\n\",\n    \"# !gdown --id '1k2BfGrvhk8QRnr9Xvb04oPIKDr1uWFpa' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# !unzip -o hw7_data.zip\\n\",\n    \"\\n\",\n    \"# !kaggle competitions download -c ml2023spring-hw7\\n\",\n    \"\\n\",\n    \"!unzip ml2023spring-hw7.zip   \\n\",\n    \"\\n\",\n    \"# For this HW, K80 < P4 < T4 < P100 <= T4(fp16) < V100\\n\",\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TevOvhC03m0h\"\n   },\n   \"source\": [\n    \"## Install packages\\n\",\n    \"\\n\",\n    \"Documentation for the toolkit:\\n\",\n    \"*   https://huggingface.co/transformers/\\n\",\n    \"*   https://huggingface.co/docs/accelerate/index\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"tbxWFX_jpDom\",\n    \"outputId\": \"138488c2-96fa-4c41-d450-9d0a1b74f36c\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# You are allowed to change version of transformers or use other toolkits\\n\",\n    \"!pip install transformers==4.26.1\\n\",\n    \"!pip install accelerate==0.16.0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"XapBp31gytyD\"\n   },\n   \"source\": [\n    \"# Kaggle (Fine-tuning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"WGOr_eS3wJJf\"\n   },\n   \"source\": [\n    \"## Task description\\n\",\n    \"- Chinese Extractive Question Answering\\n\",\n    \"  - Input: Paragraph + Question\\n\",\n    \"  - Output: Answer\\n\",\n    \"\\n\",\n    \"- Objective: Learn how to fine tune a pretrained model on downstream task using transformers\\n\",\n    \"\\n\",\n    \"- Todo\\n\",\n    \"    - Fine tune a pretrained chinese BERT model\\n\",\n    \"    - Change hyperparameters (e.g. doc_stride)\\n\",\n    \"    - Apply linear learning rate decay\\n\",\n    \"    - Try other pretrained models\\n\",\n    \"    - Improve preprocessing\\n\",\n    \"    - Improve postprocessing\\n\",\n    \"- Training tips\\n\",\n    \"    - Automatic mixed precision\\n\",\n    \"    - Gradient accumulation\\n\",\n    \"    - Ensemble\\n\",\n    \"\\n\",\n    \"- Estimated training time (tesla t4 with automatic mixed precision enabled)\\n\",\n    \"    - Simple: 8mins\\n\",\n    \"    - Medium: 8mins\\n\",\n    \"    - Strong: 25mins\\n\",\n    \"    - Boss: 2hrs\\n\",\n    \"  \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"8dKM4yCh4LI_\"\n   },\n   \"source\": [\n    \"## Import Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"WOTHHtWJoahe\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import numpy as np\\n\",\n    \"import random\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, Dataset\\n\",\n    \"from transformers import AdamW\\n\",\n    \"\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2YgXHuVLp_6j\"\n   },\n   \"source\": [\n    \"## Load Model and Tokenizer\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 220,\n     \"referenced_widgets\": [\n      \"641665cb9ec6433a81719d57eeaf8298\",\n      \"ba9c1cd3cfe04add90aa2edf2aa87378\",\n      \"1e20837bf23548249678da0a07745d58\",\n      \"c1d24cb7607c44b989774113a2baf675\",\n      \"c9144705a33848a6b142f9887da6ac49\",\n      \"ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"d26e50974c52452389c5abb001056546\",\n      \"9eefbb580f0146658d18658f210d3a67\",\n      \"c813a6f6ce09424582c06a3ac8a7d712\",\n      \"ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"8b264499afca4694849b08e2091f6826\",\n      \"3eaf82623d964c2abb92b4509ac5ca9d\",\n      \"aa3ff7831fbf47efa404805886ca4696\",\n      \"6be63de77ed14eee9c37e93d3a75f743\",\n      \"5195ed241f09440eaf84a7e0b3dc8155\",\n      \"33fa92f225be477d8cd176a0a4e8894e\",\n      \"b80166eeee984661a611a02d1eae4458\",\n      \"20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"fb908d9c3e374983aa47478a95411ba7\",\n      \"304609dbefa74735baa08ce7aadff92d\",\n      \"250451c12cee4aacb91a32d7da4ab861\",\n      \"2c37badbe0504073b31abd67a8c0b808\",\n      \"bfd7d35860c14dd3b8e5eea07032311d\",\n      \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n      \"b0af063597ea4de5a8c8bf4f370f782a\",\n      \"5b1ac1a0f04f4c29b3c1127ec3d95e81\",\n      \"b91c8359a6444497b3665e66afbe237d\",\n      \"1181117783fd4bca9d7f5f296507aff3\",\n      \"941a345ba82a44d5ad597a15c0af0d5c\",\n      \"23afbee21a644745b24b8ffefed6b286\",\n      \"a075ee85c2d34ab3b2d011c63dc02286\",\n      \"052cccb5d69d476f9caac95848e0353a\"\n     ]\n    },\n    \"id\": \"xyBCYGjAp3ym\",\n    \"outputId\": \"81f25c6d-cd7f-4be1-e085-f8a54bd1c27d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import (\\n\",\n    \"  AutoTokenizer,\\n\",\n    \"  AutoModelForQuestionAnswering,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"model = AutoModelForQuestionAnswering.from_pretrained(\\\"bert-base-chinese\\\").to(device)\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"bert-base-chinese\\\")\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message (it pops up because new prediction heads for QA are initialized randomly)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3Td-GTmk5OW4\"\n   },\n   \"source\": [\n    \"## Read Data\\n\",\n    \"\\n\",\n    \"- Training set: 26918 QA pairs\\n\",\n    \"- Dev set: 2863  QA pairs\\n\",\n    \"- Test set: 3524  QA pairs\\n\",\n    \"\\n\",\n    \"- {train/dev/test}_questions:\\n\",\n    \"  - List of dicts with the following keys:\\n\",\n    \"   - id (int)\\n\",\n    \"   - paragraph_id (int)\\n\",\n    \"   - question_text (string)\\n\",\n    \"   - answer_text (string)\\n\",\n    \"   - answer_start (int)\\n\",\n    \"   - answer_end (int)\\n\",\n    \"- {train/dev/test}_paragraphs:\\n\",\n    \"  - List of strings\\n\",\n    \"  - paragraph_ids in questions correspond to indexs in paragraphs\\n\",\n    \"  - A paragraph may be used by several questions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"NvX7hlepogvu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def read_data(file):\\n\",\n    \"    with open(file, 'r', encoding=\\\"utf-8\\\") as reader:\\n\",\n    \"        data = json.load(reader)\\n\",\n    \"    return data[\\\"questions\\\"], data[\\\"paragraphs\\\"]\\n\",\n    \"\\n\",\n    \"train_questions, train_paragraphs = read_data(\\\"hw7_train.json\\\")\\n\",\n    \"dev_questions, dev_paragraphs = read_data(\\\"hw7_dev.json\\\")\\n\",\n    \"test_questions, test_paragraphs = read_data(\\\"hw7_test.json\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Fm0rpTHq0e4N\"\n   },\n   \"source\": [\n    \"## Tokenize Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"rTZ6B70Hoxie\",\n    \"outputId\": \"db13805e-02a9-4cbe-e6d2-66c0e3860c2b\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Token indices sequence length is longer than the specified maximum sequence length for this model (566 > 512). Running this sequence through the model will result in indexing errors\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Tokenize questions and paragraphs separately\\n\",\n    \"# 「add_special_tokens」 is set to False since special tokens will be added when tokenized questions and paragraphs are combined in datset __getitem__\\n\",\n    \"\\n\",\n    \"train_questions_tokenized = tokenizer([train_question[\\\"question_text\\\"] for train_question in train_questions], add_special_tokens=False)\\n\",\n    \"dev_questions_tokenized = tokenizer([dev_question[\\\"question_text\\\"] for dev_question in dev_questions], add_special_tokens=False)\\n\",\n    \"test_questions_tokenized = tokenizer([test_question[\\\"question_text\\\"] for test_question in test_questions], add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"train_paragraphs_tokenized = tokenizer(train_paragraphs, add_special_tokens=False)\\n\",\n    \"dev_paragraphs_tokenized = tokenizer(dev_paragraphs, add_special_tokens=False)\\n\",\n    \"test_paragraphs_tokenized = tokenizer(test_paragraphs, add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message as tokenized sequences will be futher processed in datset __getitem__ before passing to model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ws8c8_4d5UCI\"\n   },\n   \"source\": [\n    \"## Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"Xjooag-Swnuh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class QA_Dataset(Dataset):\\n\",\n    \"    def __init__(self, split, questions, tokenized_questions, tokenized_paragraphs):\\n\",\n    \"        self.split = split\\n\",\n    \"        self.questions = questions\\n\",\n    \"        self.tokenized_questions = tokenized_questions\\n\",\n    \"        self.tokenized_paragraphs = tokenized_paragraphs\\n\",\n    \"        self.max_question_len = 60\\n\",\n    \"        self.max_paragraph_len = 150\\n\",\n    \"\\n\",\n    \"        ##### TODO: Change value of doc_stride #####\\n\",\n    \"        self.doc_stride = int(self.max_paragraph_len * 0.25)  # Set stride to 25% of max paragraph length (Medium)\\n\",\n    \"\\n\",\n    \"        # Input sequence length = [CLS] + question + [SEP] + paragraph + [SEP]\\n\",\n    \"        self.max_seq_len = 1 + self.max_question_len + 1 + self.max_paragraph_len + 1\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.questions)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        question = self.questions[idx]\\n\",\n    \"        tokenized_question = self.tokenized_questions[idx]\\n\",\n    \"        tokenized_paragraph = self.tokenized_paragraphs[question[\\\"paragraph_id\\\"]]\\n\",\n    \"\\n\",\n    \"        ##### TODO: Preprocessing #####\\n\",\n    \"        # Hint: How to prevent model from learning something it should not learn\\n\",\n    \"        if self.split == \\\"train\\\":\\n\",\n    \"            # Convert answer's start/end positions in paragraph_text to start/end positions in tokenized_paragraph\\n\",\n    \"            answer_start_token = tokenized_paragraph.char_to_token(question[\\\"answer_start\\\"])\\n\",\n    \"            answer_end_token = tokenized_paragraph.char_to_token(question[\\\"answer_end\\\"])\\n\",\n    \"\\n\",\n    \"            # A single window is obtained by slicing the portion of paragraph containing the answer\\n\",\n    \"            mid = (answer_start_token + answer_end_token) // 2\\n\",\n    \"            paragraph_start = max(0, min(mid - self.max_paragraph_len // 2, len(tokenized_paragraph) - self.max_paragraph_len))\\n\",\n    \"            paragraph_end = paragraph_start + self.max_paragraph_len\\n\",\n    \"\\n\",\n    \"            # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"            input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"            input_ids_paragraph = tokenized_paragraph.ids[paragraph_start : paragraph_end] + [102]\\n\",\n    \"\\n\",\n    \"            # Convert answer's start/end positions in tokenized_paragraph to start/end positions in the window\\n\",\n    \"            answer_start_token += len(input_ids_question) - paragraph_start\\n\",\n    \"            answer_end_token += len(input_ids_question) - paragraph_start\\n\",\n    \"\\n\",\n    \"            # Pad sequence and obtain inputs to model\\n\",\n    \"            input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"            return torch.tensor(input_ids), torch.tensor(token_type_ids), torch.tensor(attention_mask), answer_start_token, answer_end_token\\n\",\n    \"\\n\",\n    \"        # Validation/Testing\\n\",\n    \"        else:\\n\",\n    \"            input_ids_list, token_type_ids_list, attention_mask_list = [], [], []\\n\",\n    \"\\n\",\n    \"            # Paragraph is split into several windows, each with start positions separated by step \\\"doc_stride\\\"\\n\",\n    \"            for i in range(0, len(tokenized_paragraph), self.doc_stride):\\n\",\n    \"\\n\",\n    \"                # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"                input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"                input_ids_paragraph = tokenized_paragraph.ids[i : i + self.max_paragraph_len] + [102]\\n\",\n    \"\\n\",\n    \"                # Pad sequence and obtain inputs to model\\n\",\n    \"                input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"\\n\",\n    \"                input_ids_list.append(input_ids)\\n\",\n    \"                token_type_ids_list.append(token_type_ids)\\n\",\n    \"                attention_mask_list.append(attention_mask)\\n\",\n    \"\\n\",\n    \"            return torch.tensor(input_ids_list), torch.tensor(token_type_ids_list), torch.tensor(attention_mask_list)\\n\",\n    \"\\n\",\n    \"    def padding(self, input_ids_question, input_ids_paragraph):\\n\",\n    \"        # Pad zeros if sequence length is shorter than max_seq_len\\n\",\n    \"        padding_len = self.max_seq_len - len(input_ids_question) - len(input_ids_paragraph)\\n\",\n    \"        # Indices of input sequence tokens in the vocabulary\\n\",\n    \"        input_ids = input_ids_question + input_ids_paragraph + [0] * padding_len\\n\",\n    \"        # Segment token indices to indicate first and second portions of the inputs. Indices are selected in [0, 1]\\n\",\n    \"        token_type_ids = [0] * len(input_ids_question) + [1] * len(input_ids_paragraph) + [0] * padding_len\\n\",\n    \"        # Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]\\n\",\n    \"        attention_mask = [1] * (len(input_ids_question) + len(input_ids_paragraph)) + [0] * padding_len\\n\",\n    \"\\n\",\n    \"        return input_ids, token_type_ids, attention_mask\\n\",\n    \"\\n\",\n    \"train_set = QA_Dataset(\\\"train\\\", train_questions, train_questions_tokenized, train_paragraphs_tokenized)\\n\",\n    \"dev_set = QA_Dataset(\\\"dev\\\", dev_questions, dev_questions_tokenized, dev_paragraphs_tokenized)\\n\",\n    \"test_set = QA_Dataset(\\\"test\\\", test_questions, test_questions_tokenized, test_paragraphs_tokenized)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5_H1kqhR8CdM\"\n   },\n   \"source\": [\n    \"## Function for Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"SqeA3PLPxOHu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def evaluate(data, output):\\n\",\n    \"    ##### TODO: Postprocessing #####\\n\",\n    \"    # There is a bug and room for improvement in postprocessing\\n\",\n    \"    # Hint: Open your prediction file to see what is wrong\\n\",\n    \"\\n\",\n    \"    answer = ''\\n\",\n    \"    max_prob = float('-inf')\\n\",\n    \"    num_of_windows = data[0].shape[1]\\n\",\n    \"\\n\",\n    \"    for k in range(num_of_windows):\\n\",\n    \"        # Obtain answer by choosing the most probable start position / end position\\n\",\n    \"        start_prob, start_index = torch.max(output.start_logits[k], dim=0)\\n\",\n    \"        end_prob, end_index = torch.max(output.end_logits[k], dim=0)\\n\",\n    \"\\n\",\n    \"        # Probability of answer is calculated as sum of start_prob and end_prob\\n\",\n    \"        prob = start_prob + end_prob\\n\",\n    \"\\n\",\n    \"        # Replace answer if calculated probability is larger than previous windows\\n\",\n    \"        if prob > max_prob:\\n\",\n    \"            max_prob = prob\\n\",\n    \"            # Convert tokens to chars (e.g. [1920, 7032] --> \\\"大 金\\\")\\n\",\n    \"            answer = tokenizer.decode(data[0][0][k][start_index : end_index + 1])\\n\",\n    \"\\n\",\n    \"    # Remove spaces in answer (e.g. \\\"大 金\\\" --> \\\"大金\\\")\\n\",\n    \"    return answer.replace(' ','')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rzHQit6eMnKG\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 778,\n     \"referenced_widgets\": [\n      \"53c1ce79c38b45fc8d1b675515642c54\",\n      \"9370d0df1bca4b9a9c15e1d3e10142d9\",\n      \"611f0f0c70a5471b891bd6f6b8cb7863\",\n      \"986b627aef004704ac0806a9aa189938\",\n      \"f2b466617f0247638e0934c8fe95ed1d\",\n      \"f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"04c0aa3d24944485b475601f786b56f1\",\n      \"78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"7c61a280288d4608b6ef341ce3adb7a8\",\n      \"8710bb7686df4fb3a73e5af839be5305\",\n      \"c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"29a7b6bb49004c3c96a6d48cd55e1ec3\",\n      \"06e4e53bd3e748ad90d14eeec117aac9\",\n      \"6a47a3bc614a44e7a5b0dfef50cadaf7\",\n      \"fba6bb8f65904ae6ae4f5bca95e942e2\",\n      \"6d5ad2f51bb3459b85201f983a499ea2\",\n      \"9c7a21dc260a4ad7b87f2123947058a2\",\n      \"7b7a0c46d9794d6fa66401f03684dec0\",\n      \"11dcde71ff984d829ec9612e7f43e3a3\",\n      \"a987cb79f4904973958a98f492c6443a\",\n      \"8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"bab8f16e038b440a8016ef087ee12904\"\n     ]\n    },\n    \"id\": \"3Q-B6ka7xoCM\",\n    \"outputId\": \"69c6f306-8a93-4b59-a64d-41f55889a6e6\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Start Training ...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\\n\",\n      \"  warnings.warn(\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"28ae384709d443d1a3ff02787779e190\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3365 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Epoch 1 | Step 100 | loss = 3.775, acc = 0.069\\n\",\n      \"Epoch 1 | Step 200 | loss = 1.995, acc = 0.290\\n\",\n      \"Epoch 1 | Step 300 | loss = 1.733, acc = 0.397\\n\",\n      \"Epoch 1 | Step 400 | loss = 1.476, acc = 0.462\\n\",\n      \"Epoch 1 | Step 500 | loss = 1.275, acc = 0.527\\n\",\n      \"Epoch 1 | Step 600 | loss = 1.084, acc = 0.584\\n\",\n      \"Epoch 1 | Step 700 | loss = 1.143, acc = 0.579\\n\",\n      \"Epoch 1 | Step 800 | loss = 0.992, acc = 0.613\\n\",\n      \"Epoch 1 | Step 900 | loss = 0.954, acc = 0.631\\n\",\n      \"Epoch 1 | Step 1000 | loss = 0.898, acc = 0.624\\n\",\n      \"Epoch 1 | Step 1100 | loss = 0.937, acc = 0.627\\n\",\n      \"Epoch 1 | Step 1200 | loss = 0.836, acc = 0.636\\n\",\n      \"Epoch 1 | Step 1300 | loss = 0.859, acc = 0.642\\n\",\n      \"Epoch 1 | Step 1400 | loss = 0.779, acc = 0.675\\n\",\n      \"Epoch 1 | Step 1500 | loss = 0.905, acc = 0.621\\n\",\n      \"Epoch 1 | Step 1600 | loss = 0.745, acc = 0.684\\n\",\n      \"Epoch 1 | Step 1700 | loss = 0.842, acc = 0.642\\n\",\n      \"Epoch 1 | Step 1800 | loss = 0.735, acc = 0.670\\n\",\n      \"Epoch 1 | Step 1900 | loss = 0.788, acc = 0.674\\n\",\n      \"Epoch 1 | Step 2000 | loss = 0.733, acc = 0.673\\n\",\n      \"Epoch 1 | Step 2100 | loss = 0.801, acc = 0.662\\n\",\n      \"Epoch 1 | Step 2200 | loss = 0.781, acc = 0.641\\n\",\n      \"Epoch 1 | Step 2300 | loss = 0.688, acc = 0.715\\n\",\n      \"Epoch 1 | Step 2400 | loss = 0.692, acc = 0.702\\n\",\n      \"Epoch 1 | Step 2500 | loss = 0.706, acc = 0.667\\n\",\n      \"Epoch 1 | Step 2600 | loss = 0.640, acc = 0.707\\n\",\n      \"Epoch 1 | Step 2700 | loss = 0.728, acc = 0.688\\n\",\n      \"Epoch 1 | Step 2800 | loss = 0.714, acc = 0.691\\n\",\n      \"Epoch 1 | Step 2900 | loss = 0.738, acc = 0.701\\n\",\n      \"Epoch 1 | Step 3000 | loss = 0.744, acc = 0.697\\n\",\n      \"Epoch 1 | Step 3100 | loss = 0.754, acc = 0.694\\n\",\n      \"Epoch 1 | Step 3200 | loss = 0.709, acc = 0.702\\n\",\n      \"Epoch 1 | Step 3300 | loss = 0.695, acc = 0.691\\n\",\n      \"Evaluating Dev Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"a7862130ffd148e18547b867cfd3a5ea\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/2863 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Validation | Epoch 1 | acc = 0.674\\n\",\n      \"Saving Model ...\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from accelerate import Accelerator\\n\",\n    \"\\n\",\n    \"# hyperparameters\\n\",\n    \"num_epoch = 1\\n\",\n    \"validation = True\\n\",\n    \"logging_step = 100\\n\",\n    \"learning_rate = 1e-5\\n\",\n    \"optimizer = AdamW(model.parameters(), lr=learning_rate)\\n\",\n    \"train_batch_size = 8\\n\",\n    \"\\n\",\n    \"#### TODO: gradient_accumulation (optional)####\\n\",\n    \"# Note: train_batch_size * gradient_accumulation_steps = effective batch size\\n\",\n    \"# If CUDA out of memory, you can make train_batch_size lower and gradient_accumulation_steps upper\\n\",\n    \"# Doc: https://huggingface.co/docs/accelerate/usage_guides/gradient_accumulation\\n\",\n    \"gradient_accumulation_steps = 16\\n\",\n    \"\\n\",\n    \"# dataloader\\n\",\n    \"# Note: Do NOT change batch size of dev_loader / test_loader !\\n\",\n    \"# Although batch size=1, it is actually a batch consisting of several windows from the same QA pair\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=train_batch_size, shuffle=True, pin_memory=True)\\n\",\n    \"dev_loader = DataLoader(dev_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"\\n\",\n    \"#---- Medium -----\\n\",\n    \"from transformers import get_linear_schedule_with_warmup\\n\",\n    \"from torch.optim.lr_scheduler import LambdaLR\\n\",\n    \"\\n\",\n    \"# total training steps\\n\",\n    \"total_steps = len(train_loader) * num_epoch\\n\",\n    \"num_warmup_steps = int(0 * total_steps)  # Set warmup steps to 20% of total steps\\n\",\n    \"\\n\",\n    \"# [Hugging Face] Apply linear learning rate decay with warmup\\n\",\n    \"scheduler = get_linear_schedule_with_warmup(\\n\",\n    \"    optimizer, num_warmup_steps=num_warmup_steps, num_training_steps=total_steps\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# # [PyTorch] Alternative approach: Apply linear learning rate decay without warmup\\n\",\n    \"# # lr_lambda defines how learning rate decays over time (here it's a simple linear decay)\\n\",\n    \"# lr_lambda = lambda step: max(0.0, 1.0 - step / total_steps)\\n\",\n    \"# scheduler = LambdaLR(optimizer, lr_lambda=lr_lambda)\\n\",\n    \"\\n\",\n    \"# ---- Medium -----\\n\",\n    \"\\n\",\n    \"# Change \\\"fp16_training\\\" to True to support automatic mixed\\n\",\n    \"# precision training (fp16)\\n\",\n    \"fp16_training = True\\n\",\n    \"if fp16_training:\\n\",\n    \"    accelerator = Accelerator(mixed_precision=\\\"fp16\\\")\\n\",\n    \"else:\\n\",\n    \"    accelerator = Accelerator()\\n\",\n    \"\\n\",\n    \"# Documentation for the toolkit:  https://huggingface.co/docs/accelerate/\\n\",\n    \"model, optimizer, train_loader = accelerator.prepare(model, optimizer, train_loader)\\n\",\n    \"\\n\",\n    \"model.train()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"print(\\\"Start Training ...\\\")\\n\",\n    \"\\n\",\n    \"for epoch in range(num_epoch):\\n\",\n    \"    step = 1\\n\",\n    \"    train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    for data in tqdm(train_loader):\\n\",\n    \"        # Load all data into GPU\\n\",\n    \"        data = [i.to(device) for i in data]\\n\",\n    \"\\n\",\n    \"        # Model inputs: input_ids, token_type_ids, attention_mask, start_positions, end_positions (Note: only \\\"input_ids\\\" is mandatory)\\n\",\n    \"        # Model outputs: start_logits, end_logits, loss (return when start_positions/end_positions are provided)\\n\",\n    \"        output = model(input_ids=data[0], token_type_ids=data[1], attention_mask=data[2], start_positions=data[3], end_positions=data[4])\\n\",\n    \"        # Choose the most probable start position / end position\\n\",\n    \"        start_index = torch.argmax(output.start_logits, dim=1)\\n\",\n    \"        end_index = torch.argmax(output.end_logits, dim=1)\\n\",\n    \"\\n\",\n    \"        # Prediction is correct only if both start_index and end_index are correct\\n\",\n    \"        train_acc += ((start_index == data[3]) & (end_index == data[4])).float().mean()\\n\",\n    \"\\n\",\n    \"        train_loss += output.loss\\n\",\n    \"\\n\",\n    \"        accelerator.backward(output.loss)\\n\",\n    \"\\n\",\n    \"        step += 1\\n\",\n    \"        optimizer.step()\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        ##### TODO: Apply linear learning rate decay #####\\n\",\n    \"        scheduler.step()  # Apply learning rate scheduler (Medium)\\n\",\n    \"        # Print training loss and accuracy over past logging step\\n\",\n    \"        if step % logging_step == 0:\\n\",\n    \"            print(f\\\"Epoch {epoch + 1} | Step {step} | loss = {train_loss.item() / logging_step:.3f}, acc = {train_acc / logging_step:.3f}\\\")\\n\",\n    \"            train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    if validation:\\n\",\n    \"        print(\\\"Evaluating Dev Set ...\\\")\\n\",\n    \"        model.eval()\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            dev_acc = 0\\n\",\n    \"            for i, data in enumerate(tqdm(dev_loader)):\\n\",\n    \"                output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"                # prediction is correct only if answer text exactly matches\\n\",\n    \"                dev_acc += evaluate(data, output) == dev_questions[i][\\\"answer_text\\\"]\\n\",\n    \"            print(f\\\"Validation | Epoch {epoch + 1} | acc = {dev_acc / len(dev_loader):.3f}\\\")\\n\",\n    \"        model.train()\\n\",\n    \"\\n\",\n    \"# Save a model and its configuration file to the directory 「saved_model」\\n\",\n    \"# i.e. there are two files under the direcory 「saved_model」: 「pytorch_model.bin」 and 「config.json」\\n\",\n    \"# Saved model can be re-loaded using 「model = BertForQuestionAnswering.from_pretrained(\\\"saved_model\\\")」\\n\",\n    \"print(\\\"Saving Model ...\\\")\\n\",\n    \"model_save_dir = \\\"saved_model\\\"\\n\",\n    \"model.save_pretrained(model_save_dir)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"kMmdLOKBMsdE\"\n   },\n   \"source\": [\n    \"## Testing\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 84,\n     \"referenced_widgets\": [\n      \"9c84cbc758db46e78d7fa361a385ccce\",\n      \"642db3bee97a4bea8a4c1079e2b7526c\",\n      \"ed9f5d147e7844a187d8610130f1ecd9\",\n      \"42dd646b18b24deda274c857d337c973\",\n      \"9e2635394d5b4965b41a05a9bc37a4ec\",\n      \"3366101d46a847dfa5700ffb652dcc86\",\n      \"a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"d26f522a28d24494914df1dd8432af49\",\n      \"c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"a0f74d882c63403c8116c19745e011ba\",\n      \"55a7b680dae94cba8758288dacff2988\"\n     ]\n    },\n    \"id\": \"U5scNKC9xz0C\",\n    \"outputId\": \"841c70f2-2f3c-4c0f-866e-143f127eb6b5\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Evaluating Test Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6af740e6d54846d48dc524b74d4871ce\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3524 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Completed! Result is in result.csv\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(\\\"Evaluating Test Set ...\\\")\\n\",\n    \"\\n\",\n    \"result = []\\n\",\n    \"\\n\",\n    \"model.eval()\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for data in tqdm(test_loader):\\n\",\n    \"        output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"        result.append(evaluate(data, output))\\n\",\n    \"\\n\",\n    \"result_file = \\\"result.csv\\\"\\n\",\n    \"with open(result_file, 'w') as f:\\n\",\n    \"    f.write(\\\"ID,Answer\\\\n\\\")\\n\",\n    \"    for i, test_question in enumerate(test_questions):\\n\",\n    \"    # Replace commas in answers with empty strings (since csv is separated by comma)\\n\",\n    \"    # Answers in kaggle are processed in the same way\\n\",\n    \"        f.write(f\\\"{test_question['id']},{result[i].replace(',','')}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"print(f\\\"Completed! Result is in {result_file}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0_JVNKOCywbR\"\n   },\n   \"source\": [\n    \"# GradeScope - Question 2 (In-context learning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"SDYN85why7zk\"\n   },\n   \"source\": [\n    \"### In-context learning\\n\",\n    \"The example prompt is :\\n\",\n    \"```\\n\",\n    \"請從最後一篇的文章中找出最後一個問題的答案：\\n\",\n    \"文章：<文章1 內容>\\n\",\n    \"問題：<問題1 敘述>\\n\",\n    \"答案：<答案1>\\n\",\n    \"...\\n\",\n    \"文章：<文章n 內容>\\n\",\n    \"問題：<問題n 敘述>\\n\",\n    \"答案：\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"sGUxltxqzKpm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# To avoid CUDA_OUT_OF_MEMORY\\n\",\n    \"torch.set_default_tensor_type(torch.cuda.FloatTensor)\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 241,\n     \"referenced_widgets\": [\n      \"fd1e236692ec43a18a1750a29515050d\",\n      \"7b3c48ae548848c880439841c0b9cb6b\",\n      \"1023013dc30a4731b61383bd59f2dc91\",\n      \"ee0cb4c1f31346b5b180a7b826688eb4\",\n      \"0f7a38ddfe7b42eaa5c8ffdb3c150641\",\n      \"eb405f797a1441d280029e6e203befce\",\n      \"7a7081fd9d5942af9148e29054b18f51\",\n      \"eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"7c852afee0de49fe8dac74f3af82a725\",\n      \"24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"0549ffe5a6a444dd9fbf8c4513ebe7f7\",\n      \"388d3d2566ff4a1cb68048ac78dd374f\",\n      \"6235eaf236d643c6a163dddb86d3664d\",\n      \"faf78b2739f841d8a213e4311926b598\",\n      \"91f03b6ed1c94cb68970f45ffa64695e\",\n      \"9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"39d35e6e28264b5ca157745d0c1e1491\",\n      \"c497cc2cfabb451aad71f5d7b19873e4\",\n      \"7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"028ec097e62b4ee8a463708f4c3b8f24\",\n      \"f607835a7acf4037821885704bde736d\",\n      \"ddd59aac5a5d48ceace9ede35bf8f11b\",\n      \"20e14c8de0f84979ac3f0d896263f49d\",\n      \"4d7c3ea23e9b42a2ba5b0b11ee190c69\",\n      \"5d9e4fd05f964fd7a11d66b964ea0873\",\n      \"7fb466a306e6443287cb2fa2bea90f06\",\n      \"1b2b45ecc27b4f28bc0194709fed0638\",\n      \"6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"f51192579d014a52b132f99abf8901b2\",\n      \"6912ca44b1864902a3e32d4a19a4972d\",\n      \"acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"fda75dc7c2d24f7b827b2c78a6988586\",\n      \"2d1a48d240b949ad9b465985e90557c5\",\n      \"5a0f5ba8ad024f5b915e34e48f269437\",\n      \"bc4b72ff74d84c9e83b328e8823044b1\",\n      \"901f4ebc70f144c188d03a4978920441\",\n      \"98ce66c91c5c45968a3844fb0de50624\",\n      \"a24d04e7064048c2819ef88a50ce9093\",\n      \"154be9baa03943d08c975dbc85c4edf8\",\n      \"2fe4fa69d9544fd393a4d72c02245245\",\n      \"c4da9fed45254ebdaa49312f16d9b159\",\n      \"53a2b78a732c4522805de5c9aed92c41\",\n      \"0440f9e26a0b420b86175bc62e212d01\",\n      \"c9bf7b5808f74db9811f5b64e878dcd5\",\n      \"66a35d11743141b1b20904b13a4b86ea\",\n      \"c0145fad2cb843e9b75ac47d307cc346\",\n      \"d61e0c79febd45c8b00e3566296d7e8e\",\n      \"2a59b752f9414e69b8c1d24bd24159f2\",\n      \"447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"16b30759d76a4c8f979212d1ae30c297\",\n      \"1639410507da4b54996064d9fcc8621c\",\n      \"e515df89088042dbbe23594e5976e10d\",\n      \"0dccf470d87f4585af65826582399466\",\n      \"7dee4e5320d349159422709a69af61f4\",\n      \"86dbdec7087f4312b945c3a3940d8965\",\n      \"cdbf6c3b5b3948229946fd51c227b51e\",\n      \"d132ff798f284c9cbe2a73d35d776592\",\n      \"fead01a1a86c40bcb1ba9133ef351d7c\",\n      \"f19d9d34c978402691a89114849d2bb9\",\n      \"7a729fb76a374da99334e7d4b4de102e\",\n      \"cccbdce89ff545f6a66304352b320ad7\",\n      \"cbd776799c18488eb74a8f17cc27c6fd\",\n      \"b1cd7728deff4d50a18cb22805351330\",\n      \"550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"745f78a378b5412eae007f029e8c321a\",\n      \"2c449a0e664c41a79b3a1de62e94b5b7\",\n      \"a9a16bf8795c402a90cf4504b1cd30a1\",\n      \"715ad9f6bdaa46298317e049404f9755\",\n      \"667f153201d347a0a01e39b438fa736b\",\n      \"d652cdca44e04070a420c5d1a24b4fd1\",\n      \"b5c71e0a94014278a22ba45a6f58b77d\",\n      \"7f928c5e620a49c1ae137868e34818a9\",\n      \"d403f126d48746948c0f627dfdce5d65\",\n      \"d41e81f720f44b52b9a914e4c619bfee\",\n      \"bee7c0220d4e476dbc035fbc5dc44fa3\"\n     ]\n    },\n    \"id\": \"wIS23s79zItf\",\n    \"outputId\": \"c686be61-221a-4f55-ca79-67715343f1db\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModelForCausalLM\\n\",\n    \"\\n\",\n    \"# You can try model with different size\\n\",\n    \"# When using Colab or Kaggle, models with more than 2 billions parameters may\\n\",\n    \"# run out of memory\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"facebook/xglm-1.7B\\\")\\n\",\n    \"model = AutoModelForCausalLM.from_pretrained(\\\"facebook/xglm-1.7B\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"2d97YtavzFHA\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# To clean model output. If you try different prompts, you may have to fix\\n\",\n    \"# this function on your own\\n\",\n    \"def clean_text(text):\\n\",\n    \"    # Note: When you use unilingual model, the colon may become fullwidth\\n\",\n    \"    text = text.split(\\\"答案:\\\")[-1]\\n\",\n    \"    text = text.split(\\\" \\\")[0]\\n\",\n    \"    return text\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"jdf3gdP_yykH\",\n    \"outputId\": \"b9a784dd-e5d7-4212-c089-e0180157bd11\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：2010年引入的廣州快速交通運輸系統是世界第二大快速運輸系統。每日載客量可達100萬人次。每小時的客流量峰值高達26,900名乘客，僅次於波哥大的快速交通系統。每10秒有一輛公共汽車，每輛公共汽車在一個方向上行駛350小時。該平台包括橋樑，是世界上最長的國家公共汽車快速運輸系統平台，長度為260米。目前，廣州市的出租車和公交車主要以液化石油氣為燃料，部分公交車採用油電，氣電混合技術。2012年底，一輛LNG燃料公共汽車開始啟動。2014年6月，引入了LNG插電式混合動力公交車取代LPG公交車。2007年1月16日，廣州市政府完全禁止在城市地區駕駛摩托車。違反禁令的機動車將被沒收。廣州市交通局聲稱，禁令的實施導致交通擁堵和車禍大大減少。廣州白雲國際機場位於白雲區與花都區交界處。它於2004年8月5日正式投入運營。它是中國第二繁忙的機場。機場取代了原先位於市中心的舊機場，無法滿足日益增長的航空需求。目前，機場有三個簡易機場，是中國第三個擁有三條跑道的民航機場。比2023年香港國際機場第三條跑道的預計完工時間提前了8年。\\n\",\n      \"問題：從哪一天開始在廣州市內騎摩托車會被沒收？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2007年1月16日\\n\",\n      \"模型輸出: 2007年1月16日\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 200公里\\n\",\n      \"模型輸出: 200公里\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：香港\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：文化大革命\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 首都。\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年引入的廣州快速交通運輸系統是世界第二大快速運輸系統。每日載客量可達100萬人次。每小時的客流量峰值高達26,900名乘客，僅次於波哥大的快速交通系統。每10秒有一輛公共汽車，每輛公共汽車在一個方向上行駛350小時。該平台包括橋樑，是世界上最長的國家公共汽車快速運輸系統平台，長度為260米。目前，廣州市的出租車和公交車主要以液化石油氣為燃料，部分公交車採用油電，氣電混合技術。2012年底，一輛LNG燃料公共汽車開始啟動。2014年6月，引入了LNG插電式混合動力公交車取代LPG公交車。2007年1月16日，廣州市政府完全禁止在城市地區駕駛摩托車。違反禁令的機動車將被沒收。廣州市交通局聲稱，禁令的實施導致交通擁堵和車禍大大減少。廣州白雲國際機場位於白雲區與花都區交界處。它於2004年8月5日正式投入運營。它是中國第二繁忙的機場。機場取代了原先位於市中心的舊機場，無法滿足日益增長的航空需求。目前，機場有三個簡易機場，是中國第三個擁有三條跑道的民航機場。比2023年香港國際機場第三條跑道的預計完工時間提前了8年。\\n\",\n      \"問題：從哪一天開始在廣州市內騎摩托車會被沒收？\\n\",\n      \"答案：2007年1月16日\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2015\\n\",\n      \"模型輸出: 1990年\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 文化大革命\\n\",\n      \"模型輸出: 文化大革命\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：六朝時期，廣州的對外貿易相當繁榮，外國海商“長期停留在廣州尋求利潤”。在隋唐時期，廣州的對外貿易發展到了頂峰。作為唐代唯一的城市，外國人口占全市人口的30％以上，成為中國對外貿易的核心。在元朝短暫的沉寂之後，廣州和明清在廣州重新出現。在清代的一站式貿易政策下，它成為當時中國唯一的外國港口，成為具有壟斷地位的國家商業中心。上海開放後，隨著國家的逐步開放，廣州逐漸失去了對外貿易中心的地位，但它仍然是全國最重要的商業城市。改革開放後，廣州百貨業蓬勃發展。 20世紀80年代，友誼商店專門為香港，澳門和外國客人銷售電器和其他進口商品。西湖路照明夜市是平民的熱門目的地。南樓位於江西路沿線，已成為華南地區最大的綜合性百貨商場。它還在大陸創建了第一家24小時便利店，華夏百貨商店成立了人民南商圈。延伸，後者於1995年建立了一條步行街。新大新公司和廣州百貨在北京路的業務也蓬勃發展，這條路也成了一條步行街。超市Wankelong於1996年在廣州開設了第一家分店，然後廣州人熟悉的超市和便利店品牌，如香港百佳超市進入廣州。由於交通壓力和天河新區的發展，20世紀90年代末人民南方商業圈開始衰落，成為電子服裝批發的集散地，城市商業區遷至東部新區。21世紀，以天河城，天環廣場，鄭家廣場，太古彙和萬靈彙為代表的天河路商業區已成為廣州的中心商業區。自1957年以來，中國出口商品交易會每年春秋兩季舉辦。目前，每個展覽都吸引了來自世界各地的20多萬商家。這是中國規模最大，時間最長，最成功的國際展覽會。隨著琶洲展館三期工程的建設，展覽能力躍居世界前列。\\n\",\n      \"問題：唐朝的對外貿易核心在哪？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 廣州\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：2015\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：自古以來，廣州基本上就是嶺南的政治中心。秦朝末年是南嶽的首都，漢朝征服了南嶽州，後來成為南海縣。漢末遷至龍灣和古代大壩。在三國時期，吳國布將縣長遷回番禺，後來成立了膠州府。廣州和廣州轉移後，它是廣州的州長。晉南，南北朝使用南海縣，番禺由縣統治。文帝皇帝廢棄了南海縣，成立了廣州總務辦公室，後來改為杜都政府。唐代分為十個民族，其中嶺南大智學院位於廣州。862年，嶺南分為東二西路，廣州分為嶺南東路。五代時期，廣州是南漢的首都。宋初，嶺南路重建，廣州是行政中心。明代廣州是廣州阜城，隸屬番禺縣和南海縣。清軍佔領中原後，南明邵武帝朱熹在廣州建成，很快南明就死了。清代廣州成為廣東省，廣州阜城，番禺和南海縣。廣東省和廣西省，廣東省屯門省長，廣東省屯門局長，廣東省檢察院都在廣州市南海縣境內。1858年，英法聯軍攻占廣州，廣東省長投降，外國人委員會成立，廣東省政府成為政府。\\n\",\n      \"問題：南明的首都在哪？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 廣州\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：香港\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：從化市\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 武昌起義\\n\",\n      \"模型輸出: 1911年10月10日武昌起義\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 香港\\n\",\n      \"模型輸出: 香港\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：長期以來，廣州大部分地方的語言主要是廣東話。因此，廣州還形成了粵語文化，包括粵劇，粵劇，南音和鹹水歌。隨著中國大陸的改革開放，來自城外和廣東省以外的大量人口迅速湧入。在這些移民中，由於不同的省/總統，有許多不同的語言，外國人和來自不同地區的人經常用普通話交流;因此，在許多大型公共場所，普通話是主要語言。在某些情況下，將增加粵語或英語廣播，種族群體仍然使用自己的方言進行相互交流。一些外國人會用當地文化交流，用粵語與當地人交流。如今，隨著普通話的推廣，外國和本地年輕人受長期使用普通話作為教學媒介和普通話的共同環境的影響。目前，廣州的語言交換主要講普通話，但當地人仍然使用廣東話。與交流。雖然普通話自21世紀初以來逐漸佔據主導地位，但它受到當地文化的影響。與此同時，由於香港和澳門的距離較近，以及廣州市民近年來開展了一系列推廣普通話的評論，它已開始保護廣東話，所以廣東話仍有一定的地位。當地。 。\\n\",\n      \"問題：在廣州許多比較大的公眾場合以甚麼為主要交流語言？\\n\",\n      \"答案：普通話\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 1921\\n\",\n      \"模型輸出: 公元前214年,秦始皇出兵徵兵南,南海縣任\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：廣州是中國最重要的開放城市之一。作為對外貿易的窗口，有許多來自北美，日本，韓國，歐洲，中東，非洲等國的外國人，尤其是非洲黑人。廣州甚至被稱為“第三世界”。首都主要位於廣州市環市東路秀山大廈，淘金路，花園酒店，建馬路和劍馬路;天河北路，體育東路，天河路，龍口西路，臨河中路等公司辦公室;番禺區的一些物業，如克利福德新村和麗江花園，也有更多的外國人。據廣州市公安局出入境管理支隊2014年10月統計，在廣州登記的外國人有11.8萬人，其中臨時居民71,000人，居住半年以上的47,000名永久居民。其中大多數是來自非洲的4,000多名註冊外國人;來自阿拉伯國家和地區的約1萬人雖然沒有大規模的定居點，但經常出現在小北 - 登封地區的商業區進行商業活動。在荔景街也有更多的韓國人。2013年，有超過15萬名乘客進出廣州港，其中54萬人來自非洲國家。他們中的大多數人來往於同一個人，主要是因為簽證允許短期逗留或商業需求而不是移民。近年來，廣州黑人一直捲入廣州的一些公安問題，引起廣州市民的一些不滿。針對“三非”問題，公安機關設立了四個涉外綜合執法隊伍，翻譯志願服務隊伍，調查“三個非外國”外國專業隊和四個外國隊 - 相關管理基層服務隊伍;自年初以來，廣州在200多名外國人社區建立了75個“外國人管理服務工作站”，並大力打擊“三非”外國人。它已經取得了成果。\\n\",\n      \"問題：被稱為「第三世界首都」的城市哪種外籍人士最多？\\n\",\n      \"答案：非洲黑人\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 7月\\n\",\n      \"模型輸出: 2010年7月\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2008年\\n\",\n      \"模型輸出: 廣州获得「創建國家健康城市」獎項\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：2015\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 從化市\\n\",\n      \"模型輸出: 越秀區\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：文化大革命\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：作為中國最大的城市之一，廣州有大量在廣州工作的外國人。然而，“本地人”與“外國人”之間的關係難以協調，也會引發一系列社會問題。由於廣州的能力和就業能力有限，廣州無法容納來自全國各地的農民工。其安全環境已經過嚴格測試。經常發生“兩個盜賊和一個小偷”事件，特別是在城市村莊。根據廣州社會科學院的一項調查，80％的囚犯被逮捕為“局外人”。除了廣東話的光復文化外，外國人和外國方言的排斥增加了廣州市民的仇外心理。近年來，由於政府的大力禁令，廣州的公安管理取得了顯著成效。2014年，廣東省政府明確要求控制廣州和深圳特大城市的人口規模。2008年，農民工佔廣州人口的40％，其中大多數是女性農民工，其中許多人未婚。截至2013年底，廣州註冊人口為686.7萬。根據一定的錯失率，廣州的實際流動人口約為837萬。這些數據已超過常住人口。最新統計數據顯示，廣州常住人口為832萬。其中，白雲區，番禺區和天河區流動人口超過百萬。番禺區有111.7萬戶登記移民，流動戶籍區涉及30個省，自治區，直轄市。在性別比方面，男性略多，佔總數的53.5％;女性佔總數的46.5％。在番禺流動人口中，兒童和老年人的比例極小，15歲以下為0.49％，60歲以上為1.68％，大專以上為10％。\\n\",\n      \"問題：有百分之多少的犯人被抓的是外地人？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 80\\n\",\n      \"模型輸出: 廣州的社會環境\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為中國最大的城市之一，廣州有大量在廣州工作的外國人。然而，“本地人”與“外國人”之間的關係難以協調，也會引發一系列社會問題。由於廣州的能力和就業能力有限，廣州無法容納來自全國各地的農民工。其安全環境已經過嚴格測試。經常發生“兩個盜賊和一個小偷”事件，特別是在城市村莊。根據廣州社會科學院的一項調查，80％的囚犯被逮捕為“局外人”。除了廣東話的光復文化外，外國人和外國方言的排斥增加了廣州市民的仇外心理。近年來，由於政府的大力禁令，廣州的公安管理取得了顯著成效。2014年，廣東省政府明確要求控制廣州和深圳特大城市的人口規模。2008年，農民工佔廣州人口的40％，其中大多數是女性農民工，其中許多人未婚。截至2013年底，廣州註冊人口為686.7萬。根據一定的錯失率，廣州的實際流動人口約為837萬。這些數據已超過常住人口。最新統計數據顯示，廣州常住人口為832萬。其中，白雲區，番禺區和天河區流動人口超過百萬。番禺區有111.7萬戶登記移民，流動戶籍區涉及30個省，自治區，直轄市。在性別比方面，男性略多，佔總數的53.5％;女性佔總數的46.5％。在番禺流動人口中，兒童和老年人的比例極小，15歲以下為0.49％，60歲以上為1.68％，大專以上為10％。\\n\",\n      \"問題：有百分之多少的犯人被抓的是外地人？\\n\",\n      \"答案：80\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是中國最重要的開放城市之一。作為對外貿易的窗口，有許多來自北美，日本，韓國，歐洲，中東，非洲等國的外國人，尤其是非洲黑人。廣州甚至被稱為“第三世界”。首都主要位於廣州市環市東路秀山大廈，淘金路，花園酒店，建馬路和劍馬路;天河北路，體育東路，天河路，龍口西路，臨河中路等公司辦公室;番禺區的一些物業，如克利福德新村和麗江花園，也有更多的外國人。據廣州市公安局出入境管理支隊2014年10月統計，在廣州登記的外國人有11.8萬人，其中臨時居民71,000人，居住半年以上的47,000名永久居民。其中大多數是來自非洲的4,000多名註冊外國人;來自阿拉伯國家和地區的約1萬人雖然沒有大規模的定居點，但經常出現在小北 - 登封地區的商業區進行商業活動。在荔景街也有更多的韓國人。2013年，有超過15萬名乘客進出廣州港，其中54萬人來自非洲國家。他們中的大多數人來往於同一個人，主要是因為簽證允許短期逗留或商業需求而不是移民。近年來，廣州黑人一直捲入廣州的一些公安問題，引起廣州市民的一些不滿。針對“三非”問題，公安機關設立了四個涉外綜合執法隊伍，翻譯志願服務隊伍，調查“三個非外國”外國專業隊和四個外國隊 - 相關管理基層服務隊伍;自年初以來，廣州在200多名外國人社區建立了75個“外國人管理服務工作站”，並大力打擊“三非”外國人。它已經取得了成果。\\n\",\n      \"問題：被稱為「第三世界首都」的城市哪種外籍人士最多？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 非洲黑人\\n\",\n      \"模型輸出: 非洲黑人\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：從化市\\n\",\n      \"文章：長期以來，廣州大部分地方的語言主要是廣東話。因此，廣州還形成了粵語文化，包括粵劇，粵劇，南音和鹹水歌。隨著中國大陸的改革開放，來自城外和廣東省以外的大量人口迅速湧入。在這些移民中，由於不同的省/總統，有許多不同的語言，外國人和來自不同地區的人經常用普通話交流;因此，在許多大型公共場所，普通話是主要語言。在某些情況下，將增加粵語或英語廣播，種族群體仍然使用自己的方言進行相互交流。一些外國人會用當地文化交流，用粵語與當地人交流。如今，隨著普通話的推廣，外國和本地年輕人受長期使用普通話作為教學媒介和普通話的共同環境的影響。目前，廣州的語言交換主要講普通話，但當地人仍然使用廣東話。與交流。雖然普通話自21世紀初以來逐漸佔據主導地位，但它受到當地文化的影響。與此同時，由於香港和澳門的距離較近，以及廣州市民近年來開展了一系列推廣普通話的評論，它已開始保護廣東話，所以廣東話仍有一定的地位。當地。 。\\n\",\n      \"問題：在廣州許多比較大的公眾場合以甚麼為主要交流語言？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 普通話\\n\",\n      \"模型輸出: 廣州的廣東人,廣東人,廣東人,廣東人,廣\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import random\\n\",\n    \"import json\\n\",\n    \"\\n\",\n    \"with open(\\\"hw7_in-context-learning-examples.json\\\", \\\"r\\\") as f:\\n\",\n    \"    test = json.load(f)\\n\",\n    \"\\n\",\n    \"# K-shot learning\\n\",\n    \"# Give model K examples to make it achieve better accuracy\\n\",\n    \"# Note: (1) When K >= 4, CUDA_OUT_OFF_MEMORY may occur.\\n\",\n    \"#       (2) The maximum input length of XGLM is 2048\\n\",\n    \"K = 2\\n\",\n    \"\\n\",\n    \"question_ids = [qa[\\\"id\\\"] for qa in test[\\\"questions\\\"]]\\n\",\n    \"\\n\",\n    \"with open(\\\"in-context-learning-result.txt\\\", \\\"w\\\") as f:\\n\",\n    \"    print(\\\"ID,Ground-Truth,Prediction\\\", file = f)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for idx, qa in enumerate(test[\\\"questions\\\"]):\\n\",\n    \"            # You can try different prompts\\n\",\n    \"            prompt = \\\"請從最後一篇的文章中找出最後一個問題的答案\\\\n\\\"\\n\",\n    \"            exist_question_indexs = [question_ids.index(qa[\\\"id\\\"])]\\n\",\n    \"\\n\",\n    \"            # K-shot learning: give the model K examples with answers\\n\",\n    \"            for i in range(K):\\n\",\n    \"                question_index = question_ids.index(qa[\\\"id\\\"])\\n\",\n    \"                while(question_index in exist_question_indexs):\\n\",\n    \"                    question_index = random.randint(0, len(question_ids) - 1)\\n\",\n    \"                exist_question_indexs.append(question_index)\\n\",\n    \"                paragraph_id = test[\\\"questions\\\"][question_index][\\\"paragraph_id\\\"]\\n\",\n    \"                prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"                prompt += f'問題：{test[\\\"questions\\\"][question_index][\\\"question_text\\\"]}\\\\n'\\n\",\n    \"                prompt += f'答案：{test[\\\"questions\\\"][question_index][\\\"answer_text\\\"]}\\\\n'\\n\",\n    \"\\n\",\n    \"            # The final one question without answer\\n\",\n    \"            paragraph_id = qa[\\\"paragraph_id\\\"]\\n\",\n    \"            prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"            prompt += f'問題：{qa[\\\"question_text\\\"]}\\\\n'\\n\",\n    \"            prompt += f'答案：'\\n\",\n    \"\\n\",\n    \"            inputs = tokenizer(prompt, add_special_tokens=False, return_tensors=\\\"pt\\\")\\n\",\n    \"            sample = model.generate(**inputs, max_new_tokens = 20)\\n\",\n    \"            text = tokenizer.decode(sample[0], skip_special_tokens=True)\\n\",\n    \"\\n\",\n    \"            # Note: You can delete this line to see what will happen\\n\",\n    \"            text = clean_text(text)\\n\",\n    \"\\n\",\n    \"            print(prompt)\\n\",\n    \"            print(f'正確答案: {qa[\\\"answer_text\\\"]}')\\n\",\n    \"            print(f'模型輸出: {text}')\\n\",\n    \"            print()\\n\",\n    \"\\n\",\n    \"            print(f\\\"{idx},{qa['answer_text']},{text}\\\", file = f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"k3prlGCdjf38\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"028ec097e62b4ee8a463708f4c3b8f24\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0386ad4eea2b4387b48cd58e95bcd4ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"0440f9e26a0b420b86175bc62e212d01\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_c9bf7b5808f74db9811f5b64e878dcd5\",\n       \"IPY_MODEL_66a35d11743141b1b20904b13a4b86ea\",\n       \"IPY_MODEL_c0145fad2cb843e9b75ac47d307cc346\"\n      ],\n      \"layout\": \"IPY_MODEL_d61e0c79febd45c8b00e3566296d7e8e\"\n     }\n    },\n    \"04c0aa3d24944485b475601f786b56f1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"052cccb5d69d476f9caac95848e0353a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0549ffe5a6a444dd9fbf8c4513ebe7f7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_388d3d2566ff4a1cb68048ac78dd374f\",\n       \"IPY_MODEL_6235eaf236d643c6a163dddb86d3664d\",\n       \"IPY_MODEL_faf78b2739f841d8a213e4311926b598\"\n      ],\n      \"layout\": \"IPY_MODEL_91f03b6ed1c94cb68970f45ffa64695e\"\n     }\n    },\n    \"06e4e53bd3e748ad90d14eeec117aac9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9c7a21dc260a4ad7b87f2123947058a2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7b7a0c46d9794d6fa66401f03684dec0\",\n      \"value\": \"100%\"\n     }\n    },\n    \"0dccf470d87f4585af65826582399466\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0f7a38ddfe7b42eaa5c8ffdb3c150641\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1023013dc30a4731b61383bd59f2dc91\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"max\": 335,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c852afee0de49fe8dac74f3af82a725\",\n      \"value\": 335\n     }\n    },\n    \"1181117783fd4bca9d7f5f296507aff3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"11dcde71ff984d829ec9612e7f43e3a3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"154be9baa03943d08c975dbc85c4edf8\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1639410507da4b54996064d9fcc8621c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"16b30759d76a4c8f979212d1ae30c297\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1b2b45ecc27b4f28bc0194709fed0638\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"1e20837bf23548249678da0a07745d58\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26e50974c52452389c5abb001056546\",\n      \"max\": 29,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_9eefbb580f0146658d18658f210d3a67\",\n      \"value\": 29\n     }\n    },\n    \"20cd68a7e03f4353aa99fcefc1f16d36\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"20e14c8de0f84979ac3f0d896263f49d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"max\": 9032074,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_f51192579d014a52b132f99abf8901b2\",\n      \"value\": 9032074\n     }\n    },\n    \"23afbee21a644745b24b8ffefed6b286\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"24b96f20dd5f4a6d8cf9788e97a74f73\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"250451c12cee4aacb91a32d7da4ab861\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"28fc746a3c0548f4a4ff669b5dbb7320\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"29a7b6bb49004c3c96a6d48cd55e1ec3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_06e4e53bd3e748ad90d14eeec117aac9\",\n       \"IPY_MODEL_6a47a3bc614a44e7a5b0dfef50cadaf7\",\n       \"IPY_MODEL_fba6bb8f65904ae6ae4f5bca95e942e2\"\n      ],\n      \"layout\": \"IPY_MODEL_6d5ad2f51bb3459b85201f983a499ea2\"\n     }\n    },\n    \"2a59b752f9414e69b8c1d24bd24159f2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"2c37badbe0504073b31abd67a8c0b808\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_bfd7d35860c14dd3b8e5eea07032311d\",\n       \"IPY_MODEL_db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n       \"IPY_MODEL_b0af063597ea4de5a8c8bf4f370f782a\"\n      ],\n      \"layout\": \"IPY_MODEL_5b1ac1a0f04f4c29b3c1127ec3d95e81\"\n     }\n    },\n    \"2c449a0e664c41a79b3a1de62e94b5b7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d652cdca44e04070a420c5d1a24b4fd1\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b5c71e0a94014278a22ba45a6f58b77d\",\n      \"value\": \"Downloading (…)neration_config.json: 100%\"\n     }\n    },\n    \"2d1a48d240b949ad9b465985e90557c5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_98ce66c91c5c45968a3844fb0de50624\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a24d04e7064048c2819ef88a50ce9093\",\n      \"value\": \"Downloading (…)cial_tokens_map.json: 100%\"\n     }\n    },\n    \"2fe4fa69d9544fd393a4d72c02245245\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"304609dbefa74735baa08ce7aadff92d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"3366101d46a847dfa5700ffb652dcc86\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"33fa92f225be477d8cd176a0a4e8894e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"388d3d2566ff4a1cb68048ac78dd374f\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_39d35e6e28264b5ca157745d0c1e1491\",\n      \"value\": \"Downloading (…)tencepiece.bpe.model: 100%\"\n     }\n    },\n    \"39d35e6e28264b5ca157745d0c1e1491\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3eaf82623d964c2abb92b4509ac5ca9d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_33fa92f225be477d8cd176a0a4e8894e\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b80166eeee984661a611a02d1eae4458\",\n      \"value\": \"Downloading (…)solve/main/vocab.txt: 100%\"\n     }\n    },\n    \"42dd646b18b24deda274c857d337c973\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a0f74d882c63403c8116c19745e011ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_55a7b680dae94cba8758288dacff2988\",\n      \"value\": \" 3524/3524 [01:20&lt;00:00, 46.55it/s]\"\n     }\n    },\n    \"447bb12155cf4dc193ffea3f64c6a8f8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"4d7c3ea23e9b42a2ba5b0b11ee190c69\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6912ca44b1864902a3e32d4a19a4972d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"value\": \" 9.03M/9.03M [00:00&lt;00:00, 35.9MB/s]\"\n     }\n    },\n    \"5195ed241f09440eaf84a7e0b3dc8155\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"53a2b78a732c4522805de5c9aed92c41\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"53c1ce79c38b45fc8d1b675515642c54\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_9370d0df1bca4b9a9c15e1d3e10142d9\",\n       \"IPY_MODEL_611f0f0c70a5471b891bd6f6b8cb7863\",\n       \"IPY_MODEL_986b627aef004704ac0806a9aa189938\"\n      ],\n      \"layout\": \"IPY_MODEL_f2b466617f0247638e0934c8fe95ed1d\"\n     }\n    },\n    \"550e7aaac7fa4c3db37ceca6a5595ddb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"55a7b680dae94cba8758288dacff2988\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"5a0f5ba8ad024f5b915e34e48f269437\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_154be9baa03943d08c975dbc85c4edf8\",\n      \"max\": 276,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_2fe4fa69d9544fd393a4d72c02245245\",\n      \"value\": 276\n     }\n    },\n    \"5b1ac1a0f04f4c29b3c1127ec3d95e81\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"5d9e4fd05f964fd7a11d66b964ea0873\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"611f0f0c70a5471b891bd6f6b8cb7863\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"max\": 3365,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c61a280288d4608b6ef341ce3adb7a8\",\n      \"value\": 3365\n     }\n    },\n    \"6235eaf236d643c6a163dddb86d3664d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c497cc2cfabb451aad71f5d7b19873e4\",\n      \"max\": 4920706,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"value\": 4920706\n     }\n    },\n    \"641665cb9ec6433a81719d57eeaf8298\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ba9c1cd3cfe04add90aa2edf2aa87378\",\n       \"IPY_MODEL_1e20837bf23548249678da0a07745d58\",\n       \"IPY_MODEL_c1d24cb7607c44b989774113a2baf675\"\n      ],\n      \"layout\": \"IPY_MODEL_c9144705a33848a6b142f9887da6ac49\"\n     }\n    },\n    \"642db3bee97a4bea8a4c1079e2b7526c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3366101d46a847dfa5700ffb652dcc86\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"value\": \"100%\"\n     }\n    },\n    \"667f153201d347a0a01e39b438fa736b\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"66a35d11743141b1b20904b13a4b86ea\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_16b30759d76a4c8f979212d1ae30c297\",\n      \"max\": 548,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_1639410507da4b54996064d9fcc8621c\",\n      \"value\": 548\n     }\n    },\n    \"6912ca44b1864902a3e32d4a19a4972d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a2f5722362c4ec08ae8ed7d681dc7ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a47a3bc614a44e7a5b0dfef50cadaf7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_11dcde71ff984d829ec9612e7f43e3a3\",\n      \"max\": 2863,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_a987cb79f4904973958a98f492c6443a\",\n      \"value\": 2863\n     }\n    },\n    \"6be63de77ed14eee9c37e93d3a75f743\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_304609dbefa74735baa08ce7aadff92d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_250451c12cee4aacb91a32d7da4ab861\",\n      \"value\": \" 110k/110k [00:00&lt;00:00, 1.53MB/s]\"\n     }\n    },\n    \"6d5ad2f51bb3459b85201f983a499ea2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"715ad9f6bdaa46298317e049404f9755\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d41e81f720f44b52b9a914e4c619bfee\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bee7c0220d4e476dbc035fbc5dc44fa3\",\n      \"value\": \" 168/168 [00:00&lt;00:00, 4.67kB/s]\"\n     }\n    },\n    \"745f78a378b5412eae007f029e8c321a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2c449a0e664c41a79b3a1de62e94b5b7\",\n       \"IPY_MODEL_a9a16bf8795c402a90cf4504b1cd30a1\",\n       \"IPY_MODEL_715ad9f6bdaa46298317e049404f9755\"\n      ],\n      \"layout\": \"IPY_MODEL_667f153201d347a0a01e39b438fa736b\"\n     }\n    },\n    \"78818b2d8cc748efbf1b5784a9ee2a85\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7a7081fd9d5942af9148e29054b18f51\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7a729fb76a374da99334e7d4b4de102e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7b3c48ae548848c880439841c0b9cb6b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb405f797a1441d280029e6e203befce\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a7081fd9d5942af9148e29054b18f51\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"7b7a0c46d9794d6fa66401f03684dec0\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7c61a280288d4608b6ef341ce3adb7a8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7c852afee0de49fe8dac74f3af82a725\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7dee4e5320d349159422709a69af61f4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_86dbdec7087f4312b945c3a3940d8965\",\n       \"IPY_MODEL_cdbf6c3b5b3948229946fd51c227b51e\",\n       \"IPY_MODEL_d132ff798f284c9cbe2a73d35d776592\"\n      ],\n      \"layout\": \"IPY_MODEL_fead01a1a86c40bcb1ba9133ef351d7c\"\n     }\n    },\n    \"7f7f2c3afc2647c086877a2f4eff6c12\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7f928c5e620a49c1ae137868e34818a9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7fb466a306e6443287cb2fa2bea90f06\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"86dbdec7087f4312b945c3a3940d8965\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f19d9d34c978402691a89114849d2bb9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a729fb76a374da99334e7d4b4de102e\",\n      \"value\": \"Downloading pytorch_model.bin: 100%\"\n     }\n    },\n    \"8710bb7686df4fb3a73e5af839be5305\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"8b264499afca4694849b08e2091f6826\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_3eaf82623d964c2abb92b4509ac5ca9d\",\n       \"IPY_MODEL_aa3ff7831fbf47efa404805886ca4696\",\n       \"IPY_MODEL_6be63de77ed14eee9c37e93d3a75f743\"\n      ],\n      \"layout\": \"IPY_MODEL_5195ed241f09440eaf84a7e0b3dc8155\"\n     }\n    },\n    \"8d791392eed34a9b8e155da9a4b0a0d6\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"901f4ebc70f144c188d03a4978920441\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"91f03b6ed1c94cb68970f45ffa64695e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9370d0df1bca4b9a9c15e1d3e10142d9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_04c0aa3d24944485b475601f786b56f1\",\n      \"value\": \"100%\"\n     }\n    },\n    \"941a345ba82a44d5ad597a15c0af0d5c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"986b627aef004704ac0806a9aa189938\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8710bb7686df4fb3a73e5af839be5305\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"value\": \" 3365/3365 [09:20&lt;00:00,  6.34it/s]\"\n     }\n    },\n    \"98ce66c91c5c45968a3844fb0de50624\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c7a21dc260a4ad7b87f2123947058a2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c84cbc758db46e78d7fa361a385ccce\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_642db3bee97a4bea8a4c1079e2b7526c\",\n       \"IPY_MODEL_ed9f5d147e7844a187d8610130f1ecd9\",\n       \"IPY_MODEL_42dd646b18b24deda274c857d337c973\"\n      ],\n      \"layout\": \"IPY_MODEL_9e2635394d5b4965b41a05a9bc37a4ec\"\n     }\n    },\n    \"9e2635394d5b4965b41a05a9bc37a4ec\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9e312a0ec6a2478fb0f55691caf6d9ae\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9eefbb580f0146658d18658f210d3a67\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a075ee85c2d34ab3b2d011c63dc02286\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a0f74d882c63403c8116c19745e011ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a1602e58c3a7413490ce0a93f35a7ca9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a24d04e7064048c2819ef88a50ce9093\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a5bf4132f3dd4c7a807f27c8106fdd59\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a987cb79f4904973958a98f492c6443a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a9a16bf8795c402a90cf4504b1cd30a1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7f928c5e620a49c1ae137868e34818a9\",\n      \"max\": 168,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_d403f126d48746948c0f627dfdce5d65\",\n      \"value\": 168\n     }\n    },\n    \"aa3ff7831fbf47efa404805886ca4696\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"max\": 109540,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_fb908d9c3e374983aa47478a95411ba7\",\n      \"value\": 109540\n     }\n    },\n    \"acbfe8b88e6945ab9a5959fbb5f294de\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b0af063597ea4de5a8c8bf4f370f782a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a075ee85c2d34ab3b2d011c63dc02286\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_052cccb5d69d476f9caac95848e0353a\",\n      \"value\": \" 269k/269k [00:00&lt;00:00, 2.44MB/s]\"\n     }\n    },\n    \"b1cd7728deff4d50a18cb22805351330\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"b5c71e0a94014278a22ba45a6f58b77d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b80166eeee984661a611a02d1eae4458\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b91c8359a6444497b3665e66afbe237d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ba9c1cd3cfe04add90aa2edf2aa87378\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"bab8f16e038b440a8016ef087ee12904\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bc4b72ff74d84c9e83b328e8823044b1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c4da9fed45254ebdaa49312f16d9b159\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_53a2b78a732c4522805de5c9aed92c41\",\n      \"value\": \" 276/276 [00:00&lt;00:00, 14.5kB/s]\"\n     }\n    },\n    \"bee7c0220d4e476dbc035fbc5dc44fa3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bfd7d35860c14dd3b8e5eea07032311d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b91c8359a6444497b3665e66afbe237d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1181117783fd4bca9d7f5f296507aff3\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"c0145fad2cb843e9b75ac47d307cc346\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_e515df89088042dbbe23594e5976e10d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_0dccf470d87f4585af65826582399466\",\n      \"value\": \" 548/548 [00:00&lt;00:00, 21.8kB/s]\"\n     }\n    },\n    \"c1d24cb7607c44b989774113a2baf675\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c813a6f6ce09424582c06a3ac8a7d712\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"value\": \" 29.0/29.0 [00:00&lt;00:00, 1.06kB/s]\"\n     }\n    },\n    \"c24b174369fb48cdbc3d4afaa4cceccb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"c497cc2cfabb451aad71f5d7b19873e4\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c4da9fed45254ebdaa49312f16d9b159\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c7896f62a30f4eec95e3c84aef08e1b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"c813a6f6ce09424582c06a3ac8a7d712\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9144705a33848a6b142f9887da6ac49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9bf7b5808f74db9811f5b64e878dcd5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_2a59b752f9414e69b8c1d24bd24159f2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"value\": \"Downloading (…)lve/main/config.json: 100%\"\n     }\n    },\n    \"cbd776799c18488eb74a8f17cc27c6fd\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"cccbdce89ff545f6a66304352b320ad7\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"cdbf6c3b5b3948229946fd51c227b51e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_cccbdce89ff545f6a66304352b320ad7\",\n      \"max\": 3465946427,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_cbd776799c18488eb74a8f17cc27c6fd\",\n      \"value\": 3465946427\n     }\n    },\n    \"d132ff798f284c9cbe2a73d35d776592\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b1cd7728deff4d50a18cb22805351330\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"value\": \" 3.47G/3.47G [00:19&lt;00:00, 179MB/s]\"\n     }\n    },\n    \"d26e50974c52452389c5abb001056546\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d26f522a28d24494914df1dd8432af49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d403f126d48746948c0f627dfdce5d65\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"d41e81f720f44b52b9a914e4c619bfee\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d61e0c79febd45c8b00e3566296d7e8e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d652cdca44e04070a420c5d1a24b4fd1\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_941a345ba82a44d5ad597a15c0af0d5c\",\n      \"max\": 268943,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_23afbee21a644745b24b8ffefed6b286\",\n      \"value\": 268943\n     }\n    },\n    \"ddd59aac5a5d48ceace9ede35bf8f11b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7fb466a306e6443287cb2fa2bea90f06\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1b2b45ecc27b4f28bc0194709fed0638\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"e515df89088042dbbe23594e5976e10d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb405f797a1441d280029e6e203befce\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb4bdd1ff3cf4b0db273c53e32cad5de\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ebfa4ba9f18b4945947d326581d3b8e9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ed9f5d147e7844a187d8610130f1ecd9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26f522a28d24494914df1dd8432af49\",\n      \"max\": 3524,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"value\": 3524\n     }\n    },\n    \"ee0cb4c1f31346b5b180a7b826688eb4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"value\": \" 335/335 [00:00&lt;00:00, 11.3kB/s]\"\n     }\n    },\n    \"f19d9d34c978402691a89114849d2bb9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f2b466617f0247638e0934c8fe95ed1d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f51192579d014a52b132f99abf8901b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"f607835a7acf4037821885704bde736d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ddd59aac5a5d48ceace9ede35bf8f11b\",\n       \"IPY_MODEL_20e14c8de0f84979ac3f0d896263f49d\",\n       \"IPY_MODEL_4d7c3ea23e9b42a2ba5b0b11ee190c69\"\n      ],\n      \"layout\": \"IPY_MODEL_5d9e4fd05f964fd7a11d66b964ea0873\"\n     }\n    },\n    \"f9b28a5fbcd14568983ed36f9a1ca997\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"faf78b2739f841d8a213e4311926b598\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_028ec097e62b4ee8a463708f4c3b8f24\",\n      \"value\": \" 4.92M/4.92M [00:00&lt;00:00, 41.4MB/s]\"\n     }\n    },\n    \"fb908d9c3e374983aa47478a95411ba7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"fba6bb8f65904ae6ae4f5bca95e942e2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bab8f16e038b440a8016ef087ee12904\",\n      \"value\": \" 2863/2863 [01:03&lt;00:00, 45.98it/s]\"\n     }\n    },\n    \"fd1e236692ec43a18a1750a29515050d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_7b3c48ae548848c880439841c0b9cb6b\",\n       \"IPY_MODEL_1023013dc30a4731b61383bd59f2dc91\",\n       \"IPY_MODEL_ee0cb4c1f31346b5b180a7b826688eb4\"\n      ],\n      \"layout\": \"IPY_MODEL_0f7a38ddfe7b42eaa5c8ffdb3c150641\"\n     }\n    },\n    \"fda75dc7c2d24f7b827b2c78a6988586\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2d1a48d240b949ad9b465985e90557c5\",\n       \"IPY_MODEL_5a0f5ba8ad024f5b915e34e48f269437\",\n       \"IPY_MODEL_bc4b72ff74d84c9e83b328e8823044b1\"\n      ],\n      \"layout\": \"IPY_MODEL_901f4ebc70f144c188d03a4978920441\"\n     }\n    },\n    \"fead01a1a86c40bcb1ba9133ef351d7c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ff6cd33dca3c44ba9832b2d705fd2de1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW07/HW07_Sample_Code.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xvSGDbExff_I\"\n   },\n   \"source\": [\n    \"# **Homework 7 - Bert (Question Answering)**\\n\",\n    \"\\n\",\n    \"If you have any questions, feel free to email us at ntu-ml-2023spring-ta@googlegroups.com\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Slide:    [Link](https://docs.google.com/presentation/d/15lGUmT8NpLGtoxRllRWCJyQEjhR1Idcei63YHsDckPE/edit#slide=id.g21fff4e9af6_0_13)　Kaggle: [Link](https://www.kaggle.com/competitions/ml2023spring-hw7/host/sandbox-submissions)　Data: [Link](https://drive.google.com/file/d/1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7/view?usp=sharing)\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NYAHsHNbzdKm\"\n   },\n   \"source\": [\n    \"# Prerequisites\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TJ1fSAJE2oaC\"\n   },\n   \"source\": [\n    \"## Download Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"YPrc4Eie9Yo5\",\n    \"outputId\": \"1640c875-58d1-4288-e382-e9fa9db39b9f\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/usr/local/lib/python3.9/dist-packages/gdown/cli.py:121: FutureWarning: Option `--id` was deprecated in version 4.3.1 and will be removed in 5.0. You don't need to pass it anymore to use a file ID.\\n\",\n      \"  warnings.warn(\\n\",\n      \"Downloading...\\n\",\n      \"From: https://drive.google.com/uc?id=1k2BfGrvhk8QRnr9Xvb04oPIKDr1uWFpa\\n\",\n      \"To: /content/hw7_data.zip\\n\",\n      \"100% 12.1M/12.1M [00:00<00:00, 42.5MB/s]\\n\",\n      \"Archive:  hw7_data.zip\\n\",\n      \"  inflating: hw7_train.json          \\n\",\n      \"  inflating: hw7_test.json           \\n\",\n      \"  inflating: hw7_dev.json            \\n\",\n      \"  inflating: hw7_in-context-learning-examples.json  \\n\",\n      \"Sun Apr 23 11:54:08 2023       \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0     |\\n\",\n      \"|-------------------------------+----------------------+----------------------+\\n\",\n      \"| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\\n\",\n      \"| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\\n\",\n      \"|                               |                      |               MIG M. |\\n\",\n      \"|===============================+======================+======================|\\n\",\n      \"|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |\\n\",\n      \"| N/A   64C    P8    12W /  70W |      0MiB / 15360MiB |      0%      Default |\\n\",\n      \"|                               |                      |                  N/A |\\n\",\n      \"+-------------------------------+----------------------+----------------------+\\n\",\n      \"                                                                               \\n\",\n      \"+-----------------------------------------------------------------------------+\\n\",\n      \"| Processes:                                                                  |\\n\",\n      \"|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\\n\",\n      \"|        ID   ID                                                   Usage      |\\n\",\n      \"|=============================================================================|\\n\",\n      \"|  No running processes found                                                 |\\n\",\n      \"+-----------------------------------------------------------------------------+\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# download link 1\\n\",\n    \"# !gdown --id '1TjoBdNlGBhP_J9C66MOY7ILIrydm7ZCS' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 2 (if above link failed)\\n\",\n    \"# !gdown --id '1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 3 (if above link failed)\\n\",\n    \"!gdown --id '1k2BfGrvhk8QRnr9Xvb04oPIKDr1uWFpa' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"!unzip -o hw7_data.zip\\n\",\n    \"\\n\",\n    \"# For this HW, K80 < P4 < T4 < P100 <= T4(fp16) < V100\\n\",\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TevOvhC03m0h\"\n   },\n   \"source\": [\n    \"## Install packages\\n\",\n    \"\\n\",\n    \"Documentation for the toolkit:\\n\",\n    \"*   https://huggingface.co/transformers/\\n\",\n    \"*   https://huggingface.co/docs/accelerate/index\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"tbxWFX_jpDom\",\n    \"outputId\": \"138488c2-96fa-4c41-d450-9d0a1b74f36c\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\\n\",\n      \"Collecting transformers==4.26.1\\n\",\n      \"  Downloading transformers-4.26.1-py3-none-any.whl (6.3 MB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m6.3/6.3 MB\\u001b[0m \\u001b[31m77.0 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n      \"\\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.9/dist-packages (from transformers==4.26.1) (2.27.1)\\n\",\n      \"Requirement already satisfied: filelock in /usr/local/lib/python3.9/dist-packages (from transformers==4.26.1) (3.11.0)\\n\",\n      \"Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.9/dist-packages (from transformers==4.26.1) (2022.10.31)\\n\",\n      \"Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.9/dist-packages (from transformers==4.26.1) (1.22.4)\\n\",\n      \"Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.9/dist-packages (from transformers==4.26.1) (6.0)\\n\",\n      \"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from transformers==4.26.1) (23.1)\\n\",\n      \"Collecting tokenizers!=0.11.3,<0.14,>=0.11.1\\n\",\n      \"  Downloading tokenizers-0.13.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m7.8/7.8 MB\\u001b[0m \\u001b[31m30.0 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n      \"\\u001b[?25hRequirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.9/dist-packages (from transformers==4.26.1) (4.65.0)\\n\",\n      \"Collecting huggingface-hub<1.0,>=0.11.0\\n\",\n      \"  Downloading huggingface_hub-0.13.4-py3-none-any.whl (200 kB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m200.1/200.1 kB\\u001b[0m \\u001b[31m23.1 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n      \"\\u001b[?25hRequirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.9/dist-packages (from huggingface-hub<1.0,>=0.11.0->transformers==4.26.1) (4.5.0)\\n\",\n      \"Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.9/dist-packages (from requests->transformers==4.26.1) (2.0.12)\\n\",\n      \"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests->transformers==4.26.1) (1.26.15)\\n\",\n      \"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests->transformers==4.26.1) (3.4)\\n\",\n      \"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from requests->transformers==4.26.1) (2022.12.7)\\n\",\n      \"Installing collected packages: tokenizers, huggingface-hub, transformers\\n\",\n      \"Successfully installed huggingface-hub-0.13.4 tokenizers-0.13.3 transformers-4.26.1\\n\",\n      \"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\\n\",\n      \"Collecting accelerate==0.16.0\\n\",\n      \"  Downloading accelerate-0.16.0-py3-none-any.whl (199 kB)\\n\",\n      \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m199.7/199.7 kB\\u001b[0m \\u001b[31m12.6 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n      \"\\u001b[?25hRequirement already satisfied: torch>=1.4.0 in /usr/local/lib/python3.9/dist-packages (from accelerate==0.16.0) (2.0.0+cu118)\\n\",\n      \"Requirement already satisfied: psutil in /usr/local/lib/python3.9/dist-packages (from accelerate==0.16.0) (5.9.5)\\n\",\n      \"Requirement already satisfied: pyyaml in /usr/local/lib/python3.9/dist-packages (from accelerate==0.16.0) (6.0)\\n\",\n      \"Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.9/dist-packages (from accelerate==0.16.0) (1.22.4)\\n\",\n      \"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from accelerate==0.16.0) (23.1)\\n\",\n      \"Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.9/dist-packages (from torch>=1.4.0->accelerate==0.16.0) (2.0.0)\\n\",\n      \"Requirement already satisfied: jinja2 in /usr/local/lib/python3.9/dist-packages (from torch>=1.4.0->accelerate==0.16.0) (3.1.2)\\n\",\n      \"Requirement already satisfied: networkx in /usr/local/lib/python3.9/dist-packages (from torch>=1.4.0->accelerate==0.16.0) (3.1)\\n\",\n      \"Requirement already satisfied: sympy in /usr/local/lib/python3.9/dist-packages (from torch>=1.4.0->accelerate==0.16.0) (1.11.1)\\n\",\n      \"Requirement already satisfied: filelock in /usr/local/lib/python3.9/dist-packages (from torch>=1.4.0->accelerate==0.16.0) (3.11.0)\\n\",\n      \"Requirement already satisfied: typing-extensions in /usr/local/lib/python3.9/dist-packages (from torch>=1.4.0->accelerate==0.16.0) (4.5.0)\\n\",\n      \"Requirement already satisfied: lit in /usr/local/lib/python3.9/dist-packages (from triton==2.0.0->torch>=1.4.0->accelerate==0.16.0) (16.0.1)\\n\",\n      \"Requirement already satisfied: cmake in /usr/local/lib/python3.9/dist-packages (from triton==2.0.0->torch>=1.4.0->accelerate==0.16.0) (3.25.2)\\n\",\n      \"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2->torch>=1.4.0->accelerate==0.16.0) (2.1.2)\\n\",\n      \"Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.9/dist-packages (from sympy->torch>=1.4.0->accelerate==0.16.0) (1.3.0)\\n\",\n      \"Installing collected packages: accelerate\\n\",\n      \"Successfully installed accelerate-0.16.0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# You are allowed to change version of transformers or use other toolkits\\n\",\n    \"!pip install transformers==4.26.1\\n\",\n    \"!pip install accelerate==0.16.0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"XapBp31gytyD\"\n   },\n   \"source\": [\n    \"# Kaggle (Fine-tuning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"WGOr_eS3wJJf\"\n   },\n   \"source\": [\n    \"## Task description\\n\",\n    \"- Chinese Extractive Question Answering\\n\",\n    \"  - Input: Paragraph + Question\\n\",\n    \"  - Output: Answer\\n\",\n    \"\\n\",\n    \"- Objective: Learn how to fine tune a pretrained model on downstream task using transformers\\n\",\n    \"\\n\",\n    \"- Todo\\n\",\n    \"    - Fine tune a pretrained chinese BERT model\\n\",\n    \"    - Change hyperparameters (e.g. doc_stride)\\n\",\n    \"    - Apply linear learning rate decay\\n\",\n    \"    - Try other pretrained models\\n\",\n    \"    - Improve preprocessing\\n\",\n    \"    - Improve postprocessing\\n\",\n    \"- Training tips\\n\",\n    \"    - Automatic mixed precision\\n\",\n    \"    - Gradient accumulation\\n\",\n    \"    - Ensemble\\n\",\n    \"\\n\",\n    \"- Estimated training time (tesla t4 with automatic mixed precision enabled)\\n\",\n    \"    - Simple: 8mins\\n\",\n    \"    - Medium: 8mins\\n\",\n    \"    - Strong: 25mins\\n\",\n    \"    - Boss: 2hrs\\n\",\n    \"  \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"8dKM4yCh4LI_\"\n   },\n   \"source\": [\n    \"## Import Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"WOTHHtWJoahe\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import numpy as np\\n\",\n    \"import random\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, Dataset\\n\",\n    \"from transformers import AdamW\\n\",\n    \"\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2YgXHuVLp_6j\"\n   },\n   \"source\": [\n    \"## Load Model and Tokenizer\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 220,\n     \"referenced_widgets\": [\n      \"641665cb9ec6433a81719d57eeaf8298\",\n      \"ba9c1cd3cfe04add90aa2edf2aa87378\",\n      \"1e20837bf23548249678da0a07745d58\",\n      \"c1d24cb7607c44b989774113a2baf675\",\n      \"c9144705a33848a6b142f9887da6ac49\",\n      \"ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"d26e50974c52452389c5abb001056546\",\n      \"9eefbb580f0146658d18658f210d3a67\",\n      \"c813a6f6ce09424582c06a3ac8a7d712\",\n      \"ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"8b264499afca4694849b08e2091f6826\",\n      \"3eaf82623d964c2abb92b4509ac5ca9d\",\n      \"aa3ff7831fbf47efa404805886ca4696\",\n      \"6be63de77ed14eee9c37e93d3a75f743\",\n      \"5195ed241f09440eaf84a7e0b3dc8155\",\n      \"33fa92f225be477d8cd176a0a4e8894e\",\n      \"b80166eeee984661a611a02d1eae4458\",\n      \"20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"fb908d9c3e374983aa47478a95411ba7\",\n      \"304609dbefa74735baa08ce7aadff92d\",\n      \"250451c12cee4aacb91a32d7da4ab861\",\n      \"2c37badbe0504073b31abd67a8c0b808\",\n      \"bfd7d35860c14dd3b8e5eea07032311d\",\n      \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n      \"b0af063597ea4de5a8c8bf4f370f782a\",\n      \"5b1ac1a0f04f4c29b3c1127ec3d95e81\",\n      \"b91c8359a6444497b3665e66afbe237d\",\n      \"1181117783fd4bca9d7f5f296507aff3\",\n      \"941a345ba82a44d5ad597a15c0af0d5c\",\n      \"23afbee21a644745b24b8ffefed6b286\",\n      \"a075ee85c2d34ab3b2d011c63dc02286\",\n      \"052cccb5d69d476f9caac95848e0353a\"\n     ]\n    },\n    \"id\": \"xyBCYGjAp3ym\",\n    \"outputId\": \"81f25c6d-cd7f-4be1-e085-f8a54bd1c27d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Some weights of the model checkpoint at bert-base-chinese were not used when initializing BertForQuestionAnswering: ['cls.seq_relationship.bias', 'cls.seq_relationship.weight', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.transform.dense.weight', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.decoder.weight', 'cls.predictions.transform.dense.bias', 'cls.predictions.bias']\\n\",\n      \"- This IS expected if you are initializing BertForQuestionAnswering from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\\n\",\n      \"- This IS NOT expected if you are initializing BertForQuestionAnswering from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\\n\",\n      \"Some weights of BertForQuestionAnswering were not initialized from the model checkpoint at bert-base-chinese and are newly initialized: ['qa_outputs.weight', 'qa_outputs.bias']\\n\",\n      \"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"641665cb9ec6433a81719d57eeaf8298\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)okenizer_config.json:   0%|          | 0.00/29.0 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8b264499afca4694849b08e2091f6826\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)solve/main/vocab.txt:   0%|          | 0.00/110k [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2c37badbe0504073b31abd67a8c0b808\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)/main/tokenizer.json:   0%|          | 0.00/269k [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from transformers import (\\n\",\n    \"  AutoTokenizer,\\n\",\n    \"  AutoModelForQuestionAnswering,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"model = AutoModelForQuestionAnswering.from_pretrained(\\\"bert-base-chinese\\\").to(device)\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"bert-base-chinese\\\")\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message (it pops up because new prediction heads for QA are initialized randomly)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3Td-GTmk5OW4\"\n   },\n   \"source\": [\n    \"## Read Data\\n\",\n    \"\\n\",\n    \"- Training set: 26918 QA pairs\\n\",\n    \"- Dev set: 2863  QA pairs\\n\",\n    \"- Test set: 3524  QA pairs\\n\",\n    \"\\n\",\n    \"- {train/dev/test}_questions:\\n\",\n    \"  - List of dicts with the following keys:\\n\",\n    \"   - id (int)\\n\",\n    \"   - paragraph_id (int)\\n\",\n    \"   - question_text (string)\\n\",\n    \"   - answer_text (string)\\n\",\n    \"   - answer_start (int)\\n\",\n    \"   - answer_end (int)\\n\",\n    \"- {train/dev/test}_paragraphs:\\n\",\n    \"  - List of strings\\n\",\n    \"  - paragraph_ids in questions correspond to indexs in paragraphs\\n\",\n    \"  - A paragraph may be used by several questions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"NvX7hlepogvu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def read_data(file):\\n\",\n    \"    with open(file, 'r', encoding=\\\"utf-8\\\") as reader:\\n\",\n    \"        data = json.load(reader)\\n\",\n    \"    return data[\\\"questions\\\"], data[\\\"paragraphs\\\"]\\n\",\n    \"\\n\",\n    \"train_questions, train_paragraphs = read_data(\\\"hw7_train.json\\\")\\n\",\n    \"dev_questions, dev_paragraphs = read_data(\\\"hw7_dev.json\\\")\\n\",\n    \"test_questions, test_paragraphs = read_data(\\\"hw7_test.json\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Fm0rpTHq0e4N\"\n   },\n   \"source\": [\n    \"## Tokenize Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"rTZ6B70Hoxie\",\n    \"outputId\": \"db13805e-02a9-4cbe-e6d2-66c0e3860c2b\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Token indices sequence length is longer than the specified maximum sequence length for this model (566 > 512). Running this sequence through the model will result in indexing errors\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Tokenize questions and paragraphs separately\\n\",\n    \"# 「add_special_tokens」 is set to False since special tokens will be added when tokenized questions and paragraphs are combined in datset __getitem__\\n\",\n    \"\\n\",\n    \"train_questions_tokenized = tokenizer([train_question[\\\"question_text\\\"] for train_question in train_questions], add_special_tokens=False)\\n\",\n    \"dev_questions_tokenized = tokenizer([dev_question[\\\"question_text\\\"] for dev_question in dev_questions], add_special_tokens=False)\\n\",\n    \"test_questions_tokenized = tokenizer([test_question[\\\"question_text\\\"] for test_question in test_questions], add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"train_paragraphs_tokenized = tokenizer(train_paragraphs, add_special_tokens=False)\\n\",\n    \"dev_paragraphs_tokenized = tokenizer(dev_paragraphs, add_special_tokens=False)\\n\",\n    \"test_paragraphs_tokenized = tokenizer(test_paragraphs, add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message as tokenized sequences will be futher processed in datset __getitem__ before passing to model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ws8c8_4d5UCI\"\n   },\n   \"source\": [\n    \"## Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Xjooag-Swnuh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class QA_Dataset(Dataset):\\n\",\n    \"    def __init__(self, split, questions, tokenized_questions, tokenized_paragraphs):\\n\",\n    \"        self.split = split\\n\",\n    \"        self.questions = questions\\n\",\n    \"        self.tokenized_questions = tokenized_questions\\n\",\n    \"        self.tokenized_paragraphs = tokenized_paragraphs\\n\",\n    \"        self.max_question_len = 60\\n\",\n    \"        self.max_paragraph_len = 150\\n\",\n    \"\\n\",\n    \"        ##### TODO: Change value of doc_stride #####\\n\",\n    \"        self.doc_stride = 150\\n\",\n    \"\\n\",\n    \"        # Input sequence length = [CLS] + question + [SEP] + paragraph + [SEP]\\n\",\n    \"        self.max_seq_len = 1 + self.max_question_len + 1 + self.max_paragraph_len + 1\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.questions)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        question = self.questions[idx]\\n\",\n    \"        tokenized_question = self.tokenized_questions[idx]\\n\",\n    \"        tokenized_paragraph = self.tokenized_paragraphs[question[\\\"paragraph_id\\\"]]\\n\",\n    \"\\n\",\n    \"        ##### TODO: Preprocessing #####\\n\",\n    \"        # Hint: How to prevent model from learning something it should not learn\\n\",\n    \"        if self.split == \\\"train\\\":\\n\",\n    \"            # Convert answer's start/end positions in paragraph_text to start/end positions in tokenized_paragraph\\n\",\n    \"            answer_start_token = tokenized_paragraph.char_to_token(question[\\\"answer_start\\\"])\\n\",\n    \"            answer_end_token = tokenized_paragraph.char_to_token(question[\\\"answer_end\\\"])\\n\",\n    \"\\n\",\n    \"            # A single window is obtained by slicing the portion of paragraph containing the answer\\n\",\n    \"            mid = (answer_start_token + answer_end_token) // 2\\n\",\n    \"            paragraph_start = max(0, min(mid - self.max_paragraph_len // 2, len(tokenized_paragraph) - self.max_paragraph_len))\\n\",\n    \"            paragraph_end = paragraph_start + self.max_paragraph_len\\n\",\n    \"\\n\",\n    \"            # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"            input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"            input_ids_paragraph = tokenized_paragraph.ids[paragraph_start : paragraph_end] + [102]\\n\",\n    \"\\n\",\n    \"            # Convert answer's start/end positions in tokenized_paragraph to start/end positions in the window\\n\",\n    \"            answer_start_token += len(input_ids_question) - paragraph_start\\n\",\n    \"            answer_end_token += len(input_ids_question) - paragraph_start\\n\",\n    \"\\n\",\n    \"            # Pad sequence and obtain inputs to model\\n\",\n    \"            input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"            return torch.tensor(input_ids), torch.tensor(token_type_ids), torch.tensor(attention_mask), answer_start_token, answer_end_token\\n\",\n    \"\\n\",\n    \"        # Validation/Testing\\n\",\n    \"        else:\\n\",\n    \"            input_ids_list, token_type_ids_list, attention_mask_list = [], [], []\\n\",\n    \"\\n\",\n    \"            # Paragraph is split into several windows, each with start positions separated by step \\\"doc_stride\\\"\\n\",\n    \"            for i in range(0, len(tokenized_paragraph), self.doc_stride):\\n\",\n    \"\\n\",\n    \"                # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"                input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"                input_ids_paragraph = tokenized_paragraph.ids[i : i + self.max_paragraph_len] + [102]\\n\",\n    \"\\n\",\n    \"                # Pad sequence and obtain inputs to model\\n\",\n    \"                input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"\\n\",\n    \"                input_ids_list.append(input_ids)\\n\",\n    \"                token_type_ids_list.append(token_type_ids)\\n\",\n    \"                attention_mask_list.append(attention_mask)\\n\",\n    \"\\n\",\n    \"            return torch.tensor(input_ids_list), torch.tensor(token_type_ids_list), torch.tensor(attention_mask_list)\\n\",\n    \"\\n\",\n    \"    def padding(self, input_ids_question, input_ids_paragraph):\\n\",\n    \"        # Pad zeros if sequence length is shorter than max_seq_len\\n\",\n    \"        padding_len = self.max_seq_len - len(input_ids_question) - len(input_ids_paragraph)\\n\",\n    \"        # Indices of input sequence tokens in the vocabulary\\n\",\n    \"        input_ids = input_ids_question + input_ids_paragraph + [0] * padding_len\\n\",\n    \"        # Segment token indices to indicate first and second portions of the inputs. Indices are selected in [0, 1]\\n\",\n    \"        token_type_ids = [0] * len(input_ids_question) + [1] * len(input_ids_paragraph) + [0] * padding_len\\n\",\n    \"        # Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]\\n\",\n    \"        attention_mask = [1] * (len(input_ids_question) + len(input_ids_paragraph)) + [0] * padding_len\\n\",\n    \"\\n\",\n    \"        return input_ids, token_type_ids, attention_mask\\n\",\n    \"\\n\",\n    \"train_set = QA_Dataset(\\\"train\\\", train_questions, train_questions_tokenized, train_paragraphs_tokenized)\\n\",\n    \"dev_set = QA_Dataset(\\\"dev\\\", dev_questions, dev_questions_tokenized, dev_paragraphs_tokenized)\\n\",\n    \"test_set = QA_Dataset(\\\"test\\\", test_questions, test_questions_tokenized, test_paragraphs_tokenized)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5_H1kqhR8CdM\"\n   },\n   \"source\": [\n    \"## Function for Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"SqeA3PLPxOHu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def evaluate(data, output):\\n\",\n    \"    ##### TODO: Postprocessing #####\\n\",\n    \"    # There is a bug and room for improvement in postprocessing\\n\",\n    \"    # Hint: Open your prediction file to see what is wrong\\n\",\n    \"\\n\",\n    \"    answer = ''\\n\",\n    \"    max_prob = float('-inf')\\n\",\n    \"    num_of_windows = data[0].shape[1]\\n\",\n    \"\\n\",\n    \"    for k in range(num_of_windows):\\n\",\n    \"        # Obtain answer by choosing the most probable start position / end position\\n\",\n    \"        start_prob, start_index = torch.max(output.start_logits[k], dim=0)\\n\",\n    \"        end_prob, end_index = torch.max(output.end_logits[k], dim=0)\\n\",\n    \"\\n\",\n    \"        # Probability of answer is calculated as sum of start_prob and end_prob\\n\",\n    \"        prob = start_prob + end_prob\\n\",\n    \"\\n\",\n    \"        # Replace answer if calculated probability is larger than previous windows\\n\",\n    \"        if prob > max_prob:\\n\",\n    \"            max_prob = prob\\n\",\n    \"            # Convert tokens to chars (e.g. [1920, 7032] --> \\\"大 金\\\")\\n\",\n    \"            answer = tokenizer.decode(data[0][0][k][start_index : end_index + 1])\\n\",\n    \"\\n\",\n    \"    # Remove spaces in answer (e.g. \\\"大 金\\\" --> \\\"大金\\\")\\n\",\n    \"    return answer.replace(' ','')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rzHQit6eMnKG\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 778,\n     \"referenced_widgets\": [\n      \"53c1ce79c38b45fc8d1b675515642c54\",\n      \"9370d0df1bca4b9a9c15e1d3e10142d9\",\n      \"611f0f0c70a5471b891bd6f6b8cb7863\",\n      \"986b627aef004704ac0806a9aa189938\",\n      \"f2b466617f0247638e0934c8fe95ed1d\",\n      \"f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"04c0aa3d24944485b475601f786b56f1\",\n      \"78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"7c61a280288d4608b6ef341ce3adb7a8\",\n      \"8710bb7686df4fb3a73e5af839be5305\",\n      \"c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"29a7b6bb49004c3c96a6d48cd55e1ec3\",\n      \"06e4e53bd3e748ad90d14eeec117aac9\",\n      \"6a47a3bc614a44e7a5b0dfef50cadaf7\",\n      \"fba6bb8f65904ae6ae4f5bca95e942e2\",\n      \"6d5ad2f51bb3459b85201f983a499ea2\",\n      \"9c7a21dc260a4ad7b87f2123947058a2\",\n      \"7b7a0c46d9794d6fa66401f03684dec0\",\n      \"11dcde71ff984d829ec9612e7f43e3a3\",\n      \"a987cb79f4904973958a98f492c6443a\",\n      \"8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"bab8f16e038b440a8016ef087ee12904\"\n     ]\n    },\n    \"id\": \"3Q-B6ka7xoCM\",\n    \"outputId\": \"69c6f306-8a93-4b59-a64d-41f55889a6e6\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Start Training ...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/usr/local/lib/python3.9/dist-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\\n\",\n      \"  warnings.warn(\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"53c1ce79c38b45fc8d1b675515642c54\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3365 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Epoch 1 | Step 100 | loss = 3.473, acc = 0.084\\n\",\n      \"Epoch 1 | Step 200 | loss = 2.119, acc = 0.285\\n\",\n      \"Epoch 1 | Step 300 | loss = 1.582, acc = 0.461\\n\",\n      \"Epoch 1 | Step 400 | loss = 1.541, acc = 0.445\\n\",\n      \"Epoch 1 | Step 500 | loss = 1.205, acc = 0.560\\n\",\n      \"Epoch 1 | Step 600 | loss = 1.093, acc = 0.591\\n\",\n      \"Epoch 1 | Step 700 | loss = 1.061, acc = 0.564\\n\",\n      \"Epoch 1 | Step 800 | loss = 0.999, acc = 0.610\\n\",\n      \"Epoch 1 | Step 900 | loss = 1.015, acc = 0.594\\n\",\n      \"Epoch 1 | Step 1000 | loss = 1.018, acc = 0.597\\n\",\n      \"Epoch 1 | Step 1100 | loss = 0.880, acc = 0.641\\n\",\n      \"Epoch 1 | Step 1200 | loss = 0.884, acc = 0.652\\n\",\n      \"Epoch 1 | Step 1300 | loss = 0.896, acc = 0.637\\n\",\n      \"Epoch 1 | Step 1400 | loss = 0.803, acc = 0.670\\n\",\n      \"Epoch 1 | Step 1500 | loss = 0.779, acc = 0.666\\n\",\n      \"Epoch 1 | Step 1600 | loss = 0.796, acc = 0.685\\n\",\n      \"Epoch 1 | Step 1700 | loss = 0.788, acc = 0.705\\n\",\n      \"Epoch 1 | Step 1800 | loss = 0.695, acc = 0.699\\n\",\n      \"Epoch 1 | Step 1900 | loss = 0.708, acc = 0.700\\n\",\n      \"Epoch 1 | Step 2000 | loss = 0.686, acc = 0.705\\n\",\n      \"Epoch 1 | Step 2100 | loss = 0.732, acc = 0.704\\n\",\n      \"Epoch 1 | Step 2200 | loss = 0.687, acc = 0.712\\n\",\n      \"Epoch 1 | Step 2300 | loss = 0.675, acc = 0.724\\n\",\n      \"Epoch 1 | Step 2400 | loss = 0.673, acc = 0.716\\n\",\n      \"Epoch 1 | Step 2500 | loss = 0.623, acc = 0.720\\n\",\n      \"Epoch 1 | Step 2600 | loss = 0.646, acc = 0.716\\n\",\n      \"Epoch 1 | Step 2700 | loss = 0.675, acc = 0.725\\n\",\n      \"Epoch 1 | Step 2800 | loss = 0.612, acc = 0.744\\n\",\n      \"Epoch 1 | Step 2900 | loss = 0.615, acc = 0.732\\n\",\n      \"Epoch 1 | Step 3000 | loss = 0.607, acc = 0.748\\n\",\n      \"Epoch 1 | Step 3100 | loss = 0.668, acc = 0.702\\n\",\n      \"Epoch 1 | Step 3200 | loss = 0.634, acc = 0.710\\n\",\n      \"Epoch 1 | Step 3300 | loss = 0.662, acc = 0.741\\n\",\n      \"Evaluating Dev Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"29a7b6bb49004c3c96a6d48cd55e1ec3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/2863 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Validation | Epoch 1 | acc = 0.533\\n\",\n      \"Saving Model ...\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from accelerate import Accelerator\\n\",\n    \"\\n\",\n    \"# hyperparameters\\n\",\n    \"num_epoch = 1\\n\",\n    \"validation = True\\n\",\n    \"logging_step = 100\\n\",\n    \"learning_rate = 1e-5\\n\",\n    \"optimizer = AdamW(model.parameters(), lr=learning_rate)\\n\",\n    \"train_batch_size = 8\\n\",\n    \"\\n\",\n    \"#### TODO: gradient_accumulation (optional)####\\n\",\n    \"# Note: train_batch_size * gradient_accumulation_steps = effective batch size\\n\",\n    \"# If CUDA out of memory, you can make train_batch_size lower and gradient_accumulation_steps upper\\n\",\n    \"# Doc: https://huggingface.co/docs/accelerate/usage_guides/gradient_accumulation\\n\",\n    \"gradient_accumulation_steps = 16\\n\",\n    \"\\n\",\n    \"# dataloader\\n\",\n    \"# Note: Do NOT change batch size of dev_loader / test_loader !\\n\",\n    \"# Although batch size=1, it is actually a batch consisting of several windows from the same QA pair\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=train_batch_size, shuffle=True, pin_memory=True)\\n\",\n    \"dev_loader = DataLoader(dev_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"# Change \\\"fp16_training\\\" to True to support automatic mixed\\n\",\n    \"# precision training (fp16)\\n\",\n    \"fp16_training = True\\n\",\n    \"if fp16_training:\\n\",\n    \"    accelerator = Accelerator(mixed_precision=\\\"fp16\\\")\\n\",\n    \"else:\\n\",\n    \"    accelerator = Accelerator()\\n\",\n    \"\\n\",\n    \"# Documentation for the toolkit:  https://huggingface.co/docs/accelerate/\\n\",\n    \"model, optimizer, train_loader = accelerator.prepare(model, optimizer, train_loader)\\n\",\n    \"\\n\",\n    \"model.train()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"print(\\\"Start Training ...\\\")\\n\",\n    \"\\n\",\n    \"for epoch in range(num_epoch):\\n\",\n    \"    step = 1\\n\",\n    \"    train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    for data in tqdm(train_loader):\\n\",\n    \"        # Load all data into GPU\\n\",\n    \"        data = [i.to(device) for i in data]\\n\",\n    \"\\n\",\n    \"        # Model inputs: input_ids, token_type_ids, attention_mask, start_positions, end_positions (Note: only \\\"input_ids\\\" is mandatory)\\n\",\n    \"        # Model outputs: start_logits, end_logits, loss (return when start_positions/end_positions are provided)\\n\",\n    \"        output = model(input_ids=data[0], token_type_ids=data[1], attention_mask=data[2], start_positions=data[3], end_positions=data[4])\\n\",\n    \"        # Choose the most probable start position / end position\\n\",\n    \"        start_index = torch.argmax(output.start_logits, dim=1)\\n\",\n    \"        end_index = torch.argmax(output.end_logits, dim=1)\\n\",\n    \"\\n\",\n    \"        # Prediction is correct only if both start_index and end_index are correct\\n\",\n    \"        train_acc += ((start_index == data[3]) & (end_index == data[4])).float().mean()\\n\",\n    \"\\n\",\n    \"        train_loss += output.loss\\n\",\n    \"\\n\",\n    \"        accelerator.backward(output.loss)\\n\",\n    \"\\n\",\n    \"        step += 1\\n\",\n    \"        optimizer.step()\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        ##### TODO: Apply linear learning rate decay #####\\n\",\n    \"\\n\",\n    \"        # Print training loss and accuracy over past logging step\\n\",\n    \"        if step % logging_step == 0:\\n\",\n    \"            print(f\\\"Epoch {epoch + 1} | Step {step} | loss = {train_loss.item() / logging_step:.3f}, acc = {train_acc / logging_step:.3f}\\\")\\n\",\n    \"            train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    if validation:\\n\",\n    \"        print(\\\"Evaluating Dev Set ...\\\")\\n\",\n    \"        model.eval()\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            dev_acc = 0\\n\",\n    \"            for i, data in enumerate(tqdm(dev_loader)):\\n\",\n    \"                output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"                # prediction is correct only if answer text exactly matches\\n\",\n    \"                dev_acc += evaluate(data, output) == dev_questions[i][\\\"answer_text\\\"]\\n\",\n    \"            print(f\\\"Validation | Epoch {epoch + 1} | acc = {dev_acc / len(dev_loader):.3f}\\\")\\n\",\n    \"        model.train()\\n\",\n    \"\\n\",\n    \"# Save a model and its configuration file to the directory 「saved_model」\\n\",\n    \"# i.e. there are two files under the direcory 「saved_model」: 「pytorch_model.bin」 and 「config.json」\\n\",\n    \"# Saved model can be re-loaded using 「model = BertForQuestionAnswering.from_pretrained(\\\"saved_model\\\")」\\n\",\n    \"print(\\\"Saving Model ...\\\")\\n\",\n    \"model_save_dir = \\\"saved_model\\\"\\n\",\n    \"model.save_pretrained(model_save_dir)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"kMmdLOKBMsdE\"\n   },\n   \"source\": [\n    \"## Testing\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 84,\n     \"referenced_widgets\": [\n      \"9c84cbc758db46e78d7fa361a385ccce\",\n      \"642db3bee97a4bea8a4c1079e2b7526c\",\n      \"ed9f5d147e7844a187d8610130f1ecd9\",\n      \"42dd646b18b24deda274c857d337c973\",\n      \"9e2635394d5b4965b41a05a9bc37a4ec\",\n      \"3366101d46a847dfa5700ffb652dcc86\",\n      \"a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"d26f522a28d24494914df1dd8432af49\",\n      \"c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"a0f74d882c63403c8116c19745e011ba\",\n      \"55a7b680dae94cba8758288dacff2988\"\n     ]\n    },\n    \"id\": \"U5scNKC9xz0C\",\n    \"outputId\": \"841c70f2-2f3c-4c0f-866e-143f127eb6b5\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Evaluating Test Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9c84cbc758db46e78d7fa361a385ccce\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3524 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Completed! Result is in result.csv\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(\\\"Evaluating Test Set ...\\\")\\n\",\n    \"\\n\",\n    \"result = []\\n\",\n    \"\\n\",\n    \"model.eval()\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for data in tqdm(test_loader):\\n\",\n    \"        output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"        result.append(evaluate(data, output))\\n\",\n    \"\\n\",\n    \"result_file = \\\"result.csv\\\"\\n\",\n    \"with open(result_file, 'w') as f:\\n\",\n    \"    f.write(\\\"ID,Answer\\\\n\\\")\\n\",\n    \"    for i, test_question in enumerate(test_questions):\\n\",\n    \"    # Replace commas in answers with empty strings (since csv is separated by comma)\\n\",\n    \"    # Answers in kaggle are processed in the same way\\n\",\n    \"        f.write(f\\\"{test_question['id']},{result[i].replace(',','')}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"print(f\\\"Completed! Result is in {result_file}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0_JVNKOCywbR\"\n   },\n   \"source\": [\n    \"# GradeScope - Question 2 (In-context learning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"SDYN85why7zk\"\n   },\n   \"source\": [\n    \"### In-context learning\\n\",\n    \"The example prompt is :\\n\",\n    \"```\\n\",\n    \"請從最後一篇的文章中找出最後一個問題的答案：\\n\",\n    \"文章：<文章1 內容>\\n\",\n    \"問題：<問題1 敘述>\\n\",\n    \"答案：<答案1>\\n\",\n    \"...\\n\",\n    \"文章：<文章n 內容>\\n\",\n    \"問題：<問題n 敘述>\\n\",\n    \"答案：\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"sGUxltxqzKpm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# To avoid CUDA_OUT_OF_MEMORY\\n\",\n    \"torch.set_default_tensor_type(torch.cuda.FloatTensor)\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 241,\n     \"referenced_widgets\": [\n      \"fd1e236692ec43a18a1750a29515050d\",\n      \"7b3c48ae548848c880439841c0b9cb6b\",\n      \"1023013dc30a4731b61383bd59f2dc91\",\n      \"ee0cb4c1f31346b5b180a7b826688eb4\",\n      \"0f7a38ddfe7b42eaa5c8ffdb3c150641\",\n      \"eb405f797a1441d280029e6e203befce\",\n      \"7a7081fd9d5942af9148e29054b18f51\",\n      \"eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"7c852afee0de49fe8dac74f3af82a725\",\n      \"24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"0549ffe5a6a444dd9fbf8c4513ebe7f7\",\n      \"388d3d2566ff4a1cb68048ac78dd374f\",\n      \"6235eaf236d643c6a163dddb86d3664d\",\n      \"faf78b2739f841d8a213e4311926b598\",\n      \"91f03b6ed1c94cb68970f45ffa64695e\",\n      \"9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"39d35e6e28264b5ca157745d0c1e1491\",\n      \"c497cc2cfabb451aad71f5d7b19873e4\",\n      \"7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"028ec097e62b4ee8a463708f4c3b8f24\",\n      \"f607835a7acf4037821885704bde736d\",\n      \"ddd59aac5a5d48ceace9ede35bf8f11b\",\n      \"20e14c8de0f84979ac3f0d896263f49d\",\n      \"4d7c3ea23e9b42a2ba5b0b11ee190c69\",\n      \"5d9e4fd05f964fd7a11d66b964ea0873\",\n      \"7fb466a306e6443287cb2fa2bea90f06\",\n      \"1b2b45ecc27b4f28bc0194709fed0638\",\n      \"6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"f51192579d014a52b132f99abf8901b2\",\n      \"6912ca44b1864902a3e32d4a19a4972d\",\n      \"acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"fda75dc7c2d24f7b827b2c78a6988586\",\n      \"2d1a48d240b949ad9b465985e90557c5\",\n      \"5a0f5ba8ad024f5b915e34e48f269437\",\n      \"bc4b72ff74d84c9e83b328e8823044b1\",\n      \"901f4ebc70f144c188d03a4978920441\",\n      \"98ce66c91c5c45968a3844fb0de50624\",\n      \"a24d04e7064048c2819ef88a50ce9093\",\n      \"154be9baa03943d08c975dbc85c4edf8\",\n      \"2fe4fa69d9544fd393a4d72c02245245\",\n      \"c4da9fed45254ebdaa49312f16d9b159\",\n      \"53a2b78a732c4522805de5c9aed92c41\",\n      \"0440f9e26a0b420b86175bc62e212d01\",\n      \"c9bf7b5808f74db9811f5b64e878dcd5\",\n      \"66a35d11743141b1b20904b13a4b86ea\",\n      \"c0145fad2cb843e9b75ac47d307cc346\",\n      \"d61e0c79febd45c8b00e3566296d7e8e\",\n      \"2a59b752f9414e69b8c1d24bd24159f2\",\n      \"447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"16b30759d76a4c8f979212d1ae30c297\",\n      \"1639410507da4b54996064d9fcc8621c\",\n      \"e515df89088042dbbe23594e5976e10d\",\n      \"0dccf470d87f4585af65826582399466\",\n      \"7dee4e5320d349159422709a69af61f4\",\n      \"86dbdec7087f4312b945c3a3940d8965\",\n      \"cdbf6c3b5b3948229946fd51c227b51e\",\n      \"d132ff798f284c9cbe2a73d35d776592\",\n      \"fead01a1a86c40bcb1ba9133ef351d7c\",\n      \"f19d9d34c978402691a89114849d2bb9\",\n      \"7a729fb76a374da99334e7d4b4de102e\",\n      \"cccbdce89ff545f6a66304352b320ad7\",\n      \"cbd776799c18488eb74a8f17cc27c6fd\",\n      \"b1cd7728deff4d50a18cb22805351330\",\n      \"550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"745f78a378b5412eae007f029e8c321a\",\n      \"2c449a0e664c41a79b3a1de62e94b5b7\",\n      \"a9a16bf8795c402a90cf4504b1cd30a1\",\n      \"715ad9f6bdaa46298317e049404f9755\",\n      \"667f153201d347a0a01e39b438fa736b\",\n      \"d652cdca44e04070a420c5d1a24b4fd1\",\n      \"b5c71e0a94014278a22ba45a6f58b77d\",\n      \"7f928c5e620a49c1ae137868e34818a9\",\n      \"d403f126d48746948c0f627dfdce5d65\",\n      \"d41e81f720f44b52b9a914e4c619bfee\",\n      \"bee7c0220d4e476dbc035fbc5dc44fa3\"\n     ]\n    },\n    \"id\": \"wIS23s79zItf\",\n    \"outputId\": \"c686be61-221a-4f55-ca79-67715343f1db\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fd1e236692ec43a18a1750a29515050d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)okenizer_config.json:   0%|          | 0.00/335 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0549ffe5a6a444dd9fbf8c4513ebe7f7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)tencepiece.bpe.model:   0%|          | 0.00/4.92M [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f607835a7acf4037821885704bde736d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)/main/tokenizer.json:   0%|          | 0.00/9.03M [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fda75dc7c2d24f7b827b2c78a6988586\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)cial_tokens_map.json:   0%|          | 0.00/276 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0440f9e26a0b420b86175bc62e212d01\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)lve/main/config.json:   0%|          | 0.00/548 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7dee4e5320d349159422709a69af61f4\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading pytorch_model.bin:   0%|          | 0.00/3.47G [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"745f78a378b5412eae007f029e8c321a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"Downloading (…)neration_config.json:   0%|          | 0.00/168 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModelForCausalLM\\n\",\n    \"\\n\",\n    \"# You can try model with different size\\n\",\n    \"# When using Colab or Kaggle, models with more than 2 billions parameters may\\n\",\n    \"# run out of memory\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"facebook/xglm-1.7B\\\")\\n\",\n    \"model = AutoModelForCausalLM.from_pretrained(\\\"facebook/xglm-1.7B\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"2d97YtavzFHA\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# To clean model output. If you try different prompts, you may have to fix\\n\",\n    \"# this function on your own\\n\",\n    \"def clean_text(text):\\n\",\n    \"    # Note: When you use unilingual model, the colon may become fullwidth\\n\",\n    \"    text = text.split(\\\"答案:\\\")[-1]\\n\",\n    \"    text = text.split(\\\" \\\")[0]\\n\",\n    \"    return text\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"jdf3gdP_yykH\",\n    \"outputId\": \"b9a784dd-e5d7-4212-c089-e0180157bd11\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：2010年引入的廣州快速交通運輸系統是世界第二大快速運輸系統。每日載客量可達100萬人次。每小時的客流量峰值高達26,900名乘客，僅次於波哥大的快速交通系統。每10秒有一輛公共汽車，每輛公共汽車在一個方向上行駛350小時。該平台包括橋樑，是世界上最長的國家公共汽車快速運輸系統平台，長度為260米。目前，廣州市的出租車和公交車主要以液化石油氣為燃料，部分公交車採用油電，氣電混合技術。2012年底，一輛LNG燃料公共汽車開始啟動。2014年6月，引入了LNG插電式混合動力公交車取代LPG公交車。2007年1月16日，廣州市政府完全禁止在城市地區駕駛摩托車。違反禁令的機動車將被沒收。廣州市交通局聲稱，禁令的實施導致交通擁堵和車禍大大減少。廣州白雲國際機場位於白雲區與花都區交界處。它於2004年8月5日正式投入運營。它是中國第二繁忙的機場。機場取代了原先位於市中心的舊機場，無法滿足日益增長的航空需求。目前，機場有三個簡易機場，是中國第三個擁有三條跑道的民航機場。比2023年香港國際機場第三條跑道的預計完工時間提前了8年。\\n\",\n      \"問題：從哪一天開始在廣州市內騎摩托車會被沒收？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2007年1月16日\\n\",\n      \"模型輸出: 2007年1月16日\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 200公里\\n\",\n      \"模型輸出: 200公里\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：香港\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：文化大革命\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 首都。\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年引入的廣州快速交通運輸系統是世界第二大快速運輸系統。每日載客量可達100萬人次。每小時的客流量峰值高達26,900名乘客，僅次於波哥大的快速交通系統。每10秒有一輛公共汽車，每輛公共汽車在一個方向上行駛350小時。該平台包括橋樑，是世界上最長的國家公共汽車快速運輸系統平台，長度為260米。目前，廣州市的出租車和公交車主要以液化石油氣為燃料，部分公交車採用油電，氣電混合技術。2012年底，一輛LNG燃料公共汽車開始啟動。2014年6月，引入了LNG插電式混合動力公交車取代LPG公交車。2007年1月16日，廣州市政府完全禁止在城市地區駕駛摩托車。違反禁令的機動車將被沒收。廣州市交通局聲稱，禁令的實施導致交通擁堵和車禍大大減少。廣州白雲國際機場位於白雲區與花都區交界處。它於2004年8月5日正式投入運營。它是中國第二繁忙的機場。機場取代了原先位於市中心的舊機場，無法滿足日益增長的航空需求。目前，機場有三個簡易機場，是中國第三個擁有三條跑道的民航機場。比2023年香港國際機場第三條跑道的預計完工時間提前了8年。\\n\",\n      \"問題：從哪一天開始在廣州市內騎摩托車會被沒收？\\n\",\n      \"答案：2007年1月16日\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2015\\n\",\n      \"模型輸出: 1990年\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 文化大革命\\n\",\n      \"模型輸出: 文化大革命\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：六朝時期，廣州的對外貿易相當繁榮，外國海商“長期停留在廣州尋求利潤”。在隋唐時期，廣州的對外貿易發展到了頂峰。作為唐代唯一的城市，外國人口占全市人口的30％以上，成為中國對外貿易的核心。在元朝短暫的沉寂之後，廣州和明清在廣州重新出現。在清代的一站式貿易政策下，它成為當時中國唯一的外國港口，成為具有壟斷地位的國家商業中心。上海開放後，隨著國家的逐步開放，廣州逐漸失去了對外貿易中心的地位，但它仍然是全國最重要的商業城市。改革開放後，廣州百貨業蓬勃發展。 20世紀80年代，友誼商店專門為香港，澳門和外國客人銷售電器和其他進口商品。西湖路照明夜市是平民的熱門目的地。南樓位於江西路沿線，已成為華南地區最大的綜合性百貨商場。它還在大陸創建了第一家24小時便利店，華夏百貨商店成立了人民南商圈。延伸，後者於1995年建立了一條步行街。新大新公司和廣州百貨在北京路的業務也蓬勃發展，這條路也成了一條步行街。超市Wankelong於1996年在廣州開設了第一家分店，然後廣州人熟悉的超市和便利店品牌，如香港百佳超市進入廣州。由於交通壓力和天河新區的發展，20世紀90年代末人民南方商業圈開始衰落，成為電子服裝批發的集散地，城市商業區遷至東部新區。21世紀，以天河城，天環廣場，鄭家廣場，太古彙和萬靈彙為代表的天河路商業區已成為廣州的中心商業區。自1957年以來，中國出口商品交易會每年春秋兩季舉辦。目前，每個展覽都吸引了來自世界各地的20多萬商家。這是中國規模最大，時間最長，最成功的國際展覽會。隨著琶洲展館三期工程的建設，展覽能力躍居世界前列。\\n\",\n      \"問題：唐朝的對外貿易核心在哪？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 廣州\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：2015\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：自古以來，廣州基本上就是嶺南的政治中心。秦朝末年是南嶽的首都，漢朝征服了南嶽州，後來成為南海縣。漢末遷至龍灣和古代大壩。在三國時期，吳國布將縣長遷回番禺，後來成立了膠州府。廣州和廣州轉移後，它是廣州的州長。晉南，南北朝使用南海縣，番禺由縣統治。文帝皇帝廢棄了南海縣，成立了廣州總務辦公室，後來改為杜都政府。唐代分為十個民族，其中嶺南大智學院位於廣州。862年，嶺南分為東二西路，廣州分為嶺南東路。五代時期，廣州是南漢的首都。宋初，嶺南路重建，廣州是行政中心。明代廣州是廣州阜城，隸屬番禺縣和南海縣。清軍佔領中原後，南明邵武帝朱熹在廣州建成，很快南明就死了。清代廣州成為廣東省，廣州阜城，番禺和南海縣。廣東省和廣西省，廣東省屯門省長，廣東省屯門局長，廣東省檢察院都在廣州市南海縣境內。1858年，英法聯軍攻占廣州，廣東省長投降，外國人委員會成立，廣東省政府成為政府。\\n\",\n      \"問題：南明的首都在哪？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 廣州\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：香港\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：從化市\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 武昌起義\\n\",\n      \"模型輸出: 1911年10月10日武昌起義\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 香港\\n\",\n      \"模型輸出: 香港\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：長期以來，廣州大部分地方的語言主要是廣東話。因此，廣州還形成了粵語文化，包括粵劇，粵劇，南音和鹹水歌。隨著中國大陸的改革開放，來自城外和廣東省以外的大量人口迅速湧入。在這些移民中，由於不同的省/總統，有許多不同的語言，外國人和來自不同地區的人經常用普通話交流;因此，在許多大型公共場所，普通話是主要語言。在某些情況下，將增加粵語或英語廣播，種族群體仍然使用自己的方言進行相互交流。一些外國人會用當地文化交流，用粵語與當地人交流。如今，隨著普通話的推廣，外國和本地年輕人受長期使用普通話作為教學媒介和普通話的共同環境的影響。目前，廣州的語言交換主要講普通話，但當地人仍然使用廣東話。與交流。雖然普通話自21世紀初以來逐漸佔據主導地位，但它受到當地文化的影響。與此同時，由於香港和澳門的距離較近，以及廣州市民近年來開展了一系列推廣普通話的評論，它已開始保護廣東話，所以廣東話仍有一定的地位。當地。 。\\n\",\n      \"問題：在廣州許多比較大的公眾場合以甚麼為主要交流語言？\\n\",\n      \"答案：普通話\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 1921\\n\",\n      \"模型輸出: 公元前214年,秦始皇出兵徵兵南,南海縣任\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：廣州是中國最重要的開放城市之一。作為對外貿易的窗口，有許多來自北美，日本，韓國，歐洲，中東，非洲等國的外國人，尤其是非洲黑人。廣州甚至被稱為“第三世界”。首都主要位於廣州市環市東路秀山大廈，淘金路，花園酒店，建馬路和劍馬路;天河北路，體育東路，天河路，龍口西路，臨河中路等公司辦公室;番禺區的一些物業，如克利福德新村和麗江花園，也有更多的外國人。據廣州市公安局出入境管理支隊2014年10月統計，在廣州登記的外國人有11.8萬人，其中臨時居民71,000人，居住半年以上的47,000名永久居民。其中大多數是來自非洲的4,000多名註冊外國人;來自阿拉伯國家和地區的約1萬人雖然沒有大規模的定居點，但經常出現在小北 - 登封地區的商業區進行商業活動。在荔景街也有更多的韓國人。2013年，有超過15萬名乘客進出廣州港，其中54萬人來自非洲國家。他們中的大多數人來往於同一個人，主要是因為簽證允許短期逗留或商業需求而不是移民。近年來，廣州黑人一直捲入廣州的一些公安問題，引起廣州市民的一些不滿。針對“三非”問題，公安機關設立了四個涉外綜合執法隊伍，翻譯志願服務隊伍，調查“三個非外國”外國專業隊和四個外國隊 - 相關管理基層服務隊伍;自年初以來，廣州在200多名外國人社區建立了75個“外國人管理服務工作站”，並大力打擊“三非”外國人。它已經取得了成果。\\n\",\n      \"問題：被稱為「第三世界首都」的城市哪種外籍人士最多？\\n\",\n      \"答案：非洲黑人\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 7月\\n\",\n      \"模型輸出: 2010年7月\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2008年\\n\",\n      \"模型輸出: 廣州获得「創建國家健康城市」獎項\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：2015\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 從化市\\n\",\n      \"模型輸出: 越秀區\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：文化大革命\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：作為中國最大的城市之一，廣州有大量在廣州工作的外國人。然而，“本地人”與“外國人”之間的關係難以協調，也會引發一系列社會問題。由於廣州的能力和就業能力有限，廣州無法容納來自全國各地的農民工。其安全環境已經過嚴格測試。經常發生“兩個盜賊和一個小偷”事件，特別是在城市村莊。根據廣州社會科學院的一項調查，80％的囚犯被逮捕為“局外人”。除了廣東話的光復文化外，外國人和外國方言的排斥增加了廣州市民的仇外心理。近年來，由於政府的大力禁令，廣州的公安管理取得了顯著成效。2014年，廣東省政府明確要求控制廣州和深圳特大城市的人口規模。2008年，農民工佔廣州人口的40％，其中大多數是女性農民工，其中許多人未婚。截至2013年底，廣州註冊人口為686.7萬。根據一定的錯失率，廣州的實際流動人口約為837萬。這些數據已超過常住人口。最新統計數據顯示，廣州常住人口為832萬。其中，白雲區，番禺區和天河區流動人口超過百萬。番禺區有111.7萬戶登記移民，流動戶籍區涉及30個省，自治區，直轄市。在性別比方面，男性略多，佔總數的53.5％;女性佔總數的46.5％。在番禺流動人口中，兒童和老年人的比例極小，15歲以下為0.49％，60歲以上為1.68％，大專以上為10％。\\n\",\n      \"問題：有百分之多少的犯人被抓的是外地人？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 80\\n\",\n      \"模型輸出: 廣州的社會環境\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為中國最大的城市之一，廣州有大量在廣州工作的外國人。然而，“本地人”與“外國人”之間的關係難以協調，也會引發一系列社會問題。由於廣州的能力和就業能力有限，廣州無法容納來自全國各地的農民工。其安全環境已經過嚴格測試。經常發生“兩個盜賊和一個小偷”事件，特別是在城市村莊。根據廣州社會科學院的一項調查，80％的囚犯被逮捕為“局外人”。除了廣東話的光復文化外，外國人和外國方言的排斥增加了廣州市民的仇外心理。近年來，由於政府的大力禁令，廣州的公安管理取得了顯著成效。2014年，廣東省政府明確要求控制廣州和深圳特大城市的人口規模。2008年，農民工佔廣州人口的40％，其中大多數是女性農民工，其中許多人未婚。截至2013年底，廣州註冊人口為686.7萬。根據一定的錯失率，廣州的實際流動人口約為837萬。這些數據已超過常住人口。最新統計數據顯示，廣州常住人口為832萬。其中，白雲區，番禺區和天河區流動人口超過百萬。番禺區有111.7萬戶登記移民，流動戶籍區涉及30個省，自治區，直轄市。在性別比方面，男性略多，佔總數的53.5％;女性佔總數的46.5％。在番禺流動人口中，兒童和老年人的比例極小，15歲以下為0.49％，60歲以上為1.68％，大專以上為10％。\\n\",\n      \"問題：有百分之多少的犯人被抓的是外地人？\\n\",\n      \"答案：80\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是中國最重要的開放城市之一。作為對外貿易的窗口，有許多來自北美，日本，韓國，歐洲，中東，非洲等國的外國人，尤其是非洲黑人。廣州甚至被稱為“第三世界”。首都主要位於廣州市環市東路秀山大廈，淘金路，花園酒店，建馬路和劍馬路;天河北路，體育東路，天河路，龍口西路，臨河中路等公司辦公室;番禺區的一些物業，如克利福德新村和麗江花園，也有更多的外國人。據廣州市公安局出入境管理支隊2014年10月統計，在廣州登記的外國人有11.8萬人，其中臨時居民71,000人，居住半年以上的47,000名永久居民。其中大多數是來自非洲的4,000多名註冊外國人;來自阿拉伯國家和地區的約1萬人雖然沒有大規模的定居點，但經常出現在小北 - 登封地區的商業區進行商業活動。在荔景街也有更多的韓國人。2013年，有超過15萬名乘客進出廣州港，其中54萬人來自非洲國家。他們中的大多數人來往於同一個人，主要是因為簽證允許短期逗留或商業需求而不是移民。近年來，廣州黑人一直捲入廣州的一些公安問題，引起廣州市民的一些不滿。針對“三非”問題，公安機關設立了四個涉外綜合執法隊伍，翻譯志願服務隊伍，調查“三個非外國”外國專業隊和四個外國隊 - 相關管理基層服務隊伍;自年初以來，廣州在200多名外國人社區建立了75個“外國人管理服務工作站”，並大力打擊“三非”外國人。它已經取得了成果。\\n\",\n      \"問題：被稱為「第三世界首都」的城市哪種外籍人士最多？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 非洲黑人\\n\",\n      \"模型輸出: 非洲黑人\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：從化市\\n\",\n      \"文章：長期以來，廣州大部分地方的語言主要是廣東話。因此，廣州還形成了粵語文化，包括粵劇，粵劇，南音和鹹水歌。隨著中國大陸的改革開放，來自城外和廣東省以外的大量人口迅速湧入。在這些移民中，由於不同的省/總統，有許多不同的語言，外國人和來自不同地區的人經常用普通話交流;因此，在許多大型公共場所，普通話是主要語言。在某些情況下，將增加粵語或英語廣播，種族群體仍然使用自己的方言進行相互交流。一些外國人會用當地文化交流，用粵語與當地人交流。如今，隨著普通話的推廣，外國和本地年輕人受長期使用普通話作為教學媒介和普通話的共同環境的影響。目前，廣州的語言交換主要講普通話，但當地人仍然使用廣東話。與交流。雖然普通話自21世紀初以來逐漸佔據主導地位，但它受到當地文化的影響。與此同時，由於香港和澳門的距離較近，以及廣州市民近年來開展了一系列推廣普通話的評論，它已開始保護廣東話，所以廣東話仍有一定的地位。當地。 。\\n\",\n      \"問題：在廣州許多比較大的公眾場合以甚麼為主要交流語言？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 普通話\\n\",\n      \"模型輸出: 廣州的廣東人,廣東人,廣東人,廣東人,廣\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import random\\n\",\n    \"import json\\n\",\n    \"\\n\",\n    \"with open(\\\"hw7_in-context-learning-examples.json\\\", \\\"r\\\") as f:\\n\",\n    \"    test = json.load(f)\\n\",\n    \"\\n\",\n    \"# K-shot learning\\n\",\n    \"# Give model K examples to make it achieve better accuracy\\n\",\n    \"# Note: (1) When K >= 4, CUDA_OUT_OFF_MEMORY may occur.\\n\",\n    \"#       (2) The maximum input length of XGLM is 2048\\n\",\n    \"K = 2\\n\",\n    \"\\n\",\n    \"question_ids = [qa[\\\"id\\\"] for qa in test[\\\"questions\\\"]]\\n\",\n    \"\\n\",\n    \"with open(\\\"in-context-learning-result.txt\\\", \\\"w\\\") as f:\\n\",\n    \"    print(\\\"ID,Ground-Truth,Prediction\\\", file = f)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for idx, qa in enumerate(test[\\\"questions\\\"]):\\n\",\n    \"            # You can try different prompts\\n\",\n    \"            prompt = \\\"請從最後一篇的文章中找出最後一個問題的答案\\\\n\\\"\\n\",\n    \"            exist_question_indexs = [question_ids.index(qa[\\\"id\\\"])]\\n\",\n    \"\\n\",\n    \"            # K-shot learning: give the model K examples with answers\\n\",\n    \"            for i in range(K):\\n\",\n    \"                question_index = question_ids.index(qa[\\\"id\\\"])\\n\",\n    \"                while(question_index in exist_question_indexs):\\n\",\n    \"                    question_index = random.randint(0, len(question_ids) - 1)\\n\",\n    \"                exist_question_indexs.append(question_index)\\n\",\n    \"                paragraph_id = test[\\\"questions\\\"][question_index][\\\"paragraph_id\\\"]\\n\",\n    \"                prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"                prompt += f'問題：{test[\\\"questions\\\"][question_index][\\\"question_text\\\"]}\\\\n'\\n\",\n    \"                prompt += f'答案：{test[\\\"questions\\\"][question_index][\\\"answer_text\\\"]}\\\\n'\\n\",\n    \"\\n\",\n    \"            # The final one question without answer\\n\",\n    \"            paragraph_id = qa[\\\"paragraph_id\\\"]\\n\",\n    \"            prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"            prompt += f'問題：{qa[\\\"question_text\\\"]}\\\\n'\\n\",\n    \"            prompt += f'答案：'\\n\",\n    \"\\n\",\n    \"            inputs = tokenizer(prompt, add_special_tokens=False, return_tensors=\\\"pt\\\")\\n\",\n    \"            sample = model.generate(**inputs, max_new_tokens = 20)\\n\",\n    \"            text = tokenizer.decode(sample[0], skip_special_tokens=True)\\n\",\n    \"\\n\",\n    \"            # Note: You can delete this line to see what will happen\\n\",\n    \"            text = clean_text(text)\\n\",\n    \"\\n\",\n    \"            print(prompt)\\n\",\n    \"            print(f'正確答案: {qa[\\\"answer_text\\\"]}')\\n\",\n    \"            print(f'模型輸出: {text}')\\n\",\n    \"            print()\\n\",\n    \"\\n\",\n    \"            print(f\\\"{idx},{qa['answer_text']},{text}\\\", file = f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"k3prlGCdjf38\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"028ec097e62b4ee8a463708f4c3b8f24\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0386ad4eea2b4387b48cd58e95bcd4ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"0440f9e26a0b420b86175bc62e212d01\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_c9bf7b5808f74db9811f5b64e878dcd5\",\n       \"IPY_MODEL_66a35d11743141b1b20904b13a4b86ea\",\n       \"IPY_MODEL_c0145fad2cb843e9b75ac47d307cc346\"\n      ],\n      \"layout\": \"IPY_MODEL_d61e0c79febd45c8b00e3566296d7e8e\"\n     }\n    },\n    \"04c0aa3d24944485b475601f786b56f1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"052cccb5d69d476f9caac95848e0353a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0549ffe5a6a444dd9fbf8c4513ebe7f7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_388d3d2566ff4a1cb68048ac78dd374f\",\n       \"IPY_MODEL_6235eaf236d643c6a163dddb86d3664d\",\n       \"IPY_MODEL_faf78b2739f841d8a213e4311926b598\"\n      ],\n      \"layout\": \"IPY_MODEL_91f03b6ed1c94cb68970f45ffa64695e\"\n     }\n    },\n    \"06e4e53bd3e748ad90d14eeec117aac9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9c7a21dc260a4ad7b87f2123947058a2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7b7a0c46d9794d6fa66401f03684dec0\",\n      \"value\": \"100%\"\n     }\n    },\n    \"0dccf470d87f4585af65826582399466\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0f7a38ddfe7b42eaa5c8ffdb3c150641\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1023013dc30a4731b61383bd59f2dc91\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"max\": 335,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c852afee0de49fe8dac74f3af82a725\",\n      \"value\": 335\n     }\n    },\n    \"1181117783fd4bca9d7f5f296507aff3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"11dcde71ff984d829ec9612e7f43e3a3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"154be9baa03943d08c975dbc85c4edf8\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1639410507da4b54996064d9fcc8621c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"16b30759d76a4c8f979212d1ae30c297\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1b2b45ecc27b4f28bc0194709fed0638\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"1e20837bf23548249678da0a07745d58\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26e50974c52452389c5abb001056546\",\n      \"max\": 29,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_9eefbb580f0146658d18658f210d3a67\",\n      \"value\": 29\n     }\n    },\n    \"20cd68a7e03f4353aa99fcefc1f16d36\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"20e14c8de0f84979ac3f0d896263f49d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"max\": 9032074,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_f51192579d014a52b132f99abf8901b2\",\n      \"value\": 9032074\n     }\n    },\n    \"23afbee21a644745b24b8ffefed6b286\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"24b96f20dd5f4a6d8cf9788e97a74f73\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"250451c12cee4aacb91a32d7da4ab861\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"28fc746a3c0548f4a4ff669b5dbb7320\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"29a7b6bb49004c3c96a6d48cd55e1ec3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_06e4e53bd3e748ad90d14eeec117aac9\",\n       \"IPY_MODEL_6a47a3bc614a44e7a5b0dfef50cadaf7\",\n       \"IPY_MODEL_fba6bb8f65904ae6ae4f5bca95e942e2\"\n      ],\n      \"layout\": \"IPY_MODEL_6d5ad2f51bb3459b85201f983a499ea2\"\n     }\n    },\n    \"2a59b752f9414e69b8c1d24bd24159f2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"2c37badbe0504073b31abd67a8c0b808\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_bfd7d35860c14dd3b8e5eea07032311d\",\n       \"IPY_MODEL_db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n       \"IPY_MODEL_b0af063597ea4de5a8c8bf4f370f782a\"\n      ],\n      \"layout\": \"IPY_MODEL_5b1ac1a0f04f4c29b3c1127ec3d95e81\"\n     }\n    },\n    \"2c449a0e664c41a79b3a1de62e94b5b7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d652cdca44e04070a420c5d1a24b4fd1\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b5c71e0a94014278a22ba45a6f58b77d\",\n      \"value\": \"Downloading (…)neration_config.json: 100%\"\n     }\n    },\n    \"2d1a48d240b949ad9b465985e90557c5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_98ce66c91c5c45968a3844fb0de50624\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a24d04e7064048c2819ef88a50ce9093\",\n      \"value\": \"Downloading (…)cial_tokens_map.json: 100%\"\n     }\n    },\n    \"2fe4fa69d9544fd393a4d72c02245245\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"304609dbefa74735baa08ce7aadff92d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"3366101d46a847dfa5700ffb652dcc86\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"33fa92f225be477d8cd176a0a4e8894e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"388d3d2566ff4a1cb68048ac78dd374f\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_39d35e6e28264b5ca157745d0c1e1491\",\n      \"value\": \"Downloading (…)tencepiece.bpe.model: 100%\"\n     }\n    },\n    \"39d35e6e28264b5ca157745d0c1e1491\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3eaf82623d964c2abb92b4509ac5ca9d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_33fa92f225be477d8cd176a0a4e8894e\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b80166eeee984661a611a02d1eae4458\",\n      \"value\": \"Downloading (…)solve/main/vocab.txt: 100%\"\n     }\n    },\n    \"42dd646b18b24deda274c857d337c973\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a0f74d882c63403c8116c19745e011ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_55a7b680dae94cba8758288dacff2988\",\n      \"value\": \" 3524/3524 [01:20&lt;00:00, 46.55it/s]\"\n     }\n    },\n    \"447bb12155cf4dc193ffea3f64c6a8f8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"4d7c3ea23e9b42a2ba5b0b11ee190c69\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6912ca44b1864902a3e32d4a19a4972d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"value\": \" 9.03M/9.03M [00:00&lt;00:00, 35.9MB/s]\"\n     }\n    },\n    \"5195ed241f09440eaf84a7e0b3dc8155\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"53a2b78a732c4522805de5c9aed92c41\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"53c1ce79c38b45fc8d1b675515642c54\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_9370d0df1bca4b9a9c15e1d3e10142d9\",\n       \"IPY_MODEL_611f0f0c70a5471b891bd6f6b8cb7863\",\n       \"IPY_MODEL_986b627aef004704ac0806a9aa189938\"\n      ],\n      \"layout\": \"IPY_MODEL_f2b466617f0247638e0934c8fe95ed1d\"\n     }\n    },\n    \"550e7aaac7fa4c3db37ceca6a5595ddb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"55a7b680dae94cba8758288dacff2988\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"5a0f5ba8ad024f5b915e34e48f269437\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_154be9baa03943d08c975dbc85c4edf8\",\n      \"max\": 276,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_2fe4fa69d9544fd393a4d72c02245245\",\n      \"value\": 276\n     }\n    },\n    \"5b1ac1a0f04f4c29b3c1127ec3d95e81\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"5d9e4fd05f964fd7a11d66b964ea0873\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"611f0f0c70a5471b891bd6f6b8cb7863\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"max\": 3365,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c61a280288d4608b6ef341ce3adb7a8\",\n      \"value\": 3365\n     }\n    },\n    \"6235eaf236d643c6a163dddb86d3664d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c497cc2cfabb451aad71f5d7b19873e4\",\n      \"max\": 4920706,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"value\": 4920706\n     }\n    },\n    \"641665cb9ec6433a81719d57eeaf8298\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ba9c1cd3cfe04add90aa2edf2aa87378\",\n       \"IPY_MODEL_1e20837bf23548249678da0a07745d58\",\n       \"IPY_MODEL_c1d24cb7607c44b989774113a2baf675\"\n      ],\n      \"layout\": \"IPY_MODEL_c9144705a33848a6b142f9887da6ac49\"\n     }\n    },\n    \"642db3bee97a4bea8a4c1079e2b7526c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3366101d46a847dfa5700ffb652dcc86\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"value\": \"100%\"\n     }\n    },\n    \"667f153201d347a0a01e39b438fa736b\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"66a35d11743141b1b20904b13a4b86ea\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_16b30759d76a4c8f979212d1ae30c297\",\n      \"max\": 548,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_1639410507da4b54996064d9fcc8621c\",\n      \"value\": 548\n     }\n    },\n    \"6912ca44b1864902a3e32d4a19a4972d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a2f5722362c4ec08ae8ed7d681dc7ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a47a3bc614a44e7a5b0dfef50cadaf7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_11dcde71ff984d829ec9612e7f43e3a3\",\n      \"max\": 2863,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_a987cb79f4904973958a98f492c6443a\",\n      \"value\": 2863\n     }\n    },\n    \"6be63de77ed14eee9c37e93d3a75f743\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_304609dbefa74735baa08ce7aadff92d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_250451c12cee4aacb91a32d7da4ab861\",\n      \"value\": \" 110k/110k [00:00&lt;00:00, 1.53MB/s]\"\n     }\n    },\n    \"6d5ad2f51bb3459b85201f983a499ea2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"715ad9f6bdaa46298317e049404f9755\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d41e81f720f44b52b9a914e4c619bfee\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bee7c0220d4e476dbc035fbc5dc44fa3\",\n      \"value\": \" 168/168 [00:00&lt;00:00, 4.67kB/s]\"\n     }\n    },\n    \"745f78a378b5412eae007f029e8c321a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2c449a0e664c41a79b3a1de62e94b5b7\",\n       \"IPY_MODEL_a9a16bf8795c402a90cf4504b1cd30a1\",\n       \"IPY_MODEL_715ad9f6bdaa46298317e049404f9755\"\n      ],\n      \"layout\": \"IPY_MODEL_667f153201d347a0a01e39b438fa736b\"\n     }\n    },\n    \"78818b2d8cc748efbf1b5784a9ee2a85\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7a7081fd9d5942af9148e29054b18f51\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7a729fb76a374da99334e7d4b4de102e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7b3c48ae548848c880439841c0b9cb6b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb405f797a1441d280029e6e203befce\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a7081fd9d5942af9148e29054b18f51\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"7b7a0c46d9794d6fa66401f03684dec0\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7c61a280288d4608b6ef341ce3adb7a8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7c852afee0de49fe8dac74f3af82a725\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7dee4e5320d349159422709a69af61f4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_86dbdec7087f4312b945c3a3940d8965\",\n       \"IPY_MODEL_cdbf6c3b5b3948229946fd51c227b51e\",\n       \"IPY_MODEL_d132ff798f284c9cbe2a73d35d776592\"\n      ],\n      \"layout\": \"IPY_MODEL_fead01a1a86c40bcb1ba9133ef351d7c\"\n     }\n    },\n    \"7f7f2c3afc2647c086877a2f4eff6c12\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7f928c5e620a49c1ae137868e34818a9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7fb466a306e6443287cb2fa2bea90f06\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"86dbdec7087f4312b945c3a3940d8965\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f19d9d34c978402691a89114849d2bb9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a729fb76a374da99334e7d4b4de102e\",\n      \"value\": \"Downloading pytorch_model.bin: 100%\"\n     }\n    },\n    \"8710bb7686df4fb3a73e5af839be5305\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"8b264499afca4694849b08e2091f6826\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_3eaf82623d964c2abb92b4509ac5ca9d\",\n       \"IPY_MODEL_aa3ff7831fbf47efa404805886ca4696\",\n       \"IPY_MODEL_6be63de77ed14eee9c37e93d3a75f743\"\n      ],\n      \"layout\": \"IPY_MODEL_5195ed241f09440eaf84a7e0b3dc8155\"\n     }\n    },\n    \"8d791392eed34a9b8e155da9a4b0a0d6\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"901f4ebc70f144c188d03a4978920441\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"91f03b6ed1c94cb68970f45ffa64695e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9370d0df1bca4b9a9c15e1d3e10142d9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_04c0aa3d24944485b475601f786b56f1\",\n      \"value\": \"100%\"\n     }\n    },\n    \"941a345ba82a44d5ad597a15c0af0d5c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"986b627aef004704ac0806a9aa189938\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8710bb7686df4fb3a73e5af839be5305\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"value\": \" 3365/3365 [09:20&lt;00:00,  6.34it/s]\"\n     }\n    },\n    \"98ce66c91c5c45968a3844fb0de50624\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c7a21dc260a4ad7b87f2123947058a2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c84cbc758db46e78d7fa361a385ccce\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_642db3bee97a4bea8a4c1079e2b7526c\",\n       \"IPY_MODEL_ed9f5d147e7844a187d8610130f1ecd9\",\n       \"IPY_MODEL_42dd646b18b24deda274c857d337c973\"\n      ],\n      \"layout\": \"IPY_MODEL_9e2635394d5b4965b41a05a9bc37a4ec\"\n     }\n    },\n    \"9e2635394d5b4965b41a05a9bc37a4ec\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9e312a0ec6a2478fb0f55691caf6d9ae\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9eefbb580f0146658d18658f210d3a67\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a075ee85c2d34ab3b2d011c63dc02286\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a0f74d882c63403c8116c19745e011ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a1602e58c3a7413490ce0a93f35a7ca9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a24d04e7064048c2819ef88a50ce9093\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a5bf4132f3dd4c7a807f27c8106fdd59\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a987cb79f4904973958a98f492c6443a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a9a16bf8795c402a90cf4504b1cd30a1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7f928c5e620a49c1ae137868e34818a9\",\n      \"max\": 168,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_d403f126d48746948c0f627dfdce5d65\",\n      \"value\": 168\n     }\n    },\n    \"aa3ff7831fbf47efa404805886ca4696\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"max\": 109540,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_fb908d9c3e374983aa47478a95411ba7\",\n      \"value\": 109540\n     }\n    },\n    \"acbfe8b88e6945ab9a5959fbb5f294de\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b0af063597ea4de5a8c8bf4f370f782a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a075ee85c2d34ab3b2d011c63dc02286\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_052cccb5d69d476f9caac95848e0353a\",\n      \"value\": \" 269k/269k [00:00&lt;00:00, 2.44MB/s]\"\n     }\n    },\n    \"b1cd7728deff4d50a18cb22805351330\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"b5c71e0a94014278a22ba45a6f58b77d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b80166eeee984661a611a02d1eae4458\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b91c8359a6444497b3665e66afbe237d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ba9c1cd3cfe04add90aa2edf2aa87378\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"bab8f16e038b440a8016ef087ee12904\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bc4b72ff74d84c9e83b328e8823044b1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c4da9fed45254ebdaa49312f16d9b159\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_53a2b78a732c4522805de5c9aed92c41\",\n      \"value\": \" 276/276 [00:00&lt;00:00, 14.5kB/s]\"\n     }\n    },\n    \"bee7c0220d4e476dbc035fbc5dc44fa3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bfd7d35860c14dd3b8e5eea07032311d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b91c8359a6444497b3665e66afbe237d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1181117783fd4bca9d7f5f296507aff3\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"c0145fad2cb843e9b75ac47d307cc346\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_e515df89088042dbbe23594e5976e10d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_0dccf470d87f4585af65826582399466\",\n      \"value\": \" 548/548 [00:00&lt;00:00, 21.8kB/s]\"\n     }\n    },\n    \"c1d24cb7607c44b989774113a2baf675\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c813a6f6ce09424582c06a3ac8a7d712\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"value\": \" 29.0/29.0 [00:00&lt;00:00, 1.06kB/s]\"\n     }\n    },\n    \"c24b174369fb48cdbc3d4afaa4cceccb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"c497cc2cfabb451aad71f5d7b19873e4\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c4da9fed45254ebdaa49312f16d9b159\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c7896f62a30f4eec95e3c84aef08e1b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"c813a6f6ce09424582c06a3ac8a7d712\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9144705a33848a6b142f9887da6ac49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9bf7b5808f74db9811f5b64e878dcd5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_2a59b752f9414e69b8c1d24bd24159f2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"value\": \"Downloading (…)lve/main/config.json: 100%\"\n     }\n    },\n    \"cbd776799c18488eb74a8f17cc27c6fd\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"cccbdce89ff545f6a66304352b320ad7\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"cdbf6c3b5b3948229946fd51c227b51e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_cccbdce89ff545f6a66304352b320ad7\",\n      \"max\": 3465946427,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_cbd776799c18488eb74a8f17cc27c6fd\",\n      \"value\": 3465946427\n     }\n    },\n    \"d132ff798f284c9cbe2a73d35d776592\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b1cd7728deff4d50a18cb22805351330\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"value\": \" 3.47G/3.47G [00:19&lt;00:00, 179MB/s]\"\n     }\n    },\n    \"d26e50974c52452389c5abb001056546\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d26f522a28d24494914df1dd8432af49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d403f126d48746948c0f627dfdce5d65\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"d41e81f720f44b52b9a914e4c619bfee\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d61e0c79febd45c8b00e3566296d7e8e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d652cdca44e04070a420c5d1a24b4fd1\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_941a345ba82a44d5ad597a15c0af0d5c\",\n      \"max\": 268943,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_23afbee21a644745b24b8ffefed6b286\",\n      \"value\": 268943\n     }\n    },\n    \"ddd59aac5a5d48ceace9ede35bf8f11b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7fb466a306e6443287cb2fa2bea90f06\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1b2b45ecc27b4f28bc0194709fed0638\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"e515df89088042dbbe23594e5976e10d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb405f797a1441d280029e6e203befce\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb4bdd1ff3cf4b0db273c53e32cad5de\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ebfa4ba9f18b4945947d326581d3b8e9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ed9f5d147e7844a187d8610130f1ecd9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26f522a28d24494914df1dd8432af49\",\n      \"max\": 3524,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"value\": 3524\n     }\n    },\n    \"ee0cb4c1f31346b5b180a7b826688eb4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"value\": \" 335/335 [00:00&lt;00:00, 11.3kB/s]\"\n     }\n    },\n    \"f19d9d34c978402691a89114849d2bb9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f2b466617f0247638e0934c8fe95ed1d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f51192579d014a52b132f99abf8901b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"f607835a7acf4037821885704bde736d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ddd59aac5a5d48ceace9ede35bf8f11b\",\n       \"IPY_MODEL_20e14c8de0f84979ac3f0d896263f49d\",\n       \"IPY_MODEL_4d7c3ea23e9b42a2ba5b0b11ee190c69\"\n      ],\n      \"layout\": \"IPY_MODEL_5d9e4fd05f964fd7a11d66b964ea0873\"\n     }\n    },\n    \"f9b28a5fbcd14568983ed36f9a1ca997\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"faf78b2739f841d8a213e4311926b598\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_028ec097e62b4ee8a463708f4c3b8f24\",\n      \"value\": \" 4.92M/4.92M [00:00&lt;00:00, 41.4MB/s]\"\n     }\n    },\n    \"fb908d9c3e374983aa47478a95411ba7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"fba6bb8f65904ae6ae4f5bca95e942e2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bab8f16e038b440a8016ef087ee12904\",\n      \"value\": \" 2863/2863 [01:03&lt;00:00, 45.98it/s]\"\n     }\n    },\n    \"fd1e236692ec43a18a1750a29515050d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_7b3c48ae548848c880439841c0b9cb6b\",\n       \"IPY_MODEL_1023013dc30a4731b61383bd59f2dc91\",\n       \"IPY_MODEL_ee0cb4c1f31346b5b180a7b826688eb4\"\n      ],\n      \"layout\": \"IPY_MODEL_0f7a38ddfe7b42eaa5c8ffdb3c150641\"\n     }\n    },\n    \"fda75dc7c2d24f7b827b2c78a6988586\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2d1a48d240b949ad9b465985e90557c5\",\n       \"IPY_MODEL_5a0f5ba8ad024f5b915e34e48f269437\",\n       \"IPY_MODEL_bc4b72ff74d84c9e83b328e8823044b1\"\n      ],\n      \"layout\": \"IPY_MODEL_901f4ebc70f144c188d03a4978920441\"\n     }\n    },\n    \"fead01a1a86c40bcb1ba9133ef351d7c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ff6cd33dca3c44ba9832b2d705fd2de1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW07/HW07_Sample_Code_zh.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xvSGDbExff_I\"\n   },\n   \"source\": [\n    \"# 作业 - Bert (Extractive Question Answering)\\n\",\n    \"\\n\",\n    \"> 镜像自李宏毅老师 2023 年机器学习春的作业 7，原链接：[ML2023_HW7_Question_Answering](https://colab.research.google.com/drive/1m0fQjJfkK9vAovxPj9Nd3-hQuxezB2w1)\\n\",\n    \">\\n\",\n    \"> 延伸文章：[22a. 微调 LLM：实现抽取式问答](https://github.com/Hoper-J/AI-Guide-and-Demos-zh_CN/blob/master/Guide/22a.%20微调%20LLM：实现抽取式问答.md)\\n\",\n    \"\\n\",\n    \"请根据**提示**完成相应的代码修改，从而达到学习的目的。\\n\",\n    \"\\n\",\n    \"[作业 PPT](https://github.com/Hoper-J/AI-Guide-and-Demos-zh_CN/blob/master/Demos/PDF/HW_BERT_Question_Answering.pdf) | [Kaggle 加入链接](https://www.kaggle.com/t/e001cad568dc4d77b6a5e762172f44d6)\\n\",\n    \"\\n\",\n    \"在线链接：[Kaggle](https://www.kaggle.com/code/aidemos/21-bert) | [Colab](https://colab.research.google.com/drive/1zHR2Cztmo49j3yrdT3GgkzNcAcHd7M0M?usp=sharing)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"## 作业提示\\n\",\n    \"\\n\",\n    \"> 如果理解了每个提示到底需要做什么，那么恭喜你已经完成了学习。\\n\",\n    \">\\n\",\n    \"> 搜索代码文件中的 TODO 可以快速索引到需要修改的地方。\\n\",\n    \"\\n\",\n    \"- **Simple baseline**\\n\",\n    \"  - 直接运行当前代码文件\\n\",\n    \"- **Medium baseline**\\n\",\n    \"  - 使用学习率调度器：线性衰减，warmup 等，选择一个即可\\n\",\n    \"- **Strong baseline**\\n\",\n    \"  - 修改模型的预处理过程 (TODO: Preprocessing)\\n\",\n    \"  - 尝试替换为其他预训练模型，在 [Hugging Face](https://huggingface.co/models?language=zh&sort=trending) 中进行选择\\n\",\n    \"- **Boss baseline**\\n\",\n    \"  - 修改后处理部分 (TODO: Postprocessing)\\n\",\n    \"  - 尝试梯度累积\\n\",\n    \"\\n\",\n    \"## Kaggle 加入“比赛”\\n\",\n    \"\\n\",\n    \"访问 [Kaggle 加入链接](https://www.kaggle.com/t/e001cad568dc4d77b6a5e762172f44d6)，点击右上角的 `Late Submission`，然后点击 `I Understand and Accept` 同意：\\n\",\n    \"\\n\",\n    \"![image-20241110191905666](https://github.com/Hoper-J/AI-Guide-and-Demos-zh_CN/blob/master/Guide/assets/image-20241110191905666.png?raw=1)\\n\",\n    \"\\n\",\n    \"样例代码运行后会生成文件：`result.csv`，如果想要提交查看分数，再次点击 `Late Submission`，上传后点击提交：\\n\",\n    \"\\n\",\n    \"![image-20241110192134533](https://github.com/Hoper-J/AI-Guide-and-Demos-zh_CN/blob/master/Guide/assets/image-20241110192134533.png?raw=1)\\n\",\n    \"\\n\",\n    \"你可以在 `Submissions` 中看到自己的提交成绩：\\n\",\n    \"\\n\",\n    \"![image-20241110192753327](https://github.com/Hoper-J/AI-Guide-and-Demos-zh_CN/blob/master/Guide/assets/image-20241110192753327.png?raw=1)\\n\",\n    \"\\n\",\n    \"> [!note]\\n\",\n    \">\\n\",\n    \"> 在评估效果时最好仅参考 Public Score，Private Score 是测试集上的分数，因为比赛已经过了Deadline，所以显示了出来，比赛进行的过程中这个分数是隐藏的。\\n\",\n    \"\\n\",\n    \"点击 `Leaderboard` 你将能够看到曾经参与者的成绩：\\n\",\n    \"\\n\",\n    \"![image-20241110192649655](https://github.com/Hoper-J/AI-Guide-and-Demos-zh_CN/blob/master/Guide/assets/image-20241110192649655.png?raw=1)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"## 任务目标：中文抽取式问答\\n\",\n    \"\\n\",\n    \"学习如何使用 transformers 微调预训练模型，以完成下游抽取式问答任务。\\n\",\n    \"\\n\",\n    \"- **任务描述**: 通过 fine-tune BERT 模型，使其能够从给定的段落中抽取出问题的具体答案。\\n\",\n    \"  - **目标**: 模型将预测答案的开始（Start）和结束（End）位置，并从文本中提取该片段作为答案。\\n\",\n    \"    \\n\",\n    \"    ![image-20240920002112364](https://github.com/Hoper-J/AI-Guide-and-Demos-zh_CN/blob/master/Guide/assets/e6a56c94334632bae17b286f42264de4.png?raw=1)\\n\",\n    \"    \\n\",\n    \"  - **输入**: 段落 + 问题\\n\",\n    \"  - **输出**: 答案\\n\",\n    \" \\n\",\n    \"- **TODO**\\n\",\n    \"  - 微调预训练的中文 BERT 模型\\n\",\n    \"  - 调整超参数（如 `doc_stride`）\\n\",\n    \"  - 应用线性学习率衰减策略\\n\",\n    \"  - 尝试其他预训练模型\\n\",\n    \"  - 改进数据的预处理（preprocessing）\\n\",\n    \"  - 改进模型的后处理（postprocessing）\\n\",\n    \"\\n\",\n    \"- **训练技巧**\\n\",\n    \"  - 自动混合精度（Automatic Mixed Precision）\\n\",\n    \"  - 梯度累积（Gradient Accumulation）\\n\",\n    \"  - 集成方法（Ensemble）\\n\",\n    \"\\n\",\n    \"- **预计训练时间**（在 Tesla T4 上启用自动混合精度时的运行时间）：\\n\",\n    \"  - Simple baseline：8 分钟\\n\",\n    \"  - Medium baseline：8 分钟\\n\",\n    \"  - Strong baseline：25 分钟\\n\",\n    \"  - Boss baseline：2 小时\\n\",\n    \"\\n\",\n    \"## 性能指标（EM）\\n\",\n    \"\\n\",\n    \"- **准确率 (Exact Match)**: 该指标用于衡量模型的预测答案与真实答案**完全一致**的比例。\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NYAHsHNbzdKm\"\n   },\n   \"source\": [\n    \"## 前置准备\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TJ1fSAJE2oaC\"\n   },\n   \"source\": [\n    \"### 下载数据集\\n\",\n    \"\\n\",\n    \"#### Kaggle\\n\",\n    \"\\n\",\n    \"> To use the Kaggle API, sign up for a Kaggle account at [https://www.kaggle.com](https://www.kaggle.com/). Then go to the 'Account' tab of your user profile (`https://www.kaggle.com/<username>/account`) and select 'Create API Token'. This will trigger the download of `kaggle.json`, a file containing your API credentials. Place this file in the location `~/.kaggle/kaggle.json` (on Windows in the location `C:\\\\Users\\\\<Windows-username>\\\\.kaggle\\\\kaggle.json` - you can check the exact location, sans drive, with `echo %HOMEPATH%`). You can define a shell environment variable `KAGGLE_CONFIG_DIR` to change this location to `$KAGGLE_CONFIG_DIR/kaggle.json` (on Windows it will be `%KAGGLE_CONFIG_DIR%\\\\kaggle.json`).\\n\",\n    \">\\n\",\n    \"> -\\\\- [Official Kaggle API](https://github.com/Kaggle/kaggle-api)\\n\",\n    \"\\n\",\n    \"替换\\\\<username\\\\>为你自己的用户名，`https://www.kaggle.com/<username>/account`，然后点击 `Create New API Token`，将下载下来的文件放去应该放的位置：\\n\",\n    \"\\n\",\n    \"- Mac 和 Linux 放在 `~/.kaggle`\\n\",\n    \"- Windows 放在 `C:\\\\Users\\\\<Windows-username>\\\\.kaggle`\\n\",\n    \"\\n\",\n    \"```bash\\n\",\n    \"pip install kaggle\\n\",\n    \"# 你需要先在 Kaggle -> Account -> Create New API Token 中下载 kaggle.json\\n\",\n    \"# mv kaggle.json ~/.kaggle/kaggle.json\\n\",\n    \"kaggle competitions download -c ml2023spring-hw7\\n\",\n    \"unzip ml2023spring-hw7.zip   \\n\",\n    \"```\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"YPrc4Eie9Yo5\",\n    \"outputId\": \"1640c875-58d1-4288-e382-e9fa9db39b9f\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 或者通过以下命令进行下载\\n\",\n    \"!wget https://github.com/Hoper-J/HUNG-YI_LEE_Machine-Learning_Homework/raw/refs/heads/master/HW07/ml2023spring-hw7.zip\\n\",\n    \"!unzip ml2023spring-hw7.zip\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TevOvhC03m0h\"\n   },\n   \"source\": [\n    \"### 安装库 \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"tbxWFX_jpDom\",\n    \"outputId\": \"138488c2-96fa-4c41-d450-9d0a1b74f36c\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"!pip install transformers\\n\",\n    \"!pip install accelerate\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"XapBp31gytyD\"\n   },\n   \"source\": [\n    \"## 开始微调\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"8dKM4yCh4LI_\"\n   },\n   \"source\": [\n    \"### 导入包\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"WOTHHtWJoahe\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import numpy as np\\n\",\n    \"import random\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, Dataset\\n\",\n    \"from transformers import AdamW\\n\",\n    \"\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# 为了可重复性，固定随机数种子\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"    torch.manual_seed(seed)\\n\",\n    \"    if torch.cuda.is_available():\\n\",\n    \"        torch.cuda.manual_seed(seed)\\n\",\n    \"        torch.cuda.manual_seed_all(seed)\\n\",\n    \"    np.random.seed(seed)\\n\",\n    \"    random.seed(seed)\\n\",\n    \"    torch.backends.cudnn.benchmark = False\\n\",\n    \"    torch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(42)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2YgXHuVLp_6j\"\n   },\n   \"source\": [\n    \"### 加载模型和分词器\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 220,\n     \"referenced_widgets\": [\n      \"641665cb9ec6433a81719d57eeaf8298\",\n      \"ba9c1cd3cfe04add90aa2edf2aa87378\",\n      \"1e20837bf23548249678da0a07745d58\",\n      \"c1d24cb7607c44b989774113a2baf675\",\n      \"c9144705a33848a6b142f9887da6ac49\",\n      \"ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"d26e50974c52452389c5abb001056546\",\n      \"9eefbb580f0146658d18658f210d3a67\",\n      \"c813a6f6ce09424582c06a3ac8a7d712\",\n      \"ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"8b264499afca4694849b08e2091f6826\",\n      \"3eaf82623d964c2abb92b4509ac5ca9d\",\n      \"aa3ff7831fbf47efa404805886ca4696\",\n      \"6be63de77ed14eee9c37e93d3a75f743\",\n      \"5195ed241f09440eaf84a7e0b3dc8155\",\n      \"33fa92f225be477d8cd176a0a4e8894e\",\n      \"b80166eeee984661a611a02d1eae4458\",\n      \"20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"fb908d9c3e374983aa47478a95411ba7\",\n      \"304609dbefa74735baa08ce7aadff92d\",\n      \"250451c12cee4aacb91a32d7da4ab861\",\n      \"2c37badbe0504073b31abd67a8c0b808\",\n      \"bfd7d35860c14dd3b8e5eea07032311d\",\n      \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n      \"b0af063597ea4de5a8c8bf4f370f782a\",\n      \"5b1ac1a0f04f4c29b3c1127ec3d95e81\",\n      \"b91c8359a6444497b3665e66afbe237d\",\n      \"1181117783fd4bca9d7f5f296507aff3\",\n      \"941a345ba82a44d5ad597a15c0af0d5c\",\n      \"23afbee21a644745b24b8ffefed6b286\",\n      \"a075ee85c2d34ab3b2d011c63dc02286\",\n      \"052cccb5d69d476f9caac95848e0353a\"\n     ]\n    },\n    \"id\": \"xyBCYGjAp3ym\",\n    \"outputId\": \"81f25c6d-cd7f-4be1-e085-f8a54bd1c27d\",\n    \"scrolled\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import (\\n\",\n    \"  AutoTokenizer,\\n\",\n    \"  AutoModelForQuestionAnswering,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"model = AutoModelForQuestionAnswering.from_pretrained(\\\"bert-base-chinese\\\").to(device)\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"bert-base-chinese\\\")\\n\",\n    \"\\n\",\n    \"# 你可以忽略警告消息（它弹出是因为新的 QA 预测头是随机初始化的）\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3Td-GTmk5OW4\"\n   },\n   \"source\": [\n    \"## 数据部分\\n\",\n    \"\\n\",\n    \"> 使用两个繁体中文阅读理解数据集：[DRCD](https://github.com/DRCKnowledgeTeam/DRCD) 和 [ODSQA](https://github.com/Chia-Hsuan-Lee/ODSQA)。\\n\",\n    \"\\n\",\n    \"- **训练集（DRCD + DRCD-backtrans）**：包含 15,329 个段落和 26,918 个问题。一个段落可能对应多个问题。\\n\",\n    \"- **开发集（DRCD + DRCD-backtrans）**：包含 1,255 个段落和 2,863 个问题。用于验证。\\n\",\n    \"- **测试集（DRCD + ODSQA）**：包含 1,606 个段落和 3,504 个问题。测试集的段落没有提供答案，需要模型进行预测。\\n\",\n    \"\\n\",\n    \"所有数据集的格式相同：\\n\",\n    \"\\n\",\n    \"- `id`：问题编号\\n\",\n    \"- `paragraph_id`：段落编号\\n\",\n    \"- `question_text`：问题文本\\n\",\n    \"- `answer_text`：答案文本\\n\",\n    \"- `answer_start`：答案在段落中的起始字符位置\\n\",\n    \"- `answer_end`：答案在段落中的结束字符位置\\n\",\n    \"\\n\",\n    \"![数据集格式](https://github.com/Hoper-J/AI-Guide-and-Demos-zh_CN/blob/master/Guide/assets/4215768313590de87aab01adcad78c90.png?raw=1)\\n\",\n    \"\\n\",\n    \"### 读取数据\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"NvX7hlepogvu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def read_data(file):\\n\",\n    \"    with open(file, 'r', encoding=\\\"utf-8\\\") as reader:\\n\",\n    \"        data = json.load(reader)\\n\",\n    \"    return data[\\\"questions\\\"], data[\\\"paragraphs\\\"]\\n\",\n    \"\\n\",\n    \"train_questions, train_paragraphs = read_data(\\\"hw7_train.json\\\")\\n\",\n    \"dev_questions, dev_paragraphs = read_data(\\\"hw7_dev.json\\\")\\n\",\n    \"test_questions, test_paragraphs = read_data(\\\"hw7_test.json\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Fm0rpTHq0e4N\"\n   },\n   \"source\": [\n    \"### 分词处理\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"rTZ6B70Hoxie\",\n    \"outputId\": \"db13805e-02a9-4cbe-e6d2-66c0e3860c2b\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 分别对问题和段落进行分词\\n\",\n    \"# 「add_special_tokens」设置为 False，因为在数据集的 __getitem__ 中，当合并分词后的问题和段落时会添加特殊标记\\n\",\n    \"\\n\",\n    \"train_questions_tokenized = tokenizer([train_question[\\\"question_text\\\"] for train_question in train_questions], add_special_tokens=False)\\n\",\n    \"dev_questions_tokenized = tokenizer([dev_question[\\\"question_text\\\"] for dev_question in dev_questions], add_special_tokens=False)\\n\",\n    \"test_questions_tokenized = tokenizer([test_question[\\\"question_text\\\"] for test_question in test_questions], add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"train_paragraphs_tokenized = tokenizer(train_paragraphs, add_special_tokens=False)\\n\",\n    \"dev_paragraphs_tokenized = tokenizer(dev_paragraphs, add_special_tokens=False)\\n\",\n    \"test_paragraphs_tokenized = tokenizer(test_paragraphs, add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"# 你可以忽略警告消息，因为在传递给模型之前，将在数据集的 __getitem__ 中进一步处理分词后的序列\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ws8c8_4d5UCI\"\n   },\n   \"source\": [\n    \"### 数据集（Medium / Strong 相关）\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"Xjooag-Swnuh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class QA_Dataset(Dataset):\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    自定义的问答数据集类，用于处理问答任务的数据。\\n\",\n    \"\\n\",\n    \"    参数：\\n\",\n    \"    - split (str): 数据集的类型，'train'、'dev' 或 'test'。\\n\",\n    \"    - questions (list): 问题列表，每个元素是一个字典，包含问题的详细信息。\\n\",\n    \"    - tokenized_questions (BatchEncoding): 分词后的问题，由 tokenizer 生成。\\n\",\n    \"    - tokenized_paragraphs (BatchEncoding): 分词后的段落列表，由 tokenizer 生成。\\n\",\n    \"    \\n\",\n    \"    属性（即 __init_() 中的 self.xxx）：\\n\",\n    \"    - max_question_len (int): 问题的最大长度（以分词后的 token 数计）。\\n\",\n    \"    - max_paragraph_len (int): 段落的最大长度（以分词后的 token 数计）。\\n\",\n    \"    - doc_stride (int): 段落窗口滑动步长。\\n\",\n    \"    - max_seq_len (int): 输入序列的最大长度。\\n\",\n    \"    \\\"\\\"\\\"\\n\",\n    \"    def __init__(self, split, questions, tokenized_questions, tokenized_paragraphs):\\n\",\n    \"        self.split = split\\n\",\n    \"        self.questions = questions\\n\",\n    \"        self.tokenized_questions = tokenized_questions\\n\",\n    \"        self.tokenized_paragraphs = tokenized_paragraphs\\n\",\n    \"        self.max_question_len = 60\\n\",\n    \"        self.max_paragraph_len = 150\\n\",\n    \"\\n\",\n    \"        ##### TODO: 更改 doc_stride 的值 #####\\n\",\n    \"        self.doc_stride = 150\\n\",\n    \"\\n\",\n    \"        # 输入序列长度 = [CLS] + question + [SEP] + paragraph + [SEP]\\n\",\n    \"        self.max_seq_len = 1 + self.max_question_len + 1 + self.max_paragraph_len + 1\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        返回数据集中样本的数量。\\n\",\n    \"\\n\",\n    \"        返回：\\n\",\n    \"        - (int): 数据集的长度。\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        return len(self.questions)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        获取数据集中指定索引的样本。\\n\",\n    \"\\n\",\n    \"        参数：\\n\",\n    \"        - idx (int): 样本的索引。\\n\",\n    \"\\n\",\n    \"        返回：\\n\",\n    \"        - 对于训练集，返回一个输入张量和对应的答案位置：\\n\",\n    \"          (input_ids, token_type_ids, attention_mask, answer_start_token, answer_end_token)\\n\",\n    \"        - 对于验证和测试集，返回包含多个窗口的输入张量列表：\\n\",\n    \"          (input_ids_list, token_type_ids_list, attention_mask_list)\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        question = self.questions[idx]\\n\",\n    \"        tokenized_question = self.tokenized_questions[idx]\\n\",\n    \"        tokenized_paragraph = self.tokenized_paragraphs[question[\\\"paragraph_id\\\"]]\\n\",\n    \"\\n\",\n    \"        ##### TODO: 预处理 #####\\n\",\n    \"        # 提示：思考怎么防止模型学习到不应该学习的东西\\n\",\n    \"        if self.split == \\\"train\\\":\\n\",\n    \"            # 将答案在段落文本中的起始/结束位置转换为在分词后段落中的起始/结束位置\\n\",\n    \"            answer_start_token = tokenized_paragraph.char_to_token(question[\\\"answer_start\\\"])\\n\",\n    \"            answer_end_token = tokenized_paragraph.char_to_token(question[\\\"answer_end\\\"])\\n\",\n    \"\\n\",\n    \"            # 通过切片包含答案的段落部分来获得一个窗口\\n\",\n    \"            mid = (answer_start_token + answer_end_token) // 2\\n\",\n    \"            paragraph_start = max(0, min(mid - self.max_paragraph_len // 2, len(tokenized_paragraph) - self.max_paragraph_len))\\n\",\n    \"            paragraph_end = paragraph_start + self.max_paragraph_len\\n\",\n    \"\\n\",\n    \"            # 切片问题/段落并添加特殊标记（101：CLS，102：SEP）\\n\",\n    \"            input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"            input_ids_paragraph = tokenized_paragraph.ids[paragraph_start : paragraph_end] + [102]\\n\",\n    \"\\n\",\n    \"            # 将答案在分词后段落中的起始/结束位置转换为窗口中的起始/结束位置\\n\",\n    \"            answer_start_token += len(input_ids_question) - paragraph_start\\n\",\n    \"            answer_end_token += len(input_ids_question) - paragraph_start\\n\",\n    \"\\n\",\n    \"            # 填充序列并获取模型的输入\\n\",\n    \"            input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"            return torch.tensor(input_ids), torch.tensor(token_type_ids), torch.tensor(attention_mask), answer_start_token, answer_end_token\\n\",\n    \"\\n\",\n    \"        # 验证/测试\\n\",\n    \"        else:\\n\",\n    \"            input_ids_list, token_type_ids_list, attention_mask_list = [], [], []\\n\",\n    \"\\n\",\n    \"            # 段落被分割成多个窗口，每个窗口的起始位置由步长 \\\"doc_stride\\\" 分隔\\n\",\n    \"            for i in range(0, len(tokenized_paragraph), self.doc_stride):\\n\",\n    \"\\n\",\n    \"                # 切片问题/段落并添加特殊标记（101：CLS，102：SEP）\\n\",\n    \"                input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"                input_ids_paragraph = tokenized_paragraph.ids[i : i + self.max_paragraph_len] + [102]\\n\",\n    \"\\n\",\n    \"                # 填充序列并获取模型的输入\\n\",\n    \"                input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"\\n\",\n    \"                input_ids_list.append(input_ids)\\n\",\n    \"                token_type_ids_list.append(token_type_ids)\\n\",\n    \"                attention_mask_list.append(attention_mask)\\n\",\n    \"\\n\",\n    \"            return torch.tensor(input_ids_list), torch.tensor(token_type_ids_list), torch.tensor(attention_mask_list)\\n\",\n    \"\\n\",\n    \"    def padding(self, input_ids_question, input_ids_paragraph):\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        对输入的序列进行填充，生成统一长度的模型输入。\\n\",\n    \"\\n\",\n    \"        参数：\\n\",\n    \"        - input_ids_question (list): 问题部分的输入 ID 列表。\\n\",\n    \"        - input_ids_paragraph (list): 段落部分的输入 ID 列表。\\n\",\n    \"\\n\",\n    \"        返回：\\n\",\n    \"        - input_ids (list): 填充后的输入 ID 列表。\\n\",\n    \"        - token_type_ids (list): 区分问题和段落的标记列表。\\n\",\n    \"        - attention_mask (list): 注意力掩码列表，指示哪些位置是有效的输入。\\n\",\n    \"        \\\"\\\"\\\"\\n\",\n    \"        # 计算需要填充的长度\\n\",\n    \"        padding_len = self.max_seq_len - len(input_ids_question) - len(input_ids_paragraph)\\n\",\n    \"        # 填充输入序列\\n\",\n    \"        input_ids = input_ids_question + input_ids_paragraph + [0] * padding_len\\n\",\n    \"        # 构造区分问题和段落的 token_type_ids\\n\",\n    \"        token_type_ids = [0] * len(input_ids_question) + [1] * len(input_ids_paragraph) + [0] * padding_len\\n\",\n    \"        # 构造注意力掩码，有效位置为 1，填充位置为 0\\n\",\n    \"        attention_mask = [1] * (len(input_ids_question) + len(input_ids_paragraph)) + [0] * padding_len\\n\",\n    \"\\n\",\n    \"        return input_ids, token_type_ids, attention_mask\\n\",\n    \"\\n\",\n    \"train_set = QA_Dataset(\\\"train\\\", train_questions, train_questions_tokenized, train_paragraphs_tokenized)\\n\",\n    \"dev_set = QA_Dataset(\\\"dev\\\", dev_questions, dev_questions_tokenized, dev_paragraphs_tokenized)\\n\",\n    \"test_set = QA_Dataset(\\\"test\\\", test_questions, test_questions_tokenized, test_paragraphs_tokenized)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"> 这里解释一下QA_Dataset，如果觉得太长，可以只查看重点部分。\\n\",\n    \"\\n\",\n    \"1. **初始化（`__init__`）**：\\n\",\n    \"   - `split` 决定数据集的类型（训练、验证或测试）。\\n\",\n    \"   - `questions`, `tokenized_questions`, 和 `tokenized_paragraphs` 是原问题和 tokenized 后的问题和段落。\\n\",\n    \"   - `max_question_len` 和 `max_paragraph_len` 分别设定了问题和段落的最大长度。\\n\",\n    \"   - `self.doc_stride`：段落的窗口滑动步长（决定每个窗口之间的重叠部分）。\\n\",\n    \"     - `Sample code` 中将其设置为 150，和 `max_paragraph_len` 一样，意味着窗口之间完全不重叠。\\n\",\n    \"   - `self.max_seq_len`：定义了整个输入序列的最大长度（包含问题和段落）。\\n\",\n    \"\\n\",\n    \"2. **`__getitem__`**：\\n\",\n    \"   - 针对给定的索引 `idx`，获取对应问题和段落数据，返回模型需要的输入。\\n\",\n    \"   - **训练集**：定位答案的起始和结束位置，将包含答案的段落部分截取为一个窗口（中心在答案位置附近）。然后将问题和段落合并为一个输入序列，并进行填充。\\n\",\n    \"   - **验证/测试集**：将段落分成多个窗口，每个窗口之间的步长由 `self.doc_stride` 决定，然后将每个窗口作为模型的输入。验证和测试时不需要答案位置，因此只需生成多个窗口作为输入。\\n\",\n    \"\\n\",\n    \"3. **填充（`padding`）**：\\n\",\n    \"   - 输入序列可能比最大序列长度短，填充部分用 0 表示。对于问题部分和段落部分，`token_type_ids` 被用来区分它们（0 表示问题，1 表示段落）。`attention_mask` 用于标记有效的输入部分，防止模型对填充部分进行注意力计算。\\n\",\n    \"\\n\",\n    \"#### 重点\\n\",\n    \"\\n\",\n    \"- `self.doc_stride` 通过控制窗口之间的滑动步长，确保即使答案位于窗口边缘，模型也能通过多个窗口重叠的方式找到答案。\\n\",\n    \"- **训练阶段**不需要使用 `doc_stride`，因为训练时我们已经知道答案的位置，可以直接截取包含答案的窗口。但在**验证和测试**阶段，由于模型并不知道答案的位置，`doc_stride` 保证每个窗口之间有足够的重叠，避免遗漏答案。\\n\",\n    \"- 所以这里存在一个问题，训练过程中模型可能学习到：答案就在中间这一模式。这是我们在 Strong baseline 中需要解决的。\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5_H1kqhR8CdM\"\n   },\n   \"source\": [\n    \"### 评估函数\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"SqeA3PLPxOHu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def evaluate(data, output):\\n\",\n    \"    ##### TODO: 后处理 #####\\n\",\n    \"    # 后处理存在一个错误和改进的空间\\n\",\n    \"    # 提示：打开你的预测文件，看看有什么问题\\n\",\n    \"\\n\",\n    \"    answer = ''\\n\",\n    \"    max_prob = float('-inf')\\n\",\n    \"    num_of_windows = data[0].shape[1]\\n\",\n    \"\\n\",\n    \"    for k in range(num_of_windows):\\n\",\n    \"        # 通过选择最可能的起始位置/结束位置来获得答案\\n\",\n    \"        start_prob, start_index = torch.max(output.start_logits[k], dim=0)\\n\",\n    \"        end_prob, end_index = torch.max(output.end_logits[k], dim=0)\\n\",\n    \"\\n\",\n    \"        # 答案的概率计算为 start_prob 和 end_prob 的和\\n\",\n    \"        prob = start_prob + end_prob\\n\",\n    \"\\n\",\n    \"        # 如果计算的概率大于之前的窗口，则替换答案\\n\",\n    \"        if prob > max_prob:\\n\",\n    \"            max_prob = prob\\n\",\n    \"            # 将标记转换为字符（例如，[1920, 7032] --> \\\"大 金\\\"）\\n\",\n    \"            answer = tokenizer.decode(data[0][0][k][start_index : end_index + 1])\\n\",\n    \"\\n\",\n    \"    # 移除答案中的空格（例如，\\\"大 金\\\" --> \\\"大金\\\"）\\n\",\n    \"    return answer.replace(' ','')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rzHQit6eMnKG\"\n   },\n   \"source\": [\n    \"### 训练\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 778,\n     \"referenced_widgets\": [\n      \"53c1ce79c38b45fc8d1b675515642c54\",\n      \"9370d0df1bca4b9a9c15e1d3e10142d9\",\n      \"611f0f0c70a5471b891bd6f6b8cb7863\",\n      \"986b627aef004704ac0806a9aa189938\",\n      \"f2b466617f0247638e0934c8fe95ed1d\",\n      \"f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"04c0aa3d24944485b475601f786b56f1\",\n      \"78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"7c61a280288d4608b6ef341ce3adb7a8\",\n      \"8710bb7686df4fb3a73e5af839be5305\",\n      \"c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"29a7b6bb49004c3c96a6d48cd55e1ec3\",\n      \"06e4e53bd3e748ad90d14eeec117aac9\",\n      \"6a47a3bc614a44e7a5b0dfef50cadaf7\",\n      \"fba6bb8f65904ae6ae4f5bca95e942e2\",\n      \"6d5ad2f51bb3459b85201f983a499ea2\",\n      \"9c7a21dc260a4ad7b87f2123947058a2\",\n      \"7b7a0c46d9794d6fa66401f03684dec0\",\n      \"11dcde71ff984d829ec9612e7f43e3a3\",\n      \"a987cb79f4904973958a98f492c6443a\",\n      \"8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"bab8f16e038b440a8016ef087ee12904\"\n     ]\n    },\n    \"id\": \"3Q-B6ka7xoCM\",\n    \"outputId\": \"69c6f306-8a93-4b59-a64d-41f55889a6e6\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from accelerate import Accelerator\\n\",\n    \"\\n\",\n    \"# 超参数\\n\",\n    \"num_epoch = 1\\n\",\n    \"validation = True\\n\",\n    \"logging_step = 100\\n\",\n    \"learning_rate = 1e-5\\n\",\n    \"optimizer = AdamW(model.parameters(), lr=learning_rate)\\n\",\n    \"train_batch_size = 8\\n\",\n    \"\\n\",\n    \"#### TODO: 梯度累积（可选）####\\n\",\n    \"# 注意：train_batch_size * gradient_accumulation_steps = 有效批次大小\\n\",\n    \"# 如果 CUDA 内存不足，你可以降低 train_batch_size 并提高 gradient_accumulation_steps\\n\",\n    \"# 文档：https://huggingface.co/docs/accelerate/usage_guides/gradient_accumulation\\n\",\n    \"gradient_accumulation_steps = 16\\n\",\n    \"\\n\",\n    \"# 数据加载器\\n\",\n    \"# 注意：不要更改 dev_loader / test_loader 的批次大小！\\n\",\n    \"# 虽然批次大小=1，但它实际上是由同一对 QA 的多个窗口组成的批次\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=train_batch_size, shuffle=True, pin_memory=True)\\n\",\n    \"dev_loader = DataLoader(dev_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"\\n\",\n    \"# 将 \\\"fp16_training\\\" 更改为 True 以支持自动混合精度训练（fp16）\\n\",\n    \"fp16_training = True\\n\",\n    \"if fp16_training:\\n\",\n    \"    accelerator = Accelerator(mixed_precision=\\\"fp16\\\")\\n\",\n    \"else:\\n\",\n    \"    accelerator = Accelerator()\\n\",\n    \"\\n\",\n    \"# 文档：https://huggingface.co/docs/accelerate/\\n\",\n    \"model, optimizer, train_loader = accelerator.prepare(model, optimizer, train_loader)\\n\",\n    \"\\n\",\n    \"model.train()\\n\",\n    \"\\n\",\n    \"print(\\\"开始训练...\\\")\\n\",\n    \"\\n\",\n    \"for epoch in range(num_epoch):\\n\",\n    \"    step = 1\\n\",\n    \"    train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    for data in tqdm(train_loader):\\n\",\n    \"        # 将所有数据加载到设备\\n\",\n    \"        data = [i.to(device) for i in data]\\n\",\n    \"\\n\",\n    \"        # 模型输入：input_ids, token_type_ids, attention_mask, start_positions, end_positions（注意：只有 \\\"input_ids\\\" 是必需的）\\n\",\n    \"        # 模型输出：start_logits, end_logits, loss（提供 start_positions/end_positions 时返回）\\n\",\n    \"        output = model(input_ids=data[0], token_type_ids=data[1], attention_mask=data[2], start_positions=data[3], end_positions=data[4])\\n\",\n    \"        # 选择最可能的起始位置/结束位置\\n\",\n    \"        start_index = torch.argmax(output.start_logits, dim=1)\\n\",\n    \"        end_index = torch.argmax(output.end_logits, dim=1)\\n\",\n    \"\\n\",\n    \"        # 只有当 start_index 和 end_index 都正确时，预测才正确\\n\",\n    \"        train_acc += ((start_index == data[3]) & (end_index == data[4])).float().mean()\\n\",\n    \"\\n\",\n    \"        train_loss += output.loss\\n\",\n    \"\\n\",\n    \"        accelerator.backward(output.loss)\\n\",\n    \"\\n\",\n    \"        step += 1\\n\",\n    \"        optimizer.step()\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        ##### TODO: 应用线性学习率衰减 #####\\n\",\n    \"\\n\",\n    \"        # 每经过 logging_step，打印训练损失和准确率\\n\",\n    \"        if step % logging_step == 0:\\n\",\n    \"            print(f\\\"Epoch {epoch + 1} | Step {step} | loss = {train_loss.item() / logging_step:.3f}, acc = {train_acc / logging_step:.3f}\\\")\\n\",\n    \"            train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    if validation:\\n\",\n    \"        print(\\\"评估开发集...\\\")\\n\",\n    \"        model.eval()\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            dev_acc = 0\\n\",\n    \"            for i, data in enumerate(tqdm(dev_loader)):\\n\",\n    \"                output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"                # 只有当答案文本完全匹配时，预测才正确\\n\",\n    \"                dev_acc += evaluate(data, output) == dev_questions[i][\\\"answer_text\\\"]\\n\",\n    \"            print(f\\\"Validation | Epoch {epoch + 1} | acc = {dev_acc / len(dev_loader):.3f}\\\")\\n\",\n    \"        model.train()\\n\",\n    \"\\n\",\n    \"# 将模型及其配置文件保存到目录「saved_model」\\n\",\n    \"# 即，在目录「saved_model」下有两个文件：「pytorch_model.bin」和「config.json」\\n\",\n    \"# 可以使用「model = BertForQuestionAnswering.from_pretrained(\\\"saved_model\\\")」重新加载保存的模型\\n\",\n    \"print(\\\"保存模型...\\\")\\n\",\n    \"model_save_dir = \\\"saved_model\\\"\\n\",\n    \"model.save_pretrained(model_save_dir)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"kMmdLOKBMsdE\"\n   },\n   \"source\": [\n    \"### 测试\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 84,\n     \"referenced_widgets\": [\n      \"9c84cbc758db46e78d7fa361a385ccce\",\n      \"642db3bee97a4bea8a4c1079e2b7526c\",\n      \"ed9f5d147e7844a187d8610130f1ecd9\",\n      \"42dd646b18b24deda274c857d337c973\",\n      \"9e2635394d5b4965b41a05a9bc37a4ec\",\n      \"3366101d46a847dfa5700ffb652dcc86\",\n      \"a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"d26f522a28d24494914df1dd8432af49\",\n      \"c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"a0f74d882c63403c8116c19745e011ba\",\n      \"55a7b680dae94cba8758288dacff2988\"\n     ]\n    },\n    \"id\": \"U5scNKC9xz0C\",\n    \"outputId\": \"841c70f2-2f3c-4c0f-866e-143f127eb6b5\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"print(\\\"评估测试集...\\\")\\n\",\n    \"\\n\",\n    \"result = []\\n\",\n    \"\\n\",\n    \"model.eval()\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for data in tqdm(test_loader):\\n\",\n    \"        output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"        result.append(evaluate(data, output))\\n\",\n    \"\\n\",\n    \"result_file = \\\"result.csv\\\"\\n\",\n    \"with open(result_file, 'w') as f:\\n\",\n    \"    f.write(\\\"ID,Answer\\\\n\\\")\\n\",\n    \"    for i, test_question in enumerate(test_questions):\\n\",\n    \"        # 将答案中的逗号替换为空字符串（因为 csv 以逗号分隔）\\n\",\n    \"        # Kaggle 中的答案也以同样的方式处理\\n\",\n    \"        f.write(f\\\"{test_question['id']},{result[i].replace(',','')}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"print(f\\\"完成！结果保存在 {result_file}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 拓展\\n\",\n    \"\\n\",\n    \"### Question 1\\n\",\n    \"\\n\",\n    \">微调（Finetune）和提示（Prompt）之间存在一些差异。上下文学习（In-context Learning）可以让预训练模型在不进行梯度下降的情况下，通过少量示例给出许多下游任务的正确预测。请回答以下问题：\\n\",\n    \">\\n\",\n    \">a. **Encoder-only 模型（如 BERT 系列）如何在抽取式问答任务中确定答案？**\\n\",\n    \">\\n\",\n    \">b. **Decoder-only 模型（如 GPT 系列）如何在抽取式问答任务中确定答案？**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0_JVNKOCywbR\"\n   },\n   \"source\": [\n    \"### Question 2 (In-context learning)\\n\",\n    \"\\n\",\n    \"> 尝试不同的 Prompt 并观察 fine-tuning 和 in-context learning 的区别。\\n\",\n    \">\\n\",\n    \"> 代码所下载的模型是 [facebook/xglm-1.7B](https://huggingface.co/facebook/xglm-1.7B)，实际上你也可以直接去 GPT 或者其他 AI 平台提问，这里的目的是去调整自己的 prompt，从而使模型不经过微调也能获取到正确答案。\\n\",\n    \">\\n\",\n    \"> 对于“老手”来说，完全可以跳过这个问题。\\n\",\n    \"\\n\",\n    \"#### Prompt 对比（错误对比）\\n\",\n    \"\\n\",\n    \"1. **Prompt 示例 1**: \\\"根据文章找出问题的答案：{问题}\\\"。\\n\",\n    \"2. **Prompt 示例 2**: \\\"请阅读文章并回答以下问题：{问题}\\\"。\\n\",\n    \"3. **Prompt 示例 3**: \\\"请根据文章信息回答下列问题：{问题}\\\"。\\n\",\n    \"\\n\",\n    \"#### Prompt 对比（正确对比）\\n\",\n    \"\\n\",\n    \"> ![image-20240920173255150](../Guide/assets/9805a280ab816c41ec21aee5a223bf9d.png)\\n\",\n    \"\\n\",\n    \"- 中英对比\\n\",\n    \"- 不同 prompt 对比\\n\",\n    \"\\n\",\n    \"**样例 prompt**:\\n\",\n    \"```\\n\",\n    \"請從最後一篇的文章中找出最後一個問題的答案：\\n\",\n    \"文章：<文章1 內容>\\n\",\n    \"問題：<問題1 敘述>\\n\",\n    \"答案：<答案1>\\n\",\n    \"...\\n\",\n    \"文章：<文章n 內容>\\n\",\n    \"問題：<問題n 敘述>\\n\",\n    \"答案：\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"sGUxltxqzKpm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# 为避免 CUDA_OUT_OF_MEMORY\\n\",\n    \"torch.set_default_tensor_type(torch.cuda.FloatTensor)\\n\",\n    \"\\n\",\n    \"# 为了可重复性，固定随机种子\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"    torch.manual_seed(seed)\\n\",\n    \"    if torch.cuda.is_available():\\n\",\n    \"        torch.cuda.manual_seed(seed)\\n\",\n    \"        torch.cuda.manual_seed_all(seed)\\n\",\n    \"    np.random.seed(seed)\\n\",\n    \"    random.seed(seed)\\n\",\n    \"    torch.backends.cudnn.benchmark = False\\n\",\n    \"    torch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 241,\n     \"referenced_widgets\": [\n      \"fd1e236692ec43a18a1750a29515050d\",\n      \"7b3c48ae548848c880439841c0b9cb6b\",\n      \"1023013dc30a4731b61383bd59f2dc91\",\n      \"ee0cb4c1f31346b5b180a7b826688eb4\",\n      \"0f7a38ddfe7b42eaa5c8ffdb3c150641\",\n      \"eb405f797a1441d280029e6e203befce\",\n      \"7a7081fd9d5942af9148e29054b18f51\",\n      \"eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"7c852afee0de49fe8dac74f3af82a725\",\n      \"24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"0549ffe5a6a444dd9fbf8c4513ebe7f7\",\n      \"388d3d2566ff4a1cb68048ac78dd374f\",\n      \"6235eaf236d643c6a163dddb86d3664d\",\n      \"faf78b2739f841d8a213e4311926b598\",\n      \"91f03b6ed1c94cb68970f45ffa64695e\",\n      \"9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"39d35e6e28264b5ca157745d0c1e1491\",\n      \"c497cc2cfabb451aad71f5d7b19873e4\",\n      \"7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"028ec097e62b4ee8a463708f4c3b8f24\",\n      \"f607835a7acf4037821885704bde736d\",\n      \"ddd59aac5a5d48ceace9ede35bf8f11b\",\n      \"20e14c8de0f84979ac3f0d896263f49d\",\n      \"4d7c3ea23e9b42a2ba5b0b11ee190c69\",\n      \"5d9e4fd05f964fd7a11d66b964ea0873\",\n      \"7fb466a306e6443287cb2fa2bea90f06\",\n      \"1b2b45ecc27b4f28bc0194709fed0638\",\n      \"6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"f51192579d014a52b132f99abf8901b2\",\n      \"6912ca44b1864902a3e32d4a19a4972d\",\n      \"acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"fda75dc7c2d24f7b827b2c78a6988586\",\n      \"2d1a48d240b949ad9b465985e90557c5\",\n      \"5a0f5ba8ad024f5b915e34e48f269437\",\n      \"bc4b72ff74d84c9e83b328e8823044b1\",\n      \"901f4ebc70f144c188d03a4978920441\",\n      \"98ce66c91c5c45968a3844fb0de50624\",\n      \"a24d04e7064048c2819ef88a50ce9093\",\n      \"154be9baa03943d08c975dbc85c4edf8\",\n      \"2fe4fa69d9544fd393a4d72c02245245\",\n      \"c4da9fed45254ebdaa49312f16d9b159\",\n      \"53a2b78a732c4522805de5c9aed92c41\",\n      \"0440f9e26a0b420b86175bc62e212d01\",\n      \"c9bf7b5808f74db9811f5b64e878dcd5\",\n      \"66a35d11743141b1b20904b13a4b86ea\",\n      \"c0145fad2cb843e9b75ac47d307cc346\",\n      \"d61e0c79febd45c8b00e3566296d7e8e\",\n      \"2a59b752f9414e69b8c1d24bd24159f2\",\n      \"447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"16b30759d76a4c8f979212d1ae30c297\",\n      \"1639410507da4b54996064d9fcc8621c\",\n      \"e515df89088042dbbe23594e5976e10d\",\n      \"0dccf470d87f4585af65826582399466\",\n      \"7dee4e5320d349159422709a69af61f4\",\n      \"86dbdec7087f4312b945c3a3940d8965\",\n      \"cdbf6c3b5b3948229946fd51c227b51e\",\n      \"d132ff798f284c9cbe2a73d35d776592\",\n      \"fead01a1a86c40bcb1ba9133ef351d7c\",\n      \"f19d9d34c978402691a89114849d2bb9\",\n      \"7a729fb76a374da99334e7d4b4de102e\",\n      \"cccbdce89ff545f6a66304352b320ad7\",\n      \"cbd776799c18488eb74a8f17cc27c6fd\",\n      \"b1cd7728deff4d50a18cb22805351330\",\n      \"550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"745f78a378b5412eae007f029e8c321a\",\n      \"2c449a0e664c41a79b3a1de62e94b5b7\",\n      \"a9a16bf8795c402a90cf4504b1cd30a1\",\n      \"715ad9f6bdaa46298317e049404f9755\",\n      \"667f153201d347a0a01e39b438fa736b\",\n      \"d652cdca44e04070a420c5d1a24b4fd1\",\n      \"b5c71e0a94014278a22ba45a6f58b77d\",\n      \"7f928c5e620a49c1ae137868e34818a9\",\n      \"d403f126d48746948c0f627dfdce5d65\",\n      \"d41e81f720f44b52b9a914e4c619bfee\",\n      \"bee7c0220d4e476dbc035fbc5dc44fa3\"\n     ]\n    },\n    \"id\": \"wIS23s79zItf\",\n    \"outputId\": \"c686be61-221a-4f55-ca79-67715343f1db\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModelForCausalLM\\n\",\n    \"\\n\",\n    \"# 你可以尝试不同大小的模型\\n\",\n    \"# 当使用 Colab 或 Kaggle 时，超过 20 亿（2B）参数的模型可能会耗尽内存\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"facebook/xglm-1.7B\\\")\\n\",\n    \"model = AutoModelForCausalLM.from_pretrained(\\\"facebook/xglm-1.7B\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"2d97YtavzFHA\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# 清理模型输出。如果你尝试不同的提示，可能需要自行修正此函数\\n\",\n    \"def clean_text(text):\\n\",\n    \"    # 注意：当你使用单语模型时，冒号可能会变成全角\\n\",\n    \"    text = text.split(\\\"答案:\\\")[-1]\\n\",\n    \"    text = text.split(\\\" \\\")[0]\\n\",\n    \"    return text\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"jdf3gdP_yykH\",\n    \"outputId\": \"b9a784dd-e5d7-4212-c089-e0180157bd11\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import random\\n\",\n    \"import json\\n\",\n    \"\\n\",\n    \"with open(\\\"hw7_in-context-learning-examples.json\\\", \\\"r\\\") as f:\\n\",\n    \"    test = json.load(f)\\n\",\n    \"\\n\",\n    \"# K-shot 学习\\n\",\n    \"# 给模型 K 个示例，使其获得更好的准确率\\n\",\n    \"# 注意：(1) 当 K >= 4 时，可能会发生 CUDA_OUT_OF_MEMORY。\\n\",\n    \"#       (2) XGLM 的最大输入长度为 2048\\n\",\n    \"K = 2\\n\",\n    \"\\n\",\n    \"question_ids = [qa[\\\"id\\\"] for qa in test[\\\"questions\\\"]]\\n\",\n    \"\\n\",\n    \"with open(\\\"in-context-learning-result.txt\\\", \\\"w\\\") as f:\\n\",\n    \"    print(\\\"ID,Ground-Truth,Prediction\\\", file = f)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for idx, qa in enumerate(test[\\\"questions\\\"]):\\n\",\n    \"            # 你可以尝试不同的提示\\n\",\n    \"            prompt = \\\"請從最後一篇的文章中找出最後一個問題的答案\\\\n\\\"\\n\",\n    \"            exist_question_indexs = [question_ids.index(qa[\\\"id\\\"])]\\n\",\n    \"\\n\",\n    \"            # K-shot 学习：给模型 K 个带有答案的示例\\n\",\n    \"            for i in range(K):\\n\",\n    \"                question_index = question_ids.index(qa[\\\"id\\\"])\\n\",\n    \"                while(question_index in exist_question_indexs):\\n\",\n    \"                    question_index = random.randint(0, len(question_ids) - 1)\\n\",\n    \"                exist_question_indexs.append(question_index)\\n\",\n    \"                paragraph_id = test[\\\"questions\\\"][question_index][\\\"paragraph_id\\\"]\\n\",\n    \"                prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"                prompt += f'問題：{test[\\\"questions\\\"][question_index][\\\"question_text\\\"]}\\\\n'\\n\",\n    \"                prompt += f'答案：{test[\\\"questions\\\"][question_index][\\\"answer_text\\\"]}\\\\n'\\n\",\n    \"\\n\",\n    \"            # 最后一个没有答案的问题\\n\",\n    \"            paragraph_id = qa[\\\"paragraph_id\\\"]\\n\",\n    \"            prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"            prompt += f'問題：{qa[\\\"question_text\\\"]}\\\\n'\\n\",\n    \"            prompt += f'答案：'\\n\",\n    \"\\n\",\n    \"            inputs = tokenizer(prompt, add_special_tokens=False, return_tensors=\\\"pt\\\")\\n\",\n    \"            sample = model.generate(**inputs, max_new_tokens = 20)\\n\",\n    \"            text = tokenizer.decode(sample[0], skip_special_tokens=True)\\n\",\n    \"\\n\",\n    \"            # 注意：你可以删除这一行，看看会发生什么\\n\",\n    \"            text = clean_text(text)\\n\",\n    \"\\n\",\n    \"            print(prompt)\\n\",\n    \"            print(f'正確答案: {qa[\\\"answer_text\\\"]}')\\n\",\n    \"            print(f'模型輸出: {text}')\\n\",\n    \"            print()\\n\",\n    \"\\n\",\n    \"            print(f\\\"{idx},{qa['answer_text']},{text}\\\", file = f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"k3prlGCdjf38\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.14\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"028ec097e62b4ee8a463708f4c3b8f24\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0386ad4eea2b4387b48cd58e95bcd4ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"0440f9e26a0b420b86175bc62e212d01\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_c9bf7b5808f74db9811f5b64e878dcd5\",\n       \"IPY_MODEL_66a35d11743141b1b20904b13a4b86ea\",\n       \"IPY_MODEL_c0145fad2cb843e9b75ac47d307cc346\"\n      ],\n      \"layout\": \"IPY_MODEL_d61e0c79febd45c8b00e3566296d7e8e\"\n     }\n    },\n    \"04c0aa3d24944485b475601f786b56f1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"052cccb5d69d476f9caac95848e0353a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0549ffe5a6a444dd9fbf8c4513ebe7f7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_388d3d2566ff4a1cb68048ac78dd374f\",\n       \"IPY_MODEL_6235eaf236d643c6a163dddb86d3664d\",\n       \"IPY_MODEL_faf78b2739f841d8a213e4311926b598\"\n      ],\n      \"layout\": \"IPY_MODEL_91f03b6ed1c94cb68970f45ffa64695e\"\n     }\n    },\n    \"06e4e53bd3e748ad90d14eeec117aac9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9c7a21dc260a4ad7b87f2123947058a2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7b7a0c46d9794d6fa66401f03684dec0\",\n      \"value\": \"100%\"\n     }\n    },\n    \"0dccf470d87f4585af65826582399466\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0f7a38ddfe7b42eaa5c8ffdb3c150641\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1023013dc30a4731b61383bd59f2dc91\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"max\": 335,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c852afee0de49fe8dac74f3af82a725\",\n      \"value\": 335\n     }\n    },\n    \"1181117783fd4bca9d7f5f296507aff3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"11dcde71ff984d829ec9612e7f43e3a3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"154be9baa03943d08c975dbc85c4edf8\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1639410507da4b54996064d9fcc8621c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"16b30759d76a4c8f979212d1ae30c297\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1b2b45ecc27b4f28bc0194709fed0638\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"1e20837bf23548249678da0a07745d58\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26e50974c52452389c5abb001056546\",\n      \"max\": 29,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_9eefbb580f0146658d18658f210d3a67\",\n      \"value\": 29\n     }\n    },\n    \"20cd68a7e03f4353aa99fcefc1f16d36\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"20e14c8de0f84979ac3f0d896263f49d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"max\": 9032074,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_f51192579d014a52b132f99abf8901b2\",\n      \"value\": 9032074\n     }\n    },\n    \"23afbee21a644745b24b8ffefed6b286\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"24b96f20dd5f4a6d8cf9788e97a74f73\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"250451c12cee4aacb91a32d7da4ab861\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"28fc746a3c0548f4a4ff669b5dbb7320\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"29a7b6bb49004c3c96a6d48cd55e1ec3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_06e4e53bd3e748ad90d14eeec117aac9\",\n       \"IPY_MODEL_6a47a3bc614a44e7a5b0dfef50cadaf7\",\n       \"IPY_MODEL_fba6bb8f65904ae6ae4f5bca95e942e2\"\n      ],\n      \"layout\": \"IPY_MODEL_6d5ad2f51bb3459b85201f983a499ea2\"\n     }\n    },\n    \"2a59b752f9414e69b8c1d24bd24159f2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"2c37badbe0504073b31abd67a8c0b808\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_bfd7d35860c14dd3b8e5eea07032311d\",\n       \"IPY_MODEL_db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n       \"IPY_MODEL_b0af063597ea4de5a8c8bf4f370f782a\"\n      ],\n      \"layout\": \"IPY_MODEL_5b1ac1a0f04f4c29b3c1127ec3d95e81\"\n     }\n    },\n    \"2c449a0e664c41a79b3a1de62e94b5b7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d652cdca44e04070a420c5d1a24b4fd1\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b5c71e0a94014278a22ba45a6f58b77d\",\n      \"value\": \"Downloading (…)neration_config.json: 100%\"\n     }\n    },\n    \"2d1a48d240b949ad9b465985e90557c5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_98ce66c91c5c45968a3844fb0de50624\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a24d04e7064048c2819ef88a50ce9093\",\n      \"value\": \"Downloading (…)cial_tokens_map.json: 100%\"\n     }\n    },\n    \"2fe4fa69d9544fd393a4d72c02245245\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"304609dbefa74735baa08ce7aadff92d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"3366101d46a847dfa5700ffb652dcc86\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"33fa92f225be477d8cd176a0a4e8894e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"388d3d2566ff4a1cb68048ac78dd374f\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_39d35e6e28264b5ca157745d0c1e1491\",\n      \"value\": \"Downloading (…)tencepiece.bpe.model: 100%\"\n     }\n    },\n    \"39d35e6e28264b5ca157745d0c1e1491\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3eaf82623d964c2abb92b4509ac5ca9d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_33fa92f225be477d8cd176a0a4e8894e\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b80166eeee984661a611a02d1eae4458\",\n      \"value\": \"Downloading (…)solve/main/vocab.txt: 100%\"\n     }\n    },\n    \"42dd646b18b24deda274c857d337c973\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a0f74d882c63403c8116c19745e011ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_55a7b680dae94cba8758288dacff2988\",\n      \"value\": \" 3524/3524 [01:20&lt;00:00, 46.55it/s]\"\n     }\n    },\n    \"447bb12155cf4dc193ffea3f64c6a8f8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"4d7c3ea23e9b42a2ba5b0b11ee190c69\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6912ca44b1864902a3e32d4a19a4972d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"value\": \" 9.03M/9.03M [00:00&lt;00:00, 35.9MB/s]\"\n     }\n    },\n    \"5195ed241f09440eaf84a7e0b3dc8155\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"53a2b78a732c4522805de5c9aed92c41\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"53c1ce79c38b45fc8d1b675515642c54\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_9370d0df1bca4b9a9c15e1d3e10142d9\",\n       \"IPY_MODEL_611f0f0c70a5471b891bd6f6b8cb7863\",\n       \"IPY_MODEL_986b627aef004704ac0806a9aa189938\"\n      ],\n      \"layout\": \"IPY_MODEL_f2b466617f0247638e0934c8fe95ed1d\"\n     }\n    },\n    \"550e7aaac7fa4c3db37ceca6a5595ddb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"55a7b680dae94cba8758288dacff2988\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"5a0f5ba8ad024f5b915e34e48f269437\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_154be9baa03943d08c975dbc85c4edf8\",\n      \"max\": 276,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_2fe4fa69d9544fd393a4d72c02245245\",\n      \"value\": 276\n     }\n    },\n    \"5b1ac1a0f04f4c29b3c1127ec3d95e81\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"5d9e4fd05f964fd7a11d66b964ea0873\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"611f0f0c70a5471b891bd6f6b8cb7863\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"max\": 3365,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c61a280288d4608b6ef341ce3adb7a8\",\n      \"value\": 3365\n     }\n    },\n    \"6235eaf236d643c6a163dddb86d3664d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c497cc2cfabb451aad71f5d7b19873e4\",\n      \"max\": 4920706,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"value\": 4920706\n     }\n    },\n    \"641665cb9ec6433a81719d57eeaf8298\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ba9c1cd3cfe04add90aa2edf2aa87378\",\n       \"IPY_MODEL_1e20837bf23548249678da0a07745d58\",\n       \"IPY_MODEL_c1d24cb7607c44b989774113a2baf675\"\n      ],\n      \"layout\": \"IPY_MODEL_c9144705a33848a6b142f9887da6ac49\"\n     }\n    },\n    \"642db3bee97a4bea8a4c1079e2b7526c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3366101d46a847dfa5700ffb652dcc86\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"value\": \"100%\"\n     }\n    },\n    \"667f153201d347a0a01e39b438fa736b\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"66a35d11743141b1b20904b13a4b86ea\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_16b30759d76a4c8f979212d1ae30c297\",\n      \"max\": 548,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_1639410507da4b54996064d9fcc8621c\",\n      \"value\": 548\n     }\n    },\n    \"6912ca44b1864902a3e32d4a19a4972d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a2f5722362c4ec08ae8ed7d681dc7ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a47a3bc614a44e7a5b0dfef50cadaf7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_11dcde71ff984d829ec9612e7f43e3a3\",\n      \"max\": 2863,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_a987cb79f4904973958a98f492c6443a\",\n      \"value\": 2863\n     }\n    },\n    \"6be63de77ed14eee9c37e93d3a75f743\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_304609dbefa74735baa08ce7aadff92d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_250451c12cee4aacb91a32d7da4ab861\",\n      \"value\": \" 110k/110k [00:00&lt;00:00, 1.53MB/s]\"\n     }\n    },\n    \"6d5ad2f51bb3459b85201f983a499ea2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"715ad9f6bdaa46298317e049404f9755\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d41e81f720f44b52b9a914e4c619bfee\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bee7c0220d4e476dbc035fbc5dc44fa3\",\n      \"value\": \" 168/168 [00:00&lt;00:00, 4.67kB/s]\"\n     }\n    },\n    \"745f78a378b5412eae007f029e8c321a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2c449a0e664c41a79b3a1de62e94b5b7\",\n       \"IPY_MODEL_a9a16bf8795c402a90cf4504b1cd30a1\",\n       \"IPY_MODEL_715ad9f6bdaa46298317e049404f9755\"\n      ],\n      \"layout\": \"IPY_MODEL_667f153201d347a0a01e39b438fa736b\"\n     }\n    },\n    \"78818b2d8cc748efbf1b5784a9ee2a85\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7a7081fd9d5942af9148e29054b18f51\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7a729fb76a374da99334e7d4b4de102e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7b3c48ae548848c880439841c0b9cb6b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb405f797a1441d280029e6e203befce\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a7081fd9d5942af9148e29054b18f51\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"7b7a0c46d9794d6fa66401f03684dec0\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7c61a280288d4608b6ef341ce3adb7a8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7c852afee0de49fe8dac74f3af82a725\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7dee4e5320d349159422709a69af61f4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_86dbdec7087f4312b945c3a3940d8965\",\n       \"IPY_MODEL_cdbf6c3b5b3948229946fd51c227b51e\",\n       \"IPY_MODEL_d132ff798f284c9cbe2a73d35d776592\"\n      ],\n      \"layout\": \"IPY_MODEL_fead01a1a86c40bcb1ba9133ef351d7c\"\n     }\n    },\n    \"7f7f2c3afc2647c086877a2f4eff6c12\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7f928c5e620a49c1ae137868e34818a9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7fb466a306e6443287cb2fa2bea90f06\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"86dbdec7087f4312b945c3a3940d8965\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f19d9d34c978402691a89114849d2bb9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a729fb76a374da99334e7d4b4de102e\",\n      \"value\": \"Downloading pytorch_model.bin: 100%\"\n     }\n    },\n    \"8710bb7686df4fb3a73e5af839be5305\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"8b264499afca4694849b08e2091f6826\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_3eaf82623d964c2abb92b4509ac5ca9d\",\n       \"IPY_MODEL_aa3ff7831fbf47efa404805886ca4696\",\n       \"IPY_MODEL_6be63de77ed14eee9c37e93d3a75f743\"\n      ],\n      \"layout\": \"IPY_MODEL_5195ed241f09440eaf84a7e0b3dc8155\"\n     }\n    },\n    \"8d791392eed34a9b8e155da9a4b0a0d6\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"901f4ebc70f144c188d03a4978920441\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"91f03b6ed1c94cb68970f45ffa64695e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9370d0df1bca4b9a9c15e1d3e10142d9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_04c0aa3d24944485b475601f786b56f1\",\n      \"value\": \"100%\"\n     }\n    },\n    \"941a345ba82a44d5ad597a15c0af0d5c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"986b627aef004704ac0806a9aa189938\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8710bb7686df4fb3a73e5af839be5305\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"value\": \" 3365/3365 [09:20&lt;00:00,  6.34it/s]\"\n     }\n    },\n    \"98ce66c91c5c45968a3844fb0de50624\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c7a21dc260a4ad7b87f2123947058a2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c84cbc758db46e78d7fa361a385ccce\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_642db3bee97a4bea8a4c1079e2b7526c\",\n       \"IPY_MODEL_ed9f5d147e7844a187d8610130f1ecd9\",\n       \"IPY_MODEL_42dd646b18b24deda274c857d337c973\"\n      ],\n      \"layout\": \"IPY_MODEL_9e2635394d5b4965b41a05a9bc37a4ec\"\n     }\n    },\n    \"9e2635394d5b4965b41a05a9bc37a4ec\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9e312a0ec6a2478fb0f55691caf6d9ae\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9eefbb580f0146658d18658f210d3a67\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a075ee85c2d34ab3b2d011c63dc02286\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a0f74d882c63403c8116c19745e011ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a1602e58c3a7413490ce0a93f35a7ca9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a24d04e7064048c2819ef88a50ce9093\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a5bf4132f3dd4c7a807f27c8106fdd59\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a987cb79f4904973958a98f492c6443a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a9a16bf8795c402a90cf4504b1cd30a1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7f928c5e620a49c1ae137868e34818a9\",\n      \"max\": 168,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_d403f126d48746948c0f627dfdce5d65\",\n      \"value\": 168\n     }\n    },\n    \"aa3ff7831fbf47efa404805886ca4696\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"max\": 109540,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_fb908d9c3e374983aa47478a95411ba7\",\n      \"value\": 109540\n     }\n    },\n    \"acbfe8b88e6945ab9a5959fbb5f294de\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b0af063597ea4de5a8c8bf4f370f782a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a075ee85c2d34ab3b2d011c63dc02286\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_052cccb5d69d476f9caac95848e0353a\",\n      \"value\": \" 269k/269k [00:00&lt;00:00, 2.44MB/s]\"\n     }\n    },\n    \"b1cd7728deff4d50a18cb22805351330\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"b5c71e0a94014278a22ba45a6f58b77d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b80166eeee984661a611a02d1eae4458\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b91c8359a6444497b3665e66afbe237d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ba9c1cd3cfe04add90aa2edf2aa87378\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"bab8f16e038b440a8016ef087ee12904\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bc4b72ff74d84c9e83b328e8823044b1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c4da9fed45254ebdaa49312f16d9b159\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_53a2b78a732c4522805de5c9aed92c41\",\n      \"value\": \" 276/276 [00:00&lt;00:00, 14.5kB/s]\"\n     }\n    },\n    \"bee7c0220d4e476dbc035fbc5dc44fa3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bfd7d35860c14dd3b8e5eea07032311d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b91c8359a6444497b3665e66afbe237d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1181117783fd4bca9d7f5f296507aff3\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"c0145fad2cb843e9b75ac47d307cc346\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_e515df89088042dbbe23594e5976e10d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_0dccf470d87f4585af65826582399466\",\n      \"value\": \" 548/548 [00:00&lt;00:00, 21.8kB/s]\"\n     }\n    },\n    \"c1d24cb7607c44b989774113a2baf675\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c813a6f6ce09424582c06a3ac8a7d712\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"value\": \" 29.0/29.0 [00:00&lt;00:00, 1.06kB/s]\"\n     }\n    },\n    \"c24b174369fb48cdbc3d4afaa4cceccb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"c497cc2cfabb451aad71f5d7b19873e4\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c4da9fed45254ebdaa49312f16d9b159\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c7896f62a30f4eec95e3c84aef08e1b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"c813a6f6ce09424582c06a3ac8a7d712\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9144705a33848a6b142f9887da6ac49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9bf7b5808f74db9811f5b64e878dcd5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_2a59b752f9414e69b8c1d24bd24159f2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"value\": \"Downloading (…)lve/main/config.json: 100%\"\n     }\n    },\n    \"cbd776799c18488eb74a8f17cc27c6fd\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"cccbdce89ff545f6a66304352b320ad7\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"cdbf6c3b5b3948229946fd51c227b51e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_cccbdce89ff545f6a66304352b320ad7\",\n      \"max\": 3465946427,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_cbd776799c18488eb74a8f17cc27c6fd\",\n      \"value\": 3465946427\n     }\n    },\n    \"d132ff798f284c9cbe2a73d35d776592\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b1cd7728deff4d50a18cb22805351330\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"value\": \" 3.47G/3.47G [00:19&lt;00:00, 179MB/s]\"\n     }\n    },\n    \"d26e50974c52452389c5abb001056546\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d26f522a28d24494914df1dd8432af49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d403f126d48746948c0f627dfdce5d65\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"d41e81f720f44b52b9a914e4c619bfee\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d61e0c79febd45c8b00e3566296d7e8e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d652cdca44e04070a420c5d1a24b4fd1\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_941a345ba82a44d5ad597a15c0af0d5c\",\n      \"max\": 268943,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_23afbee21a644745b24b8ffefed6b286\",\n      \"value\": 268943\n     }\n    },\n    \"ddd59aac5a5d48ceace9ede35bf8f11b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7fb466a306e6443287cb2fa2bea90f06\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1b2b45ecc27b4f28bc0194709fed0638\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"e515df89088042dbbe23594e5976e10d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb405f797a1441d280029e6e203befce\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb4bdd1ff3cf4b0db273c53e32cad5de\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ebfa4ba9f18b4945947d326581d3b8e9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ed9f5d147e7844a187d8610130f1ecd9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26f522a28d24494914df1dd8432af49\",\n      \"max\": 3524,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"value\": 3524\n     }\n    },\n    \"ee0cb4c1f31346b5b180a7b826688eb4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"value\": \" 335/335 [00:00&lt;00:00, 11.3kB/s]\"\n     }\n    },\n    \"f19d9d34c978402691a89114849d2bb9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f2b466617f0247638e0934c8fe95ed1d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f51192579d014a52b132f99abf8901b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"f607835a7acf4037821885704bde736d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ddd59aac5a5d48ceace9ede35bf8f11b\",\n       \"IPY_MODEL_20e14c8de0f84979ac3f0d896263f49d\",\n       \"IPY_MODEL_4d7c3ea23e9b42a2ba5b0b11ee190c69\"\n      ],\n      \"layout\": \"IPY_MODEL_5d9e4fd05f964fd7a11d66b964ea0873\"\n     }\n    },\n    \"f9b28a5fbcd14568983ed36f9a1ca997\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"faf78b2739f841d8a213e4311926b598\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_028ec097e62b4ee8a463708f4c3b8f24\",\n      \"value\": \" 4.92M/4.92M [00:00&lt;00:00, 41.4MB/s]\"\n     }\n    },\n    \"fb908d9c3e374983aa47478a95411ba7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"fba6bb8f65904ae6ae4f5bca95e942e2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bab8f16e038b440a8016ef087ee12904\",\n      \"value\": \" 2863/2863 [01:03&lt;00:00, 45.98it/s]\"\n     }\n    },\n    \"fd1e236692ec43a18a1750a29515050d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_7b3c48ae548848c880439841c0b9cb6b\",\n       \"IPY_MODEL_1023013dc30a4731b61383bd59f2dc91\",\n       \"IPY_MODEL_ee0cb4c1f31346b5b180a7b826688eb4\"\n      ],\n      \"layout\": \"IPY_MODEL_0f7a38ddfe7b42eaa5c8ffdb3c150641\"\n     }\n    },\n    \"fda75dc7c2d24f7b827b2c78a6988586\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2d1a48d240b949ad9b465985e90557c5\",\n       \"IPY_MODEL_5a0f5ba8ad024f5b915e34e48f269437\",\n       \"IPY_MODEL_bc4b72ff74d84c9e83b328e8823044b1\"\n      ],\n      \"layout\": \"IPY_MODEL_901f4ebc70f144c188d03a4978920441\"\n     }\n    },\n    \"fead01a1a86c40bcb1ba9133ef351d7c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ff6cd33dca3c44ba9832b2d705fd2de1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW07/HW07_Simple_0.54426.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xvSGDbExff_I\"\n   },\n   \"source\": [\n    \"# **Homework 7 - Bert (Question Answering)**\\n\",\n    \"\\n\",\n    \"If you have any questions, feel free to email us at ntu-ml-2023spring-ta@googlegroups.com\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Slide:    [Link](https://docs.google.com/presentation/d/15lGUmT8NpLGtoxRllRWCJyQEjhR1Idcei63YHsDckPE/edit#slide=id.g21fff4e9af6_0_13)　Kaggle: [Link](https://www.kaggle.com/competitions/ml2023spring-hw7/host/sandbox-submissions)　Data: [Link](https://drive.google.com/file/d/1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7/view?usp=sharing)\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NYAHsHNbzdKm\"\n   },\n   \"source\": [\n    \"# Prerequisites\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TJ1fSAJE2oaC\"\n   },\n   \"source\": [\n    \"## Download Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"YPrc4Eie9Yo5\",\n    \"outputId\": \"1640c875-58d1-4288-e382-e9fa9db39b9f\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# download link 1\\n\",\n    \"# !gdown --id '1TjoBdNlGBhP_J9C66MOY7ILIrydm7ZCS' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 2 (if above link failed)\\n\",\n    \"# !gdown --id '1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 3 (if above link failed)\\n\",\n    \"# !gdown --id '1k2BfGrvhk8QRnr9Xvb04oPIKDr1uWFpa' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# !unzip -o hw7_data.zip\\n\",\n    \"\\n\",\n    \"# !kaggle competitions download -c ml2023spring-hw7\\n\",\n    \"\\n\",\n    \"!unzip ml2023spring-hw7.zip   \\n\",\n    \"\\n\",\n    \"# For this HW, K80 < P4 < T4 < P100 <= T4(fp16) < V100\\n\",\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TevOvhC03m0h\"\n   },\n   \"source\": [\n    \"## Install packages\\n\",\n    \"\\n\",\n    \"Documentation for the toolkit:\\n\",\n    \"*   https://huggingface.co/transformers/\\n\",\n    \"*   https://huggingface.co/docs/accelerate/index\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"tbxWFX_jpDom\",\n    \"outputId\": \"138488c2-96fa-4c41-d450-9d0a1b74f36c\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# You are allowed to change version of transformers or use other toolkits\\n\",\n    \"!pip install transformers==4.26.1\\n\",\n    \"!pip install accelerate==0.16.0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"XapBp31gytyD\"\n   },\n   \"source\": [\n    \"# Kaggle (Fine-tuning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"WGOr_eS3wJJf\"\n   },\n   \"source\": [\n    \"## Task description\\n\",\n    \"- Chinese Extractive Question Answering\\n\",\n    \"  - Input: Paragraph + Question\\n\",\n    \"  - Output: Answer\\n\",\n    \"\\n\",\n    \"- Objective: Learn how to fine tune a pretrained model on downstream task using transformers\\n\",\n    \"\\n\",\n    \"- Todo\\n\",\n    \"    - Fine tune a pretrained chinese BERT model\\n\",\n    \"    - Change hyperparameters (e.g. doc_stride)\\n\",\n    \"    - Apply linear learning rate decay\\n\",\n    \"    - Try other pretrained models\\n\",\n    \"    - Improve preprocessing\\n\",\n    \"    - Improve postprocessing\\n\",\n    \"- Training tips\\n\",\n    \"    - Automatic mixed precision\\n\",\n    \"    - Gradient accumulation\\n\",\n    \"    - Ensemble\\n\",\n    \"\\n\",\n    \"- Estimated training time (tesla t4 with automatic mixed precision enabled)\\n\",\n    \"    - Simple: 8mins\\n\",\n    \"    - Medium: 8mins\\n\",\n    \"    - Strong: 25mins\\n\",\n    \"    - Boss: 2hrs\\n\",\n    \"  \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"8dKM4yCh4LI_\"\n   },\n   \"source\": [\n    \"## Import Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"WOTHHtWJoahe\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import json\\n\",\n    \"import numpy as np\\n\",\n    \"import random\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, Dataset\\n\",\n    \"from transformers import AdamW\\n\",\n    \"\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2YgXHuVLp_6j\"\n   },\n   \"source\": [\n    \"## Load Model and Tokenizer\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 220,\n     \"referenced_widgets\": [\n      \"641665cb9ec6433a81719d57eeaf8298\",\n      \"ba9c1cd3cfe04add90aa2edf2aa87378\",\n      \"1e20837bf23548249678da0a07745d58\",\n      \"c1d24cb7607c44b989774113a2baf675\",\n      \"c9144705a33848a6b142f9887da6ac49\",\n      \"ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"d26e50974c52452389c5abb001056546\",\n      \"9eefbb580f0146658d18658f210d3a67\",\n      \"c813a6f6ce09424582c06a3ac8a7d712\",\n      \"ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"8b264499afca4694849b08e2091f6826\",\n      \"3eaf82623d964c2abb92b4509ac5ca9d\",\n      \"aa3ff7831fbf47efa404805886ca4696\",\n      \"6be63de77ed14eee9c37e93d3a75f743\",\n      \"5195ed241f09440eaf84a7e0b3dc8155\",\n      \"33fa92f225be477d8cd176a0a4e8894e\",\n      \"b80166eeee984661a611a02d1eae4458\",\n      \"20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"fb908d9c3e374983aa47478a95411ba7\",\n      \"304609dbefa74735baa08ce7aadff92d\",\n      \"250451c12cee4aacb91a32d7da4ab861\",\n      \"2c37badbe0504073b31abd67a8c0b808\",\n      \"bfd7d35860c14dd3b8e5eea07032311d\",\n      \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n      \"b0af063597ea4de5a8c8bf4f370f782a\",\n      \"5b1ac1a0f04f4c29b3c1127ec3d95e81\",\n      \"b91c8359a6444497b3665e66afbe237d\",\n      \"1181117783fd4bca9d7f5f296507aff3\",\n      \"941a345ba82a44d5ad597a15c0af0d5c\",\n      \"23afbee21a644745b24b8ffefed6b286\",\n      \"a075ee85c2d34ab3b2d011c63dc02286\",\n      \"052cccb5d69d476f9caac95848e0353a\"\n     ]\n    },\n    \"id\": \"xyBCYGjAp3ym\",\n    \"outputId\": \"81f25c6d-cd7f-4be1-e085-f8a54bd1c27d\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import (\\n\",\n    \"  AutoTokenizer,\\n\",\n    \"  AutoModelForQuestionAnswering,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"model = AutoModelForQuestionAnswering.from_pretrained(\\\"bert-base-chinese\\\").to(device)\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"bert-base-chinese\\\")\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message (it pops up because new prediction heads for QA are initialized randomly)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3Td-GTmk5OW4\"\n   },\n   \"source\": [\n    \"## Read Data\\n\",\n    \"\\n\",\n    \"- Training set: 26918 QA pairs\\n\",\n    \"- Dev set: 2863  QA pairs\\n\",\n    \"- Test set: 3524  QA pairs\\n\",\n    \"\\n\",\n    \"- {train/dev/test}_questions:\\n\",\n    \"  - List of dicts with the following keys:\\n\",\n    \"   - id (int)\\n\",\n    \"   - paragraph_id (int)\\n\",\n    \"   - question_text (string)\\n\",\n    \"   - answer_text (string)\\n\",\n    \"   - answer_start (int)\\n\",\n    \"   - answer_end (int)\\n\",\n    \"- {train/dev/test}_paragraphs:\\n\",\n    \"  - List of strings\\n\",\n    \"  - paragraph_ids in questions correspond to indexs in paragraphs\\n\",\n    \"  - A paragraph may be used by several questions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"NvX7hlepogvu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def read_data(file):\\n\",\n    \"    with open(file, 'r', encoding=\\\"utf-8\\\") as reader:\\n\",\n    \"        data = json.load(reader)\\n\",\n    \"    return data[\\\"questions\\\"], data[\\\"paragraphs\\\"]\\n\",\n    \"\\n\",\n    \"train_questions, train_paragraphs = read_data(\\\"hw7_train.json\\\")\\n\",\n    \"dev_questions, dev_paragraphs = read_data(\\\"hw7_dev.json\\\")\\n\",\n    \"test_questions, test_paragraphs = read_data(\\\"hw7_test.json\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Fm0rpTHq0e4N\"\n   },\n   \"source\": [\n    \"## Tokenize Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"rTZ6B70Hoxie\",\n    \"outputId\": \"db13805e-02a9-4cbe-e6d2-66c0e3860c2b\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Token indices sequence length is longer than the specified maximum sequence length for this model (566 > 512). Running this sequence through the model will result in indexing errors\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Tokenize questions and paragraphs separately\\n\",\n    \"# 「add_special_tokens」 is set to False since special tokens will be added when tokenized questions and paragraphs are combined in datset __getitem__\\n\",\n    \"\\n\",\n    \"train_questions_tokenized = tokenizer([train_question[\\\"question_text\\\"] for train_question in train_questions], add_special_tokens=False)\\n\",\n    \"dev_questions_tokenized = tokenizer([dev_question[\\\"question_text\\\"] for dev_question in dev_questions], add_special_tokens=False)\\n\",\n    \"test_questions_tokenized = tokenizer([test_question[\\\"question_text\\\"] for test_question in test_questions], add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"train_paragraphs_tokenized = tokenizer(train_paragraphs, add_special_tokens=False)\\n\",\n    \"dev_paragraphs_tokenized = tokenizer(dev_paragraphs, add_special_tokens=False)\\n\",\n    \"test_paragraphs_tokenized = tokenizer(test_paragraphs, add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message as tokenized sequences will be futher processed in datset __getitem__ before passing to model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ws8c8_4d5UCI\"\n   },\n   \"source\": [\n    \"## Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"id\": \"Xjooag-Swnuh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class QA_Dataset(Dataset):\\n\",\n    \"    def __init__(self, split, questions, tokenized_questions, tokenized_paragraphs):\\n\",\n    \"        self.split = split\\n\",\n    \"        self.questions = questions\\n\",\n    \"        self.tokenized_questions = tokenized_questions\\n\",\n    \"        self.tokenized_paragraphs = tokenized_paragraphs\\n\",\n    \"        self.max_question_len = 60\\n\",\n    \"        self.max_paragraph_len = 150\\n\",\n    \"\\n\",\n    \"        ##### TODO: Change value of doc_stride #####\\n\",\n    \"        self.doc_stride = 150\\n\",\n    \"\\n\",\n    \"        # Input sequence length = [CLS] + question + [SEP] + paragraph + [SEP]\\n\",\n    \"        self.max_seq_len = 1 + self.max_question_len + 1 + self.max_paragraph_len + 1\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.questions)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        question = self.questions[idx]\\n\",\n    \"        tokenized_question = self.tokenized_questions[idx]\\n\",\n    \"        tokenized_paragraph = self.tokenized_paragraphs[question[\\\"paragraph_id\\\"]]\\n\",\n    \"\\n\",\n    \"        ##### TODO: Preprocessing #####\\n\",\n    \"        # Hint: How to prevent model from learning something it should not learn\\n\",\n    \"        if self.split == \\\"train\\\":\\n\",\n    \"            # Convert answer's start/end positions in paragraph_text to start/end positions in tokenized_paragraph\\n\",\n    \"            answer_start_token = tokenized_paragraph.char_to_token(question[\\\"answer_start\\\"])\\n\",\n    \"            answer_end_token = tokenized_paragraph.char_to_token(question[\\\"answer_end\\\"])\\n\",\n    \"\\n\",\n    \"            # A single window is obtained by slicing the portion of paragraph containing the answer\\n\",\n    \"            mid = (answer_start_token + answer_end_token) // 2\\n\",\n    \"            paragraph_start = max(0, min(mid - self.max_paragraph_len // 2, len(tokenized_paragraph) - self.max_paragraph_len))\\n\",\n    \"            paragraph_end = paragraph_start + self.max_paragraph_len\\n\",\n    \"\\n\",\n    \"            # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"            input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"            input_ids_paragraph = tokenized_paragraph.ids[paragraph_start : paragraph_end] + [102]\\n\",\n    \"\\n\",\n    \"            # Convert answer's start/end positions in tokenized_paragraph to start/end positions in the window\\n\",\n    \"            answer_start_token += len(input_ids_question) - paragraph_start\\n\",\n    \"            answer_end_token += len(input_ids_question) - paragraph_start\\n\",\n    \"\\n\",\n    \"            # Pad sequence and obtain inputs to model\\n\",\n    \"            input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"            return torch.tensor(input_ids), torch.tensor(token_type_ids), torch.tensor(attention_mask), answer_start_token, answer_end_token\\n\",\n    \"\\n\",\n    \"        # Validation/Testing\\n\",\n    \"        else:\\n\",\n    \"            input_ids_list, token_type_ids_list, attention_mask_list = [], [], []\\n\",\n    \"\\n\",\n    \"            # Paragraph is split into several windows, each with start positions separated by step \\\"doc_stride\\\"\\n\",\n    \"            for i in range(0, len(tokenized_paragraph), self.doc_stride):\\n\",\n    \"\\n\",\n    \"                # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"                input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"                input_ids_paragraph = tokenized_paragraph.ids[i : i + self.max_paragraph_len] + [102]\\n\",\n    \"\\n\",\n    \"                # Pad sequence and obtain inputs to model\\n\",\n    \"                input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"\\n\",\n    \"                input_ids_list.append(input_ids)\\n\",\n    \"                token_type_ids_list.append(token_type_ids)\\n\",\n    \"                attention_mask_list.append(attention_mask)\\n\",\n    \"\\n\",\n    \"            return torch.tensor(input_ids_list), torch.tensor(token_type_ids_list), torch.tensor(attention_mask_list)\\n\",\n    \"\\n\",\n    \"    def padding(self, input_ids_question, input_ids_paragraph):\\n\",\n    \"        # Pad zeros if sequence length is shorter than max_seq_len\\n\",\n    \"        padding_len = self.max_seq_len - len(input_ids_question) - len(input_ids_paragraph)\\n\",\n    \"        # Indices of input sequence tokens in the vocabulary\\n\",\n    \"        input_ids = input_ids_question + input_ids_paragraph + [0] * padding_len\\n\",\n    \"        # Segment token indices to indicate first and second portions of the inputs. Indices are selected in [0, 1]\\n\",\n    \"        token_type_ids = [0] * len(input_ids_question) + [1] * len(input_ids_paragraph) + [0] * padding_len\\n\",\n    \"        # Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]\\n\",\n    \"        attention_mask = [1] * (len(input_ids_question) + len(input_ids_paragraph)) + [0] * padding_len\\n\",\n    \"\\n\",\n    \"        return input_ids, token_type_ids, attention_mask\\n\",\n    \"\\n\",\n    \"train_set = QA_Dataset(\\\"train\\\", train_questions, train_questions_tokenized, train_paragraphs_tokenized)\\n\",\n    \"dev_set = QA_Dataset(\\\"dev\\\", dev_questions, dev_questions_tokenized, dev_paragraphs_tokenized)\\n\",\n    \"test_set = QA_Dataset(\\\"test\\\", test_questions, test_questions_tokenized, test_paragraphs_tokenized)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5_H1kqhR8CdM\"\n   },\n   \"source\": [\n    \"## Function for Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"id\": \"SqeA3PLPxOHu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def evaluate(data, output):\\n\",\n    \"    ##### TODO: Postprocessing #####\\n\",\n    \"    # There is a bug and room for improvement in postprocessing\\n\",\n    \"    # Hint: Open your prediction file to see what is wrong\\n\",\n    \"\\n\",\n    \"    answer = ''\\n\",\n    \"    max_prob = float('-inf')\\n\",\n    \"    num_of_windows = data[0].shape[1]\\n\",\n    \"\\n\",\n    \"    for k in range(num_of_windows):\\n\",\n    \"        # Obtain answer by choosing the most probable start position / end position\\n\",\n    \"        start_prob, start_index = torch.max(output.start_logits[k], dim=0)\\n\",\n    \"        end_prob, end_index = torch.max(output.end_logits[k], dim=0)\\n\",\n    \"\\n\",\n    \"        # Probability of answer is calculated as sum of start_prob and end_prob\\n\",\n    \"        prob = start_prob + end_prob\\n\",\n    \"\\n\",\n    \"        # Replace answer if calculated probability is larger than previous windows\\n\",\n    \"        if prob > max_prob:\\n\",\n    \"            max_prob = prob\\n\",\n    \"            # Convert tokens to chars (e.g. [1920, 7032] --> \\\"大 金\\\")\\n\",\n    \"            answer = tokenizer.decode(data[0][0][k][start_index : end_index + 1])\\n\",\n    \"\\n\",\n    \"    # Remove spaces in answer (e.g. \\\"大 金\\\" --> \\\"大金\\\")\\n\",\n    \"    return answer.replace(' ','')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rzHQit6eMnKG\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 778,\n     \"referenced_widgets\": [\n      \"53c1ce79c38b45fc8d1b675515642c54\",\n      \"9370d0df1bca4b9a9c15e1d3e10142d9\",\n      \"611f0f0c70a5471b891bd6f6b8cb7863\",\n      \"986b627aef004704ac0806a9aa189938\",\n      \"f2b466617f0247638e0934c8fe95ed1d\",\n      \"f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"04c0aa3d24944485b475601f786b56f1\",\n      \"78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"7c61a280288d4608b6ef341ce3adb7a8\",\n      \"8710bb7686df4fb3a73e5af839be5305\",\n      \"c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"29a7b6bb49004c3c96a6d48cd55e1ec3\",\n      \"06e4e53bd3e748ad90d14eeec117aac9\",\n      \"6a47a3bc614a44e7a5b0dfef50cadaf7\",\n      \"fba6bb8f65904ae6ae4f5bca95e942e2\",\n      \"6d5ad2f51bb3459b85201f983a499ea2\",\n      \"9c7a21dc260a4ad7b87f2123947058a2\",\n      \"7b7a0c46d9794d6fa66401f03684dec0\",\n      \"11dcde71ff984d829ec9612e7f43e3a3\",\n      \"a987cb79f4904973958a98f492c6443a\",\n      \"8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"bab8f16e038b440a8016ef087ee12904\"\n     ]\n    },\n    \"id\": \"3Q-B6ka7xoCM\",\n    \"outputId\": \"69c6f306-8a93-4b59-a64d-41f55889a6e6\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Start Training ...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\\n\",\n      \"  warnings.warn(\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"96f43c56b00348cf87f3c4ae55f4f8dc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3365 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Epoch 1 | Step 100 | loss = 3.762, acc = 0.072\\n\",\n      \"Epoch 1 | Step 200 | loss = 1.992, acc = 0.294\\n\",\n      \"Epoch 1 | Step 300 | loss = 1.714, acc = 0.395\\n\",\n      \"Epoch 1 | Step 400 | loss = 1.454, acc = 0.472\\n\",\n      \"Epoch 1 | Step 500 | loss = 1.246, acc = 0.530\\n\",\n      \"Epoch 1 | Step 600 | loss = 1.060, acc = 0.590\\n\",\n      \"Epoch 1 | Step 700 | loss = 1.111, acc = 0.587\\n\",\n      \"Epoch 1 | Step 800 | loss = 0.972, acc = 0.623\\n\",\n      \"Epoch 1 | Step 900 | loss = 0.922, acc = 0.634\\n\",\n      \"Epoch 1 | Step 1000 | loss = 0.861, acc = 0.639\\n\",\n      \"Epoch 1 | Step 1100 | loss = 0.893, acc = 0.655\\n\",\n      \"Epoch 1 | Step 1200 | loss = 0.783, acc = 0.651\\n\",\n      \"Epoch 1 | Step 1300 | loss = 0.830, acc = 0.660\\n\",\n      \"Epoch 1 | Step 1400 | loss = 0.750, acc = 0.679\\n\",\n      \"Epoch 1 | Step 1500 | loss = 0.856, acc = 0.631\\n\",\n      \"Epoch 1 | Step 1600 | loss = 0.706, acc = 0.712\\n\",\n      \"Epoch 1 | Step 1700 | loss = 0.817, acc = 0.650\\n\",\n      \"Epoch 1 | Step 1800 | loss = 0.696, acc = 0.683\\n\",\n      \"Epoch 1 | Step 1900 | loss = 0.748, acc = 0.686\\n\",\n      \"Epoch 1 | Step 2000 | loss = 0.693, acc = 0.695\\n\",\n      \"Epoch 1 | Step 2100 | loss = 0.745, acc = 0.685\\n\",\n      \"Epoch 1 | Step 2200 | loss = 0.738, acc = 0.684\\n\",\n      \"Epoch 1 | Step 2300 | loss = 0.644, acc = 0.731\\n\",\n      \"Epoch 1 | Step 2400 | loss = 0.662, acc = 0.707\\n\",\n      \"Epoch 1 | Step 2500 | loss = 0.676, acc = 0.695\\n\",\n      \"Epoch 1 | Step 2600 | loss = 0.596, acc = 0.724\\n\",\n      \"Epoch 1 | Step 2700 | loss = 0.671, acc = 0.705\\n\",\n      \"Epoch 1 | Step 2800 | loss = 0.666, acc = 0.717\\n\",\n      \"Epoch 1 | Step 2900 | loss = 0.678, acc = 0.720\\n\",\n      \"Epoch 1 | Step 3000 | loss = 0.688, acc = 0.712\\n\",\n      \"Epoch 1 | Step 3100 | loss = 0.680, acc = 0.699\\n\",\n      \"Epoch 1 | Step 3200 | loss = 0.641, acc = 0.731\\n\",\n      \"Epoch 1 | Step 3300 | loss = 0.637, acc = 0.721\\n\",\n      \"Evaluating Dev Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"75de51c75426431691fb9c8d11a75d4b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/2863 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Validation | Epoch 1 | acc = 0.558\\n\",\n      \"Saving Model ...\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from accelerate import Accelerator\\n\",\n    \"\\n\",\n    \"# hyperparameters\\n\",\n    \"num_epoch = 1\\n\",\n    \"validation = True\\n\",\n    \"logging_step = 100\\n\",\n    \"learning_rate = 1e-5\\n\",\n    \"optimizer = AdamW(model.parameters(), lr=learning_rate)\\n\",\n    \"train_batch_size = 8\\n\",\n    \"\\n\",\n    \"#### TODO: gradient_accumulation (optional)####\\n\",\n    \"# Note: train_batch_size * gradient_accumulation_steps = effective batch size\\n\",\n    \"# If CUDA out of memory, you can make train_batch_size lower and gradient_accumulation_steps upper\\n\",\n    \"# Doc: https://huggingface.co/docs/accelerate/usage_guides/gradient_accumulation\\n\",\n    \"gradient_accumulation_steps = 16\\n\",\n    \"\\n\",\n    \"# dataloader\\n\",\n    \"# Note: Do NOT change batch size of dev_loader / test_loader !\\n\",\n    \"# Although batch size=1, it is actually a batch consisting of several windows from the same QA pair\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=train_batch_size, shuffle=True, pin_memory=True)\\n\",\n    \"dev_loader = DataLoader(dev_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"# Change \\\"fp16_training\\\" to True to support automatic mixed\\n\",\n    \"# precision training (fp16)\\n\",\n    \"fp16_training = True\\n\",\n    \"if fp16_training:\\n\",\n    \"    accelerator = Accelerator(mixed_precision=\\\"fp16\\\")\\n\",\n    \"else:\\n\",\n    \"    accelerator = Accelerator()\\n\",\n    \"\\n\",\n    \"# Documentation for the toolkit:  https://huggingface.co/docs/accelerate/\\n\",\n    \"model, optimizer, train_loader = accelerator.prepare(model, optimizer, train_loader)\\n\",\n    \"\\n\",\n    \"model.train()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"print(\\\"Start Training ...\\\")\\n\",\n    \"\\n\",\n    \"for epoch in range(num_epoch):\\n\",\n    \"    step = 1\\n\",\n    \"    train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    for data in tqdm(train_loader):\\n\",\n    \"        # Load all data into GPU\\n\",\n    \"        data = [i.to(device) for i in data]\\n\",\n    \"\\n\",\n    \"        # Model inputs: input_ids, token_type_ids, attention_mask, start_positions, end_positions (Note: only \\\"input_ids\\\" is mandatory)\\n\",\n    \"        # Model outputs: start_logits, end_logits, loss (return when start_positions/end_positions are provided)\\n\",\n    \"        output = model(input_ids=data[0], token_type_ids=data[1], attention_mask=data[2], start_positions=data[3], end_positions=data[4])\\n\",\n    \"        # Choose the most probable start position / end position\\n\",\n    \"        start_index = torch.argmax(output.start_logits, dim=1)\\n\",\n    \"        end_index = torch.argmax(output.end_logits, dim=1)\\n\",\n    \"\\n\",\n    \"        # Prediction is correct only if both start_index and end_index are correct\\n\",\n    \"        train_acc += ((start_index == data[3]) & (end_index == data[4])).float().mean()\\n\",\n    \"\\n\",\n    \"        train_loss += output.loss\\n\",\n    \"\\n\",\n    \"        accelerator.backward(output.loss)\\n\",\n    \"\\n\",\n    \"        step += 1\\n\",\n    \"        optimizer.step()\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        ##### TODO: Apply linear learning rate decay #####\\n\",\n    \"\\n\",\n    \"        # Print training loss and accuracy over past logging step\\n\",\n    \"        if step % logging_step == 0:\\n\",\n    \"            print(f\\\"Epoch {epoch + 1} | Step {step} | loss = {train_loss.item() / logging_step:.3f}, acc = {train_acc / logging_step:.3f}\\\")\\n\",\n    \"            train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    if validation:\\n\",\n    \"        print(\\\"Evaluating Dev Set ...\\\")\\n\",\n    \"        model.eval()\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            dev_acc = 0\\n\",\n    \"            for i, data in enumerate(tqdm(dev_loader)):\\n\",\n    \"                output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"                # prediction is correct only if answer text exactly matches\\n\",\n    \"                dev_acc += evaluate(data, output) == dev_questions[i][\\\"answer_text\\\"]\\n\",\n    \"            print(f\\\"Validation | Epoch {epoch + 1} | acc = {dev_acc / len(dev_loader):.3f}\\\")\\n\",\n    \"        model.train()\\n\",\n    \"\\n\",\n    \"# Save a model and its configuration file to the directory 「saved_model」\\n\",\n    \"# i.e. there are two files under the direcory 「saved_model」: 「pytorch_model.bin」 and 「config.json」\\n\",\n    \"# Saved model can be re-loaded using 「model = BertForQuestionAnswering.from_pretrained(\\\"saved_model\\\")」\\n\",\n    \"print(\\\"Saving Model ...\\\")\\n\",\n    \"model_save_dir = \\\"saved_model\\\"\\n\",\n    \"model.save_pretrained(model_save_dir)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"kMmdLOKBMsdE\"\n   },\n   \"source\": [\n    \"## Testing\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 84,\n     \"referenced_widgets\": [\n      \"9c84cbc758db46e78d7fa361a385ccce\",\n      \"642db3bee97a4bea8a4c1079e2b7526c\",\n      \"ed9f5d147e7844a187d8610130f1ecd9\",\n      \"42dd646b18b24deda274c857d337c973\",\n      \"9e2635394d5b4965b41a05a9bc37a4ec\",\n      \"3366101d46a847dfa5700ffb652dcc86\",\n      \"a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"d26f522a28d24494914df1dd8432af49\",\n      \"c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"a0f74d882c63403c8116c19745e011ba\",\n      \"55a7b680dae94cba8758288dacff2988\"\n     ]\n    },\n    \"id\": \"U5scNKC9xz0C\",\n    \"outputId\": \"841c70f2-2f3c-4c0f-866e-143f127eb6b5\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Evaluating Test Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"35e06fc770e94b38925c079aa19f8ce8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3524 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Completed! Result is in result.csv\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(\\\"Evaluating Test Set ...\\\")\\n\",\n    \"\\n\",\n    \"result = []\\n\",\n    \"\\n\",\n    \"model.eval()\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for data in tqdm(test_loader):\\n\",\n    \"        output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"        result.append(evaluate(data, output))\\n\",\n    \"\\n\",\n    \"result_file = \\\"result.csv\\\"\\n\",\n    \"with open(result_file, 'w') as f:\\n\",\n    \"    f.write(\\\"ID,Answer\\\\n\\\")\\n\",\n    \"    for i, test_question in enumerate(test_questions):\\n\",\n    \"    # Replace commas in answers with empty strings (since csv is separated by comma)\\n\",\n    \"    # Answers in kaggle are processed in the same way\\n\",\n    \"        f.write(f\\\"{test_question['id']},{result[i].replace(',','')}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"print(f\\\"Completed! Result is in {result_file}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0_JVNKOCywbR\"\n   },\n   \"source\": [\n    \"# GradeScope - Question 2 (In-context learning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"SDYN85why7zk\"\n   },\n   \"source\": [\n    \"### In-context learning\\n\",\n    \"The example prompt is :\\n\",\n    \"```\\n\",\n    \"請從最後一篇的文章中找出最後一個問題的答案：\\n\",\n    \"文章：<文章1 內容>\\n\",\n    \"問題：<問題1 敘述>\\n\",\n    \"答案：<答案1>\\n\",\n    \"...\\n\",\n    \"文章：<文章n 內容>\\n\",\n    \"問題：<問題n 敘述>\\n\",\n    \"答案：\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"sGUxltxqzKpm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# To avoid CUDA_OUT_OF_MEMORY\\n\",\n    \"torch.set_default_tensor_type(torch.cuda.FloatTensor)\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 241,\n     \"referenced_widgets\": [\n      \"fd1e236692ec43a18a1750a29515050d\",\n      \"7b3c48ae548848c880439841c0b9cb6b\",\n      \"1023013dc30a4731b61383bd59f2dc91\",\n      \"ee0cb4c1f31346b5b180a7b826688eb4\",\n      \"0f7a38ddfe7b42eaa5c8ffdb3c150641\",\n      \"eb405f797a1441d280029e6e203befce\",\n      \"7a7081fd9d5942af9148e29054b18f51\",\n      \"eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"7c852afee0de49fe8dac74f3af82a725\",\n      \"24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"0549ffe5a6a444dd9fbf8c4513ebe7f7\",\n      \"388d3d2566ff4a1cb68048ac78dd374f\",\n      \"6235eaf236d643c6a163dddb86d3664d\",\n      \"faf78b2739f841d8a213e4311926b598\",\n      \"91f03b6ed1c94cb68970f45ffa64695e\",\n      \"9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"39d35e6e28264b5ca157745d0c1e1491\",\n      \"c497cc2cfabb451aad71f5d7b19873e4\",\n      \"7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"028ec097e62b4ee8a463708f4c3b8f24\",\n      \"f607835a7acf4037821885704bde736d\",\n      \"ddd59aac5a5d48ceace9ede35bf8f11b\",\n      \"20e14c8de0f84979ac3f0d896263f49d\",\n      \"4d7c3ea23e9b42a2ba5b0b11ee190c69\",\n      \"5d9e4fd05f964fd7a11d66b964ea0873\",\n      \"7fb466a306e6443287cb2fa2bea90f06\",\n      \"1b2b45ecc27b4f28bc0194709fed0638\",\n      \"6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"f51192579d014a52b132f99abf8901b2\",\n      \"6912ca44b1864902a3e32d4a19a4972d\",\n      \"acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"fda75dc7c2d24f7b827b2c78a6988586\",\n      \"2d1a48d240b949ad9b465985e90557c5\",\n      \"5a0f5ba8ad024f5b915e34e48f269437\",\n      \"bc4b72ff74d84c9e83b328e8823044b1\",\n      \"901f4ebc70f144c188d03a4978920441\",\n      \"98ce66c91c5c45968a3844fb0de50624\",\n      \"a24d04e7064048c2819ef88a50ce9093\",\n      \"154be9baa03943d08c975dbc85c4edf8\",\n      \"2fe4fa69d9544fd393a4d72c02245245\",\n      \"c4da9fed45254ebdaa49312f16d9b159\",\n      \"53a2b78a732c4522805de5c9aed92c41\",\n      \"0440f9e26a0b420b86175bc62e212d01\",\n      \"c9bf7b5808f74db9811f5b64e878dcd5\",\n      \"66a35d11743141b1b20904b13a4b86ea\",\n      \"c0145fad2cb843e9b75ac47d307cc346\",\n      \"d61e0c79febd45c8b00e3566296d7e8e\",\n      \"2a59b752f9414e69b8c1d24bd24159f2\",\n      \"447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"16b30759d76a4c8f979212d1ae30c297\",\n      \"1639410507da4b54996064d9fcc8621c\",\n      \"e515df89088042dbbe23594e5976e10d\",\n      \"0dccf470d87f4585af65826582399466\",\n      \"7dee4e5320d349159422709a69af61f4\",\n      \"86dbdec7087f4312b945c3a3940d8965\",\n      \"cdbf6c3b5b3948229946fd51c227b51e\",\n      \"d132ff798f284c9cbe2a73d35d776592\",\n      \"fead01a1a86c40bcb1ba9133ef351d7c\",\n      \"f19d9d34c978402691a89114849d2bb9\",\n      \"7a729fb76a374da99334e7d4b4de102e\",\n      \"cccbdce89ff545f6a66304352b320ad7\",\n      \"cbd776799c18488eb74a8f17cc27c6fd\",\n      \"b1cd7728deff4d50a18cb22805351330\",\n      \"550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"745f78a378b5412eae007f029e8c321a\",\n      \"2c449a0e664c41a79b3a1de62e94b5b7\",\n      \"a9a16bf8795c402a90cf4504b1cd30a1\",\n      \"715ad9f6bdaa46298317e049404f9755\",\n      \"667f153201d347a0a01e39b438fa736b\",\n      \"d652cdca44e04070a420c5d1a24b4fd1\",\n      \"b5c71e0a94014278a22ba45a6f58b77d\",\n      \"7f928c5e620a49c1ae137868e34818a9\",\n      \"d403f126d48746948c0f627dfdce5d65\",\n      \"d41e81f720f44b52b9a914e4c619bfee\",\n      \"bee7c0220d4e476dbc035fbc5dc44fa3\"\n     ]\n    },\n    \"id\": \"wIS23s79zItf\",\n    \"outputId\": \"c686be61-221a-4f55-ca79-67715343f1db\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"112df4f307f143458b0561687d135148\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"tokenizer_config.json:   0%|          | 0.00/335 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e7180201419e4c33b4395c8f30a634a3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"sentencepiece.bpe.model:   0%|          | 0.00/4.92M [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"72212b6028f84590af2a1d5777f6d9cb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"tokenizer.json: 0.00B [00:00, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"13630f6198404e259fdfcbf0602a8b0d\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"special_tokens_map.json:   0%|          | 0.00/276 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0e9652e9f9f943e895949e04e7ffbb87\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"config.json:   0%|          | 0.00/310 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"36ffbc80f58d406aaba5c2cd2c1ebf21\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"pytorch_model.bin:   0%|          | 0.00/3.47G [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"61dc11e2234f4887873f44a1cdefdefb\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"generation_config.json:   0%|          | 0.00/168 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModelForCausalLM\\n\",\n    \"\\n\",\n    \"# You can try model with different size\\n\",\n    \"# When using Colab or Kaggle, models with more than 2 billions parameters may\\n\",\n    \"# run out of memory\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"facebook/xglm-1.7B\\\")\\n\",\n    \"model = AutoModelForCausalLM.from_pretrained(\\\"facebook/xglm-1.7B\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"2d97YtavzFHA\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# To clean model output. If you try different prompts, you may have to fix\\n\",\n    \"# this function on your own\\n\",\n    \"def clean_text(text):\\n\",\n    \"    # Note: When you use unilingual model, the colon may become fullwidth\\n\",\n    \"    text = text.split(\\\"答案:\\\")[-1]\\n\",\n    \"    text = text.split(\\\" \\\")[0]\\n\",\n    \"    return text\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"jdf3gdP_yykH\",\n    \"outputId\": \"b9a784dd-e5d7-4212-c089-e0180157bd11\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：2010年引入的廣州快速交通運輸系統是世界第二大快速運輸系統。每日載客量可達100萬人次。每小時的客流量峰值高達26,900名乘客，僅次於波哥大的快速交通系統。每10秒有一輛公共汽車，每輛公共汽車在一個方向上行駛350小時。該平台包括橋樑，是世界上最長的國家公共汽車快速運輸系統平台，長度為260米。目前，廣州市的出租車和公交車主要以液化石油氣為燃料，部分公交車採用油電，氣電混合技術。2012年底，一輛LNG燃料公共汽車開始啟動。2014年6月，引入了LNG插電式混合動力公交車取代LPG公交車。2007年1月16日，廣州市政府完全禁止在城市地區駕駛摩托車。違反禁令的機動車將被沒收。廣州市交通局聲稱，禁令的實施導致交通擁堵和車禍大大減少。廣州白雲國際機場位於白雲區與花都區交界處。它於2004年8月5日正式投入運營。它是中國第二繁忙的機場。機場取代了原先位於市中心的舊機場，無法滿足日益增長的航空需求。目前，機場有三個簡易機場，是中國第三個擁有三條跑道的民航機場。比2023年香港國際機場第三條跑道的預計完工時間提前了8年。\\n\",\n      \"問題：從哪一天開始在廣州市內騎摩托車會被沒收？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2007年1月16日\\n\",\n      \"模型輸出: 2007年1月16日\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 200公里\\n\",\n      \"模型輸出: 200公里\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：香港\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：文化大革命\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 首都。\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年引入的廣州快速交通運輸系統是世界第二大快速運輸系統。每日載客量可達100萬人次。每小時的客流量峰值高達26,900名乘客，僅次於波哥大的快速交通系統。每10秒有一輛公共汽車，每輛公共汽車在一個方向上行駛350小時。該平台包括橋樑，是世界上最長的國家公共汽車快速運輸系統平台，長度為260米。目前，廣州市的出租車和公交車主要以液化石油氣為燃料，部分公交車採用油電，氣電混合技術。2012年底，一輛LNG燃料公共汽車開始啟動。2014年6月，引入了LNG插電式混合動力公交車取代LPG公交車。2007年1月16日，廣州市政府完全禁止在城市地區駕駛摩托車。違反禁令的機動車將被沒收。廣州市交通局聲稱，禁令的實施導致交通擁堵和車禍大大減少。廣州白雲國際機場位於白雲區與花都區交界處。它於2004年8月5日正式投入運營。它是中國第二繁忙的機場。機場取代了原先位於市中心的舊機場，無法滿足日益增長的航空需求。目前，機場有三個簡易機場，是中國第三個擁有三條跑道的民航機場。比2023年香港國際機場第三條跑道的預計完工時間提前了8年。\\n\",\n      \"問題：從哪一天開始在廣州市內騎摩托車會被沒收？\\n\",\n      \"答案：2007年1月16日\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2015\\n\",\n      \"模型輸出: 1990年\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 文化大革命\\n\",\n      \"模型輸出: 文化大革命\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：六朝時期，廣州的對外貿易相當繁榮，外國海商“長期停留在廣州尋求利潤”。在隋唐時期，廣州的對外貿易發展到了頂峰。作為唐代唯一的城市，外國人口占全市人口的30％以上，成為中國對外貿易的核心。在元朝短暫的沉寂之後，廣州和明清在廣州重新出現。在清代的一站式貿易政策下，它成為當時中國唯一的外國港口，成為具有壟斷地位的國家商業中心。上海開放後，隨著國家的逐步開放，廣州逐漸失去了對外貿易中心的地位，但它仍然是全國最重要的商業城市。改革開放後，廣州百貨業蓬勃發展。 20世紀80年代，友誼商店專門為香港，澳門和外國客人銷售電器和其他進口商品。西湖路照明夜市是平民的熱門目的地。南樓位於江西路沿線，已成為華南地區最大的綜合性百貨商場。它還在大陸創建了第一家24小時便利店，華夏百貨商店成立了人民南商圈。延伸，後者於1995年建立了一條步行街。新大新公司和廣州百貨在北京路的業務也蓬勃發展，這條路也成了一條步行街。超市Wankelong於1996年在廣州開設了第一家分店，然後廣州人熟悉的超市和便利店品牌，如香港百佳超市進入廣州。由於交通壓力和天河新區的發展，20世紀90年代末人民南方商業圈開始衰落，成為電子服裝批發的集散地，城市商業區遷至東部新區。21世紀，以天河城，天環廣場，鄭家廣場，太古彙和萬靈彙為代表的天河路商業區已成為廣州的中心商業區。自1957年以來，中國出口商品交易會每年春秋兩季舉辦。目前，每個展覽都吸引了來自世界各地的20多萬商家。這是中國規模最大，時間最長，最成功的國際展覽會。隨著琶洲展館三期工程的建設，展覽能力躍居世界前列。\\n\",\n      \"問題：唐朝的對外貿易核心在哪？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 廣州\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：2015\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：自古以來，廣州基本上就是嶺南的政治中心。秦朝末年是南嶽的首都，漢朝征服了南嶽州，後來成為南海縣。漢末遷至龍灣和古代大壩。在三國時期，吳國布將縣長遷回番禺，後來成立了膠州府。廣州和廣州轉移後，它是廣州的州長。晉南，南北朝使用南海縣，番禺由縣統治。文帝皇帝廢棄了南海縣，成立了廣州總務辦公室，後來改為杜都政府。唐代分為十個民族，其中嶺南大智學院位於廣州。862年，嶺南分為東二西路，廣州分為嶺南東路。五代時期，廣州是南漢的首都。宋初，嶺南路重建，廣州是行政中心。明代廣州是廣州阜城，隸屬番禺縣和南海縣。清軍佔領中原後，南明邵武帝朱熹在廣州建成，很快南明就死了。清代廣州成為廣東省，廣州阜城，番禺和南海縣。廣東省和廣西省，廣東省屯門省長，廣東省屯門局長，廣東省檢察院都在廣州市南海縣境內。1858年，英法聯軍攻占廣州，廣東省長投降，外國人委員會成立，廣東省政府成為政府。\\n\",\n      \"問題：南明的首都在哪？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 廣州\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：香港\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：從化市\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 武昌起義\\n\",\n      \"模型輸出: 1911年10月10日武昌起義\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 香港\\n\",\n      \"模型輸出: 香港\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：長期以來，廣州大部分地方的語言主要是廣東話。因此，廣州還形成了粵語文化，包括粵劇，粵劇，南音和鹹水歌。隨著中國大陸的改革開放，來自城外和廣東省以外的大量人口迅速湧入。在這些移民中，由於不同的省/總統，有許多不同的語言，外國人和來自不同地區的人經常用普通話交流;因此，在許多大型公共場所，普通話是主要語言。在某些情況下，將增加粵語或英語廣播，種族群體仍然使用自己的方言進行相互交流。一些外國人會用當地文化交流，用粵語與當地人交流。如今，隨著普通話的推廣，外國和本地年輕人受長期使用普通話作為教學媒介和普通話的共同環境的影響。目前，廣州的語言交換主要講普通話，但當地人仍然使用廣東話。與交流。雖然普通話自21世紀初以來逐漸佔據主導地位，但它受到當地文化的影響。與此同時，由於香港和澳門的距離較近，以及廣州市民近年來開展了一系列推廣普通話的評論，它已開始保護廣東話，所以廣東話仍有一定的地位。當地。 。\\n\",\n      \"問題：在廣州許多比較大的公眾場合以甚麼為主要交流語言？\\n\",\n      \"答案：普通話\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 1921\\n\",\n      \"模型輸出: 公元前214年,秦始皇出兵徵兵南,南海縣任\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：廣州是中國最重要的開放城市之一。作為對外貿易的窗口，有許多來自北美，日本，韓國，歐洲，中東，非洲等國的外國人，尤其是非洲黑人。廣州甚至被稱為“第三世界”。首都主要位於廣州市環市東路秀山大廈，淘金路，花園酒店，建馬路和劍馬路;天河北路，體育東路，天河路，龍口西路，臨河中路等公司辦公室;番禺區的一些物業，如克利福德新村和麗江花園，也有更多的外國人。據廣州市公安局出入境管理支隊2014年10月統計，在廣州登記的外國人有11.8萬人，其中臨時居民71,000人，居住半年以上的47,000名永久居民。其中大多數是來自非洲的4,000多名註冊外國人;來自阿拉伯國家和地區的約1萬人雖然沒有大規模的定居點，但經常出現在小北 - 登封地區的商業區進行商業活動。在荔景街也有更多的韓國人。2013年，有超過15萬名乘客進出廣州港，其中54萬人來自非洲國家。他們中的大多數人來往於同一個人，主要是因為簽證允許短期逗留或商業需求而不是移民。近年來，廣州黑人一直捲入廣州的一些公安問題，引起廣州市民的一些不滿。針對“三非”問題，公安機關設立了四個涉外綜合執法隊伍，翻譯志願服務隊伍，調查“三個非外國”外國專業隊和四個外國隊 - 相關管理基層服務隊伍;自年初以來，廣州在200多名外國人社區建立了75個“外國人管理服務工作站”，並大力打擊“三非”外國人。它已經取得了成果。\\n\",\n      \"問題：被稱為「第三世界首都」的城市哪種外籍人士最多？\\n\",\n      \"答案：非洲黑人\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 7月\\n\",\n      \"模型輸出: 2010年7月\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2008年\\n\",\n      \"模型輸出: 廣州获得「創建國家健康城市」獎項\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：2015\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 從化市\\n\",\n      \"模型輸出: 越秀區\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：文化大革命\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：作為中國最大的城市之一，廣州有大量在廣州工作的外國人。然而，“本地人”與“外國人”之間的關係難以協調，也會引發一系列社會問題。由於廣州的能力和就業能力有限，廣州無法容納來自全國各地的農民工。其安全環境已經過嚴格測試。經常發生“兩個盜賊和一個小偷”事件，特別是在城市村莊。根據廣州社會科學院的一項調查，80％的囚犯被逮捕為“局外人”。除了廣東話的光復文化外，外國人和外國方言的排斥增加了廣州市民的仇外心理。近年來，由於政府的大力禁令，廣州的公安管理取得了顯著成效。2014年，廣東省政府明確要求控制廣州和深圳特大城市的人口規模。2008年，農民工佔廣州人口的40％，其中大多數是女性農民工，其中許多人未婚。截至2013年底，廣州註冊人口為686.7萬。根據一定的錯失率，廣州的實際流動人口約為837萬。這些數據已超過常住人口。最新統計數據顯示，廣州常住人口為832萬。其中，白雲區，番禺區和天河區流動人口超過百萬。番禺區有111.7萬戶登記移民，流動戶籍區涉及30個省，自治區，直轄市。在性別比方面，男性略多，佔總數的53.5％;女性佔總數的46.5％。在番禺流動人口中，兒童和老年人的比例極小，15歲以下為0.49％，60歲以上為1.68％，大專以上為10％。\\n\",\n      \"問題：有百分之多少的犯人被抓的是外地人？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 80\\n\",\n      \"模型輸出: 廣州的社會環境\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為中國最大的城市之一，廣州有大量在廣州工作的外國人。然而，“本地人”與“外國人”之間的關係難以協調，也會引發一系列社會問題。由於廣州的能力和就業能力有限，廣州無法容納來自全國各地的農民工。其安全環境已經過嚴格測試。經常發生“兩個盜賊和一個小偷”事件，特別是在城市村莊。根據廣州社會科學院的一項調查，80％的囚犯被逮捕為“局外人”。除了廣東話的光復文化外，外國人和外國方言的排斥增加了廣州市民的仇外心理。近年來，由於政府的大力禁令，廣州的公安管理取得了顯著成效。2014年，廣東省政府明確要求控制廣州和深圳特大城市的人口規模。2008年，農民工佔廣州人口的40％，其中大多數是女性農民工，其中許多人未婚。截至2013年底，廣州註冊人口為686.7萬。根據一定的錯失率，廣州的實際流動人口約為837萬。這些數據已超過常住人口。最新統計數據顯示，廣州常住人口為832萬。其中，白雲區，番禺區和天河區流動人口超過百萬。番禺區有111.7萬戶登記移民，流動戶籍區涉及30個省，自治區，直轄市。在性別比方面，男性略多，佔總數的53.5％;女性佔總數的46.5％。在番禺流動人口中，兒童和老年人的比例極小，15歲以下為0.49％，60歲以上為1.68％，大專以上為10％。\\n\",\n      \"問題：有百分之多少的犯人被抓的是外地人？\\n\",\n      \"答案：80\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是中國最重要的開放城市之一。作為對外貿易的窗口，有許多來自北美，日本，韓國，歐洲，中東，非洲等國的外國人，尤其是非洲黑人。廣州甚至被稱為“第三世界”。首都主要位於廣州市環市東路秀山大廈，淘金路，花園酒店，建馬路和劍馬路;天河北路，體育東路，天河路，龍口西路，臨河中路等公司辦公室;番禺區的一些物業，如克利福德新村和麗江花園，也有更多的外國人。據廣州市公安局出入境管理支隊2014年10月統計，在廣州登記的外國人有11.8萬人，其中臨時居民71,000人，居住半年以上的47,000名永久居民。其中大多數是來自非洲的4,000多名註冊外國人;來自阿拉伯國家和地區的約1萬人雖然沒有大規模的定居點，但經常出現在小北 - 登封地區的商業區進行商業活動。在荔景街也有更多的韓國人。2013年，有超過15萬名乘客進出廣州港，其中54萬人來自非洲國家。他們中的大多數人來往於同一個人，主要是因為簽證允許短期逗留或商業需求而不是移民。近年來，廣州黑人一直捲入廣州的一些公安問題，引起廣州市民的一些不滿。針對“三非”問題，公安機關設立了四個涉外綜合執法隊伍，翻譯志願服務隊伍，調查“三個非外國”外國專業隊和四個外國隊 - 相關管理基層服務隊伍;自年初以來，廣州在200多名外國人社區建立了75個“外國人管理服務工作站”，並大力打擊“三非”外國人。它已經取得了成果。\\n\",\n      \"問題：被稱為「第三世界首都」的城市哪種外籍人士最多？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 非洲黑人\\n\",\n      \"模型輸出: 非洲黑人\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：從化市\\n\",\n      \"文章：長期以來，廣州大部分地方的語言主要是廣東話。因此，廣州還形成了粵語文化，包括粵劇，粵劇，南音和鹹水歌。隨著中國大陸的改革開放，來自城外和廣東省以外的大量人口迅速湧入。在這些移民中，由於不同的省/總統，有許多不同的語言，外國人和來自不同地區的人經常用普通話交流;因此，在許多大型公共場所，普通話是主要語言。在某些情況下，將增加粵語或英語廣播，種族群體仍然使用自己的方言進行相互交流。一些外國人會用當地文化交流，用粵語與當地人交流。如今，隨著普通話的推廣，外國和本地年輕人受長期使用普通話作為教學媒介和普通話的共同環境的影響。目前，廣州的語言交換主要講普通話，但當地人仍然使用廣東話。與交流。雖然普通話自21世紀初以來逐漸佔據主導地位，但它受到當地文化的影響。與此同時，由於香港和澳門的距離較近，以及廣州市民近年來開展了一系列推廣普通話的評論，它已開始保護廣東話，所以廣東話仍有一定的地位。當地。 。\\n\",\n      \"問題：在廣州許多比較大的公眾場合以甚麼為主要交流語言？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 普通話\\n\",\n      \"模型輸出: 廣州的廣東人,廣東人,廣東人,廣東人,廣\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import random\\n\",\n    \"import json\\n\",\n    \"\\n\",\n    \"with open(\\\"hw7_in-context-learning-examples.json\\\", \\\"r\\\") as f:\\n\",\n    \"    test = json.load(f)\\n\",\n    \"\\n\",\n    \"# K-shot learning\\n\",\n    \"# Give model K examples to make it achieve better accuracy\\n\",\n    \"# Note: (1) When K >= 4, CUDA_OUT_OFF_MEMORY may occur.\\n\",\n    \"#       (2) The maximum input length of XGLM is 2048\\n\",\n    \"K = 2\\n\",\n    \"\\n\",\n    \"question_ids = [qa[\\\"id\\\"] for qa in test[\\\"questions\\\"]]\\n\",\n    \"\\n\",\n    \"with open(\\\"in-context-learning-result.txt\\\", \\\"w\\\") as f:\\n\",\n    \"    print(\\\"ID,Ground-Truth,Prediction\\\", file = f)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for idx, qa in enumerate(test[\\\"questions\\\"]):\\n\",\n    \"            # You can try different prompts\\n\",\n    \"            prompt = \\\"請從最後一篇的文章中找出最後一個問題的答案\\\\n\\\"\\n\",\n    \"            exist_question_indexs = [question_ids.index(qa[\\\"id\\\"])]\\n\",\n    \"\\n\",\n    \"            # K-shot learning: give the model K examples with answers\\n\",\n    \"            for i in range(K):\\n\",\n    \"                question_index = question_ids.index(qa[\\\"id\\\"])\\n\",\n    \"                while(question_index in exist_question_indexs):\\n\",\n    \"                    question_index = random.randint(0, len(question_ids) - 1)\\n\",\n    \"                exist_question_indexs.append(question_index)\\n\",\n    \"                paragraph_id = test[\\\"questions\\\"][question_index][\\\"paragraph_id\\\"]\\n\",\n    \"                prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"                prompt += f'問題：{test[\\\"questions\\\"][question_index][\\\"question_text\\\"]}\\\\n'\\n\",\n    \"                prompt += f'答案：{test[\\\"questions\\\"][question_index][\\\"answer_text\\\"]}\\\\n'\\n\",\n    \"\\n\",\n    \"            # The final one question without answer\\n\",\n    \"            paragraph_id = qa[\\\"paragraph_id\\\"]\\n\",\n    \"            prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"            prompt += f'問題：{qa[\\\"question_text\\\"]}\\\\n'\\n\",\n    \"            prompt += f'答案：'\\n\",\n    \"\\n\",\n    \"            inputs = tokenizer(prompt, add_special_tokens=False, return_tensors=\\\"pt\\\")\\n\",\n    \"            sample = model.generate(**inputs, max_new_tokens = 20)\\n\",\n    \"            text = tokenizer.decode(sample[0], skip_special_tokens=True)\\n\",\n    \"\\n\",\n    \"            # Note: You can delete this line to see what will happen\\n\",\n    \"            text = clean_text(text)\\n\",\n    \"\\n\",\n    \"            print(prompt)\\n\",\n    \"            print(f'正確答案: {qa[\\\"answer_text\\\"]}')\\n\",\n    \"            print(f'模型輸出: {text}')\\n\",\n    \"            print()\\n\",\n    \"\\n\",\n    \"            print(f\\\"{idx},{qa['answer_text']},{text}\\\", file = f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"k3prlGCdjf38\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"028ec097e62b4ee8a463708f4c3b8f24\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0386ad4eea2b4387b48cd58e95bcd4ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"0440f9e26a0b420b86175bc62e212d01\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_c9bf7b5808f74db9811f5b64e878dcd5\",\n       \"IPY_MODEL_66a35d11743141b1b20904b13a4b86ea\",\n       \"IPY_MODEL_c0145fad2cb843e9b75ac47d307cc346\"\n      ],\n      \"layout\": \"IPY_MODEL_d61e0c79febd45c8b00e3566296d7e8e\"\n     }\n    },\n    \"04c0aa3d24944485b475601f786b56f1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"052cccb5d69d476f9caac95848e0353a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0549ffe5a6a444dd9fbf8c4513ebe7f7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_388d3d2566ff4a1cb68048ac78dd374f\",\n       \"IPY_MODEL_6235eaf236d643c6a163dddb86d3664d\",\n       \"IPY_MODEL_faf78b2739f841d8a213e4311926b598\"\n      ],\n      \"layout\": \"IPY_MODEL_91f03b6ed1c94cb68970f45ffa64695e\"\n     }\n    },\n    \"06e4e53bd3e748ad90d14eeec117aac9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9c7a21dc260a4ad7b87f2123947058a2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7b7a0c46d9794d6fa66401f03684dec0\",\n      \"value\": \"100%\"\n     }\n    },\n    \"0dccf470d87f4585af65826582399466\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0f7a38ddfe7b42eaa5c8ffdb3c150641\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1023013dc30a4731b61383bd59f2dc91\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"max\": 335,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c852afee0de49fe8dac74f3af82a725\",\n      \"value\": 335\n     }\n    },\n    \"1181117783fd4bca9d7f5f296507aff3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"11dcde71ff984d829ec9612e7f43e3a3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"154be9baa03943d08c975dbc85c4edf8\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1639410507da4b54996064d9fcc8621c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"16b30759d76a4c8f979212d1ae30c297\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1b2b45ecc27b4f28bc0194709fed0638\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"1e20837bf23548249678da0a07745d58\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26e50974c52452389c5abb001056546\",\n      \"max\": 29,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_9eefbb580f0146658d18658f210d3a67\",\n      \"value\": 29\n     }\n    },\n    \"20cd68a7e03f4353aa99fcefc1f16d36\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"20e14c8de0f84979ac3f0d896263f49d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"max\": 9032074,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_f51192579d014a52b132f99abf8901b2\",\n      \"value\": 9032074\n     }\n    },\n    \"23afbee21a644745b24b8ffefed6b286\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"24b96f20dd5f4a6d8cf9788e97a74f73\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"250451c12cee4aacb91a32d7da4ab861\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"28fc746a3c0548f4a4ff669b5dbb7320\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"29a7b6bb49004c3c96a6d48cd55e1ec3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_06e4e53bd3e748ad90d14eeec117aac9\",\n       \"IPY_MODEL_6a47a3bc614a44e7a5b0dfef50cadaf7\",\n       \"IPY_MODEL_fba6bb8f65904ae6ae4f5bca95e942e2\"\n      ],\n      \"layout\": \"IPY_MODEL_6d5ad2f51bb3459b85201f983a499ea2\"\n     }\n    },\n    \"2a59b752f9414e69b8c1d24bd24159f2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"2c37badbe0504073b31abd67a8c0b808\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_bfd7d35860c14dd3b8e5eea07032311d\",\n       \"IPY_MODEL_db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n       \"IPY_MODEL_b0af063597ea4de5a8c8bf4f370f782a\"\n      ],\n      \"layout\": \"IPY_MODEL_5b1ac1a0f04f4c29b3c1127ec3d95e81\"\n     }\n    },\n    \"2c449a0e664c41a79b3a1de62e94b5b7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d652cdca44e04070a420c5d1a24b4fd1\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b5c71e0a94014278a22ba45a6f58b77d\",\n      \"value\": \"Downloading (…)neration_config.json: 100%\"\n     }\n    },\n    \"2d1a48d240b949ad9b465985e90557c5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_98ce66c91c5c45968a3844fb0de50624\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a24d04e7064048c2819ef88a50ce9093\",\n      \"value\": \"Downloading (…)cial_tokens_map.json: 100%\"\n     }\n    },\n    \"2fe4fa69d9544fd393a4d72c02245245\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"304609dbefa74735baa08ce7aadff92d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"3366101d46a847dfa5700ffb652dcc86\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"33fa92f225be477d8cd176a0a4e8894e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"388d3d2566ff4a1cb68048ac78dd374f\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_39d35e6e28264b5ca157745d0c1e1491\",\n      \"value\": \"Downloading (…)tencepiece.bpe.model: 100%\"\n     }\n    },\n    \"39d35e6e28264b5ca157745d0c1e1491\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3eaf82623d964c2abb92b4509ac5ca9d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_33fa92f225be477d8cd176a0a4e8894e\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b80166eeee984661a611a02d1eae4458\",\n      \"value\": \"Downloading (…)solve/main/vocab.txt: 100%\"\n     }\n    },\n    \"42dd646b18b24deda274c857d337c973\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a0f74d882c63403c8116c19745e011ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_55a7b680dae94cba8758288dacff2988\",\n      \"value\": \" 3524/3524 [01:20&lt;00:00, 46.55it/s]\"\n     }\n    },\n    \"447bb12155cf4dc193ffea3f64c6a8f8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"4d7c3ea23e9b42a2ba5b0b11ee190c69\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6912ca44b1864902a3e32d4a19a4972d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"value\": \" 9.03M/9.03M [00:00&lt;00:00, 35.9MB/s]\"\n     }\n    },\n    \"5195ed241f09440eaf84a7e0b3dc8155\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"53a2b78a732c4522805de5c9aed92c41\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"53c1ce79c38b45fc8d1b675515642c54\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_9370d0df1bca4b9a9c15e1d3e10142d9\",\n       \"IPY_MODEL_611f0f0c70a5471b891bd6f6b8cb7863\",\n       \"IPY_MODEL_986b627aef004704ac0806a9aa189938\"\n      ],\n      \"layout\": \"IPY_MODEL_f2b466617f0247638e0934c8fe95ed1d\"\n     }\n    },\n    \"550e7aaac7fa4c3db37ceca6a5595ddb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"55a7b680dae94cba8758288dacff2988\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"5a0f5ba8ad024f5b915e34e48f269437\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_154be9baa03943d08c975dbc85c4edf8\",\n      \"max\": 276,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_2fe4fa69d9544fd393a4d72c02245245\",\n      \"value\": 276\n     }\n    },\n    \"5b1ac1a0f04f4c29b3c1127ec3d95e81\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"5d9e4fd05f964fd7a11d66b964ea0873\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"611f0f0c70a5471b891bd6f6b8cb7863\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"max\": 3365,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c61a280288d4608b6ef341ce3adb7a8\",\n      \"value\": 3365\n     }\n    },\n    \"6235eaf236d643c6a163dddb86d3664d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c497cc2cfabb451aad71f5d7b19873e4\",\n      \"max\": 4920706,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"value\": 4920706\n     }\n    },\n    \"641665cb9ec6433a81719d57eeaf8298\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ba9c1cd3cfe04add90aa2edf2aa87378\",\n       \"IPY_MODEL_1e20837bf23548249678da0a07745d58\",\n       \"IPY_MODEL_c1d24cb7607c44b989774113a2baf675\"\n      ],\n      \"layout\": \"IPY_MODEL_c9144705a33848a6b142f9887da6ac49\"\n     }\n    },\n    \"642db3bee97a4bea8a4c1079e2b7526c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3366101d46a847dfa5700ffb652dcc86\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"value\": \"100%\"\n     }\n    },\n    \"667f153201d347a0a01e39b438fa736b\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"66a35d11743141b1b20904b13a4b86ea\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_16b30759d76a4c8f979212d1ae30c297\",\n      \"max\": 548,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_1639410507da4b54996064d9fcc8621c\",\n      \"value\": 548\n     }\n    },\n    \"6912ca44b1864902a3e32d4a19a4972d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a2f5722362c4ec08ae8ed7d681dc7ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a47a3bc614a44e7a5b0dfef50cadaf7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_11dcde71ff984d829ec9612e7f43e3a3\",\n      \"max\": 2863,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_a987cb79f4904973958a98f492c6443a\",\n      \"value\": 2863\n     }\n    },\n    \"6be63de77ed14eee9c37e93d3a75f743\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_304609dbefa74735baa08ce7aadff92d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_250451c12cee4aacb91a32d7da4ab861\",\n      \"value\": \" 110k/110k [00:00&lt;00:00, 1.53MB/s]\"\n     }\n    },\n    \"6d5ad2f51bb3459b85201f983a499ea2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"715ad9f6bdaa46298317e049404f9755\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d41e81f720f44b52b9a914e4c619bfee\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bee7c0220d4e476dbc035fbc5dc44fa3\",\n      \"value\": \" 168/168 [00:00&lt;00:00, 4.67kB/s]\"\n     }\n    },\n    \"745f78a378b5412eae007f029e8c321a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2c449a0e664c41a79b3a1de62e94b5b7\",\n       \"IPY_MODEL_a9a16bf8795c402a90cf4504b1cd30a1\",\n       \"IPY_MODEL_715ad9f6bdaa46298317e049404f9755\"\n      ],\n      \"layout\": \"IPY_MODEL_667f153201d347a0a01e39b438fa736b\"\n     }\n    },\n    \"78818b2d8cc748efbf1b5784a9ee2a85\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7a7081fd9d5942af9148e29054b18f51\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7a729fb76a374da99334e7d4b4de102e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7b3c48ae548848c880439841c0b9cb6b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb405f797a1441d280029e6e203befce\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a7081fd9d5942af9148e29054b18f51\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"7b7a0c46d9794d6fa66401f03684dec0\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7c61a280288d4608b6ef341ce3adb7a8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7c852afee0de49fe8dac74f3af82a725\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7dee4e5320d349159422709a69af61f4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_86dbdec7087f4312b945c3a3940d8965\",\n       \"IPY_MODEL_cdbf6c3b5b3948229946fd51c227b51e\",\n       \"IPY_MODEL_d132ff798f284c9cbe2a73d35d776592\"\n      ],\n      \"layout\": \"IPY_MODEL_fead01a1a86c40bcb1ba9133ef351d7c\"\n     }\n    },\n    \"7f7f2c3afc2647c086877a2f4eff6c12\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7f928c5e620a49c1ae137868e34818a9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7fb466a306e6443287cb2fa2bea90f06\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"86dbdec7087f4312b945c3a3940d8965\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f19d9d34c978402691a89114849d2bb9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a729fb76a374da99334e7d4b4de102e\",\n      \"value\": \"Downloading pytorch_model.bin: 100%\"\n     }\n    },\n    \"8710bb7686df4fb3a73e5af839be5305\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"8b264499afca4694849b08e2091f6826\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_3eaf82623d964c2abb92b4509ac5ca9d\",\n       \"IPY_MODEL_aa3ff7831fbf47efa404805886ca4696\",\n       \"IPY_MODEL_6be63de77ed14eee9c37e93d3a75f743\"\n      ],\n      \"layout\": \"IPY_MODEL_5195ed241f09440eaf84a7e0b3dc8155\"\n     }\n    },\n    \"8d791392eed34a9b8e155da9a4b0a0d6\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"901f4ebc70f144c188d03a4978920441\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"91f03b6ed1c94cb68970f45ffa64695e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9370d0df1bca4b9a9c15e1d3e10142d9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_04c0aa3d24944485b475601f786b56f1\",\n      \"value\": \"100%\"\n     }\n    },\n    \"941a345ba82a44d5ad597a15c0af0d5c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"986b627aef004704ac0806a9aa189938\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8710bb7686df4fb3a73e5af839be5305\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"value\": \" 3365/3365 [09:20&lt;00:00,  6.34it/s]\"\n     }\n    },\n    \"98ce66c91c5c45968a3844fb0de50624\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c7a21dc260a4ad7b87f2123947058a2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c84cbc758db46e78d7fa361a385ccce\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_642db3bee97a4bea8a4c1079e2b7526c\",\n       \"IPY_MODEL_ed9f5d147e7844a187d8610130f1ecd9\",\n       \"IPY_MODEL_42dd646b18b24deda274c857d337c973\"\n      ],\n      \"layout\": \"IPY_MODEL_9e2635394d5b4965b41a05a9bc37a4ec\"\n     }\n    },\n    \"9e2635394d5b4965b41a05a9bc37a4ec\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9e312a0ec6a2478fb0f55691caf6d9ae\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9eefbb580f0146658d18658f210d3a67\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a075ee85c2d34ab3b2d011c63dc02286\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a0f74d882c63403c8116c19745e011ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a1602e58c3a7413490ce0a93f35a7ca9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a24d04e7064048c2819ef88a50ce9093\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a5bf4132f3dd4c7a807f27c8106fdd59\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a987cb79f4904973958a98f492c6443a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a9a16bf8795c402a90cf4504b1cd30a1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7f928c5e620a49c1ae137868e34818a9\",\n      \"max\": 168,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_d403f126d48746948c0f627dfdce5d65\",\n      \"value\": 168\n     }\n    },\n    \"aa3ff7831fbf47efa404805886ca4696\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"max\": 109540,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_fb908d9c3e374983aa47478a95411ba7\",\n      \"value\": 109540\n     }\n    },\n    \"acbfe8b88e6945ab9a5959fbb5f294de\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b0af063597ea4de5a8c8bf4f370f782a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a075ee85c2d34ab3b2d011c63dc02286\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_052cccb5d69d476f9caac95848e0353a\",\n      \"value\": \" 269k/269k [00:00&lt;00:00, 2.44MB/s]\"\n     }\n    },\n    \"b1cd7728deff4d50a18cb22805351330\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"b5c71e0a94014278a22ba45a6f58b77d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b80166eeee984661a611a02d1eae4458\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b91c8359a6444497b3665e66afbe237d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ba9c1cd3cfe04add90aa2edf2aa87378\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"bab8f16e038b440a8016ef087ee12904\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bc4b72ff74d84c9e83b328e8823044b1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c4da9fed45254ebdaa49312f16d9b159\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_53a2b78a732c4522805de5c9aed92c41\",\n      \"value\": \" 276/276 [00:00&lt;00:00, 14.5kB/s]\"\n     }\n    },\n    \"bee7c0220d4e476dbc035fbc5dc44fa3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bfd7d35860c14dd3b8e5eea07032311d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b91c8359a6444497b3665e66afbe237d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1181117783fd4bca9d7f5f296507aff3\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"c0145fad2cb843e9b75ac47d307cc346\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_e515df89088042dbbe23594e5976e10d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_0dccf470d87f4585af65826582399466\",\n      \"value\": \" 548/548 [00:00&lt;00:00, 21.8kB/s]\"\n     }\n    },\n    \"c1d24cb7607c44b989774113a2baf675\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c813a6f6ce09424582c06a3ac8a7d712\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"value\": \" 29.0/29.0 [00:00&lt;00:00, 1.06kB/s]\"\n     }\n    },\n    \"c24b174369fb48cdbc3d4afaa4cceccb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"c497cc2cfabb451aad71f5d7b19873e4\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c4da9fed45254ebdaa49312f16d9b159\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c7896f62a30f4eec95e3c84aef08e1b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"c813a6f6ce09424582c06a3ac8a7d712\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9144705a33848a6b142f9887da6ac49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9bf7b5808f74db9811f5b64e878dcd5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_2a59b752f9414e69b8c1d24bd24159f2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"value\": \"Downloading (…)lve/main/config.json: 100%\"\n     }\n    },\n    \"cbd776799c18488eb74a8f17cc27c6fd\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"cccbdce89ff545f6a66304352b320ad7\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"cdbf6c3b5b3948229946fd51c227b51e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_cccbdce89ff545f6a66304352b320ad7\",\n      \"max\": 3465946427,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_cbd776799c18488eb74a8f17cc27c6fd\",\n      \"value\": 3465946427\n     }\n    },\n    \"d132ff798f284c9cbe2a73d35d776592\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b1cd7728deff4d50a18cb22805351330\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"value\": \" 3.47G/3.47G [00:19&lt;00:00, 179MB/s]\"\n     }\n    },\n    \"d26e50974c52452389c5abb001056546\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d26f522a28d24494914df1dd8432af49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d403f126d48746948c0f627dfdce5d65\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"d41e81f720f44b52b9a914e4c619bfee\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d61e0c79febd45c8b00e3566296d7e8e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d652cdca44e04070a420c5d1a24b4fd1\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_941a345ba82a44d5ad597a15c0af0d5c\",\n      \"max\": 268943,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_23afbee21a644745b24b8ffefed6b286\",\n      \"value\": 268943\n     }\n    },\n    \"ddd59aac5a5d48ceace9ede35bf8f11b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7fb466a306e6443287cb2fa2bea90f06\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1b2b45ecc27b4f28bc0194709fed0638\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"e515df89088042dbbe23594e5976e10d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb405f797a1441d280029e6e203befce\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb4bdd1ff3cf4b0db273c53e32cad5de\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ebfa4ba9f18b4945947d326581d3b8e9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ed9f5d147e7844a187d8610130f1ecd9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26f522a28d24494914df1dd8432af49\",\n      \"max\": 3524,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"value\": 3524\n     }\n    },\n    \"ee0cb4c1f31346b5b180a7b826688eb4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"value\": \" 335/335 [00:00&lt;00:00, 11.3kB/s]\"\n     }\n    },\n    \"f19d9d34c978402691a89114849d2bb9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f2b466617f0247638e0934c8fe95ed1d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f51192579d014a52b132f99abf8901b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"f607835a7acf4037821885704bde736d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ddd59aac5a5d48ceace9ede35bf8f11b\",\n       \"IPY_MODEL_20e14c8de0f84979ac3f0d896263f49d\",\n       \"IPY_MODEL_4d7c3ea23e9b42a2ba5b0b11ee190c69\"\n      ],\n      \"layout\": \"IPY_MODEL_5d9e4fd05f964fd7a11d66b964ea0873\"\n     }\n    },\n    \"f9b28a5fbcd14568983ed36f9a1ca997\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"faf78b2739f841d8a213e4311926b598\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_028ec097e62b4ee8a463708f4c3b8f24\",\n      \"value\": \" 4.92M/4.92M [00:00&lt;00:00, 41.4MB/s]\"\n     }\n    },\n    \"fb908d9c3e374983aa47478a95411ba7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"fba6bb8f65904ae6ae4f5bca95e942e2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bab8f16e038b440a8016ef087ee12904\",\n      \"value\": \" 2863/2863 [01:03&lt;00:00, 45.98it/s]\"\n     }\n    },\n    \"fd1e236692ec43a18a1750a29515050d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_7b3c48ae548848c880439841c0b9cb6b\",\n       \"IPY_MODEL_1023013dc30a4731b61383bd59f2dc91\",\n       \"IPY_MODEL_ee0cb4c1f31346b5b180a7b826688eb4\"\n      ],\n      \"layout\": \"IPY_MODEL_0f7a38ddfe7b42eaa5c8ffdb3c150641\"\n     }\n    },\n    \"fda75dc7c2d24f7b827b2c78a6988586\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2d1a48d240b949ad9b465985e90557c5\",\n       \"IPY_MODEL_5a0f5ba8ad024f5b915e34e48f269437\",\n       \"IPY_MODEL_bc4b72ff74d84c9e83b328e8823044b1\"\n      ],\n      \"layout\": \"IPY_MODEL_901f4ebc70f144c188d03a4978920441\"\n     }\n    },\n    \"fead01a1a86c40bcb1ba9133ef351d7c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ff6cd33dca3c44ba9832b2d705fd2de1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW07/HW07_Strong_0.79001.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"xvSGDbExff_I\"\n   },\n   \"source\": [\n    \"# **Homework 7 - Bert (Question Answering)**\\n\",\n    \"\\n\",\n    \"If you have any questions, feel free to email us at ntu-ml-2023spring-ta@googlegroups.com\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Slide:    [Link](https://docs.google.com/presentation/d/15lGUmT8NpLGtoxRllRWCJyQEjhR1Idcei63YHsDckPE/edit#slide=id.g21fff4e9af6_0_13)　Kaggle: [Link](https://www.kaggle.com/competitions/ml2023spring-hw7/host/sandbox-submissions)　Data: [Link](https://drive.google.com/file/d/1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7/view?usp=sharing)\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"NYAHsHNbzdKm\"\n   },\n   \"source\": [\n    \"# Prerequisites\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TJ1fSAJE2oaC\"\n   },\n   \"source\": [\n    \"## Download Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"YPrc4Eie9Yo5\",\n    \"outputId\": \"1640c875-58d1-4288-e382-e9fa9db39b9f\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# download link 1\\n\",\n    \"# !gdown --id '1TjoBdNlGBhP_J9C66MOY7ILIrydm7ZCS' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 2 (if above link failed)\\n\",\n    \"# !gdown --id '1YU9KZFhQqW92Lw9nNtuUPg0-8uyxluZ7' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# download link 3 (if above link failed)\\n\",\n    \"# !gdown --id '1k2BfGrvhk8QRnr9Xvb04oPIKDr1uWFpa' --output hw7_data.zip\\n\",\n    \"\\n\",\n    \"# !unzip -o hw7_data.zip\\n\",\n    \"\\n\",\n    \"# !kaggle competitions download -c ml2023spring-hw7\\n\",\n    \"\\n\",\n    \"!unzip ml2023spring-hw7.zip   \\n\",\n    \"\\n\",\n    \"# For this HW, K80 < P4 < T4 < P100 <= T4(fp16) < V100\\n\",\n    \"!nvidia-smi\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"TevOvhC03m0h\"\n   },\n   \"source\": [\n    \"## Install packages\\n\",\n    \"\\n\",\n    \"Documentation for the toolkit:\\n\",\n    \"*   https://huggingface.co/transformers/\\n\",\n    \"*   https://huggingface.co/docs/accelerate/index\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"tbxWFX_jpDom\",\n    \"outputId\": \"138488c2-96fa-4c41-d450-9d0a1b74f36c\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# You are allowed to change version of transformers or use other toolkits\\n\",\n    \"!pip install transformers==4.26.1\\n\",\n    \"!pip install accelerate==0.16.0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"XapBp31gytyD\"\n   },\n   \"source\": [\n    \"# Kaggle (Fine-tuning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"WGOr_eS3wJJf\"\n   },\n   \"source\": [\n    \"## Task description\\n\",\n    \"- Chinese Extractive Question Answering\\n\",\n    \"  - Input: Paragraph + Question\\n\",\n    \"  - Output: Answer\\n\",\n    \"\\n\",\n    \"- Objective: Learn how to fine tune a pretrained model on downstream task using transformers\\n\",\n    \"\\n\",\n    \"- Todo\\n\",\n    \"    - Fine tune a pretrained chinese BERT model\\n\",\n    \"    - Change hyperparameters (e.g. doc_stride)\\n\",\n    \"    - Apply linear learning rate decay\\n\",\n    \"    - Try other pretrained models\\n\",\n    \"    - Improve preprocessing\\n\",\n    \"    - Improve postprocessing\\n\",\n    \"- Training tips\\n\",\n    \"    - Automatic mixed precision\\n\",\n    \"    - Gradient accumulation\\n\",\n    \"    - Ensemble\\n\",\n    \"\\n\",\n    \"- Estimated training time (tesla t4 with automatic mixed precision enabled)\\n\",\n    \"    - Simple: 8mins\\n\",\n    \"    - Medium: 8mins\\n\",\n    \"    - Strong: 25mins\\n\",\n    \"    - Boss: 2hrs\\n\",\n    \"  \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"8dKM4yCh4LI_\"\n   },\n   \"source\": [\n    \"## Import Packages\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"id\": \"WOTHHtWJoahe\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-09-20 15:38:01.696026: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\\n\",\n      \"2024-09-20 15:38:01.703454: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\\n\",\n      \"2024-09-20 15:38:01.712111: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\\n\",\n      \"2024-09-20 15:38:01.714761: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\\n\",\n      \"2024-09-20 15:38:01.721371: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\\n\",\n      \"To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\\n\",\n      \"2024-09-20 15:38:02.107105: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import json\\n\",\n    \"import numpy as np\\n\",\n    \"import random\\n\",\n    \"import torch\\n\",\n    \"from torch.utils.data import DataLoader, Dataset\\n\",\n    \"from transformers import AdamW\\n\",\n    \"\\n\",\n    \"from tqdm.auto import tqdm\\n\",\n    \"\\n\",\n    \"device = \\\"cuda\\\" if torch.cuda.is_available() else \\\"cpu\\\"\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"2YgXHuVLp_6j\"\n   },\n   \"source\": [\n    \"## Load Model and Tokenizer\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 220,\n     \"referenced_widgets\": [\n      \"641665cb9ec6433a81719d57eeaf8298\",\n      \"ba9c1cd3cfe04add90aa2edf2aa87378\",\n      \"1e20837bf23548249678da0a07745d58\",\n      \"c1d24cb7607c44b989774113a2baf675\",\n      \"c9144705a33848a6b142f9887da6ac49\",\n      \"ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"d26e50974c52452389c5abb001056546\",\n      \"9eefbb580f0146658d18658f210d3a67\",\n      \"c813a6f6ce09424582c06a3ac8a7d712\",\n      \"ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"8b264499afca4694849b08e2091f6826\",\n      \"3eaf82623d964c2abb92b4509ac5ca9d\",\n      \"aa3ff7831fbf47efa404805886ca4696\",\n      \"6be63de77ed14eee9c37e93d3a75f743\",\n      \"5195ed241f09440eaf84a7e0b3dc8155\",\n      \"33fa92f225be477d8cd176a0a4e8894e\",\n      \"b80166eeee984661a611a02d1eae4458\",\n      \"20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"fb908d9c3e374983aa47478a95411ba7\",\n      \"304609dbefa74735baa08ce7aadff92d\",\n      \"250451c12cee4aacb91a32d7da4ab861\",\n      \"2c37badbe0504073b31abd67a8c0b808\",\n      \"bfd7d35860c14dd3b8e5eea07032311d\",\n      \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n      \"b0af063597ea4de5a8c8bf4f370f782a\",\n      \"5b1ac1a0f04f4c29b3c1127ec3d95e81\",\n      \"b91c8359a6444497b3665e66afbe237d\",\n      \"1181117783fd4bca9d7f5f296507aff3\",\n      \"941a345ba82a44d5ad597a15c0af0d5c\",\n      \"23afbee21a644745b24b8ffefed6b286\",\n      \"a075ee85c2d34ab3b2d011c63dc02286\",\n      \"052cccb5d69d476f9caac95848e0353a\"\n     ]\n    },\n    \"id\": \"xyBCYGjAp3ym\",\n    \"outputId\": \"81f25c6d-cd7f-4be1-e085-f8a54bd1c27d\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/huggingface_hub/file_download.py:1142: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\\n\",\n      \"  warnings.warn(\\n\",\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/huggingface_hub/file_download.py:1142: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\\n\",\n      \"  warnings.warn(\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"adcaea9cb7174577ba709668b6695f95\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"model.safetensors:   0%|          | 0.00/412M [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Some weights of the model checkpoint at google-bert/bert-base-chinese were not used when initializing BertForQuestionAnswering: ['cls.predictions.bias', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.transform.dense.weight', 'cls.seq_relationship.bias', 'cls.predictions.transform.dense.bias', 'cls.seq_relationship.weight']\\n\",\n      \"- This IS expected if you are initializing BertForQuestionAnswering from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\\n\",\n      \"- This IS NOT expected if you are initializing BertForQuestionAnswering from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\\n\",\n      \"Some weights of BertForQuestionAnswering were not initialized from the model checkpoint at google-bert/bert-base-chinese and are newly initialized: ['qa_outputs.bias', 'qa_outputs.weight']\\n\",\n      \"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"fe5ead1935364a59a6332b5c57d9b310\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"tokenizer_config.json:   0%|          | 0.00/49.0 [00:00<?, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"526fed9e800c4330b083ce6177de8813\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"vocab.txt: 0.00B [00:00, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f3da46ea3d4f4fd4aead84d1ffe1a334\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"tokenizer.json: 0.00B [00:00, ?B/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from transformers import (\\n\",\n    \"  AutoTokenizer,\\n\",\n    \"  AutoModelForQuestionAnswering,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# model = AutoModelForQuestionAnswering.from_pretrained(\\\"bert-base-chinese\\\").to(device)\\n\",\n    \"# tokenizer = AutoTokenizer.from_pretrained(\\\"bert-base-chinese\\\")\\n\",\n    \"\\n\",\n    \"# ---- Strong -----\\n\",\n    \"model = AutoModelForQuestionAnswering.from_pretrained(\\\"NchuNLP/Chinese-Question-Answering\\\").to(device)\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"NchuNLP/Chinese-Question-Answering\\\")\\n\",\n    \"# ---- Strong -----\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message (it pops up because new prediction heads for QA are initialized randomly)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"3Td-GTmk5OW4\"\n   },\n   \"source\": [\n    \"## Read Data\\n\",\n    \"\\n\",\n    \"- Training set: 26918 QA pairs\\n\",\n    \"- Dev set: 2863  QA pairs\\n\",\n    \"- Test set: 3524  QA pairs\\n\",\n    \"\\n\",\n    \"- {train/dev/test}_questions:\\n\",\n    \"  - List of dicts with the following keys:\\n\",\n    \"   - id (int)\\n\",\n    \"   - paragraph_id (int)\\n\",\n    \"   - question_text (string)\\n\",\n    \"   - answer_text (string)\\n\",\n    \"   - answer_start (int)\\n\",\n    \"   - answer_end (int)\\n\",\n    \"- {train/dev/test}_paragraphs:\\n\",\n    \"  - List of strings\\n\",\n    \"  - paragraph_ids in questions correspond to indexs in paragraphs\\n\",\n    \"  - A paragraph may be used by several questions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"id\": \"NvX7hlepogvu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def read_data(file):\\n\",\n    \"    with open(file, 'r', encoding=\\\"utf-8\\\") as reader:\\n\",\n    \"        data = json.load(reader)\\n\",\n    \"    return data[\\\"questions\\\"], data[\\\"paragraphs\\\"]\\n\",\n    \"\\n\",\n    \"train_questions, train_paragraphs = read_data(\\\"hw7_train.json\\\")\\n\",\n    \"dev_questions, dev_paragraphs = read_data(\\\"hw7_dev.json\\\")\\n\",\n    \"test_questions, test_paragraphs = read_data(\\\"hw7_test.json\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Fm0rpTHq0e4N\"\n   },\n   \"source\": [\n    \"## Tokenize Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"rTZ6B70Hoxie\",\n    \"outputId\": \"db13805e-02a9-4cbe-e6d2-66c0e3860c2b\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Token indices sequence length is longer than the specified maximum sequence length for this model (566 > 512). Running this sequence through the model will result in indexing errors\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# Tokenize questions and paragraphs separately\\n\",\n    \"# 「add_special_tokens」 is set to False since special tokens will be added when tokenized questions and paragraphs are combined in datset __getitem__\\n\",\n    \"\\n\",\n    \"train_questions_tokenized = tokenizer([train_question[\\\"question_text\\\"] for train_question in train_questions], add_special_tokens=False)\\n\",\n    \"dev_questions_tokenized = tokenizer([dev_question[\\\"question_text\\\"] for dev_question in dev_questions], add_special_tokens=False)\\n\",\n    \"test_questions_tokenized = tokenizer([test_question[\\\"question_text\\\"] for test_question in test_questions], add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"train_paragraphs_tokenized = tokenizer(train_paragraphs, add_special_tokens=False)\\n\",\n    \"dev_paragraphs_tokenized = tokenizer(dev_paragraphs, add_special_tokens=False)\\n\",\n    \"test_paragraphs_tokenized = tokenizer(test_paragraphs, add_special_tokens=False)\\n\",\n    \"\\n\",\n    \"# You can safely ignore the warning message as tokenized sequences will be futher processed in datset __getitem__ before passing to model\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"Ws8c8_4d5UCI\"\n   },\n   \"source\": [\n    \"## Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"id\": \"Xjooag-Swnuh\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"class QA_Dataset(Dataset):\\n\",\n    \"    def __init__(self, split, questions, tokenized_questions, tokenized_paragraphs):\\n\",\n    \"        self.split = split\\n\",\n    \"        self.questions = questions\\n\",\n    \"        self.tokenized_questions = tokenized_questions\\n\",\n    \"        self.tokenized_paragraphs = tokenized_paragraphs\\n\",\n    \"        self.max_question_len = 60\\n\",\n    \"        self.max_paragraph_len = 150\\n\",\n    \"\\n\",\n    \"        ##### TODO: Change value of doc_stride #####\\n\",\n    \"        self.doc_stride = int(self.max_paragraph_len * 0.25)  # Set stride to 25% of max paragraph length (Medium)\\n\",\n    \"\\n\",\n    \"        # Input sequence length = [CLS] + question + [SEP] + paragraph + [SEP]\\n\",\n    \"        self.max_seq_len = 1 + self.max_question_len + 1 + self.max_paragraph_len + 1\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return len(self.questions)\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        question = self.questions[idx]\\n\",\n    \"        tokenized_question = self.tokenized_questions[idx]\\n\",\n    \"        tokenized_paragraph = self.tokenized_paragraphs[question[\\\"paragraph_id\\\"]]\\n\",\n    \"\\n\",\n    \"        ##### TODO: Preprocessing #####\\n\",\n    \"        # Hint: How to prevent model from learning something it should not learn\\n\",\n    \"        if self.split == \\\"train\\\":\\n\",\n    \"            # Convert answer's start/end positions in paragraph_text to start/end positions in tokenized_paragraph\\n\",\n    \"            answer_start_token = tokenized_paragraph.char_to_token(question[\\\"answer_start\\\"])\\n\",\n    \"            answer_end_token = tokenized_paragraph.char_to_token(question[\\\"answer_end\\\"])\\n\",\n    \"\\n\",\n    \"            # A single window is obtained by slicing the portion of paragraph containing the answer\\n\",\n    \"            mid = (answer_start_token + answer_end_token) // 2\\n\",\n    \"\\n\",\n    \"            # ---- Strong -----\\n\",\n    \"            \\n\",\n    \"            # Introduce random offset to prevent learning that answer is always in the middle\\n\",\n    \"            max_offset = self.max_paragraph_len   # We allow up to 1/4 of the max length as offset\\n\",\n    \"            random_offset = np.random.randint(-max_offset, max_offset)  # Random shift between -max_offset and +max_offset\\n\",\n    \"\\n\",\n    \"            # Adjust paragraph start based on random offset\\n\",\n    \"            paragraph_start = max(0, min(mid + random_offset - self.max_paragraph_len // 2, len(tokenized_paragraph) - self.max_paragraph_len))\\n\",\n    \"            paragraph_end = paragraph_start + self.max_paragraph_len\\n\",\n    \"                \\n\",\n    \"            # ---- Strong -----\\n\",\n    \"\\n\",\n    \"            # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"            input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"            input_ids_paragraph = tokenized_paragraph.ids[paragraph_start : paragraph_end] + [102]\\n\",\n    \"\\n\",\n    \"            # Convert answer's start/end positions in tokenized_paragraph to start/end positions in the window\\n\",\n    \"            answer_start_token += len(input_ids_question) - paragraph_start\\n\",\n    \"            answer_end_token += len(input_ids_question) - paragraph_start\\n\",\n    \"\\n\",\n    \"            # Pad sequence and obtain inputs to model\\n\",\n    \"            input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"\\n\",\n    \"            return torch.tensor(input_ids), torch.tensor(token_type_ids), torch.tensor(attention_mask), answer_start_token, answer_end_token\\n\",\n    \"        \\n\",\n    \"        # Validation/Testing\\n\",\n    \"        else:\\n\",\n    \"            input_ids_list, token_type_ids_list, attention_mask_list = [], [], []\\n\",\n    \"\\n\",\n    \"            # Paragraph is split into several windows, each with start positions separated by step \\\"doc_stride\\\"\\n\",\n    \"            for i in range(0, len(tokenized_paragraph), self.doc_stride):\\n\",\n    \"\\n\",\n    \"                # Slice question/paragraph and add special tokens (101: CLS, 102: SEP)\\n\",\n    \"                input_ids_question = [101] + tokenized_question.ids[:self.max_question_len] + [102]\\n\",\n    \"                input_ids_paragraph = tokenized_paragraph.ids[i : i + self.max_paragraph_len] + [102]\\n\",\n    \"\\n\",\n    \"                # Pad sequence and obtain inputs to model\\n\",\n    \"                input_ids, token_type_ids, attention_mask = self.padding(input_ids_question, input_ids_paragraph)\\n\",\n    \"\\n\",\n    \"                input_ids_list.append(input_ids)\\n\",\n    \"                token_type_ids_list.append(token_type_ids)\\n\",\n    \"                attention_mask_list.append(attention_mask)\\n\",\n    \"\\n\",\n    \"            return torch.tensor(input_ids_list), torch.tensor(token_type_ids_list), torch.tensor(attention_mask_list)\\n\",\n    \"\\n\",\n    \"    def padding(self, input_ids_question, input_ids_paragraph):\\n\",\n    \"        # Pad zeros if sequence length is shorter than max_seq_len\\n\",\n    \"        padding_len = self.max_seq_len - len(input_ids_question) - len(input_ids_paragraph)\\n\",\n    \"        # Indices of input sequence tokens in the vocabulary\\n\",\n    \"        input_ids = input_ids_question + input_ids_paragraph + [0] * padding_len\\n\",\n    \"        # Segment token indices to indicate first and second portions of the inputs. Indices are selected in [0, 1]\\n\",\n    \"        token_type_ids = [0] * len(input_ids_question) + [1] * len(input_ids_paragraph) + [0] * padding_len\\n\",\n    \"        # Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]\\n\",\n    \"        attention_mask = [1] * (len(input_ids_question) + len(input_ids_paragraph)) + [0] * padding_len\\n\",\n    \"\\n\",\n    \"        return input_ids, token_type_ids, attention_mask\\n\",\n    \"\\n\",\n    \"train_set = QA_Dataset(\\\"train\\\", train_questions, train_questions_tokenized, train_paragraphs_tokenized)\\n\",\n    \"dev_set = QA_Dataset(\\\"dev\\\", dev_questions, dev_questions_tokenized, dev_paragraphs_tokenized)\\n\",\n    \"test_set = QA_Dataset(\\\"test\\\", test_questions, test_questions_tokenized, test_paragraphs_tokenized)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"5_H1kqhR8CdM\"\n   },\n   \"source\": [\n    \"## Function for Evaluation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"id\": \"SqeA3PLPxOHu\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def evaluate(data, output):\\n\",\n    \"    ##### TODO: Postprocessing #####\\n\",\n    \"    # There is a bug and room for improvement in postprocessing\\n\",\n    \"    # Hint: Open your prediction file to see what is wrong\\n\",\n    \"\\n\",\n    \"    answer = ''\\n\",\n    \"    max_prob = float('-inf')\\n\",\n    \"    num_of_windows = data[0].shape[1]\\n\",\n    \"\\n\",\n    \"    for k in range(num_of_windows):\\n\",\n    \"        # Obtain answer by choosing the most probable start position / end position\\n\",\n    \"        start_prob, start_index = torch.max(output.start_logits[k], dim=0)\\n\",\n    \"        end_prob, end_index = torch.max(output.end_logits[k], dim=0)\\n\",\n    \"\\n\",\n    \"        # Probability of answer is calculated as sum of start_prob and end_prob\\n\",\n    \"        prob = start_prob + end_prob\\n\",\n    \"\\n\",\n    \"        # Replace answer if calculated probability is larger than previous windows\\n\",\n    \"        if prob > max_prob:\\n\",\n    \"            max_prob = prob\\n\",\n    \"            # Convert tokens to chars (e.g. [1920, 7032] --> \\\"大 金\\\")\\n\",\n    \"            answer = tokenizer.decode(data[0][0][k][start_index : end_index + 1])\\n\",\n    \"\\n\",\n    \"    # Remove spaces in answer (e.g. \\\"大 金\\\" --> \\\"大金\\\")\\n\",\n    \"    return answer.replace(' ','')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"rzHQit6eMnKG\"\n   },\n   \"source\": [\n    \"## Training\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 778,\n     \"referenced_widgets\": [\n      \"53c1ce79c38b45fc8d1b675515642c54\",\n      \"9370d0df1bca4b9a9c15e1d3e10142d9\",\n      \"611f0f0c70a5471b891bd6f6b8cb7863\",\n      \"986b627aef004704ac0806a9aa189938\",\n      \"f2b466617f0247638e0934c8fe95ed1d\",\n      \"f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"04c0aa3d24944485b475601f786b56f1\",\n      \"78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"7c61a280288d4608b6ef341ce3adb7a8\",\n      \"8710bb7686df4fb3a73e5af839be5305\",\n      \"c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"29a7b6bb49004c3c96a6d48cd55e1ec3\",\n      \"06e4e53bd3e748ad90d14eeec117aac9\",\n      \"6a47a3bc614a44e7a5b0dfef50cadaf7\",\n      \"fba6bb8f65904ae6ae4f5bca95e942e2\",\n      \"6d5ad2f51bb3459b85201f983a499ea2\",\n      \"9c7a21dc260a4ad7b87f2123947058a2\",\n      \"7b7a0c46d9794d6fa66401f03684dec0\",\n      \"11dcde71ff984d829ec9612e7f43e3a3\",\n      \"a987cb79f4904973958a98f492c6443a\",\n      \"8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"bab8f16e038b440a8016ef087ee12904\"\n     ]\n    },\n    \"id\": \"3Q-B6ka7xoCM\",\n    \"outputId\": \"69c6f306-8a93-4b59-a64d-41f55889a6e6\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Start Training ...\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/hoperj/miniconda3/envs/DL/lib/python3.9/site-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\\n\",\n      \"  warnings.warn(\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"f9d5d41995174554956546f6108eac29\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3365 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Epoch 1 | Step 100 | loss = 4.329, acc = 0.018\\n\",\n      \"Epoch 1 | Step 200 | loss = 3.066, acc = 0.117\\n\",\n      \"Epoch 1 | Step 300 | loss = 2.860, acc = 0.224\\n\",\n      \"Epoch 1 | Step 400 | loss = 2.691, acc = 0.254\\n\",\n      \"Epoch 1 | Step 500 | loss = 2.518, acc = 0.282\\n\",\n      \"Epoch 1 | Step 600 | loss = 2.266, acc = 0.350\\n\",\n      \"Epoch 1 | Step 700 | loss = 2.206, acc = 0.341\\n\",\n      \"Epoch 1 | Step 800 | loss = 2.011, acc = 0.361\\n\",\n      \"Epoch 1 | Step 900 | loss = 2.004, acc = 0.376\\n\",\n      \"Epoch 1 | Step 1000 | loss = 2.078, acc = 0.366\\n\",\n      \"Epoch 1 | Step 1100 | loss = 2.040, acc = 0.338\\n\",\n      \"Epoch 1 | Step 1200 | loss = 1.992, acc = 0.369\\n\",\n      \"Epoch 1 | Step 1300 | loss = 1.954, acc = 0.381\\n\",\n      \"Epoch 1 | Step 1400 | loss = 1.839, acc = 0.394\\n\",\n      \"Epoch 1 | Step 1500 | loss = 1.842, acc = 0.417\\n\",\n      \"Epoch 1 | Step 1600 | loss = 1.898, acc = 0.431\\n\",\n      \"Epoch 1 | Step 1700 | loss = 1.966, acc = 0.390\\n\",\n      \"Epoch 1 | Step 1800 | loss = 1.720, acc = 0.412\\n\",\n      \"Epoch 1 | Step 1900 | loss = 1.806, acc = 0.429\\n\",\n      \"Epoch 1 | Step 2000 | loss = 1.777, acc = 0.412\\n\",\n      \"Epoch 1 | Step 2100 | loss = 1.856, acc = 0.406\\n\",\n      \"Epoch 1 | Step 2200 | loss = 1.882, acc = 0.390\\n\",\n      \"Epoch 1 | Step 2300 | loss = 1.767, acc = 0.442\\n\",\n      \"Epoch 1 | Step 2400 | loss = 1.771, acc = 0.421\\n\",\n      \"Epoch 1 | Step 2500 | loss = 1.814, acc = 0.380\\n\",\n      \"Epoch 1 | Step 2600 | loss = 1.771, acc = 0.426\\n\",\n      \"Epoch 1 | Step 2700 | loss = 1.614, acc = 0.441\\n\",\n      \"Epoch 1 | Step 2800 | loss = 1.835, acc = 0.390\\n\",\n      \"Epoch 1 | Step 2900 | loss = 1.694, acc = 0.439\\n\",\n      \"Epoch 1 | Step 3000 | loss = 1.711, acc = 0.433\\n\",\n      \"Epoch 1 | Step 3100 | loss = 1.810, acc = 0.416\\n\",\n      \"Epoch 1 | Step 3200 | loss = 1.733, acc = 0.414\\n\",\n      \"Epoch 1 | Step 3300 | loss = 1.732, acc = 0.415\\n\",\n      \"Evaluating Dev Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"9dc0032fd8a24025ba2735ee3f28fd5a\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/2863 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Validation | Epoch 1 | acc = 0.727\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"e011a19330f34df3933ed129d99bfcff\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3365 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Epoch 2 | Step 100 | loss = 1.620, acc = 0.454\\n\",\n      \"Epoch 2 | Step 200 | loss = 1.613, acc = 0.460\\n\",\n      \"Epoch 2 | Step 300 | loss = 1.603, acc = 0.461\\n\",\n      \"Epoch 2 | Step 400 | loss = 1.697, acc = 0.464\\n\",\n      \"Epoch 2 | Step 500 | loss = 1.505, acc = 0.469\\n\",\n      \"Epoch 2 | Step 600 | loss = 1.630, acc = 0.459\\n\",\n      \"Epoch 2 | Step 700 | loss = 1.527, acc = 0.460\\n\",\n      \"Epoch 2 | Step 800 | loss = 1.591, acc = 0.457\\n\",\n      \"Epoch 2 | Step 900 | loss = 1.594, acc = 0.464\\n\",\n      \"Epoch 2 | Step 1000 | loss = 1.535, acc = 0.469\\n\",\n      \"Epoch 2 | Step 1100 | loss = 1.588, acc = 0.487\\n\",\n      \"Epoch 2 | Step 1200 | loss = 1.510, acc = 0.462\\n\",\n      \"Epoch 2 | Step 1300 | loss = 1.640, acc = 0.442\\n\",\n      \"Epoch 2 | Step 1400 | loss = 1.466, acc = 0.481\\n\",\n      \"Epoch 2 | Step 1500 | loss = 1.539, acc = 0.471\\n\",\n      \"Epoch 2 | Step 1600 | loss = 1.470, acc = 0.454\\n\",\n      \"Epoch 2 | Step 1700 | loss = 1.564, acc = 0.468\\n\",\n      \"Epoch 2 | Step 1800 | loss = 1.572, acc = 0.487\\n\",\n      \"Epoch 2 | Step 1900 | loss = 1.566, acc = 0.480\\n\",\n      \"Epoch 2 | Step 2000 | loss = 1.676, acc = 0.457\\n\",\n      \"Epoch 2 | Step 2100 | loss = 1.516, acc = 0.476\\n\",\n      \"Epoch 2 | Step 2200 | loss = 1.576, acc = 0.462\\n\",\n      \"Epoch 2 | Step 2300 | loss = 1.519, acc = 0.480\\n\",\n      \"Epoch 2 | Step 2400 | loss = 1.449, acc = 0.506\\n\",\n      \"Epoch 2 | Step 2500 | loss = 1.382, acc = 0.494\\n\",\n      \"Epoch 2 | Step 2600 | loss = 1.431, acc = 0.484\\n\",\n      \"Epoch 2 | Step 2700 | loss = 1.630, acc = 0.446\\n\",\n      \"Epoch 2 | Step 2800 | loss = 1.479, acc = 0.481\\n\",\n      \"Epoch 2 | Step 2900 | loss = 1.509, acc = 0.471\\n\",\n      \"Epoch 2 | Step 3000 | loss = 1.453, acc = 0.476\\n\",\n      \"Epoch 2 | Step 3100 | loss = 1.459, acc = 0.464\\n\",\n      \"Epoch 2 | Step 3200 | loss = 1.516, acc = 0.469\\n\",\n      \"Epoch 2 | Step 3300 | loss = 1.473, acc = 0.485\\n\",\n      \"Evaluating Dev Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"83d4d6f410a44c97bd22bc97df28be7b\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/2863 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Validation | Epoch 2 | acc = 0.762\\n\",\n      \"Saving Model ...\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from accelerate import Accelerator\\n\",\n    \"\\n\",\n    \"# hyperparameters\\n\",\n    \"num_epoch = 1  # Strong\\n\",\n    \"validation = True\\n\",\n    \"logging_step = 100\\n\",\n    \"learning_rate = 1e-5\\n\",\n    \"optimizer = AdamW(model.parameters(), lr=learning_rate)\\n\",\n    \"train_batch_size = 8\\n\",\n    \"\\n\",\n    \"#### TODO: gradient_accumulation (optional)####\\n\",\n    \"# Note: train_batch_size * gradient_accumulation_steps = effective batch size\\n\",\n    \"# If CUDA out of memory, you can make train_batch_size lower and gradient_accumulation_steps upper\\n\",\n    \"# Doc: https://huggingface.co/docs/accelerate/usage_guides/gradient_accumulation\\n\",\n    \"gradient_accumulation_steps = 16\\n\",\n    \"\\n\",\n    \"# dataloader\\n\",\n    \"# Note: Do NOT change batch size of dev_loader / test_loader !\\n\",\n    \"# Although batch size=1, it is actually a batch consisting of several windows from the same QA pair\\n\",\n    \"train_loader = DataLoader(train_set, batch_size=train_batch_size, shuffle=True, pin_memory=True)\\n\",\n    \"dev_loader = DataLoader(dev_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"test_loader = DataLoader(test_set, batch_size=1, shuffle=False, pin_memory=True)\\n\",\n    \"\\n\",\n    \"#---- Medium -----\\n\",\n    \"from transformers import get_linear_schedule_with_warmup\\n\",\n    \"from torch.optim.lr_scheduler import LambdaLR\\n\",\n    \"\\n\",\n    \"# total training steps\\n\",\n    \"total_steps = len(train_loader) * num_epoch\\n\",\n    \"num_warmup_steps = int(0 * total_steps)  # Set warmup steps to 20% of total steps\\n\",\n    \"\\n\",\n    \"# [Hugging Face] Apply linear learning rate decay with warmup\\n\",\n    \"scheduler = get_linear_schedule_with_warmup(\\n\",\n    \"    optimizer, num_warmup_steps=num_warmup_steps, num_training_steps=total_steps\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# # [PyTorch] Alternative approach: Apply linear learning rate decay without warmup\\n\",\n    \"# # lr_lambda defines how learning rate decays over time (here it's a simple linear decay)\\n\",\n    \"# lr_lambda = lambda step: max(0.0, 1.0 - step / total_steps)\\n\",\n    \"# scheduler = LambdaLR(optimizer, lr_lambda=lr_lambda)\\n\",\n    \"\\n\",\n    \"# ---- Medium -----\\n\",\n    \"\\n\",\n    \"# Change \\\"fp16_training\\\" to True to support automatic mixed\\n\",\n    \"# precision training (fp16)\\n\",\n    \"fp16_training = True\\n\",\n    \"if fp16_training:\\n\",\n    \"    accelerator = Accelerator(mixed_precision=\\\"fp16\\\")\\n\",\n    \"else:\\n\",\n    \"    accelerator = Accelerator()\\n\",\n    \"\\n\",\n    \"# Documentation for the toolkit:  https://huggingface.co/docs/accelerate/\\n\",\n    \"model, optimizer, train_loader = accelerator.prepare(model, optimizer, train_loader)\\n\",\n    \"\\n\",\n    \"model.train()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"print(\\\"Start Training ...\\\")\\n\",\n    \"\\n\",\n    \"for epoch in range(num_epoch):\\n\",\n    \"    step = 1\\n\",\n    \"    train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    for data in tqdm(train_loader):\\n\",\n    \"        # Load all data into GPU\\n\",\n    \"        data = [i.to(device) for i in data]\\n\",\n    \"\\n\",\n    \"        # Model inputs: input_ids, token_type_ids, attention_mask, start_positions, end_positions (Note: only \\\"input_ids\\\" is mandatory)\\n\",\n    \"        # Model outputs: start_logits, end_logits, loss (return when start_positions/end_positions are provided)\\n\",\n    \"        output = model(input_ids=data[0], token_type_ids=data[1], attention_mask=data[2], start_positions=data[3], end_positions=data[4])\\n\",\n    \"        # Choose the most probable start position / end position\\n\",\n    \"        start_index = torch.argmax(output.start_logits, dim=1)\\n\",\n    \"        end_index = torch.argmax(output.end_logits, dim=1)\\n\",\n    \"\\n\",\n    \"        # Prediction is correct only if both start_index and end_index are correct\\n\",\n    \"        train_acc += ((start_index == data[3]) & (end_index == data[4])).float().mean()\\n\",\n    \"\\n\",\n    \"        train_loss += output.loss\\n\",\n    \"\\n\",\n    \"        accelerator.backward(output.loss)\\n\",\n    \"\\n\",\n    \"        step += 1\\n\",\n    \"        optimizer.step()\\n\",\n    \"        optimizer.zero_grad()\\n\",\n    \"\\n\",\n    \"        ##### TODO: Apply linear learning rate decay #####\\n\",\n    \"        scheduler.step()  # Apply learning rate scheduler (Medium)\\n\",\n    \"        # Print training loss and accuracy over past logging step\\n\",\n    \"        if step % logging_step == 0:\\n\",\n    \"            print(f\\\"Epoch {epoch + 1} | Step {step} | loss = {train_loss.item() / logging_step:.3f}, acc = {train_acc / logging_step:.3f}\\\")\\n\",\n    \"            train_loss = train_acc = 0\\n\",\n    \"\\n\",\n    \"    if validation:\\n\",\n    \"        print(\\\"Evaluating Dev Set ...\\\")\\n\",\n    \"        model.eval()\\n\",\n    \"        with torch.no_grad():\\n\",\n    \"            dev_acc = 0\\n\",\n    \"            for i, data in enumerate(tqdm(dev_loader)):\\n\",\n    \"                output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"                # prediction is correct only if answer text exactly matches\\n\",\n    \"                dev_acc += evaluate(data, output) == dev_questions[i][\\\"answer_text\\\"]\\n\",\n    \"            print(f\\\"Validation | Epoch {epoch + 1} | acc = {dev_acc / len(dev_loader):.3f}\\\")\\n\",\n    \"        model.train()\\n\",\n    \"\\n\",\n    \"# Save a model and its configuration file to the directory 「saved_model」\\n\",\n    \"# i.e. there are two files under the direcory 「saved_model」: 「pytorch_model.bin」 and 「config.json」\\n\",\n    \"# Saved model can be re-loaded using 「model = BertForQuestionAnswering.from_pretrained(\\\"saved_model\\\")」\\n\",\n    \"print(\\\"Saving Model ...\\\")\\n\",\n    \"model_save_dir = \\\"saved_model\\\"\\n\",\n    \"model.save_pretrained(model_save_dir)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"kMmdLOKBMsdE\"\n   },\n   \"source\": [\n    \"## Testing\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 84,\n     \"referenced_widgets\": [\n      \"9c84cbc758db46e78d7fa361a385ccce\",\n      \"642db3bee97a4bea8a4c1079e2b7526c\",\n      \"ed9f5d147e7844a187d8610130f1ecd9\",\n      \"42dd646b18b24deda274c857d337c973\",\n      \"9e2635394d5b4965b41a05a9bc37a4ec\",\n      \"3366101d46a847dfa5700ffb652dcc86\",\n      \"a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"d26f522a28d24494914df1dd8432af49\",\n      \"c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"a0f74d882c63403c8116c19745e011ba\",\n      \"55a7b680dae94cba8758288dacff2988\"\n     ]\n    },\n    \"id\": \"U5scNKC9xz0C\",\n    \"outputId\": \"841c70f2-2f3c-4c0f-866e-143f127eb6b5\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Evaluating Test Set ...\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"76510ed37e9b4c878c7934613f3fb108\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"  0%|          | 0/3524 [00:00<?, ?it/s]\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Completed! Result is in result.csv\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(\\\"Evaluating Test Set ...\\\")\\n\",\n    \"\\n\",\n    \"result = []\\n\",\n    \"\\n\",\n    \"model.eval()\\n\",\n    \"with torch.no_grad():\\n\",\n    \"    for data in tqdm(test_loader):\\n\",\n    \"        output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\\n\",\n    \"                       attention_mask=data[2].squeeze(dim=0).to(device))\\n\",\n    \"        result.append(evaluate(data, output))\\n\",\n    \"\\n\",\n    \"result_file = \\\"result.csv\\\"\\n\",\n    \"with open(result_file, 'w') as f:\\n\",\n    \"    f.write(\\\"ID,Answer\\\\n\\\")\\n\",\n    \"    for i, test_question in enumerate(test_questions):\\n\",\n    \"    # Replace commas in answers with empty strings (since csv is separated by comma)\\n\",\n    \"    # Answers in kaggle are processed in the same way\\n\",\n    \"        f.write(f\\\"{test_question['id']},{result[i].replace(',','')}\\\\n\\\")\\n\",\n    \"\\n\",\n    \"print(f\\\"Completed! Result is in {result_file}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"0_JVNKOCywbR\"\n   },\n   \"source\": [\n    \"# GradeScope - Question 2 (In-context learning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"id\": \"SDYN85why7zk\"\n   },\n   \"source\": [\n    \"### In-context learning\\n\",\n    \"The example prompt is :\\n\",\n    \"```\\n\",\n    \"請從最後一篇的文章中找出最後一個問題的答案：\\n\",\n    \"文章：<文章1 內容>\\n\",\n    \"問題：<問題1 敘述>\\n\",\n    \"答案：<答案1>\\n\",\n    \"...\\n\",\n    \"文章：<文章n 內容>\\n\",\n    \"問題：<問題n 敘述>\\n\",\n    \"答案：\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"id\": \"sGUxltxqzKpm\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import random\\n\",\n    \"import numpy as np\\n\",\n    \"\\n\",\n    \"# To avoid CUDA_OUT_OF_MEMORY\\n\",\n    \"torch.set_default_tensor_type(torch.cuda.FloatTensor)\\n\",\n    \"\\n\",\n    \"# Fix random seed for reproducibility\\n\",\n    \"def same_seeds(seed):\\n\",\n    \"\\ttorch.manual_seed(seed)\\n\",\n    \"\\tif torch.cuda.is_available():\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed(seed)\\n\",\n    \"\\t\\t\\ttorch.cuda.manual_seed_all(seed)\\n\",\n    \"\\tnp.random.seed(seed)\\n\",\n    \"\\trandom.seed(seed)\\n\",\n    \"\\ttorch.backends.cudnn.benchmark = False\\n\",\n    \"\\ttorch.backends.cudnn.deterministic = True\\n\",\n    \"same_seeds(2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\",\n     \"height\": 241,\n     \"referenced_widgets\": [\n      \"fd1e236692ec43a18a1750a29515050d\",\n      \"7b3c48ae548848c880439841c0b9cb6b\",\n      \"1023013dc30a4731b61383bd59f2dc91\",\n      \"ee0cb4c1f31346b5b180a7b826688eb4\",\n      \"0f7a38ddfe7b42eaa5c8ffdb3c150641\",\n      \"eb405f797a1441d280029e6e203befce\",\n      \"7a7081fd9d5942af9148e29054b18f51\",\n      \"eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"7c852afee0de49fe8dac74f3af82a725\",\n      \"24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"0549ffe5a6a444dd9fbf8c4513ebe7f7\",\n      \"388d3d2566ff4a1cb68048ac78dd374f\",\n      \"6235eaf236d643c6a163dddb86d3664d\",\n      \"faf78b2739f841d8a213e4311926b598\",\n      \"91f03b6ed1c94cb68970f45ffa64695e\",\n      \"9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"39d35e6e28264b5ca157745d0c1e1491\",\n      \"c497cc2cfabb451aad71f5d7b19873e4\",\n      \"7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"028ec097e62b4ee8a463708f4c3b8f24\",\n      \"f607835a7acf4037821885704bde736d\",\n      \"ddd59aac5a5d48ceace9ede35bf8f11b\",\n      \"20e14c8de0f84979ac3f0d896263f49d\",\n      \"4d7c3ea23e9b42a2ba5b0b11ee190c69\",\n      \"5d9e4fd05f964fd7a11d66b964ea0873\",\n      \"7fb466a306e6443287cb2fa2bea90f06\",\n      \"1b2b45ecc27b4f28bc0194709fed0638\",\n      \"6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"f51192579d014a52b132f99abf8901b2\",\n      \"6912ca44b1864902a3e32d4a19a4972d\",\n      \"acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"fda75dc7c2d24f7b827b2c78a6988586\",\n      \"2d1a48d240b949ad9b465985e90557c5\",\n      \"5a0f5ba8ad024f5b915e34e48f269437\",\n      \"bc4b72ff74d84c9e83b328e8823044b1\",\n      \"901f4ebc70f144c188d03a4978920441\",\n      \"98ce66c91c5c45968a3844fb0de50624\",\n      \"a24d04e7064048c2819ef88a50ce9093\",\n      \"154be9baa03943d08c975dbc85c4edf8\",\n      \"2fe4fa69d9544fd393a4d72c02245245\",\n      \"c4da9fed45254ebdaa49312f16d9b159\",\n      \"53a2b78a732c4522805de5c9aed92c41\",\n      \"0440f9e26a0b420b86175bc62e212d01\",\n      \"c9bf7b5808f74db9811f5b64e878dcd5\",\n      \"66a35d11743141b1b20904b13a4b86ea\",\n      \"c0145fad2cb843e9b75ac47d307cc346\",\n      \"d61e0c79febd45c8b00e3566296d7e8e\",\n      \"2a59b752f9414e69b8c1d24bd24159f2\",\n      \"447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"16b30759d76a4c8f979212d1ae30c297\",\n      \"1639410507da4b54996064d9fcc8621c\",\n      \"e515df89088042dbbe23594e5976e10d\",\n      \"0dccf470d87f4585af65826582399466\",\n      \"7dee4e5320d349159422709a69af61f4\",\n      \"86dbdec7087f4312b945c3a3940d8965\",\n      \"cdbf6c3b5b3948229946fd51c227b51e\",\n      \"d132ff798f284c9cbe2a73d35d776592\",\n      \"fead01a1a86c40bcb1ba9133ef351d7c\",\n      \"f19d9d34c978402691a89114849d2bb9\",\n      \"7a729fb76a374da99334e7d4b4de102e\",\n      \"cccbdce89ff545f6a66304352b320ad7\",\n      \"cbd776799c18488eb74a8f17cc27c6fd\",\n      \"b1cd7728deff4d50a18cb22805351330\",\n      \"550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"745f78a378b5412eae007f029e8c321a\",\n      \"2c449a0e664c41a79b3a1de62e94b5b7\",\n      \"a9a16bf8795c402a90cf4504b1cd30a1\",\n      \"715ad9f6bdaa46298317e049404f9755\",\n      \"667f153201d347a0a01e39b438fa736b\",\n      \"d652cdca44e04070a420c5d1a24b4fd1\",\n      \"b5c71e0a94014278a22ba45a6f58b77d\",\n      \"7f928c5e620a49c1ae137868e34818a9\",\n      \"d403f126d48746948c0f627dfdce5d65\",\n      \"d41e81f720f44b52b9a914e4c619bfee\",\n      \"bee7c0220d4e476dbc035fbc5dc44fa3\"\n     ]\n    },\n    \"id\": \"wIS23s79zItf\",\n    \"outputId\": \"c686be61-221a-4f55-ca79-67715343f1db\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from transformers import AutoTokenizer, AutoModelForCausalLM\\n\",\n    \"\\n\",\n    \"# You can try model with different size\\n\",\n    \"# When using Colab or Kaggle, models with more than 2 billions parameters may\\n\",\n    \"# run out of memory\\n\",\n    \"tokenizer = AutoTokenizer.from_pretrained(\\\"facebook/xglm-1.7B\\\")\\n\",\n    \"model = AutoModelForCausalLM.from_pretrained(\\\"facebook/xglm-1.7B\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"id\": \"2d97YtavzFHA\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"# To clean model output. If you try different prompts, you may have to fix\\n\",\n    \"# this function on your own\\n\",\n    \"def clean_text(text):\\n\",\n    \"    # Note: When you use unilingual model, the colon may become fullwidth\\n\",\n    \"    text = text.split(\\\"答案:\\\")[-1]\\n\",\n    \"    text = text.split(\\\" \\\")[0]\\n\",\n    \"    return text\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {\n    \"colab\": {\n     \"base_uri\": \"https://localhost:8080/\"\n    },\n    \"id\": \"jdf3gdP_yykH\",\n    \"outputId\": \"b9a784dd-e5d7-4212-c089-e0180157bd11\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：2010年引入的廣州快速交通運輸系統是世界第二大快速運輸系統。每日載客量可達100萬人次。每小時的客流量峰值高達26,900名乘客，僅次於波哥大的快速交通系統。每10秒有一輛公共汽車，每輛公共汽車在一個方向上行駛350小時。該平台包括橋樑，是世界上最長的國家公共汽車快速運輸系統平台，長度為260米。目前，廣州市的出租車和公交車主要以液化石油氣為燃料，部分公交車採用油電，氣電混合技術。2012年底，一輛LNG燃料公共汽車開始啟動。2014年6月，引入了LNG插電式混合動力公交車取代LPG公交車。2007年1月16日，廣州市政府完全禁止在城市地區駕駛摩托車。違反禁令的機動車將被沒收。廣州市交通局聲稱，禁令的實施導致交通擁堵和車禍大大減少。廣州白雲國際機場位於白雲區與花都區交界處。它於2004年8月5日正式投入運營。它是中國第二繁忙的機場。機場取代了原先位於市中心的舊機場，無法滿足日益增長的航空需求。目前，機場有三個簡易機場，是中國第三個擁有三條跑道的民航機場。比2023年香港國際機場第三條跑道的預計完工時間提前了8年。\\n\",\n      \"問題：從哪一天開始在廣州市內騎摩托車會被沒收？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2007年1月16日\\n\",\n      \"模型輸出: 2007年1月16日\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 200公里\\n\",\n      \"模型輸出: 200公里\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：香港\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：文化大革命\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 首都。\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年引入的廣州快速交通運輸系統是世界第二大快速運輸系統。每日載客量可達100萬人次。每小時的客流量峰值高達26,900名乘客，僅次於波哥大的快速交通系統。每10秒有一輛公共汽車，每輛公共汽車在一個方向上行駛350小時。該平台包括橋樑，是世界上最長的國家公共汽車快速運輸系統平台，長度為260米。目前，廣州市的出租車和公交車主要以液化石油氣為燃料，部分公交車採用油電，氣電混合技術。2012年底，一輛LNG燃料公共汽車開始啟動。2014年6月，引入了LNG插電式混合動力公交車取代LPG公交車。2007年1月16日，廣州市政府完全禁止在城市地區駕駛摩托車。違反禁令的機動車將被沒收。廣州市交通局聲稱，禁令的實施導致交通擁堵和車禍大大減少。廣州白雲國際機場位於白雲區與花都區交界處。它於2004年8月5日正式投入運營。它是中國第二繁忙的機場。機場取代了原先位於市中心的舊機場，無法滿足日益增長的航空需求。目前，機場有三個簡易機場，是中國第三個擁有三條跑道的民航機場。比2023年香港國際機場第三條跑道的預計完工時間提前了8年。\\n\",\n      \"問題：從哪一天開始在廣州市內騎摩托車會被沒收？\\n\",\n      \"答案：2007年1月16日\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2015\\n\",\n      \"模型輸出: 1990年\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 文化大革命\\n\",\n      \"模型輸出: 文化大革命\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：六朝時期，廣州的對外貿易相當繁榮，外國海商“長期停留在廣州尋求利潤”。在隋唐時期，廣州的對外貿易發展到了頂峰。作為唐代唯一的城市，外國人口占全市人口的30％以上，成為中國對外貿易的核心。在元朝短暫的沉寂之後，廣州和明清在廣州重新出現。在清代的一站式貿易政策下，它成為當時中國唯一的外國港口，成為具有壟斷地位的國家商業中心。上海開放後，隨著國家的逐步開放，廣州逐漸失去了對外貿易中心的地位，但它仍然是全國最重要的商業城市。改革開放後，廣州百貨業蓬勃發展。 20世紀80年代，友誼商店專門為香港，澳門和外國客人銷售電器和其他進口商品。西湖路照明夜市是平民的熱門目的地。南樓位於江西路沿線，已成為華南地區最大的綜合性百貨商場。它還在大陸創建了第一家24小時便利店，華夏百貨商店成立了人民南商圈。延伸，後者於1995年建立了一條步行街。新大新公司和廣州百貨在北京路的業務也蓬勃發展，這條路也成了一條步行街。超市Wankelong於1996年在廣州開設了第一家分店，然後廣州人熟悉的超市和便利店品牌，如香港百佳超市進入廣州。由於交通壓力和天河新區的發展，20世紀90年代末人民南方商業圈開始衰落，成為電子服裝批發的集散地，城市商業區遷至東部新區。21世紀，以天河城，天環廣場，鄭家廣場，太古彙和萬靈彙為代表的天河路商業區已成為廣州的中心商業區。自1957年以來，中國出口商品交易會每年春秋兩季舉辦。目前，每個展覽都吸引了來自世界各地的20多萬商家。這是中國規模最大，時間最長，最成功的國際展覽會。隨著琶洲展館三期工程的建設，展覽能力躍居世界前列。\\n\",\n      \"問題：唐朝的對外貿易核心在哪？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 廣州\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：2015\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：自古以來，廣州基本上就是嶺南的政治中心。秦朝末年是南嶽的首都，漢朝征服了南嶽州，後來成為南海縣。漢末遷至龍灣和古代大壩。在三國時期，吳國布將縣長遷回番禺，後來成立了膠州府。廣州和廣州轉移後，它是廣州的州長。晉南，南北朝使用南海縣，番禺由縣統治。文帝皇帝廢棄了南海縣，成立了廣州總務辦公室，後來改為杜都政府。唐代分為十個民族，其中嶺南大智學院位於廣州。862年，嶺南分為東二西路，廣州分為嶺南東路。五代時期，廣州是南漢的首都。宋初，嶺南路重建，廣州是行政中心。明代廣州是廣州阜城，隸屬番禺縣和南海縣。清軍佔領中原後，南明邵武帝朱熹在廣州建成，很快南明就死了。清代廣州成為廣東省，廣州阜城，番禺和南海縣。廣東省和廣西省，廣東省屯門省長，廣東省屯門局長，廣東省檢察院都在廣州市南海縣境內。1858年，英法聯軍攻占廣州，廣東省長投降，外國人委員會成立，廣東省政府成為政府。\\n\",\n      \"問題：南明的首都在哪？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 廣州\\n\",\n      \"模型輸出: 廣州\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：香港\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：從化市\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 武昌起義\\n\",\n      \"模型輸出: 1911年10月10日武昌起義\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：7月\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：作為現代革命的發祥地之一，廣州是中華民國以來中國社會運動的中心之一。每次全國社會運動都有廣州人民的回應和參與。一個相對大規模的社會運動集中在廣州，這是1925年至1926年在廣州和香港舉行的首次省和港口罷工。1989年，廣州市民發起了支持天安門民主運動的運動。數百萬人聚集在海珠廣場，聚集在廣州解放紀念碑周圍。在早期，廣州媒體支持“愛國運動”的名稱。流血事件發生後，民眾發生騷亂，省市政府機構遭到襲擊，所有廣州媒體都被立即禁止，這也乾擾並封鎖了香港電視台。省政府派出軍隊和警察鎮壓遊行群眾，大量參與者潛入香港，台灣和海外。所有企事業單位也派人檢查各部門員工是否組織或參加了集會。在1999年的全國反美活動中，數十萬人和學生在該市舉行示威活動，抗議北約轟炸中國駐南斯拉夫大使館。與此同時，美國駐廣州領事館也受到一些激進示威者的破壞。廣州媒體在此過程中也紛紛效仿，但沒有提到美國駐廣州領事館受損的情況。2005年，主要道路上發生了數十萬起反日遊行。然而，在廣州的封鎖中，大學和中學也禁止學生遊行，否則他們就開除了學業。\\n\",\n      \"問題：省港大罷工是除了廣州以外還有哪個地區參與？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 香港\\n\",\n      \"模型輸出: 香港\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：長期以來，廣州大部分地方的語言主要是廣東話。因此，廣州還形成了粵語文化，包括粵劇，粵劇，南音和鹹水歌。隨著中國大陸的改革開放，來自城外和廣東省以外的大量人口迅速湧入。在這些移民中，由於不同的省/總統，有許多不同的語言，外國人和來自不同地區的人經常用普通話交流;因此，在許多大型公共場所，普通話是主要語言。在某些情況下，將增加粵語或英語廣播，種族群體仍然使用自己的方言進行相互交流。一些外國人會用當地文化交流，用粵語與當地人交流。如今，隨著普通話的推廣，外國和本地年輕人受長期使用普通話作為教學媒介和普通話的共同環境的影響。目前，廣州的語言交換主要講普通話，但當地人仍然使用廣東話。與交流。雖然普通話自21世紀初以來逐漸佔據主導地位，但它受到當地文化的影響。與此同時，由於香港和澳門的距離較近，以及廣州市民近年來開展了一系列推廣普通話的評論，它已開始保護廣東話，所以廣東話仍有一定的地位。當地。 。\\n\",\n      \"問題：在廣州許多比較大的公眾場合以甚麼為主要交流語言？\\n\",\n      \"答案：普通話\\n\",\n      \"文章：廣州是京廣鐵路，廣深鐵路，廣茂鐵路和廣梅鐵路的終點站。2009年底，武廣客運專線投入運營，多機組列車長980公里，最高時速350公里。2011年1月7日，廣珠城際鐵路投入運營，平均時速200公里。廣州鐵路，長途巴士和渡輪直達香港。廣九快速列車從廣州火車東站出發，直達香港紅磡火車站。總長約182公里，行程大約需要兩個小時。每年都有繁忙的教練從香港的不同乘客點接載乘客。在市中心的珠江北岸有一條渡輪線路，河流居民可以直接過河而無需乘坐公共汽車或步行穿過大橋。每天都有往返南沙碼頭和蓮花山碼頭的高速雙體船。渡輪也開往香港中國客運碼頭和港澳客運碼頭。\\n\",\n      \"問題：廣珠城際鐵路平均每小時可以走多遠？\\n\",\n      \"答案：200公里\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 1921\\n\",\n      \"模型輸出: 公元前214年,秦始皇出兵徵兵南,南海縣任\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：廣州是中國最重要的開放城市之一。作為對外貿易的窗口，有許多來自北美，日本，韓國，歐洲，中東，非洲等國的外國人，尤其是非洲黑人。廣州甚至被稱為“第三世界”。首都主要位於廣州市環市東路秀山大廈，淘金路，花園酒店，建馬路和劍馬路;天河北路，體育東路，天河路，龍口西路，臨河中路等公司辦公室;番禺區的一些物業，如克利福德新村和麗江花園，也有更多的外國人。據廣州市公安局出入境管理支隊2014年10月統計，在廣州登記的外國人有11.8萬人，其中臨時居民71,000人，居住半年以上的47,000名永久居民。其中大多數是來自非洲的4,000多名註冊外國人;來自阿拉伯國家和地區的約1萬人雖然沒有大規模的定居點，但經常出現在小北 - 登封地區的商業區進行商業活動。在荔景街也有更多的韓國人。2013年，有超過15萬名乘客進出廣州港，其中54萬人來自非洲國家。他們中的大多數人來往於同一個人，主要是因為簽證允許短期逗留或商業需求而不是移民。近年來，廣州黑人一直捲入廣州的一些公安問題，引起廣州市民的一些不滿。針對“三非”問題，公安機關設立了四個涉外綜合執法隊伍，翻譯志願服務隊伍，調查“三個非外國”外國專業隊和四個外國隊 - 相關管理基層服務隊伍;自年初以來，廣州在200多名外國人社區建立了75個“外國人管理服務工作站”，並大力打擊“三非”外國人。它已經取得了成果。\\n\",\n      \"問題：被稱為「第三世界首都」的城市哪種外籍人士最多？\\n\",\n      \"答案：非洲黑人\\n\",\n      \"文章：2010年7月，1000多名市民聚集在地鐵江南西站出口處舉行2010年廣州支持粵語行動請願活動。在收到有關該活動被取消的消息後，他們仍然按計劃時間到達為光復文化發行自己的活動。語音。在內地媒體封鎖消息傳出後，廣州還封鎖了與香港電視有關的新聞片段。8月1日，廣州中央公園的粵語聚會受到當局的強烈阻撓。人們被迫轉移路線。當他們到達北京路南段時，他們被大批警察包圍。參與者被帶到公共汽車並在東山體育場被帶走。它在被質疑和被定罪後被釋放。大陸請願制度允許人們向上級政府部門發出呼籲。廣東省政府經常邀請來自省內各地的請願人來到東風路正門，得到省政府的幫助。在集會時，當局將調動大量警察部隊積極處理他們。在對峙期間，交通通常會很慢，但當地官方媒體從未報導相關報導。2014年初，更重要的請願者是該省的家禽商，由於市場被迫關閉，在禽流感期間遭受了損失，以及隋毛反對茂名石化項目的年輕人。\\n\",\n      \"問題：2010年廣州撐粵語行動請願活動是在當年的什麼時候舉行的？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 7月\\n\",\n      \"模型輸出: 2010年7月\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：自古以來，廣州一直是華南地區的著名商人，擁有2000多年的開放貿易歷史。20世紀70年代末中國大陸改革開放後，廣州經濟發展迅速。2010年，全市地區生產總值10604.48億元，同比增長13％。它成為僅次於上海和北京的第三個進入“萬億元俱樂部”國內生產總值的城市。這也是第一個超過一萬億的經濟總量。首都。根據國務院2005年發布的報告，廣州成為中國第一個進入“發達”狀態的城市。2012年9月，廣州南沙新區獲批，成為第六個國家級開放開發新區。2015年，廣州GDP達到1810.41億元，人均GDP達到138,377.05元。國內生產總值是中國的第三位，人均國內生產總值與西班牙相當。購買力平價水平與發達國家相當。\\n\",\n      \"問題：進入國內生產總值「萬億元俱樂部」的城市第三個為？\\n\",\n      \"答案：廣州\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 2008年\\n\",\n      \"模型輸出: 廣州获得「創建國家健康城市」獎項\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：清朝末期，廣州爆發了幾次武裝起義，所有起義都以失敗告終。1911年10月10日武昌起義後，廣東省獨立。 11月10日，軍政府成立，胡漢民當選為州長。12月初，廣東省臨時省委成立。據宣布，21歲以上的廣東國民有選舉權和被選舉權。議會由120名成員組成，其中包括20名聯盟成員，21名軍團協會代表，12名海外華人代表以及師生代表。 9人，1名“自治團體”代表，57名來自各地區的代表。其中，女議員必須佔據​​10人，中國女性是第一個參與政治的人。1913年4月27日，廣東省議會成立，羅曉峰被任命為議長。1918年10月，廣州市政府辦公室成立。1921年2月，廣州正式成立，廣州市政府成立，孫克被任命為市長。1917年至1922年間，孫中山和西南各省議會代表兩次在廣州建立了法國政府。1925年，孫中山去世。同年7月，廣州國民政府成立。 7月4日，廣州市政府成立，實行市委製度。吳朝書被任命為市委主席。1929年，廣州實施了市長制。1949年10月14日，中國人民解放軍佔領了廣州。 28日，廣州軍事管理委員會成立。葉劍英是董事長。目前，廣州實行了中華人民共和國政治體制下的人民代表大會制度。市政府在廣州市委員會的領導下運作，政府駐留在越秀區。廣州省是廣東省省會，廣東省人民政府駐地。\\n\",\n      \"問題：廣東省因為哪一場戰爭而獨立？\\n\",\n      \"答案：武昌起義\\n\",\n      \"文章：廣州的雨水豐富，土地肥沃。市區曾經擁有非常大的農業用地。兩千年前有水稻種植記錄。宋代的廣州是中國最大的大米市場之一，蔬菜，水果，甘蔗和鮮花也很有名。由於長期以來一直是國家港口，廣州引進了各種優質作物品種。二十世紀上半葉，由於外國農產品的入侵和戰爭的影響，廣州的農業增長放緩。在20世紀50年代中期，農業生產急劇增加，但是後來的“大躍進”和隨後的文化大革命嚴重打擊了農業生產。改革開放以來，隨著廣州作為一個大城市的發展，服務城市的郊區農業模式逐步形成。政府的政策是為城市服務，豐富農民和人民，並鼓勵出口收入。具體措施是降低糧食生產比例，增加水果，蔬菜等農副產品比重，努力發展林業，畜牧業和漁業。廣州的農業產值大幅增加，但隨著第二，三產業的快速增長，農業的經濟份額逐漸下降。1978年，廣州農業總產值佔地區生產總值的11.67％，1990年下降到8.05％。 2015年，廣州農業總產值為413億元，佔地區GDP的2.28％。城市發展和工業化進程也造成了農村勞動力的大量流失和農地的迅速衰退。清光緒五年間，廣州登記的天山山池總面積為10662.3萬畝。1990年，耕地面積為247萬畝，2006年減少到158.3萬畝。目前，廣州農產品種植地主要分佈在白雲，花都，番禺，南沙，從化和增城。1990年，農業人口為252.87萬，2008年為792,200。廣州最著名的農業特產包括梧桐五秀和各種熱帶水果，如荔枝，香蕉，木瓜和菠蘿。\\n\",\n      \"問題：1978年的廣州市農業生產總值到了哪一年占地區生總值減少了約9.39%？\\n\",\n      \"答案：2015\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 從化市\\n\",\n      \"模型輸出: 越秀區\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：中華人民共和國成立後的工業國有化。在20世紀50年代和60年代，該行業復甦，但文化大革命再次嚴重影響了廣州的工業生產，工業發展放緩。然而，在政府的支持下，仍然建立了重工業體系。1975年以後，政局改善，政府大力支持以日用品為主的輕工業，廣州工業進入快速增長期。20世紀80年代末，廣州主要發展第三產業，工業產值比重下降。從20世紀90年代到2000年，廣州市政府試圖改變行業構成，增加對重工業的支持。汽車，石化，電子信息產品的製造已成為廣州的三大支柱產業。廣州的工業總產值在全省排名第三。其中，汽車工業成功吸引了日本三大汽車製造企業投資建廠，使廣州成為近幾年來中國重要的汽車生產基地之一。江南最大的廣州晨天汽車零部件市場位於郊區，廣州也是國內。生產日本汽車最多的城市。\\n\",\n      \"問題：中華人民共和國成立後由於什麼事件廣州的工業發展又減慢？\\n\",\n      \"答案：文化大革命\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：作為中國最大的城市之一，廣州有大量在廣州工作的外國人。然而，“本地人”與“外國人”之間的關係難以協調，也會引發一系列社會問題。由於廣州的能力和就業能力有限，廣州無法容納來自全國各地的農民工。其安全環境已經過嚴格測試。經常發生“兩個盜賊和一個小偷”事件，特別是在城市村莊。根據廣州社會科學院的一項調查，80％的囚犯被逮捕為“局外人”。除了廣東話的光復文化外，外國人和外國方言的排斥增加了廣州市民的仇外心理。近年來，由於政府的大力禁令，廣州的公安管理取得了顯著成效。2014年，廣東省政府明確要求控制廣州和深圳特大城市的人口規模。2008年，農民工佔廣州人口的40％，其中大多數是女性農民工，其中許多人未婚。截至2013年底，廣州註冊人口為686.7萬。根據一定的錯失率，廣州的實際流動人口約為837萬。這些數據已超過常住人口。最新統計數據顯示，廣州常住人口為832萬。其中，白雲區，番禺區和天河區流動人口超過百萬。番禺區有111.7萬戶登記移民，流動戶籍區涉及30個省，自治區，直轄市。在性別比方面，男性略多，佔總數的53.5％;女性佔總數的46.5％。在番禺流動人口中，兒童和老年人的比例極小，15歲以下為0.49％，60歲以上為1.68％，大專以上為10％。\\n\",\n      \"問題：有百分之多少的犯人被抓的是外地人？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 80\\n\",\n      \"模型輸出: 廣州的社會環境\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：作為中國最大的城市之一，廣州有大量在廣州工作的外國人。然而，“本地人”與“外國人”之間的關係難以協調，也會引發一系列社會問題。由於廣州的能力和就業能力有限，廣州無法容納來自全國各地的農民工。其安全環境已經過嚴格測試。經常發生“兩個盜賊和一個小偷”事件，特別是在城市村莊。根據廣州社會科學院的一項調查，80％的囚犯被逮捕為“局外人”。除了廣東話的光復文化外，外國人和外國方言的排斥增加了廣州市民的仇外心理。近年來，由於政府的大力禁令，廣州的公安管理取得了顯著成效。2014年，廣東省政府明確要求控制廣州和深圳特大城市的人口規模。2008年，農民工佔廣州人口的40％，其中大多數是女性農民工，其中許多人未婚。截至2013年底，廣州註冊人口為686.7萬。根據一定的錯失率，廣州的實際流動人口約為837萬。這些數據已超過常住人口。最新統計數據顯示，廣州常住人口為832萬。其中，白雲區，番禺區和天河區流動人口超過百萬。番禺區有111.7萬戶登記移民，流動戶籍區涉及30個省，自治區，直轄市。在性別比方面，男性略多，佔總數的53.5％;女性佔總數的46.5％。在番禺流動人口中，兒童和老年人的比例極小，15歲以下為0.49％，60歲以上為1.68％，大專以上為10％。\\n\",\n      \"問題：有百分之多少的犯人被抓的是外地人？\\n\",\n      \"答案：80\\n\",\n      \"文章：多年來，廣州當局積極開展各種政府項目。自1990年以來，廣州參與了“創建國家健康城市”，並於2008年成功獲得該獎項。1998年，“創建全國文明城市”開始，2011年取得了成功。在“創造健康”期間，廣州市的衛生狀況得到了明顯改善，如清理城市衛生角，城中村，污水處理和食品安全管理。一些官員說，“創造健康”只是一個起點，沒有盡頭。 “創造”是“人心的項目”。關於在這些項目，形式主義和騷亂上花費的巨額公共資金，還有媒體問題和批評。多年來在這兩個項目上花費的公共資金數量已達數十億，這使得計算難度很大。在廣州亞運會之際，廣州市政府在2010年之前開展了大量的城市建設項目，包括：改造多條道路和人行道，重新鋪設地磚和花卉基地;和許多新老天橋的灰白色油漆;大多數街道拱廊和歷史建築的改造;正面建築的屋頂均勻配備紅色塑料屋頂，外牆經過翻新，配備空調壓縮機蓋和照明。然而，有些人質疑，在亞運會期間，許多精心準備的道路被強行翻新，當街邊商場和歷史建築被翻新時，原有的歷史和藝術感被摧毀。許多小偷參與了街道上數千棟建築的統一改造。通過腳手架，數百戶家庭被盜。項目完成後不久，揭露了涉及使用劣質材料的事件，這也遭到許多公民的批評。作為中國的中心城市之一，廣州的醫療保險和便利服務覆蓋了整個城市。大多數市政公園和所有公共廁所也是免費的。\\n\",\n      \"問題：廣州市於什麼時候獲得從1990年開始參與的「創衛」？\\n\",\n      \"答案：2008年\\n\",\n      \"文章：廣州是中國最重要的開放城市之一。作為對外貿易的窗口，有許多來自北美，日本，韓國，歐洲，中東，非洲等國的外國人，尤其是非洲黑人。廣州甚至被稱為“第三世界”。首都主要位於廣州市環市東路秀山大廈，淘金路，花園酒店，建馬路和劍馬路;天河北路，體育東路，天河路，龍口西路，臨河中路等公司辦公室;番禺區的一些物業，如克利福德新村和麗江花園，也有更多的外國人。據廣州市公安局出入境管理支隊2014年10月統計，在廣州登記的外國人有11.8萬人，其中臨時居民71,000人，居住半年以上的47,000名永久居民。其中大多數是來自非洲的4,000多名註冊外國人;來自阿拉伯國家和地區的約1萬人雖然沒有大規模的定居點，但經常出現在小北 - 登封地區的商業區進行商業活動。在荔景街也有更多的韓國人。2013年，有超過15萬名乘客進出廣州港，其中54萬人來自非洲國家。他們中的大多數人來往於同一個人，主要是因為簽證允許短期逗留或商業需求而不是移民。近年來，廣州黑人一直捲入廣州的一些公安問題，引起廣州市民的一些不滿。針對“三非”問題，公安機關設立了四個涉外綜合執法隊伍，翻譯志願服務隊伍，調查“三個非外國”外國專業隊和四個外國隊 - 相關管理基層服務隊伍;自年初以來，廣州在200多名外國人社區建立了75個“外國人管理服務工作站”，並大力打擊“三非”外國人。它已經取得了成果。\\n\",\n      \"問題：被稱為「第三世界首都」的城市哪種外籍人士最多？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 非洲黑人\\n\",\n      \"模型輸出: 非洲黑人\\n\",\n      \"\\n\",\n      \"請從最後一篇的文章中找出最後一個問題的答案\\n\",\n      \"文章：公元前214年，秦始皇出兵徵兵嶺南，南海縣任仁軍在梵山和廬山建造了番禺城。這是廣州最初建成時的名稱，已在中華民國使用。公元226年和246年，吳國將膠州分為兩部分：“廣州”和“廣州”。合浦以南仍被稱為“城洲”，合浦以北被稱為國務院芷芝部的“廣州”。 “廣州”包括南海，蒼梧，榆林和合浦四個縣。這是兩國分裂的開始，也是“廣州”這個名稱的開頭，但廣州當時只提到了一個管轄區，相當於現在的廣東省。自唐代以來，廣州地區已成立為光復的起源。它於1921年正式成立，番禺市首次被評為廣州。廣州又被稱為“五羊城”，“陽城”和“遂城”，簡稱“隋”。這些別名來自五羊的傳說：有五個神仙穿著五色衣服，騎著五色羊。拿著“一根六根”的穀物來到廣州市，在把耳朵送到城市後，他們飛走了。五隻羊變成了石頭。因此，廣州也被稱為“五陽城”和“遂城”。因為它位於亞熱帶地區，氣候溫暖​​，適合種植花卉。此外，廣州人喜愛種花，買花，送花。花卉市場每年繁榮，廣州享有華城的美譽。從唐代開始，廣州就是廣州的首府。清朝以後，它是廣東省的省會。因此，省會成為廣州廣東人的總稱。在古代，廣州也有南武市，楚庭，番禺和南海的稱號。\\n\",\n      \"問題：番禺城這一個名子一直用到哪一年才改名為廣州市？\\n\",\n      \"答案：1921\\n\",\n      \"文章：2012年，全市常住人口1283萬人，戶籍人口8230萬，城鎮常住人口778.17萬人，外來人口占36％。廣州是全國人口密度高的城市之一。大多數人口集中在舊城區。四個中心區的平均居民人口密度達到每平方公里18,113人。人口密度最高的越秀區每平方公里達到34,009人，是人口密度最低的從化市的100多倍。自2001年以來，廣州的年出生率一直低於每千人9.6人，自然增長率低於每千人3.4人。公民的預期壽命高於全國平均水平，男性的預期壽命為75.25歲，女性的預期壽命為80.94歲。與此同時，人口老齡化問題也日益突出。截至2008年底，60歲以上老年人口達到1103,500人，佔全市總人口的13.4％。其中，老城區老年人口比例最高，超過18％，預計2030年老年人口將超過200萬。2010年第六次全國人口普查顯示，廣州的男性多於女性。截至2007年底，男女比例為109.46，即每100名女性109.46名男性。男性多於女性573,694。其中，0~14歲年齡組性別失衡嚴重，達到115.62，表明廣州性別比差距將在未來擴大。廣州人口以漢族為主，佔常住人口的98.3％，少數民族人口為219,900人。它屬於55個少數民族。其中，壯族，土家族，苗族，瑤族，回族，滿族，彝族，蒙古族，布依族，朝鮮族等10個民族。廣州經濟的快速發展和高就業機會吸引了大批農民工。 2008年，農民工佔該市人口的40％。如何妥善管理城市管理是市政府的一項艱鉅任務。\\n\",\n      \"問題：哪邊的人口密度為廣州市的一百倍分之一以下？\\n\",\n      \"答案：從化市\\n\",\n      \"文章：長期以來，廣州大部分地方的語言主要是廣東話。因此，廣州還形成了粵語文化，包括粵劇，粵劇，南音和鹹水歌。隨著中國大陸的改革開放，來自城外和廣東省以外的大量人口迅速湧入。在這些移民中，由於不同的省/總統，有許多不同的語言，外國人和來自不同地區的人經常用普通話交流;因此，在許多大型公共場所，普通話是主要語言。在某些情況下，將增加粵語或英語廣播，種族群體仍然使用自己的方言進行相互交流。一些外國人會用當地文化交流，用粵語與當地人交流。如今，隨著普通話的推廣，外國和本地年輕人受長期使用普通話作為教學媒介和普通話的共同環境的影響。目前，廣州的語言交換主要講普通話，但當地人仍然使用廣東話。與交流。雖然普通話自21世紀初以來逐漸佔據主導地位，但它受到當地文化的影響。與此同時，由於香港和澳門的距離較近，以及廣州市民近年來開展了一系列推廣普通話的評論，它已開始保護廣東話，所以廣東話仍有一定的地位。當地。 。\\n\",\n      \"問題：在廣州許多比較大的公眾場合以甚麼為主要交流語言？\\n\",\n      \"答案：\\n\",\n      \"正確答案: 普通話\\n\",\n      \"模型輸出: 廣州的廣東人,廣東人,廣東人,廣東人,廣\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import random\\n\",\n    \"import json\\n\",\n    \"\\n\",\n    \"with open(\\\"hw7_in-context-learning-examples.json\\\", \\\"r\\\") as f:\\n\",\n    \"    test = json.load(f)\\n\",\n    \"\\n\",\n    \"# K-shot learning\\n\",\n    \"# Give model K examples to make it achieve better accuracy\\n\",\n    \"# Note: (1) When K >= 4, CUDA_OUT_OFF_MEMORY may occur.\\n\",\n    \"#       (2) The maximum input length of XGLM is 2048\\n\",\n    \"K = 2\\n\",\n    \"\\n\",\n    \"question_ids = [qa[\\\"id\\\"] for qa in test[\\\"questions\\\"]]\\n\",\n    \"\\n\",\n    \"with open(\\\"in-context-learning-result.txt\\\", \\\"w\\\") as f:\\n\",\n    \"    print(\\\"ID,Ground-Truth,Prediction\\\", file = f)\\n\",\n    \"    with torch.no_grad():\\n\",\n    \"        for idx, qa in enumerate(test[\\\"questions\\\"]):\\n\",\n    \"            # You can try different prompts\\n\",\n    \"            prompt = \\\"請從最後一篇的文章中找出最後一個問題的答案\\\\n\\\"\\n\",\n    \"            exist_question_indexs = [question_ids.index(qa[\\\"id\\\"])]\\n\",\n    \"\\n\",\n    \"            # K-shot learning: give the model K examples with answers\\n\",\n    \"            for i in range(K):\\n\",\n    \"                question_index = question_ids.index(qa[\\\"id\\\"])\\n\",\n    \"                while(question_index in exist_question_indexs):\\n\",\n    \"                    question_index = random.randint(0, len(question_ids) - 1)\\n\",\n    \"                exist_question_indexs.append(question_index)\\n\",\n    \"                paragraph_id = test[\\\"questions\\\"][question_index][\\\"paragraph_id\\\"]\\n\",\n    \"                prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"                prompt += f'問題：{test[\\\"questions\\\"][question_index][\\\"question_text\\\"]}\\\\n'\\n\",\n    \"                prompt += f'答案：{test[\\\"questions\\\"][question_index][\\\"answer_text\\\"]}\\\\n'\\n\",\n    \"\\n\",\n    \"            # The final one question without answer\\n\",\n    \"            paragraph_id = qa[\\\"paragraph_id\\\"]\\n\",\n    \"            prompt += f'文章：{test[\\\"paragraphs\\\"][paragraph_id]}\\\\n'\\n\",\n    \"            prompt += f'問題：{qa[\\\"question_text\\\"]}\\\\n'\\n\",\n    \"            prompt += f'答案：'\\n\",\n    \"\\n\",\n    \"            inputs = tokenizer(prompt, add_special_tokens=False, return_tensors=\\\"pt\\\")\\n\",\n    \"            sample = model.generate(**inputs, max_new_tokens = 20)\\n\",\n    \"            text = tokenizer.decode(sample[0], skip_special_tokens=True)\\n\",\n    \"\\n\",\n    \"            # Note: You can delete this line to see what will happen\\n\",\n    \"            text = clean_text(text)\\n\",\n    \"\\n\",\n    \"            print(prompt)\\n\",\n    \"            print(f'正確答案: {qa[\\\"answer_text\\\"]}')\\n\",\n    \"            print(f'模型輸出: {text}')\\n\",\n    \"            print()\\n\",\n    \"\\n\",\n    \"            print(f\\\"{idx},{qa['answer_text']},{text}\\\", file = f)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"id\": \"k3prlGCdjf38\"\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"accelerator\": \"GPU\",\n  \"colab\": {\n   \"provenance\": []\n  },\n  \"gpuClass\": \"standard\",\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  },\n  \"widgets\": {\n   \"application/vnd.jupyter.widget-state+json\": {\n    \"028ec097e62b4ee8a463708f4c3b8f24\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0386ad4eea2b4387b48cd58e95bcd4ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"0440f9e26a0b420b86175bc62e212d01\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_c9bf7b5808f74db9811f5b64e878dcd5\",\n       \"IPY_MODEL_66a35d11743141b1b20904b13a4b86ea\",\n       \"IPY_MODEL_c0145fad2cb843e9b75ac47d307cc346\"\n      ],\n      \"layout\": \"IPY_MODEL_d61e0c79febd45c8b00e3566296d7e8e\"\n     }\n    },\n    \"04c0aa3d24944485b475601f786b56f1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"052cccb5d69d476f9caac95848e0353a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0549ffe5a6a444dd9fbf8c4513ebe7f7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_388d3d2566ff4a1cb68048ac78dd374f\",\n       \"IPY_MODEL_6235eaf236d643c6a163dddb86d3664d\",\n       \"IPY_MODEL_faf78b2739f841d8a213e4311926b598\"\n      ],\n      \"layout\": \"IPY_MODEL_91f03b6ed1c94cb68970f45ffa64695e\"\n     }\n    },\n    \"06e4e53bd3e748ad90d14eeec117aac9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9c7a21dc260a4ad7b87f2123947058a2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7b7a0c46d9794d6fa66401f03684dec0\",\n      \"value\": \"100%\"\n     }\n    },\n    \"0dccf470d87f4585af65826582399466\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"0f7a38ddfe7b42eaa5c8ffdb3c150641\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1023013dc30a4731b61383bd59f2dc91\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb4bdd1ff3cf4b0db273c53e32cad5de\",\n      \"max\": 335,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c852afee0de49fe8dac74f3af82a725\",\n      \"value\": 335\n     }\n    },\n    \"1181117783fd4bca9d7f5f296507aff3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"11dcde71ff984d829ec9612e7f43e3a3\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"154be9baa03943d08c975dbc85c4edf8\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1639410507da4b54996064d9fcc8621c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"16b30759d76a4c8f979212d1ae30c297\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"1b2b45ecc27b4f28bc0194709fed0638\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"1e20837bf23548249678da0a07745d58\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26e50974c52452389c5abb001056546\",\n      \"max\": 29,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_9eefbb580f0146658d18658f210d3a67\",\n      \"value\": 29\n     }\n    },\n    \"20cd68a7e03f4353aa99fcefc1f16d36\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"20e14c8de0f84979ac3f0d896263f49d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6a2f5722362c4ec08ae8ed7d681dc7ba\",\n      \"max\": 9032074,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_f51192579d014a52b132f99abf8901b2\",\n      \"value\": 9032074\n     }\n    },\n    \"23afbee21a644745b24b8ffefed6b286\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"24b96f20dd5f4a6d8cf9788e97a74f73\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"250451c12cee4aacb91a32d7da4ab861\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"28fc746a3c0548f4a4ff669b5dbb7320\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"29a7b6bb49004c3c96a6d48cd55e1ec3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_06e4e53bd3e748ad90d14eeec117aac9\",\n       \"IPY_MODEL_6a47a3bc614a44e7a5b0dfef50cadaf7\",\n       \"IPY_MODEL_fba6bb8f65904ae6ae4f5bca95e942e2\"\n      ],\n      \"layout\": \"IPY_MODEL_6d5ad2f51bb3459b85201f983a499ea2\"\n     }\n    },\n    \"2a59b752f9414e69b8c1d24bd24159f2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"2c37badbe0504073b31abd67a8c0b808\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_bfd7d35860c14dd3b8e5eea07032311d\",\n       \"IPY_MODEL_db2c74f92f6d4a2c8bfdcb91d5bd3d64\",\n       \"IPY_MODEL_b0af063597ea4de5a8c8bf4f370f782a\"\n      ],\n      \"layout\": \"IPY_MODEL_5b1ac1a0f04f4c29b3c1127ec3d95e81\"\n     }\n    },\n    \"2c449a0e664c41a79b3a1de62e94b5b7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d652cdca44e04070a420c5d1a24b4fd1\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b5c71e0a94014278a22ba45a6f58b77d\",\n      \"value\": \"Downloading (…)neration_config.json: 100%\"\n     }\n    },\n    \"2d1a48d240b949ad9b465985e90557c5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_98ce66c91c5c45968a3844fb0de50624\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a24d04e7064048c2819ef88a50ce9093\",\n      \"value\": \"Downloading (…)cial_tokens_map.json: 100%\"\n     }\n    },\n    \"2fe4fa69d9544fd393a4d72c02245245\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"304609dbefa74735baa08ce7aadff92d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"3366101d46a847dfa5700ffb652dcc86\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"33fa92f225be477d8cd176a0a4e8894e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"388d3d2566ff4a1cb68048ac78dd374f\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_9e312a0ec6a2478fb0f55691caf6d9ae\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_39d35e6e28264b5ca157745d0c1e1491\",\n      \"value\": \"Downloading (…)tencepiece.bpe.model: 100%\"\n     }\n    },\n    \"39d35e6e28264b5ca157745d0c1e1491\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"3eaf82623d964c2abb92b4509ac5ca9d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_33fa92f225be477d8cd176a0a4e8894e\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_b80166eeee984661a611a02d1eae4458\",\n      \"value\": \"Downloading (…)solve/main/vocab.txt: 100%\"\n     }\n    },\n    \"42dd646b18b24deda274c857d337c973\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a0f74d882c63403c8116c19745e011ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_55a7b680dae94cba8758288dacff2988\",\n      \"value\": \" 3524/3524 [01:20&lt;00:00, 46.55it/s]\"\n     }\n    },\n    \"447bb12155cf4dc193ffea3f64c6a8f8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"4d7c3ea23e9b42a2ba5b0b11ee190c69\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_6912ca44b1864902a3e32d4a19a4972d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_acbfe8b88e6945ab9a5959fbb5f294de\",\n      \"value\": \" 9.03M/9.03M [00:00&lt;00:00, 35.9MB/s]\"\n     }\n    },\n    \"5195ed241f09440eaf84a7e0b3dc8155\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"53a2b78a732c4522805de5c9aed92c41\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"53c1ce79c38b45fc8d1b675515642c54\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_9370d0df1bca4b9a9c15e1d3e10142d9\",\n       \"IPY_MODEL_611f0f0c70a5471b891bd6f6b8cb7863\",\n       \"IPY_MODEL_986b627aef004704ac0806a9aa189938\"\n      ],\n      \"layout\": \"IPY_MODEL_f2b466617f0247638e0934c8fe95ed1d\"\n     }\n    },\n    \"550e7aaac7fa4c3db37ceca6a5595ddb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"55a7b680dae94cba8758288dacff2988\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"5a0f5ba8ad024f5b915e34e48f269437\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_154be9baa03943d08c975dbc85c4edf8\",\n      \"max\": 276,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_2fe4fa69d9544fd393a4d72c02245245\",\n      \"value\": 276\n     }\n    },\n    \"5b1ac1a0f04f4c29b3c1127ec3d95e81\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"5d9e4fd05f964fd7a11d66b964ea0873\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"611f0f0c70a5471b891bd6f6b8cb7863\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_78818b2d8cc748efbf1b5784a9ee2a85\",\n      \"max\": 3365,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7c61a280288d4608b6ef341ce3adb7a8\",\n      \"value\": 3365\n     }\n    },\n    \"6235eaf236d643c6a163dddb86d3664d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c497cc2cfabb451aad71f5d7b19873e4\",\n      \"max\": 4920706,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_7f7f2c3afc2647c086877a2f4eff6c12\",\n      \"value\": 4920706\n     }\n    },\n    \"641665cb9ec6433a81719d57eeaf8298\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ba9c1cd3cfe04add90aa2edf2aa87378\",\n       \"IPY_MODEL_1e20837bf23548249678da0a07745d58\",\n       \"IPY_MODEL_c1d24cb7607c44b989774113a2baf675\"\n      ],\n      \"layout\": \"IPY_MODEL_c9144705a33848a6b142f9887da6ac49\"\n     }\n    },\n    \"642db3bee97a4bea8a4c1079e2b7526c\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_3366101d46a847dfa5700ffb652dcc86\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a1602e58c3a7413490ce0a93f35a7ca9\",\n      \"value\": \"100%\"\n     }\n    },\n    \"667f153201d347a0a01e39b438fa736b\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"66a35d11743141b1b20904b13a4b86ea\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_16b30759d76a4c8f979212d1ae30c297\",\n      \"max\": 548,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_1639410507da4b54996064d9fcc8621c\",\n      \"value\": 548\n     }\n    },\n    \"6912ca44b1864902a3e32d4a19a4972d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a2f5722362c4ec08ae8ed7d681dc7ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"6a47a3bc614a44e7a5b0dfef50cadaf7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_11dcde71ff984d829ec9612e7f43e3a3\",\n      \"max\": 2863,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_a987cb79f4904973958a98f492c6443a\",\n      \"value\": 2863\n     }\n    },\n    \"6be63de77ed14eee9c37e93d3a75f743\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_304609dbefa74735baa08ce7aadff92d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_250451c12cee4aacb91a32d7da4ab861\",\n      \"value\": \" 110k/110k [00:00&lt;00:00, 1.53MB/s]\"\n     }\n    },\n    \"6d5ad2f51bb3459b85201f983a499ea2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"715ad9f6bdaa46298317e049404f9755\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d41e81f720f44b52b9a914e4c619bfee\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bee7c0220d4e476dbc035fbc5dc44fa3\",\n      \"value\": \" 168/168 [00:00&lt;00:00, 4.67kB/s]\"\n     }\n    },\n    \"745f78a378b5412eae007f029e8c321a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2c449a0e664c41a79b3a1de62e94b5b7\",\n       \"IPY_MODEL_a9a16bf8795c402a90cf4504b1cd30a1\",\n       \"IPY_MODEL_715ad9f6bdaa46298317e049404f9755\"\n      ],\n      \"layout\": \"IPY_MODEL_667f153201d347a0a01e39b438fa736b\"\n     }\n    },\n    \"78818b2d8cc748efbf1b5784a9ee2a85\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7a7081fd9d5942af9148e29054b18f51\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7a729fb76a374da99334e7d4b4de102e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7b3c48ae548848c880439841c0b9cb6b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_eb405f797a1441d280029e6e203befce\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a7081fd9d5942af9148e29054b18f51\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"7b7a0c46d9794d6fa66401f03684dec0\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"7c61a280288d4608b6ef341ce3adb7a8\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7c852afee0de49fe8dac74f3af82a725\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7dee4e5320d349159422709a69af61f4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_86dbdec7087f4312b945c3a3940d8965\",\n       \"IPY_MODEL_cdbf6c3b5b3948229946fd51c227b51e\",\n       \"IPY_MODEL_d132ff798f284c9cbe2a73d35d776592\"\n      ],\n      \"layout\": \"IPY_MODEL_fead01a1a86c40bcb1ba9133ef351d7c\"\n     }\n    },\n    \"7f7f2c3afc2647c086877a2f4eff6c12\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"7f928c5e620a49c1ae137868e34818a9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"7fb466a306e6443287cb2fa2bea90f06\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"86dbdec7087f4312b945c3a3940d8965\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f19d9d34c978402691a89114849d2bb9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_7a729fb76a374da99334e7d4b4de102e\",\n      \"value\": \"Downloading pytorch_model.bin: 100%\"\n     }\n    },\n    \"8710bb7686df4fb3a73e5af839be5305\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"8b264499afca4694849b08e2091f6826\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_3eaf82623d964c2abb92b4509ac5ca9d\",\n       \"IPY_MODEL_aa3ff7831fbf47efa404805886ca4696\",\n       \"IPY_MODEL_6be63de77ed14eee9c37e93d3a75f743\"\n      ],\n      \"layout\": \"IPY_MODEL_5195ed241f09440eaf84a7e0b3dc8155\"\n     }\n    },\n    \"8d791392eed34a9b8e155da9a4b0a0d6\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"901f4ebc70f144c188d03a4978920441\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"91f03b6ed1c94cb68970f45ffa64695e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9370d0df1bca4b9a9c15e1d3e10142d9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_f9b28a5fbcd14568983ed36f9a1ca997\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_04c0aa3d24944485b475601f786b56f1\",\n      \"value\": \"100%\"\n     }\n    },\n    \"941a345ba82a44d5ad597a15c0af0d5c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"986b627aef004704ac0806a9aa189938\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8710bb7686df4fb3a73e5af839be5305\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_c7896f62a30f4eec95e3c84aef08e1b2\",\n      \"value\": \" 3365/3365 [09:20&lt;00:00,  6.34it/s]\"\n     }\n    },\n    \"98ce66c91c5c45968a3844fb0de50624\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c7a21dc260a4ad7b87f2123947058a2\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9c84cbc758db46e78d7fa361a385ccce\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_642db3bee97a4bea8a4c1079e2b7526c\",\n       \"IPY_MODEL_ed9f5d147e7844a187d8610130f1ecd9\",\n       \"IPY_MODEL_42dd646b18b24deda274c857d337c973\"\n      ],\n      \"layout\": \"IPY_MODEL_9e2635394d5b4965b41a05a9bc37a4ec\"\n     }\n    },\n    \"9e2635394d5b4965b41a05a9bc37a4ec\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9e312a0ec6a2478fb0f55691caf6d9ae\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"9eefbb580f0146658d18658f210d3a67\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a075ee85c2d34ab3b2d011c63dc02286\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a0f74d882c63403c8116c19745e011ba\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"a1602e58c3a7413490ce0a93f35a7ca9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a24d04e7064048c2819ef88a50ce9093\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a5bf4132f3dd4c7a807f27c8106fdd59\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"a987cb79f4904973958a98f492c6443a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"a9a16bf8795c402a90cf4504b1cd30a1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7f928c5e620a49c1ae137868e34818a9\",\n      \"max\": 168,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_d403f126d48746948c0f627dfdce5d65\",\n      \"value\": 168\n     }\n    },\n    \"aa3ff7831fbf47efa404805886ca4696\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_20cd68a7e03f4353aa99fcefc1f16d36\",\n      \"max\": 109540,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_fb908d9c3e374983aa47478a95411ba7\",\n      \"value\": 109540\n     }\n    },\n    \"acbfe8b88e6945ab9a5959fbb5f294de\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b0af063597ea4de5a8c8bf4f370f782a\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_a075ee85c2d34ab3b2d011c63dc02286\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_052cccb5d69d476f9caac95848e0353a\",\n      \"value\": \" 269k/269k [00:00&lt;00:00, 2.44MB/s]\"\n     }\n    },\n    \"b1cd7728deff4d50a18cb22805351330\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"b5c71e0a94014278a22ba45a6f58b77d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b80166eeee984661a611a02d1eae4458\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"b91c8359a6444497b3665e66afbe237d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ba9c1cd3cfe04add90aa2edf2aa87378\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_ebfa4ba9f18b4945947d326581d3b8e9\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_28fc746a3c0548f4a4ff669b5dbb7320\",\n      \"value\": \"Downloading (…)okenizer_config.json: 100%\"\n     }\n    },\n    \"bab8f16e038b440a8016ef087ee12904\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bc4b72ff74d84c9e83b328e8823044b1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c4da9fed45254ebdaa49312f16d9b159\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_53a2b78a732c4522805de5c9aed92c41\",\n      \"value\": \" 276/276 [00:00&lt;00:00, 14.5kB/s]\"\n     }\n    },\n    \"bee7c0220d4e476dbc035fbc5dc44fa3\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"bfd7d35860c14dd3b8e5eea07032311d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b91c8359a6444497b3665e66afbe237d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1181117783fd4bca9d7f5f296507aff3\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"c0145fad2cb843e9b75ac47d307cc346\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_e515df89088042dbbe23594e5976e10d\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_0dccf470d87f4585af65826582399466\",\n      \"value\": \" 548/548 [00:00&lt;00:00, 21.8kB/s]\"\n     }\n    },\n    \"c1d24cb7607c44b989774113a2baf675\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_c813a6f6ce09424582c06a3ac8a7d712\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_ff6cd33dca3c44ba9832b2d705fd2de1\",\n      \"value\": \" 29.0/29.0 [00:00&lt;00:00, 1.06kB/s]\"\n     }\n    },\n    \"c24b174369fb48cdbc3d4afaa4cceccb\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"c497cc2cfabb451aad71f5d7b19873e4\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c4da9fed45254ebdaa49312f16d9b159\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c7896f62a30f4eec95e3c84aef08e1b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    },\n    \"c813a6f6ce09424582c06a3ac8a7d712\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9144705a33848a6b142f9887da6ac49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"c9bf7b5808f74db9811f5b64e878dcd5\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_2a59b752f9414e69b8c1d24bd24159f2\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_447bb12155cf4dc193ffea3f64c6a8f8\",\n      \"value\": \"Downloading (…)lve/main/config.json: 100%\"\n     }\n    },\n    \"cbd776799c18488eb74a8f17cc27c6fd\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"cccbdce89ff545f6a66304352b320ad7\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"cdbf6c3b5b3948229946fd51c227b51e\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_cccbdce89ff545f6a66304352b320ad7\",\n      \"max\": 3465946427,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_cbd776799c18488eb74a8f17cc27c6fd\",\n      \"value\": 3465946427\n     }\n    },\n    \"d132ff798f284c9cbe2a73d35d776592\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_b1cd7728deff4d50a18cb22805351330\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_550e7aaac7fa4c3db37ceca6a5595ddb\",\n      \"value\": \" 3.47G/3.47G [00:19&lt;00:00, 179MB/s]\"\n     }\n    },\n    \"d26e50974c52452389c5abb001056546\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d26f522a28d24494914df1dd8432af49\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d403f126d48746948c0f627dfdce5d65\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"d41e81f720f44b52b9a914e4c619bfee\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d61e0c79febd45c8b00e3566296d7e8e\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"d652cdca44e04070a420c5d1a24b4fd1\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"db2c74f92f6d4a2c8bfdcb91d5bd3d64\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_941a345ba82a44d5ad597a15c0af0d5c\",\n      \"max\": 268943,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_23afbee21a644745b24b8ffefed6b286\",\n      \"value\": 268943\n     }\n    },\n    \"ddd59aac5a5d48ceace9ede35bf8f11b\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_7fb466a306e6443287cb2fa2bea90f06\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_1b2b45ecc27b4f28bc0194709fed0638\",\n      \"value\": \"Downloading (…)/main/tokenizer.json: 100%\"\n     }\n    },\n    \"e515df89088042dbbe23594e5976e10d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb405f797a1441d280029e6e203befce\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"eb4bdd1ff3cf4b0db273c53e32cad5de\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ebfa4ba9f18b4945947d326581d3b8e9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ed9f5d147e7844a187d8610130f1ecd9\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"FloatProgressModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"FloatProgressModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"ProgressView\",\n      \"bar_style\": \"success\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_d26f522a28d24494914df1dd8432af49\",\n      \"max\": 3524,\n      \"min\": 0,\n      \"orientation\": \"horizontal\",\n      \"style\": \"IPY_MODEL_c24b174369fb48cdbc3d4afaa4cceccb\",\n      \"value\": 3524\n     }\n    },\n    \"ee0cb4c1f31346b5b180a7b826688eb4\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_24b96f20dd5f4a6d8cf9788e97a74f73\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_a5bf4132f3dd4c7a807f27c8106fdd59\",\n      \"value\": \" 335/335 [00:00&lt;00:00, 11.3kB/s]\"\n     }\n    },\n    \"f19d9d34c978402691a89114849d2bb9\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f2b466617f0247638e0934c8fe95ed1d\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"f51192579d014a52b132f99abf8901b2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"f607835a7acf4037821885704bde736d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_ddd59aac5a5d48ceace9ede35bf8f11b\",\n       \"IPY_MODEL_20e14c8de0f84979ac3f0d896263f49d\",\n       \"IPY_MODEL_4d7c3ea23e9b42a2ba5b0b11ee190c69\"\n      ],\n      \"layout\": \"IPY_MODEL_5d9e4fd05f964fd7a11d66b964ea0873\"\n     }\n    },\n    \"f9b28a5fbcd14568983ed36f9a1ca997\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"faf78b2739f841d8a213e4311926b598\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_0386ad4eea2b4387b48cd58e95bcd4ba\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_028ec097e62b4ee8a463708f4c3b8f24\",\n      \"value\": \" 4.92M/4.92M [00:00&lt;00:00, 41.4MB/s]\"\n     }\n    },\n    \"fb908d9c3e374983aa47478a95411ba7\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"ProgressStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"ProgressStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"bar_color\": null,\n      \"description_width\": \"\"\n     }\n    },\n    \"fba6bb8f65904ae6ae4f5bca95e942e2\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HTMLModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HTMLModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HTMLView\",\n      \"description\": \"\",\n      \"description_tooltip\": null,\n      \"layout\": \"IPY_MODEL_8d791392eed34a9b8e155da9a4b0a0d6\",\n      \"placeholder\": \"​\",\n      \"style\": \"IPY_MODEL_bab8f16e038b440a8016ef087ee12904\",\n      \"value\": \" 2863/2863 [01:03&lt;00:00, 45.98it/s]\"\n     }\n    },\n    \"fd1e236692ec43a18a1750a29515050d\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_7b3c48ae548848c880439841c0b9cb6b\",\n       \"IPY_MODEL_1023013dc30a4731b61383bd59f2dc91\",\n       \"IPY_MODEL_ee0cb4c1f31346b5b180a7b826688eb4\"\n      ],\n      \"layout\": \"IPY_MODEL_0f7a38ddfe7b42eaa5c8ffdb3c150641\"\n     }\n    },\n    \"fda75dc7c2d24f7b827b2c78a6988586\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"HBoxModel\",\n     \"state\": {\n      \"_dom_classes\": [],\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"HBoxModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/controls\",\n      \"_view_module_version\": \"1.5.0\",\n      \"_view_name\": \"HBoxView\",\n      \"box_style\": \"\",\n      \"children\": [\n       \"IPY_MODEL_2d1a48d240b949ad9b465985e90557c5\",\n       \"IPY_MODEL_5a0f5ba8ad024f5b915e34e48f269437\",\n       \"IPY_MODEL_bc4b72ff74d84c9e83b328e8823044b1\"\n      ],\n      \"layout\": \"IPY_MODEL_901f4ebc70f144c188d03a4978920441\"\n     }\n    },\n    \"fead01a1a86c40bcb1ba9133ef351d7c\": {\n     \"model_module\": \"@jupyter-widgets/base\",\n     \"model_module_version\": \"1.2.0\",\n     \"model_name\": \"LayoutModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/base\",\n      \"_model_module_version\": \"1.2.0\",\n      \"_model_name\": \"LayoutModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"LayoutView\",\n      \"align_content\": null,\n      \"align_items\": null,\n      \"align_self\": null,\n      \"border\": null,\n      \"bottom\": null,\n      \"display\": null,\n      \"flex\": null,\n      \"flex_flow\": null,\n      \"grid_area\": null,\n      \"grid_auto_columns\": null,\n      \"grid_auto_flow\": null,\n      \"grid_auto_rows\": null,\n      \"grid_column\": null,\n      \"grid_gap\": null,\n      \"grid_row\": null,\n      \"grid_template_areas\": null,\n      \"grid_template_columns\": null,\n      \"grid_template_rows\": null,\n      \"height\": null,\n      \"justify_content\": null,\n      \"justify_items\": null,\n      \"left\": null,\n      \"margin\": null,\n      \"max_height\": null,\n      \"max_width\": null,\n      \"min_height\": null,\n      \"min_width\": null,\n      \"object_fit\": null,\n      \"object_position\": null,\n      \"order\": null,\n      \"overflow\": null,\n      \"overflow_x\": null,\n      \"overflow_y\": null,\n      \"padding\": null,\n      \"right\": null,\n      \"top\": null,\n      \"visibility\": null,\n      \"width\": null\n     }\n    },\n    \"ff6cd33dca3c44ba9832b2d705fd2de1\": {\n     \"model_module\": \"@jupyter-widgets/controls\",\n     \"model_module_version\": \"1.5.0\",\n     \"model_name\": \"DescriptionStyleModel\",\n     \"state\": {\n      \"_model_module\": \"@jupyter-widgets/controls\",\n      \"_model_module_version\": \"1.5.0\",\n      \"_model_name\": \"DescriptionStyleModel\",\n      \"_view_count\": null,\n      \"_view_module\": \"@jupyter-widgets/base\",\n      \"_view_module_version\": \"1.2.0\",\n      \"_view_name\": \"StyleView\",\n      \"description_width\": \"\"\n     }\n    }\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "HW07/README.md",
    "content": ">  ML2023Spring - HW7 相关信息：\n>\n>  [课程主页](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php)\n>\n>  [课程视频](https://www.bilibili.com/video/BV1TD4y137mP/?spm_id_from=333.337.search-card.all.click&vd_source=436107f586d66ab4fcf756c76eb96c35)\n>\n>  [Kaggle link](https://www.kaggle.com/t/e001cad568dc4d77b6a5e762172f44d6) 回来了 :)\n>\n>  [Sample code](https://colab.research.google.com/drive/1m0fQjJfkK9vAovxPj9Nd3-hQuxezB2w1)\n>\n>  [HW07 视频]( https://www.bilibili.com/video/BV1TD4y137mP/?p=48&share_source=copy_web&vd_source=e46571d631061853c8f9eead71bdb390)\n>\n>  [HW07 PDF](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2023-course-data/HW07.pdf)\n>\n>  P.S. HW7 的代码都很易懂，可以和 2024 年的新课：[生成式AI导论](https://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php)做一个很好的衔接，因为导论对于 Transformer 库的使用大多数是 HW7 所提到的一些函数。对 AIGC 感兴趣的同学可以去学习，完成 HW7 之后应该能够非常快的上手。\n>\n\n* [任务目标（BERT 问答）](#任务目标bert-问答)\n* [性能指标（EM）](#性能指标em)\n* [数据解析](#数据解析)\n   * [数据下载（kaggle）](#数据下载kaggle)\n* [Gradescope](#gradescope)\n   * [Question 1](#question-1)\n      * [A. Encoder-only 模型（如 BERT 系列）如何在抽取式问答任务中确定答案？](#a-encoder-only-模型如-bert-系列如何在抽取式问答任务中确定答案)\n      * [B. Decoder-only 模型（如 GPT 系列）如何在抽取式问答任务中确定答案？](#b-decoder-only-模型如-gpt-系列如何在抽取式问答任务中确定答案)\n      * [总结](#总结)\n   * [Question 2](#question-2)\n      * [Prompt 对比（Bad Examples）](#prompt-对比bad-examples)\n      * [Prompt 对比（Good Examples）](#prompt-对比good-examples)\n* [代码解析](#代码解析)\n      - [重点](#重点)\n* [Baselines](#baselines)\n   * [Simple baseline (0.45573)](#simple-baseline-045573)\n   * [Medium baseli ne (0.67820)](#medium-baseline-067820)\n   * [Strong baseline (0.76220)](#strong-baseline-076220)\n   * [Boss baseline (0.84506)](#boss-baseline-084506)\n* [拓展链接](#拓展链接)\n\n# 任务目标（抽取式问答）\n\n- **任务描述**: 使用 BERT 模型进行**抽取式问答**。\n  - **目标**: fine-tune BERT 模型，使其能够从文章中抽取出具体答案，完成问答任务。\n    具体来说，可以当成是预测开始（Start）和结尾（End）的位置，然后抽出这一段作为答案，现在去看PDF中的图你应该更容易理解。\n    ![image-20240920002112364](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240920002118.png)\n\n# 性能指标（EM）\n\n- **准确率 (Exact Match)**: 该指标用于衡量模型的预测答案与真实答案**完全一致**的比例。\n\n# 数据解析\n\n> 两个繁体中文阅读理解资料集：[DRCD](https://github.com/DRCKnowledgeTeam/DRCD) 和 [ODSQA](https://github.com/Chia-Hsuan-Lee/ODSQA)。\n\n- 训练（**DRCD + DRCD-backtrans**）：包含 15,329 个段落和 26,918 个问题。一个文章段落可能对应多个问题。\n- 开发/用于验证（**DRCD + DRCD-backtrans**）：包含 1,255 个段落和 2,863 个问题。\n- 测试（**DRCD + ODSQA**）：包含 1,606 个段落和 3,504 个问题。其中段落没有给出答案，需模型进行预测。\n\n训练，开发和测试数据的格式都是相同的：\n\n- id：问题序号\n- paragraph_id：文章段落序号\n- question_text：问题\n- answer_text：答案\n- answer_start：答案在文章中的起始点\n- answer_end：答案在文章中的终止点\n\n![数据集格式](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240920002901.png)\n\n## 数据下载（kaggle）\n\n> To use the Kaggle API, sign up for a Kaggle account at [https://www.kaggle.com](https://www.kaggle.com/). Then go to the 'Account' tab of your user profile (`https://www.kaggle.com/<username>/account`) and select 'Create API Token'. This will trigger the download of `kaggle.json`, a file containing your API credentials. Place this file in the location `~/.kaggle/kaggle.json` (on Windows in the location `C:\\Users\\<Windows-username>\\.kaggle\\kaggle.json` - you can check the exact location, sans drive, with `echo %HOMEPATH%`). You can define a shell environment variable `KAGGLE_CONFIG_DIR` to change this location to `$KAGGLE_CONFIG_DIR/kaggle.json` (on Windows it will be `%KAGGLE_CONFIG_DIR%\\kaggle.json`).\n>\n> -\\- [Official Kaggle API](https://github.com/Kaggle/kaggle-api)\n\n替换\\<username\\>为你自己的用户名，`https://www.kaggle.com/<username>/account`，然后点击 `Create New API Token`，将下载下来的文件放去应该放的位置：\n\n- Mac 和 Linux 放在 `~/.kaggle`\n- Windows 放在 `C:\\Users\\<Windows-username>\\.kaggle`\n\n```bash\npip install kaggle\n# 你需要先在 Kaggle -> Account -> Create New API Token 中下载 kaggle.json\n# mv kaggle.json ~/.kaggle/kaggle.json\nkaggle competitions download -c ml2023spring-hw7\nunzip ml2023spring-hw7.zip   \n```\n\n不过HW7的数据集比较小，所以我直接上传了 :)，你可以不用自己下载。\n\n# Gradescope\n\n## Question 1\n\n> **训练/推理过程的差异**\n> **Fine-tuning**: 进行梯度下降，调整模型参数。模型通过多个回合（epochs）的训练，学习特定任务的数据集。微调后的模型能够很好地解决特定任务。\n> **In-context learning**: 不进行梯度下降，只依赖少量样本，让预训练模型通过上下文提供答案。这是一种轻量的任务特化方式，可以快速得到结果，其实就是 prompt。\n>\n> [Label Words are Anchors: An Information Flow Perspective for Understanding In-Context Learning](https://arxiv.org/abs/2305.14160) 2023年的这篇文章展示了 In-Context Learning 实际上真的在起作用，如果感兴趣可以阅读原文或者查看[24年的视频 第11讲：大型语言模型在「想」什么呢？ — 浅谈大型语言模型的可解释性](https://www.bilibili.com/video/BV1BJ4m1e7g8/?p=22&share_source=copy_web&vd_source=e46571d631061853c8f9eead71bdb390)。\n>\n> ![image-20240920154334405](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240920154337.png)\n>\n> 拓展阅读：\n>\n> - [Encoder-Only vs Decoder-Only vs Encoder-Decoder Transformer](https://vaclavkosar.com/ml/Encoder-only-Decoder-only-vs-Encoder-Decoder-Transfomer)\n>- [Decoder-Only or Encoder-Decoder? Interpreting Language Model as a Regularized Encoder-Decoder](https://arxiv.org/pdf/2304.04052)\n\n### A. Encoder-only 模型（如 BERT 系列）如何在抽取式问答任务中确定答案？\n\n在 **BERT** 等编码器模型中，抽取式问答的工作原理如下：\n\n1. **输入格式**：输入由两个部分组成：\n\n   - **问题（Question）**：作为第一个句子（句子 A）。\n   - **段落（Passage）**：作为第二个句子（句子 B），其中答案位于该段落中。\n\n2. **Tokenization（标记化）**：BERT 对问题和段落进行标记化，并将它们合并成一个输入序列，序列通常是 `[CLS] Question [SEP] Passage [SEP]`。\n\n3. **编码器处理**：BERT 对整个输入序列进行处理，生成每个标记的上下文表示。\n\n4. **预测开始和结束位置**：\n\n   - BERT 通过两个线性层来分别预测**答案的起始位置**和**结束位置**。这两个线性层输出每个标记的得分。\n\n     ```python\n     # 打印 model 可以看到 qa_outputs。\n     ...\n     (qa_outputs): Linear(in_features=768, out_features=2, bias=True)\n     ```\n\n   - 最终的答案位置是通过找出问题段落中得分最高的**开始标记**和**结束标记**的位置来确定。\n\n     ```python\n     start_index = torch.argmax(output.start_logits, dim=1)\n     end_index = torch.argmax(output.end_logits, dim=1)\n     ```\n   \n5. **输出答案**：答案是段落中的一段文本，具体由起始位置和结束位置的标记对应的子序列来表示。这些标记会被解码回原始文本，从而得到最终答案。\n\n### B. Decoder-only 模型（如 GPT 系列）如何在抽取式问答任务中确定答案？\n\n对于 **GPT** 等解码器模型，工作原理与 BERT 不同。GPT 生成输出的方式与 BERT 不同，但在处理抽取式问答时也可以通过以下方式确定答案：\n\n1. **输入格式**：\n   - GPT 是一个生成式模型，输入格式通常是将问题和段落拼接在一起。例如：`\"Question: [问题文本] Passage: [段落文本]\"`。\n\n2. **生成式预测**：\n   - GPT 并不是直接输出答案的起始和结束位置。相反，它会根据自回归生成的方式，基于问题生成答案。\n   - 在抽取式问答任务中，GPT 将段落和问题作为上下文，开始生成答案的第一个标记，并逐步生成后续标记，直到完成生成答案。\n\n3. **潜在的问题**：由于 GPT 是生成式模型，它可能并不会严格“抽取”段落中的原始文本，而是会生成一个看似合理的答案。它依赖上下文来生成答案，不一定是段落中的原文子串。\n\n4. **与 BERT 的差异**：GPT 更擅长生成性任务，而不是抽取任务。相比于 BERT 在抽取式问答中的精确性，GPT 更可能生成出看似合理但并不严格匹配原文的答案，也就是瞎编。\n\n### 总结\n\n- **BERT 系列**（Encoder-only 模型）会根据标记的上下文表示，直接预测出答案在段落中的起始和结束位置。\n- **GPT 系列**（Decoder-only 模型）通过生成的方式给出答案，基于段落和问题的上下文生成答案，而不是直接定位段落中的子串。\n\n## Question 2\n\n> 尝试不同的 Prompt 并观察 fine-tuning 和 in-context learning 的区别。\n>\n> 这里代码所下载的是 [facebook/xglm-1.7B](https://huggingface.co/facebook/xglm-1.7B)，实际上你也可以直接去 GPT 或者其他 AI 平台问，这里的目的是让你去调整自己的 prompt，从而使模型不经过微调也能获取到正确答案。\n\n### Prompt 对比（错误对比）\n\n1. **Prompt 示例 1**: \"根据文章找出问题的答案：{问题}\"。\n2. **Prompt 示例 2**: \"请阅读文章并回答以下问题：{问题}\"。\n3. **Prompt 示例 3**: \"请根据文章信息回答下列问题：{问题}\"。\n\n### Prompt 对比（正确对比）\n\n> ![image-20240920173255150](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240920173258.png)\n\n- 中英对比\n- 不同 prompt 对比\n\n# 代码解析\n\n> 这里解释一下QA_Dataset，如果觉得太长，可以只查看重点部分。\n\n## `QA_Dataset` 类功能解析（Medium / Strong 相关）\n\n1. **初始化（`__init__`）**：\n   - `split` 决定数据集的类型（训练、验证或测试）。\n   - `questions`, `tokenized_questions`, 和 `tokenized_paragraphs` 是原问题和 tokenized 后的问题和段落。\n   - `max_question_len` 和 `max_paragraph_len` 分别设定了问题和段落的最大长度。\n   - `self.doc_stride`：段落的窗口滑动步长（决定每个窗口之间的重叠部分）。\n     - `Sample code` 中将其设置为 150，和 `max_paragraph_len` 一样，意味着窗口之间完全不重叠。\n   - `self.max_seq_len`：定义了整个输入序列的最大长度（包含问题和段落）。\n\n2. **`__getitem__`**：\n   - 针对给定的索引 `idx`，获取对应问题和段落数据，返回模型需要的输入。\n   - **训练集**：定位答案的起始和结束位置，将包含答案的段落部分截取为一个窗口（中心在答案位置附近）。然后将问题和段落合并为一个输入序列，并进行填充。\n   - **验证/测试集**：将段落分成多个窗口，每个窗口之间的步长由 `self.doc_stride` 决定，然后将每个窗口作为模型的输入。验证和测试时不需要答案位置，因此只需生成多个窗口作为输入。\n\n3. **填充（`padding`）**：\n   - 输入序列可能比最大序列长度短，填充部分用 0 表示。对于问题部分和段落部分，`token_type_ids` 被用来区分它们（0 表示问题，1 表示段落）。`attention_mask` 用于标记有效的输入部分，防止模型对填充部分进行注意力计算。\n\n### 重点\n\n- `self.doc_stride` 通过控制窗口之间的滑动步长，确保即使答案位于窗口边缘，模型也能通过多个窗口重叠的方式找到答案。\n- **训练阶段**不需要使用 `doc_stride`，因为训练时我们已经知道答案的位置，可以直接截取包含答案的窗口。但在**验证和测试**阶段，由于模型并不知道答案的位置，`doc_stride` 保证每个窗口之间有足够的重叠，避免遗漏答案。\n- 所以这里存在一个问题，训练过程中模型可能学习到：答案就在中间这一模式。这是我们在 Strong baseline 中需要解决的。\n\n# Baselines\n\n> 论文后遗症上来了，这次会包含多组对比 :) 每次模块的增加简单基于上次最好的设置进行。\n>\n> HW7 的代码更多的是在向你演示如何去微调一个能够提取正确答案的 LLM。\n\n括号里是 Kaggle Leaderboard 中的 Public 分数。\n\n## Simple baseline (0.45573)\n\n- 运行所给的 sample code。\n\n## Medium baseline (0.67820)\n\n- 使用学习率调度器，这里演示两种方法，随意选择即可。\n\n  1. **PyTorch** \n     线性衰减。\n\n  ```python\n  from torch.optim.lr_scheduler import LambdaLR\n  \n  total_steps = len(train_loader) * num_epoch\n  \n  lr_lambda = lambda step: max(0.0, 1.0 - step / total_steps)\n  scheduler = LambdaLR(optimizer, lr_lambda=lr_lambda)\n  ```\n\n  ![Learning Rate Schedule using LambdaLR](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240920020800.png)\n\n  2. **Hugging Face** \n     使用 warmup。\n\n  ```python\n  from transformers import get_linear_schedule_with_warmup\n  \n  total_steps = len(train_loader) * num_epoch\n  num_warmup_steps = int(0.2 * total_steps)  # 设置为 0 理论上等价于线性衰减，设置为 1 理论上等价于线性增加\n  \n  scheduler = get_linear_schedule_with_warmup(\n      optimizer, num_warmup_steps=num_warmup_steps, num_training_steps=total_steps\n  )\n  ```\n\n  不同num_warmup_steps对学习率的影响：\n\n  ![Learning Rate Schedules with Different Warmup Fractions](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240920020716.png)\n\n  我在当前框架上简单进行了对比（注意，如果你想自己进行对比，请重新运行文件而不是重复运行单元格，不然会导致在之前的模型上继续训练）：\n\n  | Schedule                          | Private Score | Public Score |\n  | --------------------------------- | ------------- | ------------ |\n  | no schedule                       | 0.54426       | **0.56356**  |\n  | Linear schedule (PyTorch)         | **0.55164**   | **0.56356**  |\n  | Linear schedule with warmup (0)   | **0.55164**   | **0.56356**  |\n  | Linear schedule with warmup (0.2) | 0.54653       | **0.56356**  |\n  | Linear schedule with warmup (0.5) | 0.53916       | 0.54597      |\n  | Linear schedule with warmup (1.0) | 0.54994       | 0.55051      |\n\n  这里简单选择Linear schedule with warmup (0)进行下一步实验。\n\n- **调整 `doc_stride` 参数提升模型表现**\n\n  doc_stride 在 sample code 代码默认为 150，也就是 max_paragraph_len，你可以理解为默认情况下，文本的窗口不重叠，也就是说第一个窗口从 0 开始 149 结束，第二个窗口从 150 开始，299 结束，这两个窗口之间的文本不会发生重叠，但这存在一个问题：问题的答案可能在 140-160 中，默认的设置会无法捕捉到这部分的答案。所以，我们需要调整这个参数，你可以将其理解为**段落窗口滑动步长**，也可以将其理解为卷积中的 stride。\n\n  **注意，doc_stride 没有用在训练阶段，所以你可以随便更改，重载数据集后注释训练部分然后运行 Testing。**\n\n  这里给出一些对比，你可以继续实验：\n  \n  | self.doc_stride           | Private Score | Public Score |\n  | ------------------------- | ------------- | ------------ |\n  | =max_paragraph_len=150    | 0.55164       | 0.56356      |\n  | =max_paragraph_len * 0.75 | 0.63450       | 0.62656      |\n  | =max_paragraph_len * 0.5  | 0.67366       | **0.68501**  |\n  | =max_paragraph_len * 0.25 | **0.70090**   | 0.68161      |\n  \n  这里让 `self.doc_stride=max_paragraph_len * 0.25` 进行下一步实验（在你实际实验时应该仅参考 Public Score，因为 Private Score 是最终的批改分数）。\n\n## Strong baseline (0.76220)\n\n- **修改模型的预处理过程 (TODO: Preprocessing)**\n\n  Sample code 对于训练的数据处理是直接以答案为中心选择文本窗口，这导致模型可能学到一个不该学习的模式：答案就在中间。\n\n  这里**随机偏移答案的窗口位置**来解决这一问题，你可以修改 max_offset 的参数：\n\n  ```python\n  \t\t\t...\n              # A single window is obtained by slicing the portion of paragraph containing the answer\n              mid = (answer_start_token + answer_end_token) // 2\n  \n              # ---- Strong -----\n              # Introduce random offset to prevent learning that answer is always in the middle\n              max_offset = self.max_paragraph_len   # We allow up to 1/4 of the max length as offset\n              random_offset = np.random.randint(-max_offset, max_offset)  # Random shift between -max_offset and +max_offset\n  \n              # Adjust paragraph start based on random offset\n              paragraph_start = max(0, min(mid + random_offset - self.max_paragraph_len // 2, len(tokenized_paragraph) - self.max_paragraph_len))\n              paragraph_end = paragraph_start + self.max_paragraph_len\n              \n              # ---- Strong -----\n  \t\t\t...\n  ```\n\n  | max_offset                    | Private Score | Public Score |\n  | ----------------------------- | ------------- | ------------ |\n  | 不进行偏移                    | 0.70090       | 0.68161      |\n  | = self.max_paragraph_len // 4 | 0.72644       | 0.72928      |\n  | = self.max_paragraph_len // 2 | **0.73155**   | **0.72985**  |\n  | = self.max_paragraph_len      | 0.72814       | 0.72701      |\n\n  这里直接选择`self.max_paragraph_len // 2`作为偏移进行下一步。\n  **注意**，当前代码偏移 > self.max_paragraph_len // 2时并没有确保窗口一定包含答案，所以`self.max_paragraph_len`偏移效果不佳。\n\n- 选择 HuggingFace 上的**其他预训练模型**进行微调\n\n  在这里找一个模型替换掉当前的：[中文模型 -- Hugging Face](https://huggingface.co/models?language=zh&sort=trending)。\n\n  Sample code当前使用的是[google-bert/bert-base-chinese](https://huggingface.co/google-bert/bert-base-chinese)，一个103M参数的 Fill-Mask 模型，替换模型的话修改下面这行代码即可。\n\n  ```python\n  model = AutoModelForQuestionAnswering.from_pretrained(\"bert-base-chinese\").to(device)\n  tokenizer = AutoTokenizer.from_pretrained(\"bert-base-chinese\")\n  ```\n  \n| Pre-trained Model                                            | Params | epoch | 备注                 | Private Score | Public Score |\n| ------------------------------------------------------------ | ------ | ----- | -------------------- | ------------- | ------------ |\n| [google-bert/bert-base-chinese](https://huggingface.co/google-bert/bert-base-chinese) | 103M   | 1     |                      | 0.73155       | 0.72985      |\n|                                                              |        | 2     |                      | 0.77185       | 0.75993      |\n| [google-bert/bert-base-multilingual-cased](https://huggingface.co/google-bert/bert-base-multilingual-cased) | 179M   | 1     |                      | 0.74517       | 0.74006      |\n|                                                              |        | 2     |                      | 0.77525       | 0.76730      |\n| [FacebookAI/xlm-roberta-base](https://huggingface.co/FacebookAI/xlm-roberta-base) | 279M   | 1     | 不使用token_type_ids | 0.68955       | 0.67139      |\n| [NchuNLP/Chinese-Question-Answering](https://huggingface.co/NchuNLP/Chinese-Question-Answering) | 103M   | 1     | 不进行训练           | 0.56299       | 0.57094      |\n|                                                              | 103M   | 1     | 进行训练             | **0.79001**   | **0.78149**  |\n\n\n注意：NchuNLP/Chinese-Question-Answering 是一个基于 google-bert/bert-base-chinese 使用 DRCD dataset 进行微调后的问答模型，所以在 kaggle 用的话其实有点降维打击，因为其他模型的 ACC 都是从 0 开始的，而这个模型是从 0.56 开始的，不过可以简单将 epoch 设置高一点自己训练一下 bert-base-chinese，其实没什么差别。\n\n  > token_type_ids 将输入序列划分为两个部分：\n  >\n  > - **0** 表示第一个句子（句子 A），\n  >\n  > - **1** 表示第二个句子（句子 B）。\n  >\n  >   ![image-20240920153856156](https://blogby.oss-cn-guangzhou.aliyuncs.com/20240920153859.png)\n\n  ## Boss baseline (0.84506)\n\n- **修改后处理部分 (TODO: Postprocessing)**\n\n  查看 result.csv 文件时，可以发现有些结果是空的。这是因为在某些情况下，预测的结束位置小于开始位置，导致无法捕获到答案文本。我们需要修正这个问题，确保结束位置始终大于或等于开始位置（继续修改 TODO 部分）。\n\n  ```python\n          # ---- Boss -----\n          # Ensure the start_index is less than or equal to end_index\n          # This avoids selecting a wrong pair of start and end positions\n          if start_index <= end_index:\n              # Calculate the combined probability of start and end positions\n              prob = start_prob + end_prob\n  \n              # If this window has a higher probability answer, update the result\n              if prob > max_prob:\n                  max_prob = prob\n                  # Convert token indices to the corresponding text answer\n                  # Example: [1920, 7032] --> \"大 金\"\n                  answer = tokenizer.decode(data[0][0][k][start_index : end_index + 1])\n          else:\n              # If start_index > end_index, skip this pair (potentially an error case)\n              continue\n          # ---- Boss -----\n  ```\n  \n  注意，这部分修改的是 evaluate() 函数，所以**不会影响训练**，你可以随意的加上自己的想法然后直接运行 Testing 模块得到 result.csv 去查看效果。Boss 增加模块的对比见章末。\n\n\n- **梯度累积**\n\n  这是一个非常简单的想法，即不在每次 step 后都更新梯度，这样就等于变相的增加 batchsize，每 n 个 step 更新一次等价于 batchsize 设置为 n*batchsize 。适用于显存不足以跑大 batchsize 的情况。不过 batchsize 大并不意味着效果一定好。\n  \n  ```python\n  \t# ---- Boss -----\n      actual_logging_steps = 0  # Track the number of steps contributing to the current logging window\n      for batch_idx, data in enumerate(tqdm(train_loader)):\n          # Load all data into GPU\n          data = [i.to(accelerator.device) for i in data]\n  \n          # Model inputs and forward pass\n          output = model(input_ids=data[0], token_type_ids=data[1], attention_mask=data[2], start_positions=data[3], end_positions=data[4])\n          \n          # Accumulate loss\n          loss = output.loss\n          accelerator.backward(loss / gradient_accumulation_steps)\n  \n          # Update accuracy for the current mini-batch\n          start_index = torch.argmax(output.start_logits, dim=1)\n          end_index = torch.argmax(output.end_logits, dim=1)\n          batch_acc = ((start_index == data[3]) & (end_index == data[4])).float().mean().item()\n          \n          train_acc += batch_acc\n          train_loss += loss.item()\n          actual_logging_steps += 1\n  \n          # Gradient accumulation: only update weights every gradient_accumulation_steps\n          if (batch_idx + 1) % gradient_accumulation_steps == 0:\n              optimizer.step()\n              scheduler.step()  # Apply learning rate scheduler\n              optimizer.zero_grad()\n              step += 1\n  \n              # Logging\n              if step % logging_step == 0:\n                  # Average the loss and accuracy over all accumulated steps\n                  avg_loss = train_loss / actual_logging_steps\n                  avg_acc = train_acc / actual_logging_steps\n                  \n                  print(f\"Epoch {epoch + 1} | Step {step} | loss = {avg_loss:.3f}, acc = {avg_acc:.3f}\")\n                  \n                  # Reset the accumulators\n                  train_loss = 0.0\n                  train_acc = 0.0\n                  actual_logging_steps = 0  # Reset after each logging\n      # ---- Boss -----\n  ```\n  \n  `loss = output.loss / gradient_accumulation_steps`是因为默认情况下 loss 的计算实际都已经做过平均了，所以我们这里也需要保持一致。\n  \n  另外说一句，其实你也可以直接使用 `Accelerator(gradient_accumulation_steps=gradient_accumulation_steps)`，详见[官方文档](https://huggingface.co/docs/accelerate/usage_guides/gradient_accumulation)。\n  \n- **训练用上 dev 数据集**\n  去掉验证部分，你需要注意我在这里将 `QA_Dataset(\"dev\", ...)` 改为了 `QA_Dataset(\"train\", ...)`\n  \n  ```python\n  dev_set = QA_Dataset(\"train\", dev_questions, dev_questions_tokenized, dev_paragraphs_tokenized)  # Boss\n  \n  ...\n  \n  combined_train_set = ConcatDataset([train_set, dev_set])\n  train_loader = DataLoader(combined_dataset, batch_size=train_batch_size, shuffle=True, pin_memory=True)\n  ...\n  \n      # if validation:\n      #     print(\"Evaluating Dev Set ...\")\n      #     model.eval()\n      #     with torch.no_grad():\n      #         dev_acc = 0\n      #         for i, data in enumerate(tqdm(dev_loader)):\n      #             output = model(input_ids=data[0].squeeze(dim=0).to(device), token_type_ids=data[1].squeeze(dim=0).to(device),\n      #                    attention_mask=data[2].squeeze(dim=0).to(device))\n      #             # prediction is correct only if answer text exactly matches\n      #             dev_acc += evaluate(data, output) == dev_questions[i][\"answer_text\"]\n      #         print(f\"Validation | Epoch {epoch + 1} | acc = {dev_acc / len(dev_loader):.3f}\")\n      #     model.train()\n  ```\n  \n  Ensemble 和 early stop 之前我们都在作业中做过，所以不选择这两种方法，直接简单的拼接数据集用于训练看看效果。\n  \n  \n\n简单过一个epoch看看效果（粗体部分就是选择使用的模块）：\n\n\n|                      | epoch | Private Score | Public Score |\n| -------------------- | ----- | ------------- | ------------ |\n| -                    | 1     | 0.79001       | 0.78149      |\n| **+ 修复后处理部分** | 1     | 0.79171       | 0.78263      |\n| **+ 梯度累积（4）**  | 1     | 0.79171       | 0.79114      |\n| 梯度累积（8）        | 1     | 0.79057       | 0.78603      |\n| 梯度累积（16）       | 1     | 0.78376       | 0.77355      |\n| **+ dev数据集**      | 1     | 0.79511       | 0.78206      |\n\n现在，我们直接“硬 train 一发”，毕竟该完成的已经完成了，看看最终成效。\n\n作业 PDF 的描述中，Boss 时间是 Simple 的 18.75 倍，加上 dev 数据集后运行时间将增加 12%，所以设置 epochs=16 进行训练查看效果（因为直到 Strong 完成，我们都没有增加参数规模，所以当前训练时间等于 Simple）。\n\n最终的结果（epoch=16）：\n\n- **Public Score**：0.79114\n- **Private Score**：0.77525\n\n虽然在训练集的结果上，第 16 个 epoch 比第 1 个 epoch 的 ACC 高了 0.073，但实际上，这是过拟合的，Kaggle 的最终提交结果甚至不如只训练 1 次的情况。（到这里其实就足够了，你已经学到了这份作业想要教你的知识，后面会是一些预训练模型的结果分享，或许能够帮你节省一些时间）。\n\n所以，让我们换一个更大的模型 :)\n\n| Pre-trained Model                                            | Params | epoch    | Private Score | Public Score |\n| ------------------------------------------------------------ | ------ | -------- | ------------- | ------------ |\n| [DaydreamerF/chinese-macbert-base-finetuned-accelerate](https://huggingface.co/DaydreamerF/chinese-macbert-base-finetuned-accelerate) | 101M   | 2        | 0.78830       | 0.78660      |\n| [IDEA-CCNL/Erlangshen-MacBERT-325M-TextMatch-Chinese](https://huggingface.co/IDEA-CCNL/Erlangshen-MacBERT-325M-TextMatch-Chinese) | 324M   | 2        | 0.78887       | 0.79228      |\n| [hfl/chinese-macbert-large](https://huggingface.co/hfl/chinese-macbert-large) | 324M   | 1        | 0.81668       | 0.82349      |\n|                                                              |        | 5        | 0.83144       | 0.83030      |\n| [luhua/chinese_pretrain_mrc_macbert_large](https://huggingface.co/luhua/chinese_pretrain_mrc_macbert_large) | 324M   | 1        | 0.83654       | 0.82292      |\n|                                                              |        | 2        | **0.84222**   | 0.83144      |\n|                                                              |        | 2 (FP32) | 0.84165       | 0.82973      |\n|                                                              |        | 3        | 0.83777       | 0.82065      |\n|                                                              |        | 5        | 0.82917       | 0.82463      |\n| [qalover/chinese-pert-large-open-domain-mrc]()               | 324M   | 0        | 0.56413       | 0.54143      |\n|                                                              |        | 2        | 0.83314       | 0.82519      |\n\n在导入大模型的时候你可能会遇到显存不够的情况，这时候降低 train_batch_size 增加gradient_accumulation_steps 就可以了。\n\n```python\n#train_batch_size = 8\n#gradient_accumulation_steps = 4\n\ntrain_batch_size = 4\ngradient_accumulation_steps = 8\n```\n\n如果想在 2 个 epoch 下达到 Boss baseline，可以寻找并选择大于 324M 的预训练模型。\n\n最后补充一个 doc_string 的对比，doc_string 也是后处理的模块，下面的结果基于 [luhua/chinese_pretrain_mrc_macbert_large](https://huggingface.co/luhua/chinese_pretrain_mrc_macbert_large) 在 epoch=2 下进行修改。\n\n| doc_string              | Private Score | Public Score |\n| ----------------------- | ------------- | ------------ |\n| =max_paragraph_len*0.25 | 0.84222       | 0.83144      |\n| =max_paragraph_len*0.1  | **0.84335**   | **0.83087**  |\n| =max_paragraph_len*0.05 | 0.83881       | 0.82746      |\n\n至此，Homework7 就结束了，希望能对你有所帮助。\n\n# 拓展链接\n\n- [Encoder-Only vs Decoder-Only vs Encoder-Decoder Transformer](https://vaclavkosar.com/ml/Encoder-only-Decoder-only-vs-Encoder-Decoder-Transfomer)\n\n- [Decoder-Only or Encoder-Decoder? Interpreting Language Model as a Regularized Encoder-Decoder](https://arxiv.org/pdf/2304.04052)\n\n- [中文模型 -- Hugging Face](https://huggingface.co/models?language=zh&sort=trending)\n\n- [Gradient Accumulation in PyTorch](https://kozodoi.me/python/deep%20learning/pytorch/tutorial/2021/02/19/gradient-accumulation.html)\n\n  \n\n"
  },
  {
    "path": "README.md",
    "content": "# 李宏毅2023机器学习作业思路和代码分享\n\n这里是我个人的 code 分享，所有的 code 最终均能达到 Boss baseline，希望能给你带来帮助。代码会一直更新到课程结束。\n\n当前代码版本对应的是 2023 年春，其中 HW01 之前是 22 年版本，但我略作修改（修改文件路径）后便可直接用于现有版本，近年 Homework 的主题都一样，你完全可以从往年的优秀代码中学习知识。\n\n现在所有的文件夹中都增加了 Sample Code 方便参考，HW_Simple_[score].ipynb 是对应 Sample Code 直接运行的结果，提供一个基准，从 HW3 开始代码分 Medium, Strong, Boss，方便索引当前 Baseline 的代码变动。\n\n描述文档中更新了各 Homework 的 Kaggle 邀请链接 (来自课程主页)，现在可以直接点击跳转参加，不会再遇到 limited-participation competition 的问题。\n\n## 作业代码更新概述\n\n- **HW01**：增加了 Adam, Momentum, Normalization, L2 regularization, Feature selection, K-fold cross validation 等相关代码，并使用了 Optuna 库进行了参数的自动搜寻。\n- **HW02**：修改了原代码的小bug，增加了 tensorboard 和 scheduler 的使用，默认执行的是 strong baseline，你可以检查代码中的 TODO 选项去达成 Boss baseline（使用了BiLSTM）。\n- **HW03**：代码根据 baseline 分为了三个部分(Medium, Strong,..)，方便大家查看，之后的代码都会遵循这一点。代码仅针对 sample code 的基础架构进行了训练，所以没有达到 boss baseline。目前代码的分数为0.85200，先上传给大家一点参考思路，闲暇后会重新进行 boss baseline 的跟进。\n- **HW04**：\n  - Medium: 通过 grid search 搜寻了几十个参数组合后修改了 transformer 模块中的参数。\n  - Strong:  Medium 的基础上修改使用了 Conformer 论文中的 ConformerBlock 架构。\n  - Boss: 添加了 hints 中描述的 Self-Attention Pooling 和 Additive Margin Softmax 模块，但实际上仅需要将 Strong 中 Classifier 部分的 pred_layer 同 Conformer 本身一样修改为单层的全连接层便可以非常轻易的达到 Boss baseline。\n- **HW05**：提供中文版本，修正原sample code描述错误，因为 HW05/06 都是在 Judgeboi 上提交的，而非校内无法提交，所以这里后缀的分数是验证集上的分数。\n  - Medium: 增加了学习率的调度和延长了训练的时间。\n  - Strong: 将模型架构转变为了 Transformer，并根据 [Attention is all you need](https://arxiv.org/abs/1706.03762) 修改了模型的超参数。\n  - Boss: 应用了 back-translation。\n- **HW06**：编写了两个函数供大家测算 FID 和 AFD（在 Inference 之后），但需要注意，函数和 JudgeBoi 上的实现（模型不同）是不一致的，只是方便大家对比代码的改动效果。\n  - Simple: 修改了 sample code 代码 Trainer 类中的 self.accelerator 部分以去除警告。\n  - Medium: 数据增强，将 timesteps 增加至1000（同 [DDPM](https://arxiv.org/abs/2006.11239))）。\n  - Strong: 调整超参数 channel 和 dim_mults，增加 cosine_beta_schedule() 和 sigmoid_beta_schedule()。\n  - Boss: 使用 StyleGAN 进行图像生成。\n- **HW07**：这门课程实际上引导学习了如何去微调一个 LLM 大语言模型来完成 QA 任务。我对所有的增加的模块做了参数上的对比实验，结果位于指导文档对应 Baseline 部分。\n  - Medium: 提供 PyTorch和 Hugging Face 两种学习率调度方法，调整 `doc_stride` 参数提升模型表现。\n  - Strong: 通过偏移答案的窗口位置来修复预处理阶段可能错误捕捉答案模式的问题，并对比展示四种预训练模型的训练结果。\n  - Boss: 修复后处理部分 End < Start 的问题，增加梯度累积的使用，合并 dev 训练集，并更换模型参数更大的预训练模型。\n\n...\n\n## 克隆仓库\n\n你可以使用下面的命令克隆仓库所有的文件到本地：\n\n```bash\ngit clone https://github.com/Hoper-J/HUNG-YI_LEE_Machine-Learning_Homework.git\n```\n\n## 进一步学习\n\n2024年生成式人工智能导论这门课程的中文引导和作业镜像版也已经制作完成，希望能够对你有所帮助：[LLM-Guide-and-Demos-zh_CN](https://github.com/Hoper-J/LLM-Guide-and-Demos-zh_CN)\n\n"
  }
]